Hi DaddyH,
meine kreativen
zeilen sollten mein Programm dem "Desktop" unterordnen und den Taskbar-Eintrag verbergen...
@
Du willst ein Fenster ohne Rahmen und ohne Taskbar-Eintrag, stimmt das soweit? Wie ist es denn so?
Ja .. soll ein pseudo-"interaktiver Desktop" werden - die Desktop Icons werden dadurch auch "überlagert", was in meinem Fall sogar ein Vorteil ist ..
Meine "hide-app" Erklärung: (hoffentlich verständlich..)
- Ich such ein Handle nach dem anderen
- Wenn das Handle mein Fenster ist - lade ich den Fensterstil via SetWindowLong in WindowStyle
- Dann streiche ich aus dem WindowStyle den Flag "WS_Iconic"
- Dann speichere ich den Fensterstil wieder zurück in mein Fenster
- (Mit "ShowWindow(Handle,SW_HIDE)" hab ich leider auch keinen Erfolg!
Die Probleme habe ich nur, wenn ich mein Fenster dem Desktop zuordne..
..aber grad das ist ja das gewünschte ...
Delphi-Quellcode:
procedure hide_app();
var
Handle,WindowStyle: HWND;
begin
Handle:=GetWindow(GetDesktopWindow(),GW_CHILD);
// Alle Handle durchgehen
while (
Handle<>0)
do //Handle gefunden
begin
if GetWindowCaption(
Handle) = '
Interactive Desktop'
then // Ist der Handle mein fenster?
begin
showmessage('
Handle gefunden:"'+GetWindowCaption(
Handle)+'
" Nr.:'+inttostr(
Handle));
// Testausgabe Fenstername und ID
WindowStyle := GetWindowLong(
handle, GWL_STYLE);
// meinen Fensterstil auslesen mit GetWindowLong
WindowStyle := WindowStyle-WS_ICONIC;
// Dem Fensterstil das WS_ICONIC entfernen
SetWindowLong(
handle, GWL_STYLE, WindowStyle) ;
// und nun alles
SetWindowLong(
Handle, WS_ICONIC, WindowStyle);
// wieder setzen
break;
end;
Handle:=GetWindow(
Handle,GW_HWNDNEXT);
end;
end;
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \