AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Programm beenden ohne sichbares Fenster
Thema durchsuchen
Ansicht
Themen-Optionen

Programm beenden ohne sichbares Fenster

Ein Thema von andi_hauser · begonnen am 25. Okt 2002 · letzter Beitrag vom 26. Okt 2002
Antwort Antwort
andi_hauser
(Gast)

n/a Beiträge
 
#1

Programm beenden ohne sichbares Fenster

  Alt 25. Okt 2002, 23:42
Hallo, ich schon wieder.

Ich wollte nur nochmal nachfragen wie ich GENAU ich das Programm (Prog.exe) schließen kann obwohl ich kein Fenster sehe...

Sagen wir das Programm ist unter "C:\prog.exe" und läuft gerade.

Habe zwar schon Infos bekommen... aber ganz klar ist mir das noch nicht.

FindWindow( ??? , ??? );
SendMessage( ??? );

tut mir leid, dass ich solche Fragen stelle, aber in meiner Online Hilfe finde ich nichts brauchbares. Hab ausserdem das erste mal damit was zu tun...

Hoffe Ihr verzeiht mir...

[Edit=FuckRacism] Thema umbenannt, beim nächsten Mal bitte den Namen des Themas auf die Frage hin bezogen benennen, damit jeder vom Namenen her schon sieht ob das was für ihn ist![/edit]
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2
  Alt 25. Okt 2002, 23:50
Hallo Du schon wieder...

FindVCLWindow gibt das fensterorientierte Steuerelement an der angegebenen Position zurück.

Unit
Controls

Kategorie
Maussteuerung

function FindVCLWindow(const Pos: TPoint): TWinControl;
Beschreibung

Mit FindVCLWindow können Sie das fensterorientierte Steuerelement, das sich an einer bestimmten Position befindet, ermitteln. Beispielsweise läßt sich mit FindVCLWindow das fensterorientierte Steuerelement ermitteln, auf dem sich der Mauszeiger befindet, wenn ein anderes Steuerelement aktuell alle Mausbotschaften abfängt. Der Parameter Pos bezeichnet die Position, innerhalb derer sich das zurückgegebene Steuerelement befinden muß. Wenn sich an dieser Stelle kein fensterorientiertes Steuerelement befindet, liefert FindVCLWindow den Wert nil zurück.



SendAppMessage sendet eine Windows-Botschaft an die Anwendung.

Unit
Controls

Kategorie
Windows-Steuerelemente

function SendAppMessage(Msg: Cardinal; WParam, LParam: Longint): Longint;
Beschreibung

Mit SendAppMessage können Sie eine Windows-Botschaft an das globale Anwendungsobjekt senden.
Msg enthält den Windows-Botschaftscode.
WParam enthät die W-Parameter der Botschaft. Deren Interpretation ist von dem Wert in Msg abhängig.
LParam enthät die L-Parameter der Botschaft. Deren Interpretation ist von dem Wert in Msg abhängig.
SendAppMessage gibt das von der Fensterprozedur der Anwendung bereitgestellte Ergebnis zurück. Wenn die Anwendung die Botschaft nicht behandelt, liefert SendAppMessage 0.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 25. Okt 2002, 23:56
Moin Andi,

FindWindow und SendMessage sind Windows API Funktionen.
SendMessage ist zwar in Form der Methode Perform auch bei vielen VCL Controls zu finden, funktioniert aber erfahrungsgemäss nicht immer richtig.
In der Delphi Hilfe findest Du die, wenn Du den Namen in der IDE eingibst, und dann mal F1 drückst. Es wird dann die Hilfe aus dem bei Delphi mitgelieferten, antiquarischen, SDK von Microsoft angezeigt.
Such' doch mal hier im Forum nach PSDK. Das sollte einige Fundstellen erbringen.

FindWindow erwartet als ersten Parameter den Namen der Klasse des zu suchenden Fensters, im zweiten die Caption, wobei auch je einer dieser Parameter durch nil ersetzt werden kann.
Die Caption dürfte klar sein. Die Klasse wäre in Delphi standardmässig TForm1. Hängt davon ab, ob Du dem Formular einen neuen Namen gegeben hast, dann ändert sich dieser Wert.
Rückgabewert ist das Handle des Fensters, oder 0 falls es nicht gefunden werden konnte
Wichtig:
Das Fenster muss nicht zu sehen sein, sondern nur existieren.

SendMessage kennt vier Parameter, von denen allerdings nur zwei immer erforderlich sind.
Der erste ist das Handle des Fensters an das die Meldung geschickt werden soll, der zweite ist die Meldung.
Der dritte und vierte Parameter hängen von der Meldung ab, die geschickt werden soll.
Im Falle von WM_SYSCOMMAND sähe das so aus:

SendMessage(dwHandle,WM_SYSCOMMAND,SC_CLOSE,0);

Hier wird der vierte Parameter nicht benötigt.

Bei WM_CLOSE dann so:

SendMessage(dwHandle,WM_CLOSE,0,0);

Hier werden die letzten beiden Parameter nicht gebraucht.

Näheres zu SendMessage und FindWindow kannst Du bestimmt hier im Forum finden, oder im PSDK (s.o.), ohne das Du über kurz oder lang nicht wirst auskommen können , oder aber bei Microsoft msdn.microsoft.com.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4
  Alt 26. Okt 2002, 00:03
Moin Daniel B,

heute haben wir's aber

FindVCLWindow dürfte dem WindowFromPoint der Windows API entsprechen (so einigermassen), und erfordert die Mausposition.
Ich fürchte mal, dass es kein Fenster ausserhalb der eigenen Applikation finden kann.

SendAppMessage gibt's erst ab D6 (kannst Du ja nicht wissen).
Ich hoffe es funktioniert zuverlässiger als Perform.
Ausserdem funktioniert das nur innerhalb der eigenen Application.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:30 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