使用Python 启动windows 屏幕保护程序 及在线程中启动

首先安装moudle pywin32-219.win32-py2.7.exe

下载地址: http://pan.baidu.com/s/1qWBHgRE


Python实现代码;

import os, win32com.client

def runScreensaver():
    strComputer = "."
    objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
    objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
    colItems = objSWbemServices.ExecQuery("Select * from Win32_Desktop")
    for objItem in colItems:
        if objItem.ScreenSaverExecutable:
            os.system(objItem.ScreenSaverExecutable + " /start")
            break

Note:

该段程序只能够在Python的主进程中运行,在线程中起不起来,报如下错误:

com_error: (-2147221008, 'CoInitialize has not been called.', None, None)


经查阅

http://docs.activestate.com/activepython/2.5/pywin32/pythoncom__CoInitialize_meth.html

在起线程之前需要调用

pythoncom.CoInitialize()
来初始化com模块,相应代码:

import pythoncom
pythoncom.CoInitialize()

这样,线程就成功起来了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Windows使用Python启动本地程序,您可以使用`subprocess`模块。具体而言,您可以使用`subprocess.call()`或`subprocess.Popen()`函数来启动一个本地程序。 例如,以下是使用`subprocess.call()`函数启动Windows上的记事本应用程序的示例代码: ```python import subprocess subprocess.call(['notepad.exe']) ``` 该代码将在Windows启动记事本应用程序。您还可以通过将其他参数添加到`subprocess.call()`函数中来传递给记事本应用程序。例如,以下代码将在Windows上打开“文件”菜单: ```python import subprocess subprocess.call(['notepad.exe', '/P', 'File']) ``` 如果您需要更多的控制,您可以使用`subprocess.Popen()`函数来启动本地程序。该函数将返回一个`Popen`对象,您可以使用它来控制启动程序的输入、输出和错误流。 例如,以下是使用`subprocess.Popen()`函数启动Windows上的记事本应用程序的示例代码: ```python import subprocess process = subprocess.Popen(['notepad.exe']) ``` 该代码将在Windows启动记事本应用程序,并将返回一个`Popen`对象。您可以使用该对象来与启动程序进行交互,例如,您可以使用`process.communicate()`方法来读取程序的输出和错误流。 ### 回答2: 要在Python启动Windows本地程序,可以使用subprocess模块。subprocess模块允许你创建新进程并与其进行交互。 首先,导入subprocess模块: ``` import subprocess ``` 然后,使用subprocess的run方法来启动程序。你需要提供要启动程序的路径作为参数,并可以选择传递任何其他需要的参数。例如,如果要启动一个名为"program.exe"的程序,可以这样做: ``` subprocess.run('C:/path/to/program.exe') ``` 如果程序需要一些额外的参数,可以将它们作为列表传递给run方法的args参数。例如,如果要启动一个名为"program.exe"的程序,并传递参数"arg1"和"arg2",可以这样做: ``` subprocess.run(['C:/path/to/program.exe', 'arg1', 'arg2']) ``` 此外,你还可以指定程序所在的目录,使用cwd参数。例如,如果要在"program.exe"所在的目录中启动程序,可以这样做: ``` subprocess.run(['program.exe', 'arg1', 'arg2'], cwd='C:/path/to/') ``` 最后,如果你需要获取程序的输出,可以将subprocess的run方法的capture_output参数设置为True。这将返回一个CompletedProcess对象,其中包含程序的输出和错误信息。例如,可以这样启动一个程序并获取其输出: ``` result = subprocess.run(['program.exe'], capture_output=True) print(result.stdout.decode('utf-8')) # 输出程序的标准输出 print(result.stderr.decode('utf-8')) # 输出程序的标准错误 ``` 以上是使用Python启动Windows本地程序的基本方法。根据需要,你可以根据具体的情况和要求进行进一步的调整和配置。 ### 回答3: 要启动Windows本地程序,可以使用Python的`os`模块的`startfile`函数。该函数接受一个字符串参数,是要启动程序的路径。例如,要启动记事本程序Notepad,可以使用以下代码: ```python import os # 启动记事本程序 os.startfile("notepad.exe") ``` 如果程序不在系统的环境变量中,你需要提供程序的完整路径,例如: ```python import os # 启动自定义程序 program_path = r"C:\Program Files\MyProgram\myprogram.exe" os.startfile(program_path) ``` 此外,你还可以使用Python的`subprocess`模块来启动Windows本地程序。`subprocess`模块提供了更多的灵活性和控制权。以下是使用`subprocess`模块启动记事本程序的示例代码: ```python import subprocess # 启动记事本程序 subprocess.Popen(["notepad.exe"]) ``` 需要注意的是,`subprocess`模块提供了更多的选项和参数,可以通过阅读官方文档以了解更多信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值