Procesy -kontrola, zapinanie vypinanie a pod... – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Procesy -kontrola, zapinanie vypinanie a pod... – Python – Fórum – Programujte.comProcesy -kontrola, zapinanie vypinanie a pod... – Python – Fórum – Programujte.com

 

stanke0
Návštěvník
1. 10. 2007   #1
-
0
-

problem:
vypinanie proscesov
ide o to ze potrebujem vypnut procesy (ctrl+alt+del) a niektore zapnut, zistit ci je dany proces zapnuty, alebo vypnuty,
existuje nejaky modul?
existuje nieco co sleduje proces a ked sa vypne tak ho naspat zapne?
diki za kazdu odpoved :)

Nahlásit jako SPAM
IP: ...–
I know jahs never let us down, Pull your rights from wrong, I know jah would never let us down, Oh, no! oh, no! oh, no!
Blujacker
~ Moderátor
0
Grafoman
1. 10. 2007   #2
-
0
-

napadá mě řešení přes příkazový řádek....



import subprocess
proces=subprocess.Popen("ipconfig", stdout=subprocess.PIPE)
print proces.stdout.read()


takhle zjistíš ip... V tvém případě by to šlo příkazy jako tasklist, taskkill atd...

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
DeathHumanCZ0
Stálý člen
1. 10. 2007   #3
-
0
-

To stanke: Když si zjištít jméno daného procesu ked je zapnutý, tak si ho opiš, CELÝ jeho název. Pak dej START->Spustit a tam ho napiš...

Nahlásit jako SPAM
IP: ...–
Vskutku...
stanke0
Návštěvník
1. 10. 2007   #4
-
0
-

:D ctrl+alt+delete a tam je nova uloha a tam napisem proces, nic lahsieho, ale mne ide o to ovladat toto cez python, proste obcas mi nejaky ten proces padne a mna nebavi vkuse ich nahadzovat, preto spravim zoznam procesov, ktore hned pri starte killne, zoznam tych kt bude sledovat ci siu zapnute, a ked ni tak ich zapne, a podobne, spravit proste program kt, bude bezat na pozadi (.pyw), a proste sa bude starat o procesy =)
to blujacker, nevjes ma nasmerovat na nejaky site? nejaky konkretny modul? :)

Nahlásit jako SPAM
IP: ...–
I know jahs never let us down, Pull your rights from wrong, I know jah would never let us down, Oh, no! oh, no! oh, no!
Koumes21
~ Anonymní uživatel
18 příspěvků
4. 12. 2007   #5
-
0
-

Vidím, že tento příspěvek je poněkud starší, ale stále nezodpovězený
Na fórum moc nechodím, jsem spíše v konferenci, ale můžu poradit

Na tohle používám modul pywin32 http://sourceforge.net/projects/pywin32/

Je to vlastně několik modulů pro používání API windowsů.

Protože dokumentace se těžko shání a není dost přehledná, uvádím vlastní příklad na dané téma

Tady je příklad, který potřebujete:



import win32process as proc
import win32api as api
from win32con import *

def procesy(): # funkce vraci seznam vsech procesu obsahujici id,
# nazev spusteneho exe souboru a vsech nactenych
# modulu a cestu k nim
pids=proc.EnumProcesses() # ziskame id vsech procesu
procesy=[]
for pid in pids:
try:handle=api.OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,False,pid)
except:continue # obcas si Windowsy vymysli proces, ktery neni proces
# nevim proc to delaji, ale kdyz k tomu dojde,
# vyhodi to tady chybu, proto to preskocime
moduly=[]
for mod in proc.EnumProcessModules(handle): # ziskame vsechny nactene moduly daneho procesu
# vcetne samotneho exe souboru
pth=proc.GetModuleFileNameEx(handle,mod) # zjistime umisteni daneho modulu
moduly.append((pid,pth[pth.rfind("\\")+1:],pth)) # vratime id procesu, nazev exe souboru a uplnou cestu
procesy.append(moduly)
return procesy

def kill(pid): # pokusi se zabit proces podle jeho id
try:
handle=api.OpenProcess(PROCESS_ALL_ACCESS,False,pid)
proc.TerminateProcess(handle,proc.GetExitCodeProcess(handle))
except: return False # pokud se nepovedlo, neda se nic delat
else: return True # pokud v poradku, je to jen dobre

def run(path): # spusti proces podle jeho umisteni, pripadne otevre soubor
api.ShellExecute(0,None,path,None,path[:path.rfind("\\")],1)

for each in procesy(): # zjisti si procesy
print "%s:%s"%each[0][:2] # napis jmeno exe souboru
if each[0][1].lower()=="pspad.exe": # chces-li neco vypnout, vypni to
vypnuto=each[0][2] # poznamename si, co jsme vypnuli
print "--->"+("proces zastaven" if kill(each[0][0]) else "proces nelze vypnout")
run(vypnuto) # zase to zapni :)


možná stojí za zmínku ještě funkce win32api.GetCurrentProcessId(), která (již podle názvu) vrací id našeho procesu

Nejlepší dokumentace k pywin32 je v jeho vlastní složce, na netu nejde nic moc lepšího najít.

S přáním úspěchů se loučí :)

Koumes21

Nahlásit jako SPAM
IP: 212.24.152.–
Koumes21
~ Anonymní uživatel
18 příspěvků
4. 12. 2007   #6
-
0
-

Teda psal jsem to narychlo, vzal jsem střeva svého staršího skriptu, takže to není ošetřené (error pokud žadný proces pspad.exe neběží atd.), ale základ, který je k tématu, je snad jasný

Nahlásit jako SPAM
IP: 212.24.152.–
pawlik0
Grafoman
5. 12. 2007   #7
-
0
-

To se mi hodí. Až budu mít čas(a python po ruce), určitě je to první, co vyzkouším..

Nahlásit jako SPAM
IP: 195.113.87.–
Sa Nata A Na. Howgh
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Podobná vlákna

Vypínanie notebooku — založil Grungy

Vypínanie programu + ping — založil Nekroman

Procesy — založil markez

Semaforove procesy v C — založil lukass111

Procesy na inom pocitaci — založil bruenor

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý