问题标签 [pywin32]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 从 Python 创建 SQL Server 数据库
我正在使用 Python 和 pywin32 的 adodbapi 编写脚本来创建 SQL Server 数据库及其所有关联的表、视图和过程。问题在于 Python 的 DBAPI 要求将 cursor.execute() 包装在仅由 cursor.commit() 提交的事务中,并且您不能在用户事务中执行删除或创建数据库语句。关于如何解决这个问题的任何想法?
编辑:
似乎没有任何类似于 adodbapi 的 connect() 方法或其 cursor() 方法的自动提交参数。我很乐意使用 pymssql 而不是 adodbapi,但它会将 char 和 varchar 数据类型截断为 255 个字符。
我在发布之前确实尝试过这个;这是追溯。
python - 从 LocalSystem 服务(通过 CreateProcessAsUser)生成的 GUI 应用程序没有焦点
我创建了一项服务,该服务在特定用户的桌面上显示一种启动屏幕,并且仅在该用户登录时(信息亭用户)。
该启动屏幕一旦输入有效代码,就会告诉服务并且服务进入睡眠 x 时间量(取决于代码)。
启动画面简单地退出。现在,当服务唤醒时,它会看到飞溅不再存在,因此启动它。
这一切正常,唯一的问题是启动的应用程序没有焦点,即如果我在记事本中工作并且时间到了,则在记事本后面显示启动画面(虽然是全屏)。
我只需要担心 Windows Vista,我在 Python 中使用 win32 扩展进行编码,但我相信这个问题出在从 LocalSystem 帐户调用时的 CreateProcessAsUser 上。
更新:
“问题”实际上是一个故意限制,以防止像我这样的“烦人”应用程序窃取焦点。
您可以通过设置更改行为: win32gui.SystemParametersInfo(win32con.SPI_SETFOREGROUNDLOCKTIMEOUT, 0, 0) 相当于临时设置注册表值:HKEY_CURRENT_USER\Control Panel\Desktop\ForegroundLockTimeout 这必须作为用户自己完成,所以要么构建它在您正在启动的应用程序中或为您要启动的应用程序构建启动助手。
但是,应用程序可能希望通过使用一些我现在不记得的 API 调用来防止其焦点被盗。
一个可能很好的解决方案是找到当前来自该用户的所有窗口句柄,然后使用这些句柄中的每一个来使用 win32gui.ShowWindow(handle, command) 将其最小化。
尽管对于这个特殊问题,设置锁定超时设置就足够了。
如果有人想知道我是如何设法将应用程序从服务启动到桌面的,这里是代码的链接。
python - 如何从活动窗口中检索选定的文本
我正在尝试使用Python为 Windows 创建一个简单的开源实用程序,该实用程序可以对当前活动窗口的选定文本执行用户定义的操作。该实用程序应使用预定义的键盘快捷键激活。
以下示例中部分概述了用法:
- 用户使用鼠标或键盘(在任何应用程序窗口中)选择一些文本
- 用户按下预定义的键盘快捷键
- 所选文本由我们的实用程序检索或复制到剪贴板(两种方法都应该没问题)
- 对选定文本执行与键盘快捷键相关的操作
令我困惑的是第 3 步。如何从活动窗口中检索选定的文本。这应该适用于所有应用程序。
我使用pywin32模块。
提前感谢您的回答和提示。
更新#1:
事实证明,有两种方法可以完成任务:
- 找到活动窗口,然后向其发送消息/击键 (Ctrl-C),以便将所选文本复制到剪贴板。然后,该实用程序可以通过使用剪贴板相关功能访问文本来处理文本。
- 找到活动窗口,然后直接检索所选文本(无需将其复制到剪贴板)。这似乎比第一种方法更困难。
作为起点:
正如 Anurag Uniyal 在他的回复中指出的那样,获取活动窗口 ID 。
或者使用以下代码获取窗口对象:
python - 你可以用 Python 中的 COM/ActiveX 做什么?
我读过可以使用 COM/ActiveX 在 Crystal Reports 中自动生成月度报告。我没有那么先进来理解这是什么,或者你甚至可以用它做什么。
我也用 Excel 做了很多工作,看起来你也使用 COM/ActiveX 来与它交互。
有人可以解释这是如何工作的,并可能提供一个简短的例子吗?
python - 在 Python 中使用 COM 事件
我正在尝试在 python 中做一个使用一些 COM 对象的示例应用程序。我已经阅读了 Win32 上的 Python 编程中著名的第 12 章,但关于这个问题,它只指出:
所有事件处理都是使用普通
IConnectionPoint
接口完成的,尽管超出了本书的范围,但标准 Python COM 框架完全支持。
任何人都可以对此有所了解吗?我需要一个简单的入门示例。类似于向此示例添加代码以捕获电子表格的 OnActivate 事件
python - Python / ADOX:“找不到指定的模块。” (win32 扩展)
我正在为 python 2.5 运行 pywin32。
我正在按照http://www.ecp.cc/pyado.html给出的 python ADO 的说明进行操作。
创建 ADODB.Recordset 对象可以正常工作。但是当我尝试创建一个 ADOX.Catalog 对象时,我得到一个错误:
有什么想法我可能会错过吗?
python - CheckedListBox used from Python(pywin32)
Does anyone know how to get the list of items and check/uncheck items in a CheckedListBox from python? I've found this to help me partly on the way. I think I've found the handle for the CheckedListBox(listed as a SysTreeView32 by WinGuiAuto.py).
One usage will for my part be to create an autoinstaller that manages to uncheck all checkboxes that installs bloatware.
python - Python更改屏幕分辨率虚拟机
在 virtualbox 中,屏幕分辨率可以是任何东西——甚至像 993x451 等奇怪的东西。我尝试使用 pywin32 更改它,但我失败了::
最终是:
有什么帮助吗?
windows - 远程桌面断开连接时 GetForegroundWindow 返回 Null
我有一个启动应用程序的测试,并通过调用 GetForegroundWindow() 验证它是否已启动。测试在我们通常通过远程桌面访问的远程机器上运行。当我们对机器打开一个 rdp 会话时,测试完成并且一切正常。但是,一旦我们关闭远程桌面,测试就会失败,因为 GetForegroundWindow 总是返回 Null。我已经检查过断开连接后的活动桌面仍然是“默认”,所以我确定我没有遇到这个问题。有什么想法可能导致这种情况吗?
提前致谢