hallo zusammen,
ich bin ein delphi programmierer in den kinderschuhen und hab nach ein paar knobelstunden nun mit mein erstes programm fertig.
zumindest dachte ich das. denn in der
IDE läuft das programm einwandfrei genau so wie ich es mir vorgestellt habe.
doch leider ist nach dem compilieren der exe der wurm drin und ich hab wirklich keine ahnung woran das liegen kann.
mein programm startet eine prozedur als thread. diese soll den pc herunterfahren wenn eine vorher definierte zeit mit der aktuellen
systemzeit übereinstimmt.
hier mal der code der ausserhalb der
ide probleme bereitet:
Delphi-Quellcode:
procedure ThreadShutDown.Execute;
var
SDPfad : String;
SystemPfad : Array[0..MAX_PATH] of Char;
begin
while istZeit = False do
begin
if terminated then exit;
if SDZeit = Time then istZeit := True;
end;
GetSystemDirectory(SystemPfad, sizeof(SystemPfad));
SDPfad := SystemPfad + '\Shutdown.exe';
ShellExecute(Application.Handle,'open',PChar(SDPfad),PChar('-s -t 1'),PChar(ExtractFilePath(SDPfad)),SC_DEFAULT);
end;
wie gesagt das klappt hervorragend solange ich das programm von delphi aus starte. als separate exe streikt es.
ich habe nach der while schleife mal eine messagebox eingbaut und siehe da sie wird nicht angezeigt.. die schleife wird jedoch ausgeführt
(ebenfalls mit MessageBox getestet) nur scheint ausserhalb der
IDE die variable "istZeit" nie auf true gesetzt zu werden?!
ich hoffe jemand weis hier rat denn es wurmt mich doch ganz schön das mein erster versuch daran scheiter das das programm ausserhalb von delphi
nicht rennen will
ich benutze übrigens Vista 32-bit und delphi 2009.
lg paperboy