Seite 1 von 2
Virtual Desktop
Verfasst: 30.08.2006 13:46
von pws32
Hallo,
ich wollte dieses Programm aus dem engl. Forum ausprobieren
Code: Alles auswählen
#WINSTA_ALL = #WINSTA_ACCESSCLIPBOARD | #WINSTA_ACCESSGLOBALATOMS | #WINSTA_CREATEDESKTOP | #WINSTA_ENUMDESKTOPS | #WINSTA_ENUMERATE | #WINSTA_EXITWINDOWS | #WINSTA_READATTRIBUTES | #WINSTA_READSCREEN | #WINSTA_WRITEATTRIBUTES | #DELETE | #READ_CONTROL | #WRITE_DAC | #WRITE_OWNER
;Show an error
Procedure Abort(s.s)
MessageRequester("", "Error: "+s.s)
End
EndProcedure
;Check a result and ev. abort
Procedure Chk(a.l, s.s)
;If a is false, abort.
;If a is false and s contains an error message, show it before abort.
If Not(a)
If s.s
Abort(s.s)
Else
End
EndIf
EndIf
EndProcedure
hWinSta = OpenWindowStation_("WinSta0", 0, #WINSTA_ALL)
Chk( SetProcessWindowStation_(hWinSta) , "Failed to set window station")
hDefaultDesk = OpenDesktop_("Default", #DF_ALLOWOTHERACCOUNTHOOK, 0, #DESKTOP_SWITCHDESKTOP)
Chk(hDefaultDesk, "Failed to open default desktop")
hDesk = CreateDesktop_("My Desktop 2", 0, 0, #DF_ALLOWOTHERACCOUNTHOOK, #DESKTOP_ALL, 0)
Chk( hDesk, "Failed to create desktop")
Chk( SwitchDesktop_(hDesk), "Failed to switch desktop")
Delay(2000)
Chk( SwitchDesktop_(hDefaultDesk), "Failed to switch desktop")
CloseDesktop_(hDesk)
CloseDesktop_(hDefaultDesk)
CloseWindowStation_(hWinSta)
bekomme es leider nicht zum rennen wegen der Fehlermeldung Line 1: Constant not Fond:....
ich benutzte allerdings noch PB 3.93
kann jemand helfen ?
Verfasst: 30.08.2006 14:01
von Kaeru Gaman
WELCHE konstante denn, Line 1 is gerammelte full mit konstanten...
und ja, es liegt möglicherweise an deiner alten version...
von wann war denn das posting im englichen forum...
Verfasst: 30.08.2006 14:10
von ts-soft
#DESKTOP_ALL
ist in PB 4.0 auch nicht definiert und kann ich nirgends finden. Wahrscheinlich fehlt eine Zeile!?
Verfasst: 30.08.2006 14:19
von Friedhelm
Die MSDN ist dein Freund
http://msdn.microsoft.com/library/defau ... in_c__.asp
Code: Alles auswählen
#WINSTA_ALL = #WINSTA_ACCESSCLIPBOARD | #WINSTA_ACCESSGLOBALATOMS | #WINSTA_CREATEDESKTOP | #WINSTA_ENUMDESKTOPS | #WINSTA_ENUMERATE | #WINSTA_EXITWINDOWS | #WINSTA_READATTRIBUTES | #WINSTA_READSCREEN | #WINSTA_WRITEATTRIBUTES | #DELETE | #READ_CONTROL | #WRITE_DAC | #WRITE_OWNER
#DESKTOP_ALL = #DESKTOP_READOBJECTS | #DESKTOP_CREATEWINDOW | #DESKTOP_CREATEMENU | #DESKTOP_HOOKCONTROL | #DESKTOP_JOURNALRECORD | #DESKTOP_JOURNALPLAYBACK | #DESKTOP_ENUMERATE | #DESKTOP_WRITEOBJECTS | #DESKTOP_SWITCHDESKTOP | #STANDARD_RIGHTS_REQUIRED
;Show an error
Procedure Abort(s.s)
MessageRequester("", "Error: "+s.s)
End
EndProcedure
;Check a result and ev. abort
Procedure Chk(a.l, s.s)
;If a is false, abort.
;If a is false and s contains an error message, show it before abort.
If Not(a)
If s.s
Abort(s.s)
Else
End
EndIf
EndIf
EndProcedure
hWinSta = OpenWindowStation_("WinSta0", 0, #WINSTA_ALL)
Chk( SetProcessWindowStation_(hWinSta) , "Failed to set window station")
hDefaultDesk = OpenDesktop_("Default", #DF_ALLOWOTHERACCOUNTHOOK, 0, #DESKTOP_SWITCHDESKTOP)
Chk(hDefaultDesk, "Failed to open default desktop")
hDesk = CreateDesktop_("My Desktop 2", 0, 0, #DF_ALLOWOTHERACCOUNTHOOK, #DESKTOP_ALL, 0)
Chk( hDesk, "Failed to create desktop")
Chk( SwitchDesktop_(hDesk), "Failed to switch desktop")
Delay(2000)
Chk( SwitchDesktop_(hDefaultDesk), "Failed to switch desktop")
CloseDesktop_(hDesk)
CloseDesktop_(hDefaultDesk)
CloseWindowStation_(hWinSta)
mfg
Freidhelm
Verfasst: 30.08.2006 14:20
von pws32
eigenlich findet meine 3.93 keine der in Zeile 1 genannten Constaten
das Posting ist vom 1.5.2006
und hier der Link dazu
http://www.purebasic.fr/english/viewtop ... ty+desktop
#WINSTA_ACCESSGLOBALATOMS
Verfasst: 30.08.2006 14:25
von pws32
Hallo Friedhelm,
jetzt mekert mein 3.93 Line 1: Constant not Fond: #WINSTA_ACCESSGLOBALATOMS
welche PB Version benutzt Du
Gruss Peter
Verfasst: 30.08.2006 14:27
von Kaeru Gaman
pws32 hat geschrieben:eigenlich findet meine 3.93 keine der in Zeile 1 genannten Constaten
dann musst du wohl alle einzeln auf der MSDN zusammensuchen, oder auf 4.0 upgraden.
auf jeden Fall an die von Friedhelm ergänzte definition von #DESKTOP_ALL denken.
Verfasst: 30.08.2006 14:28
von DarkDragon
API-Viewer hilft(API-Guide weniger)
vDesktop
Verfasst: 30.08.2006 15:16
von pws32
So habe auf 4.0 gedatet und nun läuft das Programm, ich stelle mir vor hiermit ein Programm zu erstellen welches ich im Kioskmode betreiben kann, habe jetzt auch mal ein Testwindow gebaut welches leider nicht auf dem vDesktop angezeigt wird sondern nur auf dem original Desktop, weiss einer warum?
VORSICHT ! wenn man das Programm so startet kommt man nicht so leicht aus dem vDesktop heraus, mit Strg+Alt+Del Taskmanager aufrufen und auf abmelden drücken, dann ist man wieder beim alten Desktop
Code: Alles auswählen
#WINSTA_ALL = #WINSTA_ACCESSCLIPBOARD | #WINSTA_ACCESSGLOBALATOMS | #WINSTA_CREATEDESKTOP | #WINSTA_ENUMDESKTOPS | #WINSTA_ENUMERATE | #WINSTA_EXITWINDOWS | #WINSTA_READATTRIBUTES | #WINSTA_READSCREEN | #WINSTA_WRITEATTRIBUTES | #DELETE | #READ_CONTROL | #WRITE_DAC | #WRITE_OWNER
#DESKTOP_ALL = #DESKTOP_READOBJECTS | #DESKTOP_CREATEWINDOW | #DESKTOP_CREATEMENU | #DESKTOP_HOOKCONTROL | #DESKTOP_JOURNALRECORD | #DESKTOP_JOURNALPLAYBACK | #DESKTOP_ENUMERATE | #DESKTOP_WRITEOBJECTS | #DESKTOP_SWITCHDESKTOP | #STANDARD_RIGHTS_REQUIRED
Global FontID1
FontID1 = LoadFont(1, "Arial", 22, #PB_Font_Bold)
;Show an error
Procedure Abort(s.s)
MessageRequester("", "Error: "+s.s)
End
EndProcedure
;Check a result and ev. abort
Procedure Chk(a.l, s.s)
;If a is false, abort.
;If a is false and s contains an error message, show it before abort.
If Not(a)
If s.s
Abort(s.s)
Else
End
EndIf
EndIf
EndProcedure
hWinSta = OpenWindowStation_("WinSta0", 0, #WINSTA_ALL)
Chk( SetProcessWindowStation_(hWinSta) , "Failed to set window station")
hDefaultDesk = OpenDesktop_("Default", #DF_ALLOWOTHERACCOUNTHOOK, 0, #DESKTOP_SWITCHDESKTOP)
Chk(hDefaultDesk, "Failed to open default desktop")
hDesk = CreateDesktop_("My Desktop 2", 0, 0, #DF_ALLOWOTHERACCOUNTHOOK, #DESKTOP_ALL, 0)
Chk( hDesk, "Failed to create desktop")
Chk( SwitchDesktop_(hDesk), "Failed to switch desktop")
If OpenWindow(1, 216, 0, 255, 165, "Test", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(1))
TextGadget(1, 20, 70, 210, 30, "Test", #PB_Text_Center)
SetGadgetFont(1, FontID1)
EndIf
EndIf
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
If Event = #PB_Event_Gadget
EndIf
Until Event = #PB_Event_CloseWindow
;Delay(2000)
Chk( SwitchDesktop_(hDefaultDesk), "Failed to switch desktop")
CloseDesktop_(hDesk)
CloseDesktop_(hDefaultDesk)
CloseWindowStation_(hWinSta)
Re: #WINSTA_ACCESSGLOBALATOMS
Verfasst: 30.08.2006 15:23
von Friedhelm
pws32 hat geschrieben:Hallo Friedhelm,
jetzt mekert mein 3.93 Line 1: Constant not Fond: #WINSTA_ACCESSGLOBALATOMS
welche PB Version benutzt Du
Gruss Peter
Ich benutzt PB 4
Schon was gefunden
http://windowssdk.msdn.microsoft.com/en ... 87391.aspx
mfg
Friedhelm