begin process at 2010 02 10 11:16:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Exécution

 > 

Fermeture d'une application par un programme externe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fermeture d'une application par un programme externe

mardi 11 novembre 2008 à 20:22:17 | Fermeture d'une application par un programme externe

f6dqm1

Bonjour à Tous
J'ai un problème sur la fermeture d'une application par une application externe :
J'utilise FindWindow pour récupérer le Handle de mon application à fermer et SendMessage(handle,WM_CLOSE,0,0) pour fermer mon application.
Le problème est que pour certaines applications, ça fonctionne normalement et pour d'autres applications, la fenêtre principale ne se ferme pas. Je ne comprends pas pourquoi.
Le Handle récupéré est bien différent de 0. La fonction SendMessage ne renvoie pas d'erreur. Avec PostMessage ou TerminateProcess, c'est pareil.
Le titre de mon application est bien celui défini à la compilation de mon programme, vérifié aussi dans l'état des process de WinXP (le titre apparait lorsque l'on clique sur l'onglet Applications du gestionnaire de tâches de Windows).
Toutes mes applications sont compilées et écrites à peu près de la même façon et je ne comprends pas pourquoi sur certaines l'application se ferme sans probléme et pour d'autres l'application ne se ferme pas.
Si vous avez une idée, je suis preneur !
Merci d'avance.

Gabriel
mercredi 12 novembre 2008 à 14:40:19 | Re : Fermeture d'une application par un programme externe

f6dqm1

Re Bonjour
N'ayant pas de suggestion à mon problème et n'arrivant pas trouver la solution, je continue à solliciter les lecteurs et développeurs.
Si vous avez deux minutes à me consacrer, j'aimerais que vous essayez de votre de votre côté de fermer par l'intermédiaire d'une appli externe avec les deux instructions suivantes :

ahandle:=FindWindows(nil, 'CW_Player');
PostMessage(ahandle,WM_CLOSE,0,0);

Le programme CW_Player se trouve à l'adresse URL suivante :
http://www.f6dqm.fr/soft/cwplayer/cwplayer.zip
C'est un petit programme gratuit à l'usage des radioamateurs pour apprendre le Morse. Le titre de cette application est CW_Player (vérifiable par le gestionnaire de tâches de Windows).
Je voudrais savoir si, chez vous, vous arrivez à fermer le programme avec les 2 lignes de code ci-dessus.
Chez moi, il n'y a pas d'erreur générée ('opération réussie') mais la fenêtre de CW_Player ne se ferme pas alors que si j'essaie avec d'autres applis persos, il n'y a pas de problème.
Est-ce que ça vient de mon programme CW_Player ou est-ce que ça vient de mon système ?
Gabriel
samedi 22 novembre 2008 à 15:47:14 | Re : Fermeture d'une application par un programme externe

neil

Membre Club
Bonjour, je n'ai pas tester avec ton programme/fonction mais pour ma part j'utilise TerminateProcess et je n'ai jamais rencontré de problème,
j'utilise une fonction que j'ai trouvé sur ce site il y a déjà quelque temps :

function KillProcess(const sProcessName : string): boolean;
var
Processentry32 : TProcessEntry32;
Handle : THandle;
HProc : THandle;
begin
  Result := False;
  Processentry32.dwSize := SizeOf(Processentry32);
  Handle := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
  Process32First(Handle,Processentry32);
  repeat
    if CompareText(Processentry32.szExeFile,sProcessName) = 0 then
    begin
      HProc := OpenProcess(1,False,Processentry32.th32ProcessID);
      TerminateProcess(HProc,4);
      Result := True;
      break;
    end;
  until
    not Process32Next(Handle,Processentry32);
end;


Voilà, si sa peu d'aider un peu.
Cordialement, Neil.


Cette discussion est classée dans : programme, application, fermeture, applications, externe


Répondre à ce message

Sujets en rapport avec ce message

Attendre la fermeture d'un programme déjà ouvert [ par Serial326 ] Bonjour à tous,J'essai de faire un programme qui reçoit en paramètres le handle et le processus de l'application qui l'appelle ainsi que deux chemin ( Activer désactiver une form [ par THYNOORD ] Dans un petit projet je dois lancer un autre programme (donc dans une autre fenêtre) en cliquant sur un bouton. Je souhaiterai, tout en laissant mon a Message d'erreur lors de la fermeture d'une application fait en delphi [ par diglas ] slt, j aimerai avoir une solution a un pb. voila, j'ai developper une application en Delphi7, une application de base de données. mais a chaque fois q Lancement de programme écrit en Delphi2007 sous Vista [ par goimard ] Bonjour tout le monde,Je suis actuellement en train de faire des essai de compatibilité de nos logiciels avec Vista. Avec un des programmes j'ai une e faire apparaitre mon application devant tou les autres applications [ par satani007 ] bonjour a tous j'ai essayer de mettre mon application en avant plans , devant les autre applications actives, j'ai utilisé application.restore mais ca Mona pplication empèche la fermeture de Windows [ par f6dqm1 ] BonjourJ'ai écrit une application Delphi qui empèche la fermeture de Windows si cette application tourne.Si je fais Arrèter, l'écran passe en sombre p comment charger les items d'une syslistview d'une application externe ? [ par ramanovitch ] Bonjour a tous , je souhaite savoire comment charger le contenu d'un syslistview d'une application externe dans une liste de mon application "delph Problème au lancement d'une application externe [ par John Dogget ] Salut à tous. Je souhaiterais lancer le bloc-note windows pour editer un fichier depuis mon application, mais je n'y arrive pas ... Voici ce que j'a Forcer la fermeture d application pendant la fin de session windows [ par kevino ] Bonjour;J ai fais une application qui identifie l utilisateur a travers une sorte de cookies. mais je n arrive pas a forcer la suppression de cette co Fermer une application externe [ par craftsystem ] salut a tous j'aurai voulus savoir comment fermer une application externeIf FindWindow('TIdaWindow',nil)0 Then Application.Terminate;//ferme mon appli


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales