Zitat von
Flocke:
Bei einer Endlosschleife würdest du ja PROCESS_DETACH nie bekommen, da rundll32 auf ewig auf die Rückkehr aus deiner Funktion wartet.
Dazu hab ich jetzt nochmal ne Frage. Denn genau das ist mein Problem. Es kommt bei meiner
DLL vor das beim herunterfahren dieser Programm beenden Dialog kommt (rundll32.exe). Wisst ihr was ich meine? Das kommt garantiert von meiner Endlosschleife und davon das rundll32.exe darauf wartet... Was kann ich dagegen machen? Das Problem bei dem Problem ist das es auf MEINEM PC dieses Problem nicht gibt sondern nur beim Kunden.....Der hat aber genau wie ich WinXP Prof. Was kann ich dagegen tun? Reicht ein einfaches Application.Processmessages in meiner Schleife? Eher nicht oder? Ich habs jetzt mit AllocateHWnd versucht. Das ich da WM_ENDSESSION abfange und dann Running = false setze und aus meiner Endlos-Schleife mit
eine endliche Schleife mache... Problem:
Delphi-Quellcode:
procedure TMyWindow.GetMessages(var Message: TMessage);
begin
if Message.Msg = WM_ENDSESSION then
begin
Running := false;
ShowMessage('!'); // <-- wird niemals ausgeführt...
end;
Message.Result := DefWindowProc(hMsgWin, Message.Msg, Message.wParam, Message.lParam);
end;
Also entweder bekomm ich keine WM_ENDSESSION Message von Windows oder ich weiß auch nicht...
Gibts da irgendwie eine Lösung?
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."