问题标签 [win32gui]

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.

0 投票
2 回答
1072 浏览

wxpython - wxPython wxDC 对象来自 win32gui.GetDC

我正在使用返回 int/long 的 win32gui.GetDC 获取另一个程序中对象的窗口句柄的 DC。我需要将这个 DC 插入 python 中的内存 DC。我唯一不知道怎么做的是从 win32gui 返回的 int/long 中获取 wxDC 派生对象。据我所知,没有一个 wxDC 对象允许我将实际的 DC 句柄传递给它们。这当然使我无法做我的小动作。有没有办法做到这一点?

0 投票
1 回答
1736 浏览

perl - 如何从 Perl 完全改变 Win32 标题栏的外观?

我正在学习使用Win32::GUI将 GUI 添加到我的 Perl 程序中。现在我可以使用类似的方式更改 Win32 标题栏的图标:

但是其他的东西,比如背景颜色,最小化按钮的外观和感觉呢?

我用谷歌搜索了这个主题,发现了几篇可能相关的文章。他们谈论诸如非客户区绘画等之类的东西,但代码片段似乎都是用 C 编写的,我不太熟悉。

我想知道这里是否有人可以分享一些用 Perl 编写的处理类似情况的代码片段?或者,是否有一个 Perl 模块可以促进这项任务?

感谢您的任何指导:)

****更新1****

我可以先让标题栏消失,然后在原始标题栏所在的位置添加一个标签,然后添加一些其他按钮来最小化和关闭对象吗?

现在的问题是:当鼠标在标签上时,如何移动 Window 对象?

****更新2****

我找到了一些 VB 代码片段,它们应该可以完成我想在 Perl 中完成的工作。有人可以帮我在 Win32::GUI 中重写它们吗?以下 VB 代码来自这里

0 投票
2 回答
7961 浏览

winapi - Win32 滚动示例

谁能指出(或提供?)一些关于如何在 Win32 中实现滚动的好、清晰的例子?很明显,谷歌提供了很多东西,但大多数例子要么太简单,要么太复杂,以至于我无法确定它们展示了正确的做事方式。我在当前项目中使用 LispWorks CAPI(跨平台 Common Lisp GUI 库),在 Windows 上,我有一个与滚动相关的难以解决的错误;基本上我想直接通过 Win32 API 做一些测试,看看我是否可以对这种情况有所了解。

非常感谢,克里斯托弗

0 投票
1 回答
14432 浏览

python - python win32gui 查找子窗口

例如首先你必须找到Skype的hwnd

而不是他所有的子窗口及其标题

任何的想法?

0 投票
2 回答
12998 浏览

python - win32gui 中的 Python PyHANDLE 对象

我一直在尝试创建一个覆盖另一个应用程序的透明窗口。我发现 win32 扩展有点乱,有 win32ui、win32gui、winxpgui 等,有点令人困惑。

无论如何,我正在尝试将一个窗口句柄传递给这个函数 win32gui.UpdateLayeredWindow

它想要的第一个参数是句柄,作为 pyhandle 类型。

所有查找窗口句柄的方法都返回一个 int,而不是 pyhandle 类型。即使是来自相同模块的那些。win32gui.findwindow(None, "windowtitle") 查找并返回我想要的窗口的句柄,但仅以 int 形式而不是 PyHandle。

这是该对象的文档。 http://docs.activestate.com/activepython/2.5/pywin32/PyHANDLE.html

这是 findwindow 方法的文档。docs.activestate.com/activepython/2.5/pywin32/win32gui__FindWindow_meth.html

这是不接受 int 的方法的文档。docs.activestate.com/activepython/2.5/pywin32/win32gui__UpdateLayeredWindow_meth.html

我什至尝试使用 WX 来创建和查找窗口句柄,它也只返回 int。

还有另一个需要句柄的函数,由同一个人编写,它接受 int 作为句柄。win32api.SetWindowLong

问题是,有没有办法从我收到的 int 创建一个 PyHANDLE 对象?我想不通。

0 投票
1 回答
378 浏览

python - PythonWin 保存会话状态

我希望能够在 PythonWin 编辑器中保存我的会话状态(例如,这三个文件被打开并定位在 PythonWin 窗口中的这些特定位置)。我可以使用 win32gui 获取 PythonWin 中每个子窗口的句柄,以及每个文件的标题和窗口的位置/大小。我不清楚如何获取列为子窗口名称的文件的完整路径(即,如果子窗口名称是 test.py 并且 test.py 位于 c:\python\test.py,我不知道知道如何获取 c:\python)。我在想我会写出打开了哪些文件以及它们的窗口位置到一个小文件中,然后我会在 PythonWin 开始时间调用该文件进行加载。

关于如何获取子窗口名称的完整路径的任何想法?

或者,如果有人已经有了在 PythonWin 中保存会话状态的更优雅的解决方案,请传递它。

下面是我现在正在使用的代码(感谢 Michal Niklas 提供了使用win32gui的起始代码)。


0 投票
1 回答
637 浏览

perl - perl win32::gui remove elements

I have a dialogbox, to which i populate elements(labels) on activate event. I want to remove these elements(labels) when the window is being deactivated. something like:[its erroneous fragment of main code but explanatory]

But the problem is, "Here" in deactivate is called many times and an exception is thrown thereafter [can't locate auto/wchR_.al in @INC .... line n]. Freezing the main window and only option is to end process through task-manager.

Please help me out. Why "here" is printed many times? How to remove element permanently? Thanks

0 投票
3 回答
5445 浏览

python-3.x - python3 ctype CreateWindowEx 简单示例

我已经搜索了一段时间,但找不到用于创建和显示窗口的 python3 ctypes 和 Win32 API 的简单示例。请在此处指向良好的链接或显示代码。

提前致谢!

0 投票
0 回答
900 浏览

perl - 使用 Win32::GuiTest 从网格显示控件 (AfxWnd42s) 中获取数据

我目前正在编写一些 perl 脚本来测试我们的一个 GUI 应用程序。我使用 perl 的 Win32::GuiTest 作为基础,它在大多数情况下都非常实用。但是,我现在被困在试图从网格控件中获取数据(不确定小部件的实际名称是什么,因为这应该是黑盒测试)。使用 WinSpy++,我可以看到它的类是“AfxWnd42s”,不管这意味着什么。我可以使用以下代码获取窗口句柄:

text 和 wintext 都不包含任何值,即使网格控件中有数据。我已经尝试了许多不同的 GetWindowLong 选项,但似乎没有任何关于网格内容的返回。另外,我正在扫描的窗口没有孩子。我被困住了。

不幸的是,我无权访问代码或开发环境来构建应用程序。我只能通过 WinSpy++ 告诉我的有关窗口组件的内容。

0 投票
1 回答
1015 浏览

python - 如何阻止警告对话框停止执行控制它的 Python 程序?

使用 Win32GUI 和Watsup,我正在编写一些 Python 代码来自动搜索通过不带有接口的程序访问的数据库。因此,我可以从列表中获取一个字符串,然后将其输入到搜索框中并按“查找”。

然而,当搜索返回超过 1000 个结果时,程序会抛出一个警告对话框——它只是一个结果数量的通知——它会停止 Python 代码的执行。我无法让代码越过它按下查找的行。

猜测一下,这是因为它不需要窗口或不知道如何处理警告——但我也不知道,除了手动接受它。下面是相关的代码示例,尽管它可能不是很有启发性。在“clickButton(LookupButton)”之后,执行停止。