hi Smash,
ich versteh zwar nicht 100%ig was du meinst...
aber versuch mal sowas:
Code: Alles auswählen
If OpenWindow(0, 0, 0, 320, 240, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "Test") = #False
MessageRequester("Test", "Error", #MB_ICONERROR)
End
EndIf
Repeat
If GetForegroundWindow_() = WindowID(0)
Debug "Aktiv"
Else
Debug "Inaktiv"
EndIf
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
End
oder als prozedur:
Code: Alles auswählen
Procedure IsWindowActive(WindowID.l)
If GetForegroundWindow_() = WindowID
Result = #True
Else
Result = #False
EndIf
ProcedureReturn Result.l
EndProcedure
If OpenWindow(0, 0, 0, 320, 240, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "Test") = #False
MessageRequester("Test", "Error", #MB_ICONERROR)
End
EndIf
Repeat
If IsWindowActive(WindowID(0)) = #True
Debug "Aktiv"
Else
Debug "Inaktiv"
EndIf
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
End
oder für den vollbild-modus:
Code: Alles auswählen
If InitSprite() = #False Or InitKeyboard() = #False Or OpenScreen(640, 480, 16, "Test") = #False
MessageRequester("Test", "Error", #MB_ICONERROR)
End
EndIf
Repeat
FlipBuffers()
ClearScreen(0, 0, 0)
If IsScreenActive() = #True
Debug "Aktiv"
Else
Debug "Inaktiv"
EndIf
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
ForEver
End
hast du das gesucht?!
p.s.: das mit dem "Arbeitsplatz" würde ich nie machen, da es menschen da draussen gibt, die kein deutschsprachiges windows besitzen.
p.p.s.: fred sollte meiner meinung nach, unbedingt IsWindowActive(WindowID.l) einbauen.
c ya,
nco2k