Re: Runprogram auf zweiten Monitor
Verfasst: 29.09.2009 07:37
Welche Viewer Version hast du, bei der es ging?
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Code: Alles auswählen
wIDmain.l = OpenWindow(#PB_Any, 0, 0, 200, 100, "Desktop-Switcher", #PB_Window_SystemMenu | #PB_Window_Invisible)
If IsWindow(wIDmain)
iIDds.l = CatchImage(#PB_Any, ?logo)
sIDds.l = AddSysTrayIcon(#PB_Any, WindowID(wIDmain), ImageID(iIDds))
SysTrayIconToolTip(sIDds, "Desktop-Switcher")
exit.l = #False
Repeat
event.l = WaitWindowEvent(200)
If event = #PB_Event_SysTray
hlast = hfore ;letztes Vordergrund-Fenster merken
dcnt.l = ExamineDesktops()
mIDds.l = CreatePopupMenu(#PB_Any)
If IsMenu(mIDds)
For i.l = 1 To dcnt
MenuItem(i - 1, "- " + Str(i) + " -")
Next
MenuBar()
mIDend.l = dcnt
MenuItem(mIDend, "Beenden")
EndIf
DisplayPopupMenu(mIDds, WindowID(wIDmain))
ElseIf event = #PB_Event_Menu
evID.l = EventMenu()
If evID = mIDend
exit = #True
Else
dcnt.l = ExamineDesktops()
desk.l = evID
If desk >= 0 And desk < dcnt
If IsWindow_(hlast)
hrect.RECT
If IsZoomed_(hlast) ;maximiert
ShowWindow_(hlast, #SW_RESTORE) ;Fenster normal
MoveWindow_(hlast, DesktopX(desk), DesktopY(desk), DesktopWidth(desk), DesktopHeight(desk), 1)
ShowWindow_(hlast, #SW_MAXIMIZE) ;Fenster maximieren
Else
GetWindowRect_(hlast, hrect.RECT)
hwdt = hrect\right - hrect\left
hhgh = hrect\bottom - hrect\top
MoveWindow_(hlast, DesktopX(desk), DesktopY(desk), hwdt, hhgh, 1)
EndIf
EndIf
EndIf
EndIf
ElseIf event = 0 ;kein Event, Timeout
hfore = GetForegroundWindow_() ;aktuelles Vordergrund-Fenster merken
EndIf
Until exit
EndIf
DataSection
logo: IncludeBinary "ds.ico"
EndDataSection