问题标签 [user32]

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 投票
1 回答
1996 浏览

vb.net - 在 VB.NET 2010 中使用 GetAsyncKeyState 时的 PInvokeStackImbalance

我要做的是使用以下代码在我的主窗体上跟踪 Ctrl+Tab 按键

但是在调用该属性时CtrlPressed,我遇到了PInvokeStackImbalance错误。我确定声明GetAsyncKeyState并且也已导入InteropServices,但该CtrlPressed属性在语法上存在问题。我该如何解决这个问题?

谢谢

0 投票
2 回答
1014 浏览

c# - 获取用户输入的字符(WINAPI, user32.dll)

我需要获得一个聚焦的输入点(插入符号位置、窗口/控件)。我的应用程序/服务需要检测用户何时开始输入,然后将输入的字符替换为预定值。诀窍是我不知道用户想在哪里输入(我不想将其限制为几个应用程序)。

我认为我知道如何使用以下方法获取/替换文本:

如何获得集中的控件?我怎么知道从哪里获取文本以及从哪里发送替换?

我在 C#,WPF 中这样做。

谢谢!

0 投票
3 回答
40315 浏览

c# - 引导鼠标事件[DllImport("user32.dll")]点击、双击

我试过 [DllImport("user32.dll")] static extern bool SetCursorPos(int X, int Y);

并且将光标移动到所需的点效果很好。我以前从未尝试过这种 DLL 导入,但它可以工作:)。但是我想要更多我还能提取什么?主要是我想在没有任何鼠标输入的情况下双击、单击或使用滚轮选项,只是代码我该怎么做?以及如何检查 user32dll 中还包含什么?

谢谢

0 投票
2 回答
333 浏览

c# - 为什么我的模拟鼠标点击没有做任何事情?

我有这个代码:

我的表格如下所示:

当您单击“按钮”时,它会运行:

在我的窗口上我也有这个:

当我单击窗口时,它按预期显示“单击”,但是当我单击“按钮”时,它似乎没有做任何事情。

坐标是绝对的还是相对的?多显示器怎么样?他们只在重点应用上工作吗?

我希望 50,50 要么在某个地方点击我的窗口并触发“点击”处理程序,要么点击一些随机窗口,因为它完全错过了我的应用程序并专注于它......为什么没有发生任何事情?

0 投票
1 回答
1777 浏览

c# - 将窗口附加到外部进程

我正在用 C# 编写一个应用程序,它需要将自己的一个窗口附加到另一个进程拥有的窗口。我尝试使用 Windows api 中的 SetParent 函数,但它似乎不起作用。有没有办法做到这一点?

0 投票
3 回答
2774 浏览

c# - AutoIT 或 User32 按钮偶尔单击工作

我正在尝试自动化应用程序的测试,但我遇到了一个我正在努力解决的问题。

该应用程序具有标准的 Windows 按钮,我尝试使用 AutoIT 和 User32 dll 来单击其中一些按钮。有时按钮被正确点击(耶!),有时它们失败(嘘!) - 但更糟糕的是,AutoIT确信它点击了按钮(双嘘!),然后产生误报(三重嘘!)。当我看到它被说服时,我的意思是它返回点击成功,而不是成功。

我在 Win Server 2K8 上运行该应用程序,该应用程序除了使用 MDI 窗口之外没有什么特别之处,并且一些按钮包含在 MDI 窗口中。但有些不在 MDI 窗口中(例如,在创建父窗口之前的登录窗口)。

这是我的命令顺序:

在窗口中找到按钮(成功,总是) 将窗口带到前台(成功) 激活窗口(成功) 激活按钮(成功) 聚焦按钮(成功) 如果按钮获得焦点,并且按钮已启用,则点击它。(成功/失败,不可预知的行为。我无法缩小为什么有时会成功,以及为什么有时会失败......)

其他详情:

有时订单会单击按钮,这应该会打开另一个窗口。该窗口关闭,然后再次单击该按钮 - 这一次,没有任何反应。其他时候它按预期工作。

我以管理员身份运行,并且 UAC 已完全禁用。

据我所知,这不是时间问题,因为我确实确保按钮已聚焦并在尝试单击它之前启用,并且我看到该按钮确实在其周围获得了聚焦的突出显示。

正如我所提到的,我也一直在尝试使用简单的 User32/SendMessage 调用,但这也失败了。

最后但并非最不重要的一点是,当我手动与应用程序交互时不会发生这种情况。我一直有实际的按钮点击工作。

有什么想法吗?

更新

这是我应该提到的等式的另一个变量 - 这发生在 VM 上(因为这是我需要运行它的地方)。我可以在我自己的机器上做一些有限的测试,但要获得一些真正的测试,它需要在 VM 上。点击我自己的开发框似乎是可靠的,这让这更加令人费解。

我一直在另一个 VM 上尝试这个,它似乎也在那里工作。就这两个虚拟机而言,它们运行的​​是相同版本的 Windows、相同版本的我的应用程序、相同版本的 AutoIT 等。

我已将其简化为一个细节 - 幸运的是,我无法自行配置,并且必须提交一张票才能更改任何配置。配置的区别是这样的:

在不工作的虚拟机上,设备管理器显示一个鼠标,它是一个 vmware 鼠标。在正在工作的 VM 上,设备管理器显示鼠标是 PS/2 鼠标。显然两者都是软件鼠标,但我现在想知道 VMWare 鼠标是否会表现不同,并导致按钮点击并不总是有效。我不确定这作为解决方案的可能性有多大,因为根据我的理解,使用 User32 SendMessage 调用实际上并不使用鼠标,而是发送鼠标会发送的相同消息,但值得一试...

0 投票
1 回答
700 浏览

c# - user32 AnimateWindow 函数没有滑动正确的表单

我正在尝试向我的一个子窗体添加一个窗口幻灯片。我将简要介绍这小部分在我的应用程序中的作用。

用户在 IP 地址范围内键入。应用程序执行所有 ping 操作并以新形式(动态)显示结果。

这是我希望它工作的方式:如果用户运行一次 ping,则幻灯片动画不会发生任何事情。但是如果用户点击结果表单上的“重试”控件,新的结果窗口将从旧结果表单的右侧滑出。

在结果表单(名称:Ping_Form)上,我在加载事件中添加了以下内容:

但是当我运行 ping 方法时,会创建一个空白表单并滑出,但结果表单看起来很正常。

任何导演或建议在这方面都会很棒。非常感谢!

0 投票
4 回答
587 浏览

api - win32 非常低级程序集 - 应用程序启动问题

我正忙着用表单和按钮在汇编中编写一个win32程序......问题是windows修改我在ram中的变量。这个地方是一个存储我的 hInstance 和 hwnd 变量的地方。我找到了一种解决方法,但这不是一个优雅的解决方案。我想知道为什么 windows 会修改我的变量,并且我是否可以找到描述应用程序启动的文档。

MyWndProc 是来自 windows 的回调函数。在第 27 次从 Windows 调用时,它会修改最后 7 个变量。如果我用windowsVarx切换最后8个变量的位置,那么它仍然会修改hwnd,hwnd2 ...而不修改windowsVarx。其中 x 是从 1 到 8

下面的函数是消息循环,它负责收集和分发。

0 投票
2 回答
6263 浏览

c# - DllImport user32 vs user32.dll

这里 DllImport 的用法有什么区别?具体来说,“user32”只是表示“user32.dll”,还是表示“user32.lib”或其他什么?

您可能可以忽略 CharSet 和 CallingConvention。

如果它们相同,我可以重写它以使其更加一致,但如果不是,我不想有一堆问题。

0 投票
1 回答
169 浏览

c# - 处理最小化程序

在使用自定义/自制 explorer.exe 文件时,我需要帮助处理最小化的程序。因为除非处理得当,否则最小化的程序只会缩小到 100x50 像素并留在屏幕上。我在 C# 中设计了一个计时器来检查“标志性”进程,列出它们的 mainWindowHandler,并使用“MoveWindow”将它们移出屏幕。为了把它们带回来,我使用了处理程序和“ShowWindow”函数,它的工作原理很棒……但正如我所说,它涉及一个不断运行的计时器,所以必须有一种更清洁/更简单的方法来实现这一点。

有任何想法吗?当窗口最小化时,某种方式来挂钩和引发事件?

*请注意:show 和 movewindow 是来自 user32.dll 的函数。我不是想抓住我的表格何时最小化,而是其他程序何时最小化。