Virtuellen Desktop erzeugen?

  • VB.NET

Es gibt 37 Antworten in diesem Thema. Der letzte Beitrag () ist von Acerman.

    Aber ich möchte doch das man die Taskleiste nicht mehr sieht. Und das geht mit einem normalen Programm nicht. Warum? Weil ich will das niemand die Icons usw. sieht welche in der Tastleiste angeheftet sind. Ich möchte es so wie wenn ich per Passwort die Windows Station sperre. Wie soll ich das ohne virtuelle Desktops machen?

    Danke

    edit: C++ Code:

    Quellcode

    1. HDESK desk = CreateDesktop("doofer Desktop",NULL,NULL,0,GENERIC_ALL,NULL); [Desktop erstellen]
    2. HDESK odesk = OpenInputDesktop(0,true,GENERIC_ALL); [Handle holen]
    3. SwitchDesktop(desk); [Desktop in den Vordergrund holen]
    4. SwitchDesktop(odesk); [zurück zum normalen Desktop wechseln]
    5. CloseDesktop(desk); CloseDesktop(odesk); [Handle schließen]

    FinnSoft schrieb:

    Aber ich möchte doch das man die Taskleiste nicht mehr sieht. Und das geht mit einem normalen Programm nicht. Warum? Weil ich will das niemand die Icons usw. sieht welche in der Tastleiste angeheftet sind. Ich möchte es so wie wenn ich per Passwort die Windows Station sperre. Wie soll ich das ohne virtuelle Desktops machen?

    Danke


    Also du köntest 1. explorer.exe killen! Dann die Form auf max größe stellen und topmost! Und die alles tasten hooken! Fertig!

    MFG
    Moment mal. Wenn ich die WIndows Taskbar ausblende kann ich dann meine Form über den Ganzen Bildschirm ziehen? Ja oder? Ich weiß das es schwierig ist. Aber ich möchte mit den virtuellen Desktops noch andere Programme machen deswegen will ich das auch wissen.

    Moment mal. Wenn ich die WIndows Taskbar ausblende kann ich dann meine Form über den Ganzen Bildschirm ziehen? Ja oder?

    ja kannst du !

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „SystemUnknow“ ()

    würde mich auch intressieren aba der c++ code alleine nützt nicht viel könntest ja vll mehr posten oder zumindest die header die eingebunden sind


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Okey...

    Sowas sieht man auch nich alle Tage beschwert sich jmd fürs bedanken ... zzz

    Edit: leider geht das mit der Taskleiste nich so richtig es kommt immer bei:

    VB.NET-Quellcode

    1. Call SetWindowPos(hWnd, 0, 0, 0, 0, 0, SWP_HIDEWINDOW)
    die Meldung

    Quellcode

    1. Ein Aufruf an die PInvoke-Funktion "WLocker!WLocker.Form1::SetWindowPos" hat das Gleichgewicht des Stapels gestört. Wahrscheinlich stimmt die verwaltete PInvoke-Signatur nicht mit der nicht verwalteten Zielsignatur überein. Überprüfen Sie, ob die Aufrufkonvention und die Parameter der PInvoke-Signatur mit der nicht verwalteten Zielsignatur übereinstimmen.


    Was jetzt?
    Funktionen in VB.NET:

    VB.NET-Quellcode

    1. ' ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.WIN32COM.v10.en/dllproc/base/createdesktop.htm
    2. ' must be null.
    3. ' must be null,
    4. ' use 0
    5. <DllImport("user32.dll", EntryPoint := "CreateDesktop", CharSet := CharSet.Unicode, SetLastError := True)> _
    6. Public Shared Function CreateDesktop(<MarshalAs(UnmanagedType.LPWStr)> desktopName As String, <MarshalAs(UnmanagedType.LPWStr)> device As String, <MarshalAs(UnmanagedType.LPWStr)> deviceMode As String, <MarshalAs(UnmanagedType.U4)> flags As Integer, <MarshalAs(UnmanagedType.U4)> accessMask As ACCESS_MASK, <MarshalAs(UnmanagedType.LPStruct)> attributes As SECURITY_ATTRIBUTES) As IntPtr
    7. End Function
    8. ' ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.WIN32COM.v10.en/dllproc/base/closedesktop.htm
    9. <DllImport("user32.dll", EntryPoint := "CloseDesktop", CharSet := CharSet.Unicode, SetLastError := True)> _
    10. Public Shared Function CloseDesktop(handle As IntPtr) As <MarshalAs(UnmanagedType.Bool)> Boolean
    11. End Function
    12. <DllImport("user32.dll", SetLastError := True)> _
    13. Private Shared Function OpenInputDesktop(dwFlags As UInteger, fInherit As Boolean, dwDesiredAccess As UInteger) As IntPtr
    14. End Function
    15. <DllImport("user32.dll")> _
    16. Private Shared Function SwitchDesktop(hDesktop As IntPtr) As Boolean
    17. End Function
    @ Eipott viiiiiielen Dank ich werds versuchen.

    edit: bei

    VB.NET-Quellcode

    1. ACCESS_MASK
    und

    VB.NET-Quellcode

    1. SECURITY_ATTRIBUTES
    will ers nich annehmen und schlägt mir andere Sachen vor. Wie soll ich die Funktion CreateDesktop jetzt per Button z.B. aufrufen??

    Danke

    VB.NET-Quellcode

    1. <StructLayout(LayoutKind.Sequential)> _
    2. Structure SECURITY_ATTRIBUTES
    3. Public nLength As Integer
    4. Public lpSecurityDescriptor As IntPtr
    5. Public bInheritHandle As Integer
    6. End Structure
    7. <Flags()> Public Enum ACCESS_MASK : Uint32
    8. DELETE = &H10000
    9. READ_CONTROL = &H20000
    10. WRITE_DAC = &H40000
    11. WRITE_OWNER = &H80000
    12. SYNCHRONIZE = &H100000
    13. STANDARD_RIGHTS_REQUIRED = &HF0000
    14. STANDARD_RIGHTS_READ = &H20000
    15. STANDARD_RIGHTS_WRITE = &H20000
    16. STANDARD_RIGHTS_EXECUTE = &H20000
    17. STANDARD_RIGHTS_ALL = &H1F0000
    18. SPECIFIC_RIGHTS_ALL = &HFFFF
    19. ACCESS_SYSTEM_SECURITY = &H1000000
    20. MAXIMUM_ALLOWED = &H2000000
    21. GENERIC_READ = &H80000000
    22. GENERIC_WRITE = &H40000000
    23. GENERIC_EXECUTE = &H20000000
    24. GENERIC_ALL = &H10000000
    25. DESKTOP_READOBJECTS = &H1
    26. DESKTOP_CREATEWINDOW = &H2
    27. DESKTOP_CREATEMENU = &H4
    28. DESKTOP_HOOKCONTROL = &H8
    29. DESKTOP_JOURNALRECORD = &H10
    30. DESKTOP_JOURNALPLAYBACK = &H20
    31. DESKTOP_ENUMERATE = &H40
    32. DESKTOP_WRITEOBJECTS = &H80
    33. DESKTOP_SWITCHDESKTOP = &H100
    34. WINSTA_ENUMDESKTOPS = &H1
    35. WINSTA_READATTRIBUTES = &H2
    36. WINSTA_ACCESSCLIPBOARD = &H4
    37. WINSTA_CREATEDESKTOP = &H8
    38. WINSTA_WRITEATTRIBUTES = &H10
    39. WINSTA_ACCESSGLOBALATOMS = &H20
    40. WINSTA_EXITWINDOWS = &H40
    41. WINSTA_ENUMERATE = &H100
    42. WINSTA_READSCREEN = &H200
    43. WINSTA_ALL_ACCESS = &H37F
    44. End Enum

    Gewöhnt dir an, pinvoke.net zu nutzen.