Einzelnen Beitrag anzeigen

Benutzerbild von stz
stz

Registriert seit: 8. Sep 2005
Ort: Neuendeich, Lübeck
277 Beiträge
 
Turbo Delphi für Win32
 
#1

DOS-Box SW_SHOWNORMAL / SW_HIDE

  Alt 17. Jul 2007, 12:00
Moin moin,
ich habe mit CreateProcess einen Konsolenanwendung gestartet
Delphi-Quellcode:
//initialize the startupinfo
FillChar(myStartupInfo, SizeOf(TStartupInfo), 0);
myStartupInfo.cb := Sizeof(TStartupInfo);
myStartupInfo.dwFlags := STARTF_USESHOWWINDOW;
myStartupInfo.wShowWindow := SW_HIDE;

//start process
CreateProcess(nil, PChar(Command), nil, nil, False, NORMAL_PRIORITY_CLASS, nil, PChar(ExtractFilePath(Application.ExeName)), myStartupInfo, myProcessInfo);
Nun will ich zu einem späteren Zeitpunkt das Fenster / die DOS-Box einblenden. Dazu hohle ich mir das Handle des Fensters:
LameWindowHandle := FindWindow('ConsoleWindowClass', PChar(ExtractFilePath(ParamStr(0)) + 'lame.exe')); Lese den WindowLong des Fensters aus:
Delphi-Quellcode:
dwNewLong := GetWindowLong(LameWindowHandle, GWL_STYLE);
  if dwNewLong = 0 then
    RaiseLastOSError;
Manipuliere den WindowLong um das Fenster anzuzeigen:
Delphi-Quellcode:
dwNewLong := dwNewLong and not SW_HIDE;
dwNewLong := dwNewLong or SW_SHOWNORMAL;
Setze den WindowLong wieder:
Delphi-Quellcode:
if SetWindowLong(LameWindowHandle, GWL_STYLE, dwNewLong) = 0 then
  RaiseLastOSError;
und erhalte folgende Fehlermeldung:
Code:
---------------------------
LameStarter
---------------------------
Systemfehler. Code: 1413.

Ungültiger Index.
---------------------------
OK  
---------------------------
Die Fehler wird genau an der letzten geposteten Quelltextzeile (RaiseLastOSError) ausgelöst.
Der Index GWL_STYLE ist aber laut PDSK genau der richtige:
Zitat von PDSK SetWindowLong Function Parameters nIndex:
GWL_STYLE
Sets a new window style.
und hat ja auch bei GetWindowLong super funktioniert. Laut Debugger habe ich sowohl ein WindowHandle als auch ein WindowLong-Wert erhalten.
Was mache ich also falsch??

Gruß
Malte
Malte Schmitz
Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.

Entwickler des HTML-Editors MEdit (DP)
  Mit Zitat antworten Zitat