Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.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
如何使用Python跟踪特定注册表项或文件中的更改?_Python_File_Python 2.7_Registry - Fatal编程技术网

如何使用Python跟踪特定注册表项或文件中的更改?

如何使用Python跟踪特定注册表项或文件中的更改?,python,file,python-2.7,registry,Python,File,Python 2.7,Registry,我必须编写一个Python脚本来监视Windows文件系统中的特定注册表项和文件,并在每次其中一个发生更改时执行命令。 有谁熟悉Python包吗?它可以监视注册表和文件,并在它们更改时调用函数 谢谢在python中有一个\u winreg库,可以读取和写入Windows注册表 from _winreg import * print r"*** Reading from SOFTWARE\Microsoft\Windows\CurrentVersion\Run ***" aReg = Conne

我必须编写一个Python脚本来监视Windows文件系统中的特定注册表项和文件,并在每次其中一个发生更改时执行命令。 有谁熟悉Python包吗?它可以监视注册表和文件,并在它们更改时调用函数


谢谢

在python中有一个
\u winreg
库,可以读取和写入Windows注册表

from _winreg import *

print r"*** Reading from SOFTWARE\Microsoft\Windows\CurrentVersion\Run ***"
aReg = ConnectRegistry(None,HKEY_LOCAL_MACHINE)

aKey = OpenKey(aReg, r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run") 
for i in range(1024):                                           
    try:
        n,v,t = EnumValue(aKey,i)
        print i, n, v, t
    except EnvironmentError:                                               
        print "You have",i," tasks starting at logon..."
        break          
CloseKey(aKey)                                                  

print r"*** Writing to SOFTWARE\Microsoft\Windows\CurrentVersion\Run ***"
aKey = OpenKey(aReg, r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", 0, KEY_WRITE)
try:   
   SetValueEx(aKey,"MyNewKey",0, REG_SZ, r"c:\winnt\explorer.exe") 
except EnvironmentError:                                          
    print "Encountered problems writing into the Registry..."
CloseKey(aKey)

CloseKey(aReg)
这是一个如何阅读和写作的例子。 有关更多信息,请访问:


为此,编写一个
侦听器
函数,该函数执行每个
时间戳
,并返回regsiter键及其值的指令,另一个函数用于
比较这些字典。

您可以使用该模块读写Windows注册表

然后,您可以非常轻松地打开、查询和/或修改注册表项

import _winreg as wreg

# Open registry key of choice
my_key= wreg.OpenKey(wreg.HKEY_LOCAL_MACHINE, "Software\\Test\\test",0, wreg.KEY_ALL_ACCESS)

# Get a key value
my_key_val = wreg.QueryValueEx(my_key, 'ValueName')

# Close registry key
my_key.Close()

可能重复感谢,但我可以实时监控更改吗?-我不想每次都查询注册表并检查值是否更改。@Dan有一个
EnumValue
返回元组并具有注册表项的键和值,您可以跟踪感兴趣的注册表项。我可以实时跟踪这些更改吗?我的意思是,当密钥自动更改时,Python脚本将调用function@Dan您可以拥有一个带有注册表键及其值和时间戳的字典,使用该字典检查注册表并找出更改,这是一个好主意。。但是你知道我是否可以,以及如何创建一种“监听器”,实时监控变化和响应?