问题标签 [wm-syscommand]

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 投票
4 回答
5332 浏览

winapi - WM_SYSCOMMAND 怪事

当用户在系统菜单上选择菜单项命令时,应用程序会收到WM_SYSCOMMAND消息,因此 wParam 可以是 SC_CLOSE、SC_CONTEXTHELP、SC_MAXIMIZE、SC_MINIMIZE、SC_RESTORE 等。这是合乎逻辑的。(当然您也可以通过单击最小化、最大化、关闭按钮等来发送这些消息。)

但是也可以发送 WM_SYSCOMMAND 消息来向 Windows Shell 发送命令。例如,可以显示开始菜单 (SC_TASKLIST)、激活屏幕保护程序 (SC_SCREENSAVE) 和关闭显示器 (SC_MONITORPOWER)。这没有意义,不是吗?这与应用程序的系统菜单有什么关系?这更像是一个“系统命令”,即更多的是对消息名称“WM_SYSCOMMAND”的完全不同的解释。这就像消息用于向系统发送命令请求一样。

为什么这条消息用于两个看似完全不同的东西,“SYSCOMMAND”这个名字指的是什么东西(系统菜单上的命令,或操作系统的命令)?

0 投票
2 回答
1344 浏览

windows - 请帮助 - 来自 Aero Shake/3D 翻转的 WM_SYSCOMMAND 消息

你好

我有一个用 Delphi 2006 编写的应用程序。我注意到在 Windows 7 下运行时,应用程序没有收到来自 Aero Shake 的 WM_SYSCOMMAND 消息。但是,如果我以管理员身份运行该应用程序,那么它在执行 Aero Shake 时确实会收到 WM_SYSCOMMAND。

我尝试为 WM_SYSCOMMAND 调用 ChangeWindowMessageFilter 并得到 True 结果,表明调用成功,但我仍然无法从 Aero Shake 获取 WM_SYSCOMMAND 消息。

有谁知道为什么以及如何解决这个问题?

谢谢

0 投票
2 回答
1474 浏览

delphi - 用于打开屏幕保护程序的 Delphi 代码在 Windows 7 中不起作用

我有一个 Delphi 应用程序,可以使用

这在 XP 下工作正常,但我发现它在(嵌入式)Windows 7 下不起作用。

有任何想法吗?

0 投票
2 回答
709 浏览

c# - 从 c# 应用程序的系统菜单中禁用大小选项

我有 ac# windows 基础应用程序。现在我希望系统菜单中的大小选项应该被禁用。

要在系统菜单中添加选项,我使用的是 user32.dll。我正在使用 Windows 窗体。

在此处输入图像描述

0 投票
1 回答
400 浏览

c++ - 监听 WM_SYSCOMMAND 事件

我正在编写一个应该对sc_screensaverandsc_monitorpower事件做出反应的小型 c++ 程序。

这应该在后台运行,因此不打算使用 gui。

由于我还没有使用 Windows api 的经验,因此我为此苦苦挣扎。

A 已经用谷歌搜索了很多,发现了很多我不理解或不起作用的方法。

你们中的任何人都可以给我一个提示吗?我读过它关于捕捉的信息,wm_syscommand但这似乎很困难,因为我没有窗户。

0 投票
1 回答
1380 浏览

c# - WM_SYSCOMMAND 与 wParam 0xF063?

由于不相关的原因,我在 C# 应用程序的 WinForm 中捕获 WM_SYSCOMMAND 消息。有时,我的处理程序会收到带有 wParam 0xF063 的 WM_SYSCOMMAND 消息。

文档中没有 0xF063:http: //msdn.microsoft.com/en-us/library/windows/desktop/ms646360 (v=vs.85).aspx

将它传递给基 Form 类的 WndProc 似乎关闭了窗口,我认为这有点意义,因为 wParam几乎是0xF060,即 SC_CLOSE 消息。

那么...这个 0xF063 消息到底是什么,它与正常的 SC_CLOSE 有什么区别?如果它似乎与 SC_CLOSE 做同样的事情,为什么还要拥有它?似乎没有关于这个值的文档。

0 投票
1 回答
305 浏览

windows - WM_SYSKEYDOWN not updating

I tried something with WM_SYSKEYDOWN, and WM_SYSKEYUP for Keyboard-Input.

Here is the significant codepart.

I tried to print one string one time if I pressed the button, and printing the other string on releasing the key.

Releasing works, but pressing responses just one time each 2 presses.

This line should interrupt frequently posting the string again.

I don't get it why... , but I hope do.

Thanks in advance!

0 投票
2 回答
814 浏览

delphi - 当 MDI Child 窗体最大化时捕获 Delphi MDI Child 最小化事件

我需要一些帮助来尝试在 MDI 子窗体最大化时捕获它的最小化事件。

当单击下图中红色圈出的按钮时表单未最大化时,我能够捕获最小化/恢复/最大化事件。

MDI 儿童

我使用 WMSysCommand 捕获上述事件:

当我在 MDI 子窗体最大化并单击下图中红色圈出的按钮时尝试使用 WMSysCommand 捕获相同的事件时,它不会调用此代码。

最大化 MDI 儿童

无论我尝试过什么,我都未能成功捕捉到这些事件。如果有人能指出我正确的方向,将不胜感激。谢谢你。

0 投票
1 回答
27 浏览

windows - 如何从键盘/宏键盘发送“SendMessage”?

好的,我会尽量让这有点连贯,因为我不是最好的作家。

我有一个 AHK 脚本,它使用 SendMessage 命令发送代码 0x112、0xf170、2 来调用响应 SC_MONITORPOWER 的 WM_SYSCOMMAND,2 是关机功能。这导致我的显示器进入睡眠状态,这很好。然而,由于这是一个 AHK 脚本,它需要按下实际的按钮,例如“a”“s”“d”等按钮。我正在寻找的是如何重新编程 arduino Leonardo 的一两个按钮以直接发送该代码,并使显示器进入睡眠状态。

我不是编码员,几乎只能以最简单的形式编辑代码。

你们有什么建议吗?