Lancer une application avec paramètres - Programmation
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
Marsh Posté le 30-05-2002 à 11:42:30
Et on peut pas redimensionner l'application après quelle soit lancé autrement ?
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...
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 ...
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.
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 ?
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);
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 ?
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 ?
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
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...
Marsh Posté le 30-05-2002 à 17:05:26
regarde du côté de EnumWindows (si je me souviens bien)
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 !!!!!
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 ?
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...