Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-10-2014, 14: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, 17: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, 08: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, 16: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, 17:25   #5
monte.cristo
Senior Member
 
Iscritto dal: May 2014
Messaggi: 1381
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, 10: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, 13: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, 21: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, 07: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, 15: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, 15: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, 18: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, 07: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, 17: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, 19: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, 09: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, 10: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, 13: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, 08: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, 20: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


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
La Camera USA presenta il conto: i data ...
Non solo EV, ma anche IA: Panasonic inau...
iPhone Duo, il debutto del pieghevole di...
Atlas 960E SuperPoD, la risposta di Huaw...
IA militare e nucleare: esperti USA e ci...
Dieci mini-reattori nucleari in Europa d...
CONTROL Resonant su PC: Path Tracing, Ra...
ColorOS 17 arriva su circa 90 dispositiv...
GTA VI, il multiplayer potrebbe debuttar...
Aggiornamento KB5002914 rompe Excel: ecc...
Processo Huawei a Brooklyn: l'FBI mostra...
WhatsApp introduce nuovi temi per le cha...
NVIDIA, Google e Emerald AI uniscono le ...
iPhone 18 Pro Max, il test sulla vapor c...
Fine estate in giardino: le proposte sco...
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: 03:41.


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