AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi handle, handle...., Programm beenden, ich check es nicht

handle, handle...., Programm beenden, ich check es nicht

Ein Thema von Walter vdV · begonnen am 6. Nov 2003 · letzter Beitrag vom 9. Dez 2003
Antwort Antwort
Seite 1 von 2  1 2   
Walter vdV

Registriert seit: 30. Okt 2003
Ort: Kurz vor der Grenze
10 Beiträge
 
Delphi 5 Professional
 
#1

handle, handle...., Programm beenden, ich check es nicht

  Alt 6. Nov 2003, 14:25
Auch auf die Gefahr das ich nerve, aber ein fremdes Programm zu beenden ohne 'terminate' ich begreife es einfach nicht. Also wie man eine PID bekommt ist hier zur Genüge beschrieben und ein Programm beenden mit SendMessage(hwnd,SC_CLOSE,..) auch. Wie komme ich aber an das Fensterhandle (hwnd). Mit FindWindow benötige ich den exakten Text des Fensters. Nur den habe ich nicht, er ändert sich auch z.B. bei Notepad. Man hat die PID und den Filenamen der exe, und mehr nicht. Der Programmcode von Chewie in der Code-Library ist meiner Meinung nach der richtige Ansatz aber ich verstehe einfach nicht, wie ich daraus das Fensterhandle bekomme, weil er ja auch wieder einen Vergleich mit dem Windowstext macht.
Alles was ich bis jetzt zusammentragen und probieren konnte löst mein Problem nicht.
Vielleicht ist noch einmal jemand so freundlich und gibt einem Dummi eine verständliche Anleitung.
Ich muss noch dazu sagen, dass die Programme die ich beenden möchte, sich in der TNA einnisten.
Gruss Walter
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: handle, handle...., Programm beenden, ich check es nicht

  Alt 6. Nov 2003, 14:46
bei findwindow musst du nicht unbedingt den fenstertitel angeben du kannst auch den klassennamen angeben
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Walter vdV

Registriert seit: 30. Okt 2003
Ort: Kurz vor der Grenze
10 Beiträge
 
Delphi 5 Professional
 
#3

Re: handle, handle...., Programm beenden, ich check es nicht

  Alt 6. Nov 2003, 15:48
Mit dem Classname ist es ja das gleiche Problem, man hat ihn nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: handle, handle...., Programm beenden, ich check es nicht

  Alt 6. Nov 2003, 18:08
Man kann ihn aber ermitteln. Mit WinSight oder ähnlichen Programmen (WindowInfo von meiner Seite zum Beispiel). Des weiteren könntest du dir mit EnumWindows alle Fenster auflisten lassen und dir dann an Hand der Fenster Caption dir deins rauspicken.

BTW stimmt es schon, dass sich beim Notepad je nach geladener Datei die Caption ändert, aber meinses Wissens taucht da immer die Zeichenfolge "- Editor" auf. Also kein Problem das Notepad zu finden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Walter vdV

Registriert seit: 30. Okt 2003
Ort: Kurz vor der Grenze
10 Beiträge
 
Delphi 5 Professional
 
#5

Re: handle, handle...., Programm beenden, ich check es nicht

  Alt 6. Nov 2003, 20:53
Also erst mal danke. Ist alles richtig. Vielleicht schildere ich erst mal was ich will. Wenn ich ins Internet will wird zuerst der Firewall, dann der Dialerschutz, das Antivirusprogramm, die Bluetoothverbindungen, dann die DFÜ-Verbindung und dann der Browser gestartet also 6x Click. Das ganze möchte jetzt mit meinem Programm in einem Rutsch machen, also einmal auf den Button clicken und der Rest läuft automatisch. Das ganze soll natürlich dann auch umgekehrt laufen. Das klappt auch ganz prima wenn ich beim beenden TerminateProcess verwende (obwohl bei der Bluetoothverbindung habe ich beim Beenden noch Probleme aber das tut hier nichts zur Sache). Ich möchte aber zum Beenden nicht TerminateProcess verwenden, weil das wie ich in einer Diskussion schon gelesen habe(und aus Erfahrung weiss) brutal ist und zu Problemen führt (mein Browser meldet immer, er wurde nicht korrekt beendet). Ich kenne natürlich meine Prozesse und Fenster die ich offen habe (Taskmanager, ProcessExplorer etc.). Ich möchte aber ein Konfigurationstool schreiben in dem ein anderer Nutzer die Programme frei auswählen kann die er mit starten will(z.B. C:\Programme\Antivirus.exe oder C:\Internet Explorer\Internetexplorer.exe). Ich kann ja dem Nutzer nicht zumuten mit irgendeinem Tool herauszufinden wie die Fenster heissen und diese Namen noch händisch in der Registery einzutragen. Also was habe ich nach der freien Konfiguration, den exe-Namen und darüber die Process-Id und mit diesen Infos will ich auch alles wieder beenden.
Ausserdem nisten sich diese Programme alle in der TBNA ein und was sich da heutzutage alles erlaubt sich niederzulassen mit mehr oder weniger grossen Hints, da muss man schon ein äusserste feingefühl mit der Maus besitzen um die richtigen Icons rauszufinden.
Das Programm hat natürlich noch andere 'Gags', die sind für dieses Problem aber nicht relevant.
Gruss Walter
PS. Bitte keine Diskussionen darüber, warum ich überhaupt einen Firewall benutze.
  Mit Zitat antworten Zitat
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#6

Re: handle, handle...., Programm beenden, ich check es nicht

  Alt 8. Dez 2003, 19:05
Hi Walter hast du das Problem mittlerweile gelöst? Ich war grad dabei fast das gleiche Tool zu schreiben und bin am gleichen Prob hängen geblieben. Was tue ich also? Ich such natürlich in der und finde deine Frage
Wäre cool wenn du oder jemand anders ders inzwischen gelöst hat sich meldet und mal ein Stück Code spendiert 8)
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
Walter vdV

Registriert seit: 30. Okt 2003
Ort: Kurz vor der Grenze
10 Beiträge
 
Delphi 5 Professional
 
#7

Re: handle, handle...., Programm beenden, ich check es nicht

  Alt 8. Dez 2003, 19:45
Hallo Flogo,
tut mir leid, aber leider habe ich keine Lösung. Ich habe mit einem Spezialisten (meiner Meinung nach) direkt kommuniziert und verschiede Dinge ausprobiert aber ich bin zu keinem Ergebnis gekommen. Mich wunderts eigentlich nicht. Meiner Meinung nach bekommt man hier im Forum excellente Antworten auf seine Fragen, aber da keiner geantwortet hat, vermute ich mal, dass das gar nicht so einfach ist. Ausserdem, wenn ich mir es recht überlege, wäre es auch wieder eine Sicherheitslücke in WIN. Dann könnte Dir ja jeder Hobbyhacker ein Ei legen und z.B. Deinen Virenschutz beim Surfen ausschalten usw. Ich denke mal, dass die 'seriösen Hacker' hier im Forum Ihr evtl. Wissen zurückhalten und das eigentlich zu Recht.
Ich hab's erst mal aufgegeben.
Gruss Walter
  Mit Zitat antworten Zitat
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#8

Re: handle, handle...., Programm beenden, ich check es nicht

  Alt 8. Dez 2003, 19:57
Na gut dann nicht
Werd ich mein Project eben auch wieder auf Eis legen bzw. nur Prog starten beendet wird dann halt von hand
thanx anyway
flogo
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#9

Re: handle, handle...., Programm beenden, ich check es nicht

  Alt 8. Dez 2003, 20:06
Hallo. Nur nicht den Mut verlieren!
Lest euch vielleicht mal den Beitrag hier durch: Snapshot
Vielleicht hilft euch das weiter. Wenn ich das richtig verstanden habe, kann man die ProzessID (oder so) von einer .exe ermitteln. Dann sollte es doch kein Problem mehr sein, weiterzu arbeiten, wenn man das schon mal hat. Da der Benutzer ja die Progs festlegt, die er starten will, werden die ja auch irgendwo gespeichert. Dann muss man nur die Dateinamen auslesen und sich die ID von dem Prog holen. Dann sollte mans auch schon abschießen können

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#10

Re: handle, handle...., Programm beenden, ich check es nicht

  Alt 8. Dez 2003, 20:19
Wie genau meinst du das mit "abschießen".
Mit Terminate oder wie? Schadet das nicht irgendwie? Walter hat ja schon beschrieben was bei terminate passiert? Wenn nicht mit terminate oder WM_CLOSE (geht wegen Firewall nicht) wie dann?
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz