我正在尝试将 ALT-S 发送到对话框提示,以使用 PostMessage 保存文件:
PostMessage(h, WM_KEYDOWN, VK_MENU, 0);
PostMessage(h, WM_KEYDOWN, ord('S'), 0);
PostMessage(h, WM_KEYUP, ord('S'), 0);
PostMessage(h, WM_KEYUP, VK_MENU, 0);
但它不起作用。它发送了两个键,但好像对话框无法识别 ALT 条件,并作为正常的 S 字符处理。
我做了很多阅读,包括这个(这会产生错误),看来我需要在 lparam 中做一些事情来表明 ALT 被抑制了。一些消息来源说 0x20000000 但这也不起作用。
SendInput、keybd_event 等对我不起作用,因为对话框不会成为焦点。
我很困惑会很感激一些见解。