Hallo Community!
Ich hätte eine Frage an euch: Wie kann man bei einer Tkinter-GUI das kleine "x" oben in der Titelleiste deaktivieren, so dass man das Programm nicht beenden kann?
MFG
OpenCV
Fenster-Beenden verhindern
Code: Alles auswählen
import Tkinter as tk
root = tk.Tk()
root.protocol("WM_DELETE_WINDOW",0)
tk.Button(text="Beenden",command=root.quit).pack()
root.mainloop()
zu 1) keine Ahnung
zu 2) Garnicht, du könntest aber einen 2 Prozess starten, der den 1. überwacht, falls der 1. beendet wird, kann der 2. den 1 wieder starten
zu 2) Garnicht, du könntest aber einen 2 Prozess starten, der den 1. überwacht, falls der 1. beendet wird, kann der 2. den 1 wieder starten
the more they change the more they stay the same
OK oder ich hab eine bessere Idee:
Wie kann ich während das Programm läuft, alle anderen Prozesse "blockieren", also verhindern, dass man auf sie zugreifen kann?
Also ich will, dass nur dieses Programm auf dem OS läuft bis zur Terminierung und alle anderen nicht aufrufbar sind für den Benutzer...
Wie kann ich während das Programm läuft, alle anderen Prozesse "blockieren", also verhindern, dass man auf sie zugreifen kann?
Also ich will, dass nur dieses Programm auf dem OS läuft bis zur Terminierung und alle anderen nicht aufrufbar sind für den Benutzer...
Das ist aber eher keine Python-Frage mehr, sondern Benutzeradministration. Wie man unpriviligierte Benutzer anlegt, ist natürlich abhängig vom System selber. Da du vom Taskmanager redest, wirst du wohl Windows einsetzen. Unter XP Home wird da wenig gehen, da dort die Bordmittel fehlen. Ab Vista gibt es ja die UAC, vllt. geht ja damit was, ansonsten mal das Technet durchforsten, da findet sich mit Sicherheit was zur Benutzerverwaltung und -rechten.
Ich habe da eine bessere Idee zur Umsetzung meines Problems gefunden:
Das Tk-Fenster soll sich einfach nach 10 Sekunden zerstören.
Wie geht das? Gibt es bei root.mainloop() vllt. ein time-Parameter, für wielange es laufen soll?
Das Tk-Fenster soll sich einfach nach 10 Sekunden zerstören.
Wie geht das? Gibt es bei root.mainloop() vllt. ein time-Parameter, für wielange es laufen soll?
Ich meine mit einer .vbs datei
die mit subprocess ausgeführt wird
Befehl:
Datei:
die mit subprocess ausgeführt wird
Befehl:
Code: Alles auswählen
subprocess.Popen(['wscript.exe', r't.vbs'])
Code: Alles auswählen
On Error Resume Next
Set objWshShl = WScript.CreateObject("WScript.Shell")
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!//./root/cimv2")
Set colMonitoredProcesses = objWMIService.ExecNotificationQuery("select * from __instancecreationevent " & " within 1 where TargetInstance isa 'Win32_Process'")
Do
Set objLatestProcess = colMonitoredProcesses.NextEvent
If LCase(objLatestProcess.TargetInstance.Name) = "taskmgr.exe" Then
objLatestProcess.TargetInstance.Terminate
' fake popup message
objWshShl.Popup "Task Manager has been disabled by your administrator.", 3, "Task Manager", 16
End If
Loop