求大佬解惑
pub unsafe fn SendMessageW<'a, Param0: IntoParam<'a, HWND>>(
hwnd: Param0,
msg: u32,
wparam: WPARAM,
lparam: LPARAM
) -> LRESULT
其中msg: u32 的参数应该传什么?
找到的键盘按键
pub struct VirtualKey(pub i32)
pub const VK_Q: VIRTUAL_KEY;
pub struct VIRTUAL_KEY(pub u16);
pub const DIK_Q: u32 = 16u32;
pub const DIKEYBOARD_Q: u32 = 2164261904u32;
这里DIK_Q和DIKEYBOARD_Q有什么区别
1
共 8 条评论, 1 页
评论区
写评论非常感谢大佬解答,我搞懂了
--
👇
ywxt: ```
use windows::{Win32::Foundation::, Win32::UI::Input::KeyboardAndMouse::, Win32::UI::WindowsAndMessaging::*, core::Handle};
fn main() { let message = unsafe{ SendMessageW(HWND(0x003E0AF4), WM_KEYDOWN,WPARAM(VK_RETURN.0 as usize), LPARAM(0)); SendMessageW(HWND(0x003E0AF4), WM_KEYUP,WPARAM(VK_RETURN.0 as usize), LPARAM(0)) }; println!("{:?}", message); }
pub struct VIRTUAL_KEY(pub u16); pub const VK_0: VIRTUAL_KEY = VIRTUAL_KEY(48u16); pub struct WPARAM(pub usize);
--
👇
1192724521: 大佬
这个
WPARAM
的参数怎么传--
👇
ywxt: 看MSDN
SendMessage
msg Type
如果你要發送按鍵按下的話,
msg
爲WM_KEYDOWN
,wparam
爲VK_X
,lparam
的結構看這裏,不過置0問題不大。(keyup同理)如果你要發送輸入字符的話,
msg
爲WM_CHAR
,wparam
爲ASCII碼大佬
这个
WPARAM
的参数怎么传--
👇
ywxt: 看MSDN
SendMessage
msg Type
如果你要發送按鍵按下的話,
msg
爲WM_KEYDOWN
,wparam
爲VK_X
,lparam
的結構看這裏,不過置0問題不大。(keyup同理)如果你要發送輸入字符的話,
msg
爲WM_CHAR
,wparam
爲ASCII碼msg
傳WM_UNICHAR
,wparam
可以傳UTF32編碼的字符,不過這個得看應用支不支持。看MSDN
SendMessage
msg Type
如果你要發送按鍵按下的話,
msg
爲WM_KEYDOWN
,wparam
爲VK_X
,lparam
的結構看這裏,不過置0問題不大。(keyup同理)如果你要發送輸入字符的話,
msg
爲WM_CHAR
,wparam
爲ASCII碼我给您改好了,您参考一下。
--
👇
1192724521: 这样能了吗
--
👇
Mike Tang: 老哥,用用markdown语法行不。
这样能了吗
--
👇
Mike Tang: 老哥,用用markdown语法行不。
老哥,用用markdown语法行不。