Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
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


Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
USB4 e capacità fino a 8 TB, ecco...
Tesla alza ancora il prezzo del Cybertru...
Arriva i Cloudera Anywhere Cloud, la nuo...
L'iPhone del 20° anniversario si mostra ...
Due monitor al posto di uno: il nuovo AG...
Siri AI non sarà per tutti, inizialmente...
NVIDIA GeForce NOW estende il supporto a...
Tornano 2 super promo su Amazon, bestsel...
Instagram semplifica il montaggio dei Re...
Geely oltre 800 volt: punta a 1.000 volt...
Un transistor che funziona a 600 °C,...
Il drone russo ha scelto da solo cosa co...
Frodi online: 58 arresti in 22 paesi, e ...
ASUS ROG Xbox Ally X20, via ai preordini...
Friggitrici ad aria scontate su Amazon e...
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: 11:19.


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