Taskmanager & Alt+Tab abfangen / Prozess beenden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
N17R0
User
Beiträge: 53
Registriert: Samstag 6. März 2004, 23:41

Hallo,
hab zwar schon gesucht, aber leider nichts gefunden.
Also es geht darum, den Aufruf des Taskmanagers mit Strg+Alt+Entf abzufangen. Eigentlich müsste es ja auch gehen, wenn man überprüfen lässt, wenn Entf gedrückt wurde, ob der Prozess "taskmrg.exe" läuft und ihn dann beendet. Mir war eigentlich so, als ob es so einen Thread hier schonmal gab, hab den aber nicht wiedergefunden, also sorry, falls das jetzt nur mein Fehler war. Außerdem wär noch wichtig, das Wechseln von Alt+Tab abzufangen und das Programm immer im Vordergrund zu halten.

Alt+F4 hab ich abgefangen, indem ich einfach das Drücken von F4 abgefangen habe und dann die mainloop-Funktion des Fensters (Tkinter) neu gestartet habe.

Das ganze soll darauf hinauslaufen, dass ich eine Passwort Abfrage schreibe.

OS: Windows XP
Python Version: 2.3.3
Oberfläche: Tkinter


Thx & hoffe aus Hilfe.
Greetz
N17R0
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Imho geht das eben genau deshalb (Passwortabfrage) nicht!
Sonst kann ja jedes Skript-Kiddie seinen Login-Trojaner bauen ...
cu beyond
Gast

*gg* jo, aber darum gehts mir ja dabei nicht. Ich meine, die Sache mit dem Taskmanager wurde hier aus jeden Fall schonmal behandelt, aber ich finde den Thread leider nicht mehr. Weiß auch nicht, ob das Problem das gelöst wurde, aber die Anfrage gabe es auf jeden Fall schonmal. Ansonsten müsste ja die Sache mit dem Beenden des "taskmrg.exe" Prozesses funktionieren, ich hab nur keine Ahnung, wie man mit Python fremde Prozesse beendet. Und die das mit dem "Immer im Vordergrund bleiben" weiß ich nicht, ob das unter Python möglich ist. Mit C++ gibt es aber diese Möglichkeit, darum frag ich ja, ob das hier auch möglich ist.


Greetz
N17R0
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Guck mal in das os modul, vielleicht wirst Du da fündig zwecks taskmgr.exe abschießen. Ich verwende aber lange schon kein Windows mehr, also weiß ich über aktuelle Änderungen nur spärlich bescheid. U.U. kannst Du das Programm als neuen Taskmanager einklinken. Es gibt doch so erweiterte TaskManager. Die Installation wirst Du aber dann als Admin machen müssen.

Geht das?
Wie soll denn die Passwortabfrage ablaufen? Warum so spezeill?

cu beyond
Gast

Jo, das mit dem Admin wär kein Problem, da es sowieso nur für meinen eigenen PC ist. Werd mir dann heute mal das os-Modul angucken. Weiß noch jemand, wie man die Tab-Taste abfangen kann? Weil mit

Code: Alles auswählen

bind('<Tab>', Funktion)
oder

Code: Alles auswählen

bind('<Tab-KeyPress>', Funktion)
funktioniert das nicht ganz. Bzw. am besten noch Alt und Tab ^^


Greetz
N17R0
NI7R0

Also in dem os-Modul hab ich nur Sachen gefunden, vonwegen Dateien/Programme ausführen, Pfadsachen (ändern, wechseln, etc.) und das war's dann leider schon :(

Greetz
N17R0
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Da gibt's denke ich auch process-management ...

cu beyond
NI7R0

Also das einzige, was ich zu Prozess-Management gefunden hab dadrin, ist

Code: Alles auswählen

getpid()
was die id-Nummer des laufenden Prozesses zurückgibt. Mehr hab ich weder in dem Modul, noch in den beiden Büchern gefunden, die ich hab.


:( kennt vielleicht noch jemand nen anderes Modul zum runterladen, womit man Prozesse beenden kann oder irgendsowas?

Greetz
N17R0
NI7R0

oki, also die sache mit dem Taskmgr ist jetzt gelöst

Code: Alles auswählen

    wmi = win32com.client.GetObject("winmgmts:")
    result = wmi.ExecQuery("SELECT * FROM Win32_Process")
    tasks = {}
    for elem in result:
        tasks[elem.Name] = elem.ProcessId
    try:
        handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, 0, tasks['taskmgr.exe'])
        win32api.TerminateProcess(handle,0)
        win32api.CloseHandle(handle)
    except: pass
Weiß jetzt noch jemand, wie man das Programm vor alle anderen stellt?

Danke für eure Hilfe!
NI7R0

Oki,
Fenster in den Vordergrund heben:

Code: Alles auswählen

root.transient()
Jetzt bräucht ich nur noch Hilfe beim Abfangen von Alt+Tab .... weiß jemand, wie man das anstellen könnte? ich mein, nur wie man die abfängt mit bind. Dann könnte man mit root.transient() das Fenster ja wieder in den Vordergrund holen.


Greetz & THX
N17R0
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Krass! Gut daß Du ins Forum stellst, was Du herausgefunden hast. Dann können auch andere profitieren.
Etwas überascht bin jetzt aber wirklich, daß es mit heutigen Windowsvarianten geht, den TaskManger so einfach auszuhebeln. Damals mit NT4 (mein letztes Windows) ging das imho nicht.
(Kann das jemand testen, der soetwas noch hat? Würde mich jetzt echt interessieren ... )

Danke, beyond
Gast

^^ immer gerne, möchte ja auch, dass mir geholfen wird, außerdem will ich ja auch, dass andere durch die Forumsuche weiterkommen und das Forum hier nicht zugepostet wird mit 100.000 Beiträgen ;)

Greetz
N17R0

PS.: Mit Alt+Tab bin ich immernoch nicht weitergekommen.
seli
User
Beiträge: 12
Registriert: Montag 4. Oktober 2004, 22:58
Kontaktdaten:

N17R0, ich gehe sehr davon aus, dass nahezu jeder, der dein Script mal ausgeführt hat, es nie wieder tun wird. Solche funktionalitäten sollte man prinzipiell eher nicht einbauen... Schade, dass es überhaupt geht.
[size=75]:wq[/size]
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi. Ich weiß auch nicht, ob es gut ist solchen Code bereitzustellen. IMHO kann man damit schöne Viren / Trojaner schreiben, aber auch Viren bekämpfen. Ich hatte schon mal einen Virus, der mit selber NA und den Taskmanager, sowie regedit abgeschossen hat. Da hab ich dann zum Dampfhammer greifen müssen und neu formatiert. Nun kann ich mit dem Code den Virus abschießen und mit den entsprechenden Tools reparieren. Nunja... Jede Medallie hat halt auch ne Kehrseite.
Gast

Hi seli,
da das Script ausschließlich für mich gedacht ist, mach ich mir da keine Gedanken. Es ist einzig und alleine dazu gedacht, meinen PC mit Passwort zu schützen. Ich weiß, dass es wohl nie die Sicherheit einer richtigen Passwortabfrage erreichen wird, aber das ist ja auch egal, weil hier sowieso keiner ist, der großartig Ahnung von PC's hat. Und das Schöne bei der ganzen Sache ist, ist dass ich die Abfrage ganz nach meinem Willen gestallten kann (Design).

Für alle, die wissen wollen, wie die ganze Sache bis jetzt aussieht:
http://people.freenet.de/wtilld/ProgrammBeispiel.gif

Blockiert: Taskmanager, Alt+F4, Windows Tasten
Passwort und Username in MD5 verschlüsselt.

Greetz
N17R0
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Hi N17R0,

ich sehe , daß wohl das Alt-Tab noch nicht abgefangen wird. Dazu fällt mir noch folgendes ein (eher allgemein, konkrete Implmenetierung k.A.):
Dein Programm könnte sich einfach permanent in den Vordergrund stellen. Entweder durch ein Windows-Befehl (so wie normalerweise beim Taskmanager) oder einfach über die alle 0.2 Sekunden asgeführte Anweisung "dieses Fenster aktivieren & in den Vorderugrnd"

cu beyond
NI7R0

Jo, auf die idee bin ich auch schon gekommen, aber: permanent in den Vordergrund hab ich niergens gefunden, leider und die andere Variante ist blöd, weil wenn man grad dabei ist, User/PW einzugeben, müsste man dann alle 0.2 Sekunden das Entry-Feld neu anwählen, weil das Programm an sich ja in den Vordergrund gehoben wird und der Focus wom widget nicht mehr vorhanden ist.

Greetz
N17R0
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Vielleicht kann man
a) den Focus speichern und gleich wieder richtig mitsetzen
oder
b) prüfen, ob das Fenster im Vordergrund ist und nur falls nicht entsprechend vorgehen.

cu beyond
Gast

hmm... hätte jetzt leider keine Ahnung, wie man das bewerkstelligen sollte. Wenn dir was einfällt oder irgendjemand anderem, dann immer her damit :D

Greetz
N17R0
Antworten