问题标签 [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.
windows - 显示光标不工作
我正在尝试编写一个简单的 C# win32 控制台应用程序,它使用 ShowCursor (user32.dll) 来隐藏系统鼠标。调用 ShowCursor(false) 返回 -1(应该如此),但鼠标光标仍然存在。使用 ShowCursor(true) 再次调用返回 1(但没有可见效果,因为光标从未消失)。
谢谢。
excel - 禁用 Excel UserForm 淡入淡出动画
在 Excel 2007(和 2010)中使用 VBA,有没有办法在显示和隐藏用户窗体时禁用标准的淡入和淡出动画。特别是淡出对于我正在尝试创建的用户界面来说太慢了。
也许该user32
功能AnimateWindow
有一个可以作废的设置,但我还没有弄清楚。
编辑:这是一个审美目标;没有性能问题。由操作系统处理的淡出Me.Hide
需要大约 1/2 秒,我想知道它是否可以被立即覆盖。
c# - GetWindowText() 抛出错误并且未被 try/catch 捕获
当我为 GetWindowText 运行下面的代码时,我收到以下错误作为内部异常抛出:
{“试图读取或写入受保护的内存。这通常表明其他内存已损坏。”}
我有两个问题:
为什么错误没有被 try catch 捕获?
知道如何在程序遇到此类错误时阻止程序崩溃,而不是使用 try/catch
干杯
python - Python ctypes:带有 LPCSTR [out] 参数的原型
我目前正在进入ctypes
模块,我正在尝试使用我已经收到GetWindowText
的句柄调用 user32 函数。这一次虽然我想更进一步并使用函数原型而不是调用函数。尽管我在将争论声明为输出参数时遇到了问题。HWND
FindWindow
ctypes.windll.user32.GetWindowText
lpString
我的第一次尝试是这样的:
(cfunc
是我在这里找到的一个小包装)
这个原型一被调用就会产生以下异常:
我认为任何输出变量都必须是一种POINTER(...)
类型,所以我将定义更改为:
但这也会产生一个例外:
我希望有人知道如何使用原型GetWindowText
正确调用该函数。ctypes
编辑:
通过进一步的研究,我可以让它发挥作用,至少以某种方式。我修复的第一个问题是使用cfunc()
了错误的调用说明符。我定义了该函数的精确副本并将其命名winfunc()
并替换return CFUNCTYPE(result, *atypes)((name, dll), tuple(aflags))
为return WINFUNCTYPE(result, *atypes)((name, dll), tuple(aflags))
.
然后我进一步检查了原型设计。看起来如果你传递有点像它会在调用("someParameter",POINTER(aType),2)
时WINFUNCTYPE
创建一个aType
对象并将指向该对象的指针传递给函数。在返回的元组中,您可以访问该aType
对象。这带来了另一个问题。cstring 是一个字符数组;所以需要告诉 ctypes 创建一个c_char array
. 这意味着类似:
工作得很好。但不幸的是,ctypes 现在将传递一个指向 cstring 的指针,该指针总是 255 个字符长,忽略nMaxCount
.
在我看来,我认为没有办法让该函数与定义为输出参数的动态大小的 cstring 一起工作。唯一的可能性似乎是简单地不使用输出参数功能并将 a 定义LPCSTR
为输入参数。然后,被调用者需要自己创建一个缓冲区ctypes.create_string_buffer()
并将其传递给函数(就像在 C 中一样)。
c++ - MoveWindow(),跳过、躲避或绕过消息传递?
我正在调整一个窗口的大小,MoveWindow()
但我不拥有那个窗口。我只是从另一个进程中偷了它,现在我在搞乱它的 hWindow。
然而,我从中窃取它的过程正在运行一个消息循环,处理其中一些消息(WM_MOVE
、WM_SIZE
、WM_GETMINMAXINFO
等),这基本上阻止了我对它做任何我想做的事情。有时,它甚至不允许我将它的大小调整到超过给定的最大值,这是让它全屏运行的关键。
除了使用 asm,有什么方法可以绕过消息传递?
windows - 发送 WM_SETTINGCHANGE 消息刷新桌面
我设法通过这个单行程序以编程方式更改我的桌面背景:
…通过将所需的壁纸拖放到已编译的脚本上。
我有另一个更改桌面的程序,但由于某种原因无法发送WM_SETTINGCHANGE
消息(我可以看到密钥HKCU\Control Panel\Desktop\Wallpaper
正在更新)。如何发送此消息以触发壁纸刷新?是WM_SETTINGCHANGE
正确的消息吗?还是第一个脚本是唯一的方法?
我试过这个但它不起作用:
0xffff
用于将消息广播到每个窗口,0x001a
代表WM_SETTINGCHANGE
,0x0014
是 的代码spi_setdeskwallpaper
。Windows 7 中的任务栏闪烁,但壁纸没有改变。
如果你用 C、C++ 或 Visual Basic 解决我的问题,我会自己将其转换为 AutoIt(我只需要被调用函数的数字代码)。
c# - 如何从 Windows 应用程序中抓取数据网格
我正在尝试从 Windows 应用程序内的数据网格中抓取数据。
我已经使用 User32.dll 及其方法(例如GetWindow
查找句柄然后使用SendMessage
读取内容)成功地从应用程序中的文本框中抓取了数据。
我的问题是这些方法似乎没有返回任何值 a DataGrid
or table
。
有人对我如何能够实现这一目标有任何建议吗?
c# - 使用 user32.dll 发送单击,消息出现在 spy++ 中,但未单击按钮
我在使用 user32.dll 向应用程序发送 Click 时遇到问题。该按钮没有被点击,但在 spy++ 中确实出现了该消息。我用的是win7 x64
代码是用c#编写的:
以下是该按钮的 spy++ 消息:
如果我发送以下消息,我会收到以下消息:如果那是问题,我不知道,但 lbuttondown,buttoup 出现 2 次(S + R),如果我手动单击它,它会收到 1 条消息(P)也试图用 WM_CLICK 做,但我有同样的问题
编辑:现在使用 PostMessage 所以 spy++ 显示与我手动单击它相同的消息,但似乎仍然没有单击该按钮
使用这个库我有同样的问题。
代码:
消息已发送,但未单击按钮
编辑:
感谢该链接(http://www.hanselman.com/blog/IntroducingLync2010SuperSimpleAutoAnswerVideoKioskWithFullScreen.aspx),但对于这个库我也有同样的问题:/
代码:
消息已发送,但未单击按钮
编辑2:
用户的回答已被删除,因为我发布了我的评论作为答案:
这不是答案,这属于你的问题。它与您的代码不匹配,显然您仍在发布 BM_CLICK。这是错误的,应该发送它,您应该发送 BM_CLICK 或发布鼠标消息。而且您正在查看错误的窗口,它是按钮的父级获取 BN_CLICK 通知并对其进行操作。进程的键盘状态错误将是一种典型的故障模式。– 汉斯·帕桑特 18 小时前
关于那个,为什么应该是父母的窗户?spy++ 中的 bcs(我为该按钮(类:BarButton)搜索了下面的屏幕截图,并且我从 user32.dll 获得的句柄也与 spy++ 中的相同
c# - 使用 Windows API 的子窗口的滚动高度?
有谁知道如何使用 Windows API 获取可滚动子窗口的高度?我找到了 GetWindowRect 但这似乎只返回“可见”区域的 RECT,但我想要整个“可滚动”子窗口的 RECT。这个窗口是第 3 方窗口,所以我假设我需要使用 User32 WinAPI 函数。
谢谢!
winapi - 如何调用 user32.dll 中的 DialogBox() 函数?
我正在尝试调用 WinAPI 函数DialogBox()
。在Microsoft 网站上,此函数被指定在 user32.dll 中。但是,当尝试通过将其声明为从 dll 导入的函数来导入此函数时,链接器告诉我它不存在。然后我尝试在 C:\Windows\System32\user32.dll 中使用依赖项walker 找到该函数,但该函数不存在。(我可以在那里看到所有其他花哨的函数文字。)这可能是什么原因,我该如何解决这个问题?
我正在使用 D 编程语言。标准库中的 windows 模块不会在 WinAPI 中导入完整的函数集。因此,我有时不得不手动导入东西。