Comment appeler un processus déjà résident ? - Delphi/Pascal - Programmation
Marsh Posté le 22-01-2007 à 19:04:02
j'ai pas compris !
le processus est deja lancé et toi tu veux lui changer de nom //impossible
sinon executer ?
Marsh Posté le 22-01-2007 à 20:50:15
sad bloke a écrit : j'ai pas compris ! |
Pas du tout
Je veux le faire passer au premier plan, en quelque sorte.
Faire, en programmation, ce que je fais en doublecliquant sur l'icône de la barre des tâches.
ET là, je ne vois pas du tout
Marsh Posté le 22-01-2007 à 21:20:32
ah ok bah essaye avec la commande show
form1.show
Marsh Posté le 22-01-2007 à 23:03:06
sad bloke a écrit : ah ok bah essaye avec la commande show |
On s'approche... mais c'est pas tout à fait ça
Le prog que je veux appeler (enfin : "activer" ) ne fait pas partie du prog qui l'appelle. Comment expliquer ça
Soit mon prog qui s'appelle TOTO.EXE . Soit un autre prog, en l'occurrence MailWasher. Celui-ci est "résident", comme on disait sous DOS. Il est déjà lancé, c'est un processus qui existe, et qui tourne. On le voir juste par la petit icône en bas à droite. En doublecliquant sur cette icône avec la souris, je l' "active".
C'est exactement cela que je veux programmer : comme un double clic, mais sur un process existant.
Marsh Posté le 23-01-2007 à 10:01:10
HERIBERT a écrit : On s'approche... mais c'est pas tout à fait ça |
Essaye avec FindWindow puis ShowWindow puis SetWindowPos .
Exemple avec Yahoo Messenger
andl:= findwindow('YahooBuddyMain', nil);
SendMessage(andl, WM_SETFOCUS, 0 ,0 );
SendMessage(andl, WM_ACTIVATE , 0 , 0 );
ShowWindow(andl,SW_MINIMIZE);
ShowWindow(andl,SW_SHOWDEFAULT);
SetWindowPos(andl, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE
or SWP_NOACTIVATE or SWP_NOSIZE);
Marsh Posté le 24-03-2007 à 22:29:49
Bonjour, bonjour
Je cherchai la même chose que toi et j'ai trouvé donc je te le poste.
mes sources : http://www.developpez.com/delphi/f [...] rexecution
j'ai fait un mix avec les deux solutions qu'il propose pour minimiser le code.
Code :
|
Voilà j'espère que sa t'aidera et les autres qui passeront ici.
C'est la solution pour mettre au premier plan la première instance d'une application a la place de l'ouvrir une deuxième fois, lorsque l'on lance l'exécutable.
Voila by.
Pierre-Emmanuel.
Marsh Posté le 22-12-2006 à 09:40:43
Bonjour.
Je souhaiterais pouvoir appeler un programme déjà lancé. En loccurrence MailWasher, dont l'icône, en bas à droite, permet justement cet appel (mais ça ne m'est pas commode) :
Il doit bien y avoir une API pour ça, mais laquelle Une API (ou une fonction de D6) permettant l'activation d'un processus résident. Un peu comme le fait le gestionnaire de tâches avec l'onglet "Processus".
Pas moyen de faire ça ?
Merci
Message édité par HERIBERT le 26-01-2007 à 15:10:55