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-Key: 71101377877

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

Printed on: April 27, 2024 at 12:04 o'clock

Mitglied: 11078840001
11078840001 Mar 08, 2024 updated at 10:58:46 (UTC)
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
Member: chiefteddy
chiefteddy Mar 08, 2024 at 10:47:41 (UTC)
Goto Top
Geht das nicht auch mit den PowerTools von M$.

Jürgen
Member: Cleanairs
Cleanairs Mar 08, 2024 updated at 12:12:33 (UTC)
Goto Top
Ja geht, aber zieht wohl relativ viel CPU. Es heisst dort "Always on top". Kann aber inzwischen auch gefixed sein!!!!!!!!!
Member: elix2k
elix2k Mar 08, 2024 at 13:00:19 (UTC)
Goto Top
Maus & Tastatur abklemmen :D
Member: Globetrotter
Globetrotter Mar 08, 2024 at 16:08:17 (UTC)
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!
Member: Assassin
Assassin Mar 14, 2024 at 12:59:26 (UTC)
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?
Mitglied: 12168552861
Solution 12168552861 Mar 14, 2024 updated at 13:11:35 (UTC)
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.