im编码了一种工具,以获取Windows进程的列表...,然后搜索任何Internet浏览器(进程名称),例如chrome.exe,opera.exe...。 ..如果不打印任何内容 我的代码:
babel
我杀死了所有浏览器进程,我运行了代码,它应该不会给我任何东西,但是...他保持循环并运行此代码块:
import os
import time
def qa():
home = os.environ.get("HOMEDRIVE")
lol =home +"/"
mycurrent = os.getcwd()
change = os.chdir(lol)
mycurrent = os.getcwd()
d = os.popen("""wmic process get name | findstr /v "Name 'System Idle Process' System""").read().lower()
lists = ["opera.exe" , "chrome.exe" , "iexplore.exe" , "firefox.exe" , "microsoftedgecp.exe"]
for q in lists:
if any(item in q for item in d) :
qassam = os.popen("dir /s /b {}".format(lists[1])).read().strip()
print qassam
dir1 = os.path.dirname(qassam)
print dir1
#CreateShortCut_to_Desktop(qassam , dir1)
print time.time()
else:
print "nothing found"
break
qa()
这是我的输出:
C:\ Program Files(x86)\ Google \ Chrome \ Application \ chrome.exe C:\ Program 文件(x86)\ Google \ Chrome \ Application 1538829033.16 C:\ Program Files(x86)\ Google \ Chrome \ Application \ chrome.exe C:\ Program Files (x86)\ Google \ Chrome \ Application 1538829041.34 C:\ Program文件(x86)\ Google \ Chrome \ Application \ chrome.exe C:\ Program文件 (x86)\ Google \ Chrome \ Application 1538829048.94 C:\ Program文件(x86)\ Google \ Chrome \ Application \ chrome.exe C:\ Program文件 (x86)\ Google \ Chrome \ Application
答案 0 :(得分:0)
if
并没有按照您的想法做。
for
命令的问题在于,您首先有一个q
循环。 item in q
是您要检查的单个字符串,因此q
实际上是在检查字符串(作为对象字符串)是否在for item in d
字符串的元素之一内(因此请先检查一个元素,然后再进行操作。我建议拆分每个测试的字符串以保留文件名。
然后d = os.popen("""wmic process get name | findstr /v "Name 'System Idle Process' System""").read().lower().split()
lists = ["opera.exe" , "chrome.exe" , "iexplore.exe" , "firefox.exe" , "microsoftedgecp.exe"]
if any(item.split(os.sep)[-1] in lists for item in d) :
也没有按照您的想法做。它也会在字符串的另一个int之后循环一个字符。您可能要先分割字符串,所以最终结果可能类似于:
{{1}}
可能并不完美,但这只是一个开始。
答案 1 :(得分:0)
您可能想在诸如'os.popen(...)。read()。split('\ n')之类的换行符上拆分os.popen(...).read()
的结果
这样,您将拥有一个字符串列表,而不是一个长字符串。
我还更改了您的if逻辑。将来使用比'd'和'q'更多的描述性变量名。希望这会有所帮助!
我没有窗户,所以还没有测试。
import os
import time
def qa():
home = os.environ.get("HOMEDRIVE")
lol =home +"/"
mycurrent = os.getcwd()
change = os.chdir(lol)
mycurrent = os.getcwd()
d = os.popen("""wmic process get name | findstr /v "Name 'System Idle Process' System""").read().lower().split('\n')
print('proc count',len(d))
lists = ["opera.exe" , "chrome.exe" , "iexplore.exe" , "firefox.exe" , "microsoftedgecp.exe"]
for q in lists:
#if any(item in q for item in d) :
if q in d:
print('proc',d,'browser',q)
qassam = os.popen("dir /s /b {}".format(lists[1])).read().strip()
print qassam
dir1 = os.path.dirname(qassam)
print dir1
#CreateShortCut_to_Desktop(qassam , dir1)
print time.time()
else:
print "nothing found"
break
qa()