Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi nochmal: Programm mit Classname und Title beenden! (https://www.delphipraxis.net/8111-nochmal-programm-mit-classname-und-title-beenden.html)

Trouble_Maker 28. Aug 2003 20:47


nochmal: Programm mit Classname und Title beenden!
 
Hiho ...
so auch wenn dies hier schon wirklich oft im Forum steht, bekomm ich es einfach nicht gebacken, dass ich ein bestimmtes Programm schließe.

z.B. folgender Code:
Delphi-Quellcode:
SendMessage(FindWindow('I','about:blank - Microsoft Internet Explorer'), WM_QUIT, 0, 0);
wieso funktioniert das nicht.
den Code habe ich hier aus dem Forum.
Um den Klassenname (Classname) (hier das I) herauszubekommen benutze ich das Tool EDA.

Was mache ich falsch ?!?
ich versteh das nicht ...

danke

Trouble_Maker

CalganX 28. Aug 2003 20:50

Re: nochmal: Programm mit Classname und Title beenden!
 
Schreib statt 'I' mal nil. Das sollte was bringen...

Chris

Trouble_Maker 28. Aug 2003 20:54

Re: nochmal: Programm mit Classname und Title beenden!
 
nope ...

passiert nix !!!

Hab Win98 SE also wegen Rechten und so kanns nicht sein!


cu Trouble_Maker

Luckie 28. Aug 2003 21:01

Re: nochmal: Programm mit Classname und Title beenden!
 
Kann ich bestätigen.

Trouble_Maker 28. Aug 2003 21:03

Re: nochmal: Programm mit Classname und Title beenden!
 
Zitat:

Zitat von Luckie
Kann ich bestätigen.

was kannst du bestätigen ?!?

dass es nicht an den Rechten liegen soll, oder das mit dem "nil" ?!?

wo ist denn mein Fehler ?


cu Trouble_Maker

Luckie 28. Aug 2003 21:05

Re: nochmal: Programm mit Classname und Title beenden!
 
Dass es auch mit nil nicht geht.

CalganX 28. Aug 2003 21:07

Re: nochmal: Programm mit Classname und Title beenden!
 
Nimm weiterhin nil, aber nimm statt WM_QUIT WM_CLOSE. Funktioniert bei mir.

Chris

PS: Denk daran, dass die Titelzeile dann auch wirklich "about:blank - Microsoft Internet Explorer" sein muss! :!:

CalganX 28. Aug 2003 21:11

Re: nochmal: Programm mit Classname und Title beenden!
 
Ansonsten mach es mal so:
Delphi-Quellcode:
hWnd := FindWindow(nil, 'about:blank - Microsoft Internet Explorer');
if hWnd <> nil then
  SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0)
else
  ShowMessage('Window does not exist.');
Chris

Trouble_Maker 28. Aug 2003 21:15

Re: nochmal: Programm mit Classname und Title beenden!
 
Hiho ...

hmm sehr komisch!

Habs jetzt nochmal ausprobiert.
Also mit CDex und mit KillProcess hat der Code funktioniert! Aber nicht mit dem about:blank . Ist doch bisl komisch oder ?!?
Außerdem funktioniert es auch nicht auf Google.de und auf Chip.de!

Liegt das am Internet Explorer ?!?

Trotzdem erstmal danke. Will ja eh kein IE-Fenster schließen!


cu Trouble_Maker

CalganX 28. Aug 2003 21:19

Re: nochmal: Programm mit Classname und Title beenden!
 
Okay, mein Fehler statt nil 0, wenn hWnd ein DWORD bzw. THandle ist.

Aber mein zu Letzt geposteter Source funktioniert mit allem wunderbar!

Chris

CalganX 28. Aug 2003 21:25

Re: nochmal: Programm mit Classname und Title beenden!
 
Ab damit in die Code-Library: http://www.delphipraxis.net/topic908...hlie%dfen.html

Chris

Trouble_Maker 28. Aug 2003 21:38

Re: nochmal: Programm mit Classname und Title beenden!
 
hmm jop hast recht.

Ich habe trotzdem noch ein Problem:

Ich möchte einfach individuell vom Programm heraus ein Programm schließen können. Dies funktioniert ja mit "const" nicht, weil es eben eine Konstante ist. Oder irre ich mich da ?!?
und man kann innerhalb von den ' und ' z.B. edit1.text schreiben ?!?

Wenn nicht, was ich vermute, wie bekomme ich es hin, ein ausgewähltes Prog zu schließen ?!?

danke


Trouble_Maker

CalganX 28. Aug 2003 21:40

Re: nochmal: Programm mit Classname und Title beenden!
 
Hm... statt IDS_WNDTITLE schreibst du
Delphi-Quellcode:
PChar(Edit1.Text)
Ganz einfach!

Chris

Trouble_Maker 28. Aug 2003 22:22

Re: nochmal: Programm mit Classname und Title beenden!
 
ah perfekt!

Danke nochmal an alle!


cu Trouble_Maker


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz