python的高手帮忙看看这段代码的问题
时间:2011-01-06
来源:互联网
from ctypes import *
#PSAPI.DLL
psapi = windll.psapi
#Kernel32.DLL
kernel = windll.kernel32
#PSAPI.DLL
psapi = windll.psapi
#Kernel32.DLL
kernel = windll.kernel32
def EnumProcesses(pName):
arr = c_ulong * 256
lpidProcess= arr()
cb = sizeof(lpidProcess)
cbNeeded = c_ulong()
hModule = c_ulong()
count = c_ulong()
modname = c_buffer(30)
PROCESS_QUERY_INFORMATION = 0x0400
PROCESS_VM_READ = 0x0010
#Call Enumprocesses to get hold of process id's
psapi.EnumProcesses(byref(lpidProcess),
cb,
byref(cbNeeded))
#Number of processes returned
nReturned = cbNeeded.value/sizeof(c_ulong())
pidProcess = [i for i in lpidProcess][:nReturned]
for pid in pidProcess:
#Get handle to the process based on PID
hProcess = kernel.OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
False, pid)
needID=pid
if hProcess:
psapi.EnumProcessModules(hProcess, byref(hModule), sizeof(hModule), byref(count))
psapi.GetModuleBaseNameA(hProcess, hModule.value, modname, sizeof(modname))
procName="".join([ i for i in modname if i != '\x00'])
#print procName
ePID=needID
#print ePID
#-- Clean up
for i in range(modname._length_):
modname[i]='\x00'
kernel.CloseHandle(hProcess)
if cmp(procName,pName)==0:
print("----------",procName,ePID)
return ePID
def killPid(PID):
kernel32 = windll.LoadLibrary('kernel32.dll')
handle = kernel32.OpenProcess(1, False,PID)
if handle:
kernel32.TerminateProcess(handle,0)
else:
print('can\'t open process %s' % PID)
pida=int(EnumProcesses("cmd.exe"))
print(pida)
killPid(pida)
#PSAPI.DLL
psapi = windll.psapi
#Kernel32.DLL
kernel = windll.kernel32
#PSAPI.DLL
psapi = windll.psapi
#Kernel32.DLL
kernel = windll.kernel32
def EnumProcesses(pName):
arr = c_ulong * 256
lpidProcess= arr()
cb = sizeof(lpidProcess)
cbNeeded = c_ulong()
hModule = c_ulong()
count = c_ulong()
modname = c_buffer(30)
PROCESS_QUERY_INFORMATION = 0x0400
PROCESS_VM_READ = 0x0010
#Call Enumprocesses to get hold of process id's
psapi.EnumProcesses(byref(lpidProcess),
cb,
byref(cbNeeded))
#Number of processes returned
nReturned = cbNeeded.value/sizeof(c_ulong())
pidProcess = [i for i in lpidProcess][:nReturned]
for pid in pidProcess:
#Get handle to the process based on PID
hProcess = kernel.OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
False, pid)
needID=pid
if hProcess:
psapi.EnumProcessModules(hProcess, byref(hModule), sizeof(hModule), byref(count))
psapi.GetModuleBaseNameA(hProcess, hModule.value, modname, sizeof(modname))
procName="".join([ i for i in modname if i != '\x00'])
#print procName
ePID=needID
#print ePID
#-- Clean up
for i in range(modname._length_):
modname[i]='\x00'
kernel.CloseHandle(hProcess)
if cmp(procName,pName)==0:
print("----------",procName,ePID)
return ePID
def killPid(PID):
kernel32 = windll.LoadLibrary('kernel32.dll')
handle = kernel32.OpenProcess(1, False,PID)
if handle:
kernel32.TerminateProcess(handle,0)
else:
print('can\'t open process %s' % PID)
pida=int(EnumProcesses("cmd.exe"))
print(pida)
killPid(pida)
作者: kemi56 发布时间: 2011-01-06
反复强调过多次了,版主应该发个帖子专门置顶了。
1. 代码用标签格式化过再贴出来。保证缩进是正确的。
2. 任何情况下,把问题症状说清楚。抛错了把抛错信息贴出来;结果和预期不一样把实际的结果和预期的结果说清楚。我们又不是编译器,别一段代码贴出来就让人检错。
3. 同样,我们又不是编译器,用自然语言描述你的代码功能。否则别人怎么知道某段代码是你写错了还是故意为之?靠猜吗?
1. 代码用标签格式化过再贴出来。保证缩进是正确的。
2. 任何情况下,把问题症状说清楚。抛错了把抛错信息贴出来;结果和预期不一样把实际的结果和预期的结果说清楚。我们又不是编译器,别一段代码贴出来就让人检错。
3. 同样,我们又不是编译器,用自然语言描述你的代码功能。否则别人怎么知道某段代码是你写错了还是故意为之?靠猜吗?
作者: iambic 发布时间: 2011-01-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28