marabunta
Goto Top

Powershell Mauszeiger ausblenden

Hi,

wie kann man den Mauszeiger in Windows ausblenden?
Habe einiges probiert wie z.B. [Windows.Forms.Cursor]::Hide(), aber es passiert nichts.
Einfaches wegbewegen hilft mir nicht.

Danke

Content-Key: 322456

Url: https://administrator.de/contentid/322456

Printed on: April 23, 2024 at 09:04 o'clock

Member: Kraemer
Kraemer Nov 30, 2016 at 08:06:46 (UTC)
Goto Top
Moin,
Zitat von @Marabunta:
Einfaches wegbewegen hilft mir nicht.
auch nicht per PS?

Gruß Krämer
Mitglied: 131381
131381 Nov 30, 2016 updated at 08:12:51 (UTC)
Goto Top
Windows.Forms.Cursor]::Hide()
Das würde ja auch nur für eine sichtbare Windows Forms Anwendung über dessen Fenster gelten und nicht Systemweit!

http://stackoverflow.com/questions/10541014/hiding-system-cursor

Oder ein "durchsichtiges" Cursoricon setzen.

Gruß

p.s. wenn dich Usereingaben stören dann Blocke diese doch mit BlockInput()
Member: Marabunta
Marabunta Nov 30, 2016 at 08:37:28 (UTC)
Goto Top
is fürs Monitoring, maus soll weg
Mitglied: 131381
Solution 131381 Nov 30, 2016 updated at 08:44:15 (UTC)
Goto Top
Na dann
https://msdn.microsoft.com/de-de/library/windows/desktop/ms648393(v=vs.8 ...
A handle to the cursor. The cursor must have been created by the CreateCursor function or loaded by the LoadCursor or LoadImage function. If this parameter is NULL, the cursor is removed from the screen.
P.s. WinApI Funktionen kannst du problemlos über AddType in die PS einbinden und verwenden.
Member: Kraemer
Kraemer Nov 30, 2016 at 08:52:11 (UTC)
Goto Top
Zitat von @Marabunta:

is fürs Monitoring, maus soll weg
vielen Dank für deine konkreten Ausführungen. Ich bin raus!
Member: Marabunta
Marabunta Nov 30, 2016 at 09:40:18 (UTC)
Goto Top
Danke für die Antwort.
Hier dran zu bleiben ist für den Zweck leider zu aufwändig.
Ich benutze jetzt diesen Workaround:

Add-Type -AssemblyName System.Windows.Forms
$screen = [System.Windows.Forms.SystemInformation]::VirtualScreen
[Windows.Forms.Cursor]::Position = "$($screen.Width),$($screen.Height/2)"

Nicht perfekt aber ausreichend
Member: Kraemer
Kraemer Nov 30, 2016 at 10:15:59 (UTC)
Goto Top
Zitat von @Marabunta:

Danke für die Antwort.
Hier dran zu bleiben ist für den Zweck leider zu aufwändig.
Ich benutze jetzt diesen Workaround:

Add-Type -AssemblyName System.Windows.Forms
$screen = [System.Windows.Forms.SystemInformation]::VirtualScreen
[Windows.Forms.Cursor]::Position = "$($screen.Width),$($screen.Height/2)"

Nicht perfekt aber ausreichend
Das ist exakt der selbe Ansatz, den ich gepostet habe...
Member: colinardo
Solution colinardo Nov 30, 2016 updated at 10:34:08 (UTC)
Goto Top
Servus miteinander,
Zitat von @Marabunta:
Hier dran zu bleiben ist für den Zweck leider zu aufwändig.
Nicht wirklich face-smile

Cursor verschwinden lassen, kein Problem ...
Add-Type -AssemblyName System.Drawing
$tools = Add-Type –memberDefinition '  
    public struct IconInfo
    {
        public bool fIcon;
        public int xHotspot;
        public int yHotspot;
        public IntPtr hbmMask;
        public IntPtr hbmColor;
    }
    [DllImport("user32.dll")] public static extern bool SetSystemCursor(IntPtr hcur, uint id);  
    [DllImport("user32.dll")] public static extern bool GetIconInfo(IntPtr hIcon, ref IconInfo pIconInfo);  
    [DllImport("user32.dll")] public static extern IntPtr CreateIconIndirect(ref IconInfo icon);  
' -name "windowtools" -namespace Win32Functions –passThru -EA SilentlyContinue  

# transparentes Bitmap erstellen
$imgptr = (new-object System.Drawing.Bitmap 24,24).GetHicon()
# Iconinfo erstellen und Hotspot setzen
$iconinfo = new-object Win32Functions.windowtools+IconInfo
[Win32Functions.windowtools]::GetIconInfo($imgptr,[ref]$iconinfo)
$iconinfo.xHotspot = 12;$iconinfo.yHotspot = 12; $iconinfo.fIcon = $false
# Icon erstellen und Pointer zurückgeben
$icon = [Win32Functions.windowtools]::CreateIconIndirect([ref]$iconinfo)
# Folgende Cursor durch das transparente Icon ersetzen (OCR_NORMAL / OCR_WAIT / OCR_APPSTARTING)
@(32512,32514,32650) | %{[Win32Functions.windowtools]::SetSystemCursor($icon,$_) | out-null}
Grüße Uwe
Mitglied: 131381
131381 Nov 30, 2016 at 10:40:07 (UTC)
Goto Top
Nicht wirklich
Elegant face-wink
Member: Marabunta
Marabunta Nov 30, 2016 at 14:03:17 (UTC)
Goto Top
Da kommt der Meister wieder xD.
Vielen Dank! Funktioniert super
Member: Marabunta
Marabunta Nov 30, 2016 at 14:47:46 (UTC)
Goto Top
Richtig. Den kannte ich bereits und wollte den meiden, siehe Frage:"Einfaches wegbewegen hilft mir nicht."
Als Notlösung taugt es.