Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
be quiet! debutta nel settore mouse da gaming con Dark Perk Ergo e Dark Perk Sym: due modelli gemelli per specifiche, con polling rate di 8.000 Hz anche in wireless, sensore PixArt PAW3950 da 32.000 DPI e autonomia dichiarata fino a 110 ore. Nel test, a 8.000 Hz si arriva a circa 30 ore reali, con ricarica completa in un'ora e mezza
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-10-2014, 15:19   #1
karond
Member
 
Iscritto dal: Dec 2008
Messaggi: 73
programmino per lanciare un certo file ogni tot tempo

ciao.
ho studiato un minimo di c al primo anno di università ma ora mi ricordo pochissimo...
avrei bisogno un programma in c che dopo averlo eseguito mi esegue un file che si trova ad esempio in C/programmi/....e dopo 10 minuti lo riavvia una seconda volta, e cosi via fin che non viene chiuso.

Io pensavo di usare un ciclo for e i comandi system e sleep, ho provato a mettermi li con devC++ ma mi son accorto che non mi ricordo piu' nulla....qualcuno puo' aiutarmi a scriverlo?
karond è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2014, 18:38   #2
karond
Member
 
Iscritto dal: Dec 2008
Messaggi: 73
ragazzi dai qualcuno che me lo metta giù, voi ci mettereste 2 secondi...


ah per windows..
karond è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2014, 09:25   #3
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Posta il codice che hai realizzato fin ora.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2014, 17:51   #4
karond
Member
 
Iscritto dal: Dec 2008
Messaggi: 73
#include <stdio.h>
#include <windows.h>
int main () {
int tot=0;
int n;
for (n = 1; n <= 3; n++){
ShellExecute(NULL, "open","C:\Program Files (x86)\...\MElcld.exe", NULL, NULL, SW_SHOWNORMAL);

//mi dovrebbe aprire 3 volte il file MElcld.exe
//il problema è che questo file, se lo avvio normalmente, lo avvio con un collegamento sul desktop che
//ha come destinazione: "C:\Program Files (x86)\...\MEls32.exe" -x
//questo -x mi frega perchè non so come inserirlo nella funzione ShellExecute

Sleep(5000);
tot+=n;
}
return 0;
}
karond è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2014, 18:25   #5
monte.cristo
Senior Member
 
Iscritto dal: May 2014
Messaggi: 1378
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
Qui trovi la risposta al tuo quesito.
In particolare se hai
Codice:
HINSTANCE ShellExecute(
  _In_opt_  HWND hwnd,
  _In_opt_  LPCTSTR lpOperation,
  _In_      LPCTSTR lpFile,
  _In_opt_  LPCTSTR lpParameters,
  _In_opt_  LPCTSTR lpDirectory,
  _In_      INT nShowCmd
);
per il parametro vale questo
Quote:
lpParameters [in, optional]

Type: LPCTSTR

If lpFile specifies an executable file, this parameter is a pointer to a null-terminated string that specifies the parameters to be passed to the application. The format of this string is determined by the verb that is to be invoked. If lpFile specifies a document file, lpParameters should be NULL.
monte.cristo è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2014, 11:07   #6
karond
Member
 
Iscritto dal: Dec 2008
Messaggi: 73
grazie! quindi facendo cosi dovrebbe funzionare: ShellExecute(NULL, "open","C:\Program Files (x86)\...\MElcld.exe", "-x", NULL, SW_SHOWNORMAL);
Però c'è un problema...


int main () {
int tot=0;
int n;
for (n = 1; n <= 10; n++){
ShellExecute(NULL, "open","C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe", NULL, NULL, SW_SHOWNORMAL);
Sleep(5000);
tot+=n;
}
return 0;
}

per esempio cosi mi dovrebbe aprire acrobat reader 3 volte. Ma niente non funziona.
Però è strano, perchè sul pc dove ho installato windows 8 funziona, su quello dove devo usare il programma e ho installato w7, non va.
Potrebbe essere colpa dell'antivirus (AVAST) ma anche se lo disattivo non funziona.
Un altra cosa che ho notato invece è che questo funziona anche su w7:

int main () {
int tot=0;
int n;
for (n = 1; n <= 10; n++){
ShellExecute(NULL, "open","notepad", NULL, NULL, SW_SHOWNORMAL);
Sleep(5000);
tot+=n;
}
return 0;
}

Mi apre il notepad a ogni ciclo.
karond è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2014, 14:05   #7
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
L'operazione "open" serve per aprire un file con il programma predefinito, non per aprire il programma.
In generale ShellExecute serve per eseguire un'operazione predefinita su un file (ancora una volta, non per aprire un programma).
Per eseguire un comando generico devi utilizzare la funzione CreateProcess.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2014, 22:44   #8
karond
Member
 
Iscritto dal: Dec 2008
Messaggi: 73
int main () {
int tot=0;
int n;
for (n = 1; n <= 10; n++){
CreateProcess
("C:\\Program Files (x86)\\...\\MEls32.exe",
"-k",NULL,NULL,FALSE,
CREATE_NO_WINDOW,
NULL,NULL,
&sInfo,
&pInfo
);
Sleep(5000);
tot+=n;
}
return 0;
}

mi da questo errore:
[Error] 'sInfo' was not declared in this scope
[Error] 'pInfo' was not declared in this scope
karond è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2014, 08:49   #9
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Il messaggio di errore è chiarissimo, non hai dichiarato sInfo e pInfo.
Guarda questo esempio: http://daycounter.com/LabBook/Window...eProcess.phtml
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 11-11-2014, 16:20   #10
karond
Member
 
Iscritto dal: Dec 2008
Messaggi: 73
Ok ora li ho dichiarati con
PROCESS_INFORMATION pi;
STARTUPINFO si;
e si compila correttamente.
Però quando eseguo mi esce una finestra di errore che mi dice ( impossibile avviare correttamente il l'applicazione. Fare click su ok per chiudere l'applicazione.
karond è offline   Rispondi citando il messaggio o parte di esso
Old 11-11-2014, 16:32   #11
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Devi anche inizializzarli come nell'esempio che ti ho indicato.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2014, 19:49   #12
karond
Member
 
Iscritto dal: Dec 2008
Messaggi: 73
Ok adesso funziona,ma il problema è che sembra che non viene lanciato con il "-x"
E' corretto compilare la funzione in sto modo?


CreateProcess
("C:\\Program Files (x86)\\...\\MEls32.exe","-x",NULL,NULL,FALSE,
0,
NULL,NULL,
&si,
&pi
)
karond è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2014, 08:50   #13
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Tecnicamente è corretto, tuttavia devi tenere in considerazione questa nota:
Quote:
Because argv[0] is the module name, C programmers generally repeat the module name as the first token in the command line.
Dovresti dunque scrivere:

CreateProcess(
"C:\\Program Files (x86)\\...\\MEls32.exe",
"\"C:\\Program Files (x86)\\...\\MEls32.exe\" -x",
NULL,NULL,FALSE,0,NULL,NULL,&si,&pi
)
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2014, 18:27   #14
karond
Member
 
Iscritto dal: Dec 2008
Messaggi: 73
Mi da un errore alla riga dove chiudo la parentesi della funzione...

[Warning] deprecated conversion from string constant to 'LPSTR {aka char*}' [-Wwrite-strings]
[Error] ld returned 1 exit status
karond è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2014, 20:23   #15
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Quote:
lpCommandLine [in, out, optional]
...
this parameter cannot be a pointer to read-only memory (such as a const variable or a literal string). If this parameter is a constant string, the function may cause an access violation.
...
In altre parole devi copiare la stringa in una variabile e passare quest'ultima come argomento.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2014, 10:43   #16
karond
Member
 
Iscritto dal: Dec 2008
Messaggi: 73
non saprei come fare, ma questa è corretta cosi come la hai scritta tu?

CreateProcess(
"C:\\Program Files (x86)\\...\\MEls32.exe",
"\"C:\\Program Files (x86)\\...\\MEls32.exe\" -x",
NULL,NULL,FALSE,0,NULL,NULL,&si,&pi
)
karond è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2014, 11:04   #17
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
No, è corretta come valori dei parametri, però come ti ho detto nel precedente post il secondo parametro deve essere una variabile.
Puoi fare una cosa del genere:
Codice:
char buffer[512];
strcpy(buffer, "\"C:\\Program Files (x86)\\...\\MEls32.exe\" -x");
CreateProcess(
"C:\\Program Files (x86)\\...\\MEls32.exe",
buffer,
NULL,NULL,FALSE,0,NULL,NULL,&si,&pi
);
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2014, 14:25   #18
karond
Member
 
Iscritto dal: Dec 2008
Messaggi: 73
si si avevo capito ma non sapevo come potevo dichiarare la variabile.
Comunque non si compila.

[Error] ld returned 1 exit status
karond è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2014, 09:51   #19
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Usi un ide o compili da riga di comando? Che comandi usi per compilare/linkare? Versione del compilatore?
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2014, 21:57   #20
karond
Member
 
Iscritto dal: Dec 2008
Messaggi: 73
non so come ma ora funziona e forse correttamente, ora dovrei riuscir ad andar avanti da solo.
Ti ringrazio Daniels118. Sei stato veramente gentile...
karond è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Ring abbassa i prezzi su Amazon: videoci...
Blink taglia i prezzi su Amazon: Mini 2K...
Claude al centro di Apple: ecco come Cup...
Pornhub e altri siti porno si ribellano ...
La TV non è smart? Amazon la trasforma c...
Oltre 200 siti di news hanno limitato l'...
Gennaio si chiude positivamente per il m...
Caos in Ubisoft: licenziato un dipendent...
BMW ed Encory avviano il riciclo diretto...
La società privata russa Space En...
HyperOS 3: al via l'ultima fase del rila...
Allarme Notepad++: compromesso per sei m...
LIGO-Virgo-KAGRA: nuovo studio sulle ond...
Usare il traffico urbano come motore per...
Sony brevetta un controller PlayStation ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:22.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v