当前位置: 首页 > 面试题库 >

为什么此ctypes代码不能在Python 3.3中工作,而在Python 2.7中工作?

谢志用
2023-03-14
问题内容

因此,我试图使用ctypes模块制作一个Python 3.3程序来更改Windows桌面背景。我已经在Python
2.7中测试了以下代码,并且运行良好。但这仅在Python 3.3中不起作用!我使用的是Windows7。代码如下:

import ctypes
SPI_SETDESKTOPWALLPAPER=20
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKTOPWALLPAPER, 0,"C:/Users/Public/Pictures/Sample Pictures/Penguins.jpg", 3)

问题答案:

SystemParametersInfoA需要一个8位ANSI编码的输入字符串作为参数,这mbcs在Python中被称为encoding

您将不得不SystemParametersInfoW在python3中使用。这是因为SystemParametersInfoW接受UTF-16宽字符串(wchar_t *在C中),并且ctypes库自动将此传递的unicode参数转换为c_wchar_p

有关更多详细信息,请参考文档。



 类似资料:
  • 我有以下Sikuli代码在JMeter这是不工作。 我尝试了Beanshell采样器和JSR223采样器,但在这两种情况下都不起作用。这是我得到的错误。 JSR223采样器 响应消息:javax。剧本脚本异常:javax。剧本ScriptException:FindFailed:C:\scripts\patterns\vnc\vncviewer。png:(32x31)在R[0,0 1920x108

  • 我是计算机视觉新手,还没有真正学习过阈值、模糊或其他过滤器的教程。我使用下面两段代码找出图像中的轮廓。一方面,这种方法是有效的,但另一方面,它不是。我需要帮助理解发生这种情况的原因,以便说服自己背景中发生了什么。 工作代码段: 不工作的代码段 如果有人能找出这里发生的错误的原因,我将不胜感激。 我所面对的错误是: 回溯(最近一次调用last):文件“convexhull.py”,第27行,在im2

  • 我正在尝试制作两个程序。我希望一个打印我居住的城市的当前天气,我希望另一个从一个在线帐户获取数据并返回它。对于这些脚本,我导入了天气模块和请求模块。当我在shell中导入它们时,没有问题,但是当我运行脚本时,它说“ImportError:No module name you weather”。我做错了什么? 壳牌: 脚本: 这也适用于“天气”模块 谢谢你

  • 我想知道为什么我的Java程序在控制台工作,当我做: javac Main.java Java美因河 ...而不是在Eclipse中,因为我有这个错误: 线程“main”java.lang.NullPointerException在codepin.main.main(main.java:48)-->char passwordarray[]=console.readpassword(“enter p

  • 问题内容: null在此代码中如何工作,为什么不打印对象? 输出: 在字符串中 问题答案: Java将始终尝试使用方法的最特定版本。 自通话以来 适用于两种方法 Java将选择最具体的方法描述,即

  • 我正在尝试执行GET命令,以便我可以从服务器获取数据。下面的Curl适用于Postman。 在运行我的代码时,我能够获取会话ID。下一步是获取数据。但是当我执行GET时,我没有得到任何响应。相反,我得到一个错误,如下所示:“指定的值具有无效的HTTP标头字符。(参数'name')” 下面是我试图执行的C代码 问题:我没有收到来自服务器的响应,响应长度为零。 以下是答案:0 回答ErrorMessa