Python虽然是脚本语言,但是借助扩展后同样可以进行体系级别的程序编写。
通过使用win32api模块,可以方便的访问注册表对其进行打开关闭等等。。。(需要自己下载pywin32)
<span style="font-size:14px;">from win32api import *
from win32con import *
name="SOFTWARE\\Python\\PythonCore\\3.4\\Installpath"
key=RegOpenKey(HKEY_LOCAL_MACHINE, name, 0, KEY_ALL_ACCESS) #key为打开的句柄
RegQueryValue(key,'') #'F:\\rantom\\python3.4\\'
RegCloseKey(key)</span>操作注册表类:
- 打开注册表:RegOpenKey[Ex](key, subkey, reserved, sam) Key为5个基本型,subkey子项,reserved必须为0, sam进行的操作
- 关闭注册表:RegCloseKey(key)
- 读取项值:RegQueryValue(key, subkey) RegQueryValueEx(key, valuename)
- 查询项的基本信息:RegQueryInfoKey(key) 返回子项数目,项值数目,最后一次修改时间
- 设置项值:RegSetValueEx(key, valueName, reserved, type, value) RegSetValue(key, subkey, type, value)
- 添加删除项:RegCreateKey(key, subkey) RegDeleteKey(key, subkey)
# -*- coding:utf-8 -*-
# file: pyAdd2AutoRun.py
#
from win32api import *
from win32con import *
name="SetIE"
path="F:\\rantom\\python3.4\\SetIE.py"
KeyName="Sofware\\MicroSoft\\Windows\\CurrentVersion\\Run"
try:
key=RegOpenKey(HKEY_CURRENT_USER,\
KeyName,\
0,\
KEY_ALL_ACCESS)
RegSetValueEx(key, name, 0, REG_SZ, path)
RegCloseKey(key)
except:
print("error")
print("added that!")
# -*- coding:utf-8 -*-
# file: pySetIE.py
#
from win32api import *
from win32con import *
from datetime import *
from string import *
keyname="Sofware\\MicroSoft\\Internet Explorer\\Main"
page="www.baidu.com"
today=date.today()
title=today.strftime("%Y")+"年"+today.strftime("%m")+"月"+today.strftime("%d")+"日"
try:
key=RegOpenKey(HKEY_CURRENT_USER,\
keyname,\
0,\
KEY_ALL_ACCESS)
StartPage=RegQueryValueEx(key, "Start Page")
except:
print("error")
else:
if StartPage[0]!=page:
RegSetValueEx(key, "Start Page", 0, REG_SZ, page)
RegSetValueEx(key, "Window Title", 0, REG_SZ, title)
RegCloseKey(key)
文件和目录:OS模块
- 当前路径:getcwd()
- 获得目录中内容:listdir(path)
- 创建目录:mkdir(path)
- 删除目录:rmdir(path) 目录必须存在且为空
- 判断是否是目录:path.isdir(path) path.isfile(path)
# -*- coding:utf-8 -*-
# file: pyBatchRename.py
#
from os import *
perfix="Python"
length=2
base1
format="mdb"
def PadLeft(str, num, padstr):
stringlength=len(str)
n=num-stringlength
if n>=0:
str=padstr*n+str
return str
print("the files in %s will be renamed" % os.getcwd())
input=input("press y to continue\n")
if input.lower()!="y":
exit()
filenames=os.listdir(os.curdir)
i=base-1
for filename in filenames:
i=i+1
if filename!="pyBatchRename.py" and path.isfile(filename):
name=str(i)
name=PadLeft(name, length, '0')
t=filename.split('.')
m=len(t)
if format=='':
rename(filename, perfix+name+'.'+t[m-1])
else:
if t[m-1]==format:
rename(filename, perfix+name+'.'+t[m-1])
else:
i=i-1
else:
i=i-1
代码框架生成器:
# -*- coding:utf-8 -*-
# file: pyMakeCode.py
#
from os import *
from sys import *
from datetime import *
py="""#--------------------------------------------
# To:
#--------------------------------------------
# By:
#--------------------------------------------
"""
if path.isfile(argv[1]):
print("%s already exist!" % argv[1])
exit()
file=open(argv[1],'w')
today=date.today()
date=today.strftime('%Y')+'-'+today.strftime('%m')+'-'+today.strftime('%d')
filetypes=str.split(argv[1],'.')
length=len(filetypes)
filetype=filetypes[length-1]
if tiletypes=="py":
print("use python mode")
file.writelines("# -*- coding:utf-8 -*-")
file.write('\n')
file.writelines("# file: "+argv[1])
file.write('\n')
file.write(py)
file.write("# Date: "+date)
file.write('\n')
file.write("#--------------------------------------------")
else:
print("just create %s" % argv[1])
file.close
生产可执行文件(略。。。)
py2exe或者cx_freeze
运行其他程序:
os.system(command): command相当于在cmd里面打的命令
os.system('nodepad')
os.system('nodepad python.txt')
使用shellexecute函数运行程序(win32api模块),相当于在资源管理器中双肩文件图标,系统会打开项羽的应用程序执行操作
ShellExecute(hwnd, op, file, params, dir, bShow)
为了控制通过脚本运行的程序,可以使用win32process模块中的CreateProcess()函数创建一个运行响应程序的进程。
ctypes调用kernel32.dll的函数(略。。。)
本文介绍如何使用Python的win32api模块操作Windows注册表,包括打开、读取和设置注册表键值等,并展示了如何利用OS模块进行文件和目录的操作。

被折叠的 条评论
为什么被折叠?



