Fonction ki execute tout et n'importe koi et attend sagement la fin

cs_Gysmo Messages postés 209 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 13 décembre 2002 - 16 avril 2002 à 23:51
adjena Messages postés 41 Date d'inscription vendredi 7 mai 2004 Statut Membre Dernière intervention 4 juin 2007 - 5 août 2004 à 15:43
J'ai trouver cette excelentissime fonction sur le web:

function LaunchNWaitEnd(sFile: string): boolean;
var
cExe: array [0..255] of Char;
sExe, Fichier: string;
StartInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
pcFile: PChar;
begin
Result:=True;
FindExecutable(PChar(ExtractFileName(sFile)), PChar(ExtractFilePath(sFile)), cExe);
sExe:= string(cExe);
if Uppercase(ExtractFileName(sExe))<>Uppercase(ExtractFileName(sFile))
then pcFile:=PChar(' "'+sFile+'"')
else pcFile:=nil;
ZeroMemory(@StartInfo, SizeOf(StartInfo));
StartInfo.cb:= sizeof(StartInfo);
if CreateProcess(PChar(sExe), pcFile, nil, nil, true, 0, nil, nil, StartInfo, ProcessInfo)
then WaitForSingleObject(ProcessInfo.hProcess, INFINITE)
else Result:= false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;
Visible:= false;
if not (LaunchNWaitEnd(OpenDialog1.FileName))
then ShowMessage('erreur au lancement de l''application'
+ Opendialog1.FileName);
Visible:= true;
end;

Elle lance un exe ou un fichier (via l'exe associer) disparait et reaparait une fois l'exe fermer.

Le truc c'est ke j'aimerais kel lance mon applis en grand ecran mais ne comprenand pas grand chose a la fonction CreateProcess je sais pas ou fo mettre WS_MAXIMIZE??!

Merci de m'eclairer sur la question.

Babaille.

3 réponses

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
17 avril 2002 à 00:51
Pour obtenir la fenêtre en grand écran il faut ajouter juste avant le CreateProcess :
StartInfo.dwFlags:=STARTF_USESHOWWINDOW;
StartInfo.wShowWindow:=SW_SHOWMAXIMIZED;

Voili, ci tout.

--- Nono du Moulin ---
0
cs_Gysmo Messages postés 209 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 13 décembre 2002
17 avril 2002 à 01:10
Yahoo super cool merci!!!
Je comprend un peu mieu comment ca marche ce bitouniou maintenant.
C StartInfo ki envois les info a la fenetre car c un TStratupInfo...
Bref je verrai plus tard qd j'aurais plus d'experience pour comprendre exactement.

Merci beaucoup!

Babaille.
0
adjena Messages postés 41 Date d'inscription vendredi 7 mai 2004 Statut Membre Dernière intervention 4 juin 2007
5 août 2004 à 15:43
Cette fonction est très interessante mais quel uses faut-il faire pour avoir la fonction FindExecutable, car à chaque fois que je fais un test delphi me répond :
[Erreur] Unit1.pas(37):
Identificateur non déclaré : 'FindExecutable'
Merci d'éclaire ma lanterne
0
Rejoignez-nous