Virtual Desktop

Anfängerfragen zum Programmieren mit PureBasic.
pws32
Beiträge: 52
Registriert: 27.09.2004 12:33

Virtual Desktop

Beitrag 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 ?
ich weis das ich nix weis
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

#DESKTOP_ALL
ist in PB 4.0 auch nicht definiert und kann ich nirgends finden. Wahrscheinlich fehlt eine Zeile!?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Friedhelm
Beiträge: 43
Registriert: 29.08.2004 08:50

Beitrag von Friedhelm »

Die MSDN ist dein Freund :allright: :allright: :allright:

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
pws32
Beiträge: 52
Registriert: 27.09.2004 12:33

Beitrag 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
ich weis das ich nix weis
pws32
Beiträge: 52
Registriert: 27.09.2004 12:33

#WINSTA_ACCESSGLOBALATOMS

Beitrag von pws32 »

Hallo Friedhelm,

jetzt mekert mein 3.93 Line 1: Constant not Fond: #WINSTA_ACCESSGLOBALATOMS

welche PB Version benutzt Du

Gruss Peter
ich weis das ich nix weis
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

API-Viewer hilft(API-Guide weniger)
pws32
Beiträge: 52
Registriert: 27.09.2004 12:33

vDesktop

Beitrag 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) 
 

ich weis das ich nix weis
Friedhelm
Beiträge: 43
Registriert: 29.08.2004 08:50

Re: #WINSTA_ACCESSGLOBALATOMS

Beitrag 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 8) 8) 8)

Schon was gefunden
http://windowssdk.msdn.microsoft.com/en ... 87391.aspx

mfg
Friedhelm
Antworten