assassin
Goto Top

Tool um andere Programme auf Desktop zu "fixieren"

Hallo, gibt es ein Tool für Windows Systeme, um andere Programme auf dem Desktop fest zu nageln? Gemeint ist damit einmal immer im Vordergrund zu halten (das könnte man noch mit PowerToys abbilden) aber auch um die Position des Programms fest zu halten, am besten dass man innerhalb des Programms gar nichts mehr klicken kann.

Es geht darum an einem PC auf einem zweiten Monitor mehrere Monitoring Programme für bestimmte Prozesse auszuführen, nur sollen die Mitarbeiter nichts innerhalb der Programme machen dürfen, weil es nur als anzeige dienen soll.
Es gibt zwei Mitarbeiter die Berechtigt sind da was einzustellen. Das heißt also auch, dass via Tastenkombination oder via Passwort es doch möglich sein soll, innerhalb der laufenden Programme etwas machen zu dürfen.


Wie könnte man das am besten machen?

Content-ID: 71101377877

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

Ausgedruckt am: 21.11.2024 um 15:11 Uhr

11078840001
11078840001 08.03.2024 aktualisiert um 11:58:46 Uhr
Goto Top
Geht mit Bordmitteln, Powershell, bsp.:
Add-Type –MemberDefinition '[DllImport("user32.dll")] public static extern bool EnableWindow(IntPtr hWnd, bool bEnable);' -name tools -namespace window  
# IntPtr Handle des Hauptfensters der Anwendung holen
$appwindow = (Get-Process -name "notepad").MainWindowHandle  
# Fenster Eingaben deaktivieren
[void][window.tools]::EnableWindow($appwindow,$false)
# Fenster Eingaben wieder aktivieren
# [window.tools]::EnableWindow($appwindow,$true)
EnableWindow function (winuser.h)
Es geht darum an einem PC auf einem zweiten Monitor mehrere Monitoring Programme für bestimmte Prozesse auszuführen, nur sollen die Mitarbeiter nichts innerhalb der Programme machen dürfen, weil es nur als anzeige dienen soll
Einfach einen Raspi dahinter hängen und vom PC abkoppeln. Oder ne VM mit nem Readonly VNC-Fenster
chiefteddy
chiefteddy 08.03.2024 um 11:47:41 Uhr
Goto Top
Geht das nicht auch mit den PowerTools von M$.

Jürgen
Cleanairs
Cleanairs 08.03.2024 aktualisiert um 13:12:33 Uhr
Goto Top
Ja geht, aber zieht wohl relativ viel CPU. Es heisst dort "Always on top". Kann aber inzwischen auch gefixed sein!!!!!!!!!
elix2k
elix2k 08.03.2024 um 14:00:19 Uhr
Goto Top
Maus & Tastatur abklemmen :D
Globetrotter
Globetrotter 08.03.2024 um 17:08:17 Uhr
Goto Top
@elix2k
Hi..
Ich hatte auch mal sowas ähnliches (Industrie 4.0). Ich habe einen Raspi mit WTWARE genommen und ne RDP-Session geöffnet. Am RASPI hängen keine Eingabegeräte und WTWARE ist geiles Zeug...

Schönes Wochenende Euch!

Gruss Globe!
Assassin
Assassin 14.03.2024 um 13:59:26 Uhr
Goto Top
Zitat von @11078840001:

Geht mit Bordmitteln, Powershell, bsp.:
Add-Type –MemberDefinition '[DllImport("user32.dll")] public static extern bool EnableWindow(IntPtr hWnd, bool bEnable);' -name tools -namespace window  
# IntPtr Handle des Hauptfensters der Anwendung holen
$appwindow = (Get-Process -name "notepad").MainWindowHandle  
# Fenster Eingaben deaktivieren
[void][window.tools]::EnableWindow($appwindow,$false)
# Fenster Eingaben wieder aktivieren
# [window.tools]::EnableWindow($appwindow,$true)
EnableWindow function (winuser.h)
Es geht darum an einem PC auf einem zweiten Monitor mehrere Monitoring Programme für bestimmte Prozesse auszuführen, nur sollen die Mitarbeiter nichts innerhalb der Programme machen dürfen, weil es nur als anzeige dienen soll
Einfach einen Raspi dahinter hängen und vom PC abkoppeln. Oder ne VM mit nem Readonly VNC-Fenster


Das sieht schon ganz gut aus, nur klappt das leider nicht, wenn der Prozesss bzw. die Anwendung mehrmals geöffnet ist, in deinem Beispiel - wenn ich zwei Notepad.exe sessions geöffnet habe, gibts eine Fehlermeldung
Und immer im vordergrund sind die damit leider auch nicht face-confused
Kann man da vieleicht auch mit den Powershell-Commands das ganze so hinbekommen?
12168552861
Lösung 12168552861 14.03.2024 aktualisiert um 14:11:35 Uhr
Goto Top
Einfach mit Schleife verarbeiten
Add-Type –MemberDefinition '  
[DllImport("user32.dll")] public static extern bool EnableWindow(IntPtr hWnd, bool bEnable);  
[DllImport("user32.dll")] public static extern bool SetWindowPos(IntPtr hWnd,IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);  
' -name tools -namespace window    
# IntPtr Handle des Hauptfensters der Anwendung holen
Get-Process -name "notepad" | %{  
    # Fenster immer oben.
    [void][window.tools]::SetWindowPos($_.MainWindowHandle,-1,0,0,0,0,3)
    # Fenster Eingaben deaktivieren
    [void][window.tools]::EnableWindow($_.MainWindowHandle,$false)
}
Und immer im vordergrund sind die damit leider auch nicht face-confused
Ist im Code hier eingebaut.

Gruß pp.