PDA

Visualizza la versione completa : [C] Problemi da principiante con system().......


Van Basten
17-09-2002, 14:50
Sto cercando di portare a termine il mio primo semplice programmino (sono un novellino!!) che mi lanci ad esempio un'altra applicazione.
Come si realizza, sempre che si possa fare, una finestra di avviso tipo quelle di windows che visualizzano la possibilità di selezionare 'sì' oppure 'no'? E' difficile?


Un'altra domanda...... Dovendo lanciare un programma la cui path presenta uno spazio (ad es. (system("C:\\Programmi\\Internet Explorer\\IEXPLORE.EXE")) ho provato ad inserire il codice '%20' ma non risolve il problema. Come va decodififcato lo spazio?

Grazie mille a tutti.

paolomat
18-09-2002, 09:07
.... per la finestra d'avviso devi usare l'API di Windows
int MessageBox(
HWND hWnd, // handle della finestra
LPCTSTR lpText, // puntatore al testo da visualizzare
LPCTSTR lpCaption, // puntatore al titolo del messaggio
UINT uType // stile del messaggio
);

dove il parametro stile deve essere uguale alla costante MB_YESNO.

Invece per richiamare un programma esterno usa l'API
HINSTANCE ShellExecute(
HWND hwnd, // handle della finestra
LPCTSTR lpOperation, // puntatore alla stringa dell'operazione
LPCTSTR lpFile, // puntatore alla stringa nome file
LPCTSTR lpParameters, // puntatore alla stringa dei parametri
LPCTSTR lpDirectory, // puntatore alla stringa della PATH
INT nShowCmd // tipo visualizzazione
);

dove lpOperation deve valere "open" per eseguire il file e nShowCmd deve essere uguale alla costante SW_SHOW (per visualizzazione normale).
Il resto dovrebbe essere chiaro.

Ciao


:tongue:

Van Basten
19-09-2002, 10:40
:confused:
Dunque le API rappresentano lo strumento essenziale per accedere alle informazioni contenute nel registro. Dove posso trovare un po' di docmentazione (teoria e sintassi) al riguardo per approfondire l'argomento?

Grazie

paolomat
19-09-2002, 14:48
Le API sono funzioni "speciali" che si interfacciano con il sistema operativo (File System, registro di sistema, Kernel,ecc....).

Su internet esiste una marea di siti. Io uso particolarmente questi:

ALLAPI (http://www.allapi.net/)
Microsoft MSDN Library (http://msdn.microsoft.com/library/default.asp)

Ciao
Paolo
:ciauz:

eugi
19-09-2002, 17:12
per far partire un'applicazione di windows devi usare WinExec(stringa comand,int stato finestra(di solito 0)); gli spazi non li devi decifrare, soltanto mettere il tutto tra virgolette ( \" ), quindi se dovresti far partire C:\\Programmi\\Internet Explorer\\IEXPLORE.EXE

WinExec(("\"C:\\Programmi\\Internet Explorer\\IEXPLORE.EXE\").c_str(),0);

credo funzioni, io faccio così... ciao eugi...

Loading