编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

PyWin32系统控制 Windows自动化变得好轻松呢

wxchong 2025-03-10 21:17:16 开源技术 43 ℃ 0 评论

亲爱的小伙伴们~今天我要和大家分享一个超级实用的Python库 —— PyWin32!它就像是我们在Windows系统里的一个小帮手,可以帮我们自动化完成很多系统操作呢。不管是控制鼠标键盘、操作系统服务,还是管理进程和注册表,都可以交给它来搞定哦!让我们一起来学习这个强大的工具吧!

安装PyWin32

首先,我们需要安装PyWin32库。只需要在命令行输入以下命令就可以啦:


pip install pywin32

鼠标键盘控制

作为一个爱美的软妹子,我最先想到的就是用PyWin32来实现一些可爱的鼠标操作呢!来看看这个例子:


import win32api

import win32con

import time



# 移动鼠标到指定位置

def move_mouse(x, y):

    win32api.SetCursorPos((x, y))



# 模拟鼠标点击

def click_mouse():

    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)

    time.sleep(0.1)

    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)



# 画一个爱心

def draw_heart():

    for i in range(0, 360, 5):

        x = int(200 + 100 * (16 * pow(pow(i/180,2), 0.5) * pow(i/180,2)))

        y = int(200 + 100 * (13 * pow(pow(i/180,2), 0.5)))

        move_mouse(x, y)

        time.sleep(0.01)

小贴士:使用鼠标控制时要小心哦,建议先测试一下坐标位置,避免误操作呢~

进程管理

有时候我们需要查看或者控制电脑上运行的程序,这时就可以用PyWin32来帮忙啦:


import win32process

import win32gui

import win32con



def list_windows():

    windows = []

    def callback(hwnd, extra):

        if win32gui.IsWindowVisible(hwnd):

            text = win32gui.GetWindowText(hwnd)

            if text:

                windows.append((hwnd, text))

    win32gui.EnumWindows(callback, None)

    return windows



# 关闭指定窗口

def close_window(window_name):

    windows = list_windows()

    for hwnd, title in windows:

        if window_name in title:

            win32gui.PostMessage(hwnd, win32con.WM_CLOSE, 0, 0)

系统服务管理

作为一个小小管理员,我们有时候需要查看和控制系统服务呢:


import win32serviceutil

import win32service



def start_service(service_name):

    try:

        win32serviceutil.StartService(service_name)

        print(f"服务 {service_name} 启动成功啦~")

    except Exception as e:

        print(f"哎呀,启动服务时出错了:{str(e)}")



def stop_service(service_name):

    try:

        win32serviceutil.StopService(service_name)

        print(f"服务 {service_name} 已经停止啦~")

    except Exception as e:

        print(f"停止服务时遇到问题了呢:{str(e)}")

注册表操作

Windows的注册表就像是系统的小日记本,我们也可以用PyWin32来读写它:


import win32api

import win32con



def read_registry(key_path, value_name):

    try:

        registry_key = win32api.RegOpenKey(

            win32con.HKEY_CURRENT_USER, 

            key_path, 

            0, 

            win32con.KEY_READ

        )

        value, _ = win32api.RegQueryValueEx(registry_key, value_name)

        win32api.RegCloseKey(registry_key)

        return value

    except Exception as e:

        print(f"读取注册表时出错了呢:{str(e)}")

        return None

注意事项:修改注册表要格外小心哦,最好先备份重要的注册表项,以防万一~

实践小作业

来试试这些可爱的小任务吧:

  1. 写一个程序,每隔1分钟自动保存一次文档
  2. 制作一个简单的窗口截图工具
  3. 编写一个自动关机程序,可以设定时间

小伙伴们,今天的Python学习之旅就到这里啦!记得动手敲代码,有问题随时在评论区问我哦。PyWin32真的超级好用呢,相信你们学会了这些基础操作,就能写出更多有趣的自动化程序啦!祝大家学习愉快,Python学习节节高!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表