Lancer une application avec paramètres

Lancer une application avec paramètres - Programmation

Marsh Posté le 30-05-2002 à 10:50:10    

Je voudrais pouvoir lancer depuis un soft Delphi une application en décidant de sa taille et de saposition sur l'écran. Comment faire ?
 
Merci d'avance...

Reply

Marsh Posté le 30-05-2002 à 10:50:10   

Reply

Marsh Posté le 30-05-2002 à 11:40:25    

à priori on peut pas... sauf si le soft est prévu pour recevoir ce genre de paramètres


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-05-2002 à 11:42:30    

Et on peut pas redimensionner l'application après quelle soit lancé autrement ?

Reply

Marsh Posté le 30-05-2002 à 11:44:06    

peut-être en lui envoyant des messages Windows, faut voir du côté de wm_size et autres, mais je suis pas sûr que ce soit faisable...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-05-2002 à 13:03:13    

Si l'application est bien ficelée, tu peux juste la maximiser via Shellexecute (SW_SHOWMAXIMIZED).
Sinon comme dit antp faut envoyer des messages.
Mais c'est pas la mort à faire ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 30-05-2002 à 13:15:32    

sinon avec xp (et 2000?) on peut decider de lancer une app en maximisé ou minimisé dans ses propriétés.
m'enfin ca laisse pas bcp de choix.

Reply

Marsh Posté le 30-05-2002 à 13:41:16    

HelloWorld -> tu te sers de quels messages pour faire ça ? Et pour controler l'appli, tu utilise un PID ?

Reply

Marsh Posté le 30-05-2002 à 15:03:11    

Citation :

HelloWorld -> tu te sers de quels messages pour faire ça ? Et pour controler l'appli, tu utilise un PID ?


 
Il faut distinguer un process (PID) d'une fenêtre qu'il créé. C'est pas pareil.
Faut choper un handle sur la fenêtre en question (y'a du code d'exemple sur plein de sites) et lui envoyer les messages ad'hoc.
SetWindowPos peut tout te faire d'un coup, et même plus.
SetWindowPos(Handle_de_ta_fenetre, 0, X, Y, W, H, SWP_NOZORDER);


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 30-05-2002 à 16:16:45    

OK, merci, c'est déjà un peu plus clair..
 
Tu as pas une URL ou un bout de code pour récupérer le handle de la fenêtre ?

Reply

Marsh Posté le 30-05-2002 à 16:52:50    

J'ai essayé ça :
 
procedure TForm1.Button1Click(Sender: TObject);
var
        Test : Hwnd;
begin
        Test := ShellExecute(GetDesktopWindow, 'open', PChar('explorer.exe';), nil, nil, SW_SHOWNORMAL);
        SetWindowPos(Test, 0, 0, 0, 150, 150, SWP_NOZORDER);
end;
 
Ca marche pas. Il m'ouvre bien explorer, mais il applique pas les redimensionnement. Quelqu'un sait pourquoi ?

Reply

Marsh Posté le 30-05-2002 à 16:52:50   

Reply

Marsh Posté le 30-05-2002 à 16:54:20    

Citation :

If the function succeeds, the return value is the instance handle of the application that was run, or the handle of a dynamic data exchange (DDE) server application.


 
Il te retourne le handle de l'application, pas le handle de la fenêtre principale de l'application


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-05-2002 à 17:01:41    

OK... Mais j'arrive pas à trouver sur le net ce qu'il faut pour récupérer le handle voulu comme me le disais HelloWorld. J'ai regardé chez DelphiFR.com et chez Michel, il y a pas (a priori), et chez torry c'est un peu le bordel si on est pas bilingue...

Reply

Marsh Posté le 30-05-2002 à 17:05:26    

regarde du côté de EnumWindows (si je me souviens bien)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-05-2002 à 18:03:52    

Put1 !!! J'y arrive ça me gonfle !! J'arrive à faire tourner des procedures avec EnumWindows, mais ça redimensionne pas ce que je veux !!!!!

Reply

Marsh Posté le 30-05-2002 à 18:17:51    

HelloWorld -> Tu as une URL avec les explications pour pouvoir récupérer le Handle d'un fenêtre en particulier ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed