PDA

Visualizza la versione completa : Come avviare un programma esterno


GTN
22-05-2006, 07:48
Ho un bottone, una volta cliccato voglio che si avvii un programma esterno. che codice devo mettere, o devo includere il programma nell'applicazione MDI?



grazie

mondobimbi
22-05-2006, 17:30
sotto win normalmente si chiama CreateProcess per lanciare il nuovo programma e quindi uscire. Sotto linux si può usare execv, execve, execl, execle ed altre simili.

ciao
sergio

alka
22-05-2006, 17:32
Se non vi è la necessità di terminare forzatamente l'applicazione o interagire con questa, è possibile usare la funzione ShellExecute, accessibile aggiungendo la unit ShellAPI alla clausola uses.

shake84
23-05-2006, 12:25
Visto che il mio problema è molto simile, scrivo qui sotto...

Anzichè aprire un determinato programma, vorrei che un determinato file, venga aperto da un programma scelto da me.

Ad esempio, voglio che il file 'miofile.txt' , venga aperto con notepad oppure con word

Io avevo pensato ad una cosa del genere, solo che ovviamente non funziona..


ShellExecute(Handle, 'OPEN', PChar('notepad.exe miofile.txt'), nil, nil, SW_SHOWNORMAL);

Qualcuno ha qualche idea?

Ps. e se volessi incollare il file all'interno del programma già aperto (es. in word), come bisognerebbe procedere?

alka
23-05-2006, 12:29
Originariamente inviato da shake84
Anzichè aprire un determinato programma, vorrei che un determinato file, venga aperto da un programma scelto da me.

In tal caso, specifica il nome del file nell'apposito parametro della ShellExecute, senza unirlo alla stringa che rappresenta il programma da eseguire.


Originariamente inviato da shake84
Ps. e se volessi incollare il file all'interno del programma già aperto (es. in word), come bisognerebbe procedere?
Le modalità cambiano a seconda dell'applicazione. Nel caso di Word si dovrebbe ricorrere all'automazione; in generale, invece, si dovrebbe ricercare l'handle della finestra del programma con le apposite funzioni API ed inviare eventualmente un messaggio di "incolla", dopo aver provveduto a copiare il testo desiderato negli Appunti (clipboard).

Ciao! :ciauz:

shake84
23-05-2006, 14:05
Originariamente inviato da alka
In tal caso, specifica il nome del file nell'apposito parametro della ShellExecute, senza unirlo alla stringa che rappresenta il programma da eseguire.

:D Ti ringrazio davvero..
Mi era sfuggito il parametro, ho da poco iniziato ad usare Delphi, e non so ancora bene come muovermi..



Originariamente inviato da alka
Le modalità cambiano a seconda dell'applicazione. Nel caso di Word si dovrebbe ricorrere all'automazione; in generale, invece, si dovrebbe ricercare l'handle della finestra del programma con le apposite funzioni API ed inviare eventualmente un messaggio di "incolla", dopo aver provveduto a copiare il testo desiderato negli Appunti (clipboard).
Ciao! :ciauz:

:master: Mh.. è più facile dirsi che a farsi.. Almeno per quanto mi riguarda.. Vado a studiarmi bene le ClipBoard.. nel caso ritorno qui

alka
23-05-2006, 14:09
Originariamente inviato da shake84
Vado a studiarmi bene le ClipBoard.. nel caso ritorno qui
Eventualmente, apri una nuova discussione visto che l'argomento non è proprio inerente all'avvio di un programma esterno riportato nel titolo.

Ciao! :ciauz:

GTN
24-05-2006, 19:38
grazie a tutti! ;)

Loading