Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Con la quattordicesima generazione Lenovo ridisegna il suo ThinkPad più iconico attorno al nuovo Space Frame e ai processori Intel Core Ultra Series 3. Resta sotto 1Kg, è molto più semplice da riparare e si rivolge al professionista che lavora in mobilità, con un prezzo da prodotto di vertice.
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Le Jabra Evolve3 85 non sono semplicemente cuffie Bluetooth con cancellazione del rumore. Sono un dispositivo professionale pensato per chi trascorre gran parte della giornata in riunione, al telefono o davanti a un assistente basato sull'intelligenza artificiale
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
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: 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, 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


Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Rubati 6 pallet di hardware NVIDIA da 11...
Addio ai limiti del silicio? Ecco il dia...
Windows 11 27H2 sarà un 'cambio completo...
Hai mai notato che l'iPhone sbaglia semp...
Raffreddamento a liquido e schermo perso...
TSMC valuta la produzione di 3D DRAM su ...
Il Cybertruck ha i giorni contati? Musk ...
Meta porta la voce su Muse, e a sponsori...
Perché il disco principale di Win...
Quanta acqua consuma l'IA? Da cinque goc...
Airbnb lancerà un assistente AI per pian...
25 miliardi sul tavolo: i sauditi voglio...
TV Haier QLED da 65'' a meno di 400€ su ...
Il meglio degli sconti Amazon del weeken...
Il rumore degli aerei in sottofondo può ...
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: 21:25.


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