Entwickler-Ecke

Windows API - "Schliessen-Button" externer Programme ausblenden


Psychoholic - Fr 08.11.02 12:29
Titel: "Schliessen-Button" externer Programme ausblenden
Hallo!
Ich habe folgendes Problem: Ist es irgendwie möglich, mittels eines kleinen Delphi-Programmes den Schliessen-Button eines anderen (externen) Programmes auszublenden?
Hintergrund: Ich habe eine Filemakerdatenbank, in der man diesen Button mit bordeigenen Mitteln nicht ausblenden kann. Benutzt man diesen Button anstelle einer "Programm beenden" Routine, so kann die Datenbank nicht ordendlich runterfahren und es kommt zu Datenverlusten. Folglich muss ich den Button irgendwie ausblenden. Geht dies? Hat hier jemand eine entsprechende Komponente parat?

Grüße, Roland


Moritz M. - Sa 09.11.02 11:17

Also, wenn dein Prog in Delphi ist, dann mach mal folgende Schritte:
1)onClose-Prozedur erstellen
2)Globale Bool-Variable erstellen und auf false setzen
3)in die onClose-Prozudur folgendes schreiben:

Quelltext
1:
2:
3:
4:
if globvalevariable=false then
  showmessage('Bitte Menueeintrag benutzen');
  Action:=caNone;
end;

4) Und wenn auf deinen Beenden-Butten gedrückt wird, vor dem Form1.close o.ä. Befehl die Globale Boolvariable auf true setzen.

Action:=caNone; bedeutet, das die CloseAnweisung unterbunden wird.


Eine andere möglichkeit währe, in die onclose Prozedur das Herunterfahren reinschreiben.


Psychoholic - Sa 09.11.02 12:13

Hallo!
Das Problem ist ja eben, daß mein Programm leider kein Delphi-Programm ist. Sonst wäre dies einfach und man könnte den Closebutton ja auch einfach ausblenden. Aber leider muß ich das Schliessen des Programms in einem externen Programm (nicht Delphi) verhindern. :(

Grüße, Roland


Moritz M. - Sa 09.11.02 12:32

Hmmm...das ist dann wirklich ein problem.
Wie das geht, weiß Ich nicht. Versuchs mal mit Hooks.


Psychoholic - Sa 09.11.02 12:53

Onz hat folgendes geschrieben:
Versuchs mal mit Hooks.


Was ist denn Hooks?


Moritz M. - Sa 09.11.02 12:55

Hooks (Mehrzahl von Hook) fangen eingaben und Signale ab, bevor die Signale das Programm erreichen. Hier im Forum gibts ein tutorial dazu.


Delete - Sa 09.11.02 18:24

So lange er nicht die Ressourcen des Programmes ändert oder es sonst irgendwie modifiziert muß immer ein eweiteres Programm laufen um das zu erreichen. Hooks wären nur eine Lösung, welche aber auf ie Performance des Systems drücken. Eine andere Lösung wäre es sich das Handle des Schließen-Buttons zu holen und ihn zu deaktivieren. Meiner Meinung nach die bessere Lösung und dann kann man sein Programm auch wieder beenden.
Oder mal den Hersteller auf das Problem aufmerksam machen, damit er es behebt, was wohl die allerbeste Lösung wäre.

PS: Ich habe hier schon öfters Code gepostet, wie man etwas in fremde Edits schreibt oder fremde Buttons klickt. Einfach mal suchen, ich habe keien Lust das schon wieder zu posten.