Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm stürzt beim start ab (https://www.delphipraxis.net/27731-programm-stuerzt-beim-start-ab.html)

Steran 14. Aug 2004 19:27


Programm stürzt beim start ab
 
Hi!

Habe ein Programm geschrieben, was unter anderem verhindern soll, dass der PC in den StandBy Modus geht!

Das funktioniert auch einwandfrei, nur startet das Programm auf einigen Windows XP-Rechner erst gar nicht...es muss eigentlich fast an dem StandBy Modus-Prevent liegen, da die Versionen zuvor auf den betroffenen Rechner liefen. Debuggen kann ich leider nicht, weil bei mir selbst alles läuft!

Fehlermeldung: Programmname..hat einen FEhler festgestellt, und muss beendet werden...bla bla bla

folgender code:

Delphi-Quellcode:
  protected
    { Protected-Deklarationen }
     procedure WndProc(var Msg: TMessage); override;
und dann die WndProc procedure:
Delphi-Quellcode:
procedure TfrmMain.WndProc(var Msg: TMessage);
begin
 //Standbymodus verhindern
 if ((Msg.Msg = 536) AND (Standby = true) AND (recording = true))
  then Msg.Result := 1112363332
   else
 inherited WndProc(Msg);
end;
...nur zur info...falls es evtl. an dem liegt?
die beiden variablen werden am anfang mit false deklariert...irgendwann im Programm erhalten sie dann durch buttonklick etc. den Wert true!
Mit StandBy = true sollte eigentlich eine Checkbox abgefragt werden, aber das geht ja nicht, da die CheckBox evtl. noch gar nicht exisitert, wenn die WndProc proc. aufgerufen wird...also setzte ich standby erst auf true oder false (je nach checkbox), wenn recording true wird
...ende info ;-)

seht ihr hier irgendwo einen Fehler? Wie gesagt, das StanBy Modus verhindern funkt!!

Das Problem ist evtl. dass die WndProc procedure ja einge mal augerufen wird, aber nur das inherited WndProc(Msg) gemacht wird...gibt es eine Möglichkeit, dem Programm unter der Laufzeit zu sagen, dass erst ab einem bestimmten zeitpunkt (button-klick etc.) die Messages abgefangen werden??

Vielen Dank

Gruß

Steran

Christian Seehase 15. Aug 2004 10:55

Re: Programm stürzt beim start ab
 
Moin Steran,

ich würde statt der Zahlen erst einmal die Konstanten verwenden.
Was soll denn 536 bzw. 1112363332 sein?

Steran 15. Aug 2004 17:07

Re: Programm stürzt beim start ab
 
das weiß ich leider nicht *schäm*

0x0218 als für Delphi in dezimal 536 wird an alle Fenster gesendet, wenn der PC in den StandBy-Modus geschickt werden soll.

Der andere Wert muss geantwortet werden, damit Windows weiß, dass der Modus verhindert werden soll!

Gibt es eine Möglichkeit die Konstanten herauszufinden??

Danke

Steran

generic 15. Aug 2004 17:14

Re: Programm stürzt beim start ab
 
um die konstanen rausfinden, kannst du das sdk von windows runterladen und dann die header dateien durchsuchen.

Steran 15. Aug 2004 20:44

Re: Programm stürzt beim start ab
 
danke @generic und @Christian Seehase

habs mir ergoogled ;-)

536 = WM_POWERBROADCAST
1112363332 = BROADCAST_QUERY_DENY

...aber gibt es eine Möglichkeit, dass das "Windows-Messages-Abfragen" erst irgendwann im Programm aktiviert wird?

Gruß

Steran

nailor 15. Aug 2004 21:24

Re: Programm stürzt beim start ab
 
ich kann mir höchstens vorstellen, dass dein programm zum ausführen gewisse recht benötigt, die es auf den o.g. rechnern nicht bekommt. und dann schmiert es ab *nicht sicher sei, aber vermut*

Steran 21. Aug 2004 13:35

Re: Programm stürzt beim start ab
 
an das hab ich auch schon gedacht, aber das ist es nicht!

habe gerade herausfgefunden, dass das Programm bei Win98 auch nicht startet, bzw. nicht korrekt...es bleibt beim logo stehen, dann passiert nix mehr!

Hab es dann unter win98 mal gedebugged ;-)...und der Debugger machte dann nach Application.Run nichts mehr...der blieb einfach stehen...

obwohl als nächstes die FormPaint procedure aufgerufen werden müsste...bzw. WNDProc (hab ich testweise mal auskommentiert..aber das selbe)...also gehe ich nun davon aus, dass es gar nicht an dem WNDProc liegt, sondern an was anderen!

evtl. startet das programm unter xp ja wg. des Fehlers unter win98 auch nicht...

*strange*


edit:

hab jetzt noch ein bisschen rumprobiert..es ist wirklich so, dass bei Win98 die FormPaint procedure nicht aufgerufen wird!
Hab da ein ShowMessage('test'); reingemacht...das kommt bei Win98 nicht...bei XP und 2K schon!!

Wenn ich ein neues Projekt mache, und da nur ne MessageBox in FormPaint einbaue, kommt das aber schon in Win98!

Wooow..ich bin echt ratlos!

Hatte jmd. anders schon mal so ein phänomen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 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