delphi 怎么用Sendmessage发送Ctrl+V消息
delphi 如何用Sendmessage发送Ctrl+V消息
一般来说都可以实现了,但是我是获取其他程序的句柄然后发送消息,而那个程序是DUI界面的,只能通过向父窗体发送消息,由w和i参数来识别消息。
这个是向该程序发送的复制消息内容
通过SPY++,手动检测到的消息日志是
已翻译)
[code=Delphi(Pascal)][/code]
PostMessage(MYhwnd,WM_KEYDOWN,VK_CONTROL,1900545);
PostMessage(MYhwnd,WM_KEYDOWN,86,3080193);
PostMessage(MYhwnd,WM_CHAR,22,3080193); //系统自动添加的WM_CHAR Synchronous idle 消息,同步空闲
PostMessage(MYhwnd,WM_KEYUP,VK_CONTROL,3223126017);
PostMessage(MYhwnd,WM_KEYUP,86,3224305665);
[/code]
而我通过模拟操作发送得到的消息日志是
怎么破?
------解决方案--------------------
向窗体发送组合按键只能使窗体处于焦点,虚拟按键。非焦点窗口发送组合按键的方法我也没找到。
- Delphi(Pascal) code
PostMessage(MYhwnd,WM_KEYDOWN,VK_CONTROL,0); PostMessage(MYhwnd,WM_KEYDOWN,86,0); PostMessage(MYhwnd,WM_KEYUP,VK_CONTROL,0); PostMessage(MYhwnd,WM_KEYUP,86,0);
一般来说都可以实现了,但是我是获取其他程序的句柄然后发送消息,而那个程序是DUI界面的,只能通过向父窗体发送消息,由w和i参数来识别消息。
- Delphi(Pascal) code
PostMessage(MYhwnd,WM_KEYDOWN,VK_CONTROL,1900545); PostMessage(MYhwnd,WM_KEYDOWN,86,3080193); PostMessage(MYhwnd,WM_KEYUP,VK_CONTROL,3223126017); PostMessage(MYhwnd,WM_KEYUP,86,3224305665);
这个是向该程序发送的复制消息内容
通过SPY++,手动检测到的消息日志是
已翻译)
[code=Delphi(Pascal)][/code]
PostMessage(MYhwnd,WM_KEYDOWN,VK_CONTROL,1900545);
PostMessage(MYhwnd,WM_KEYDOWN,86,3080193);
PostMessage(MYhwnd,WM_CHAR,22,3080193); //系统自动添加的WM_CHAR Synchronous idle 消息,同步空闲
PostMessage(MYhwnd,WM_KEYUP,VK_CONTROL,3223126017);
PostMessage(MYhwnd,WM_KEYUP,86,3224305665);
[/code]
而我通过模拟操作发送得到的消息日志是
- Delphi(Pascal) code
PostMessage(MYhwnd,WM_KEYDOWN,VK_CONTROL,1900545); PostMessage(MYhwnd,WM_KEYDOWN,86,3080193); PostMessage(MYhwnd,WM_CHAR,86,3080193); //系统自动添加的WM_CHAR 大写或者小写“V” 字符串 PostMessage(MYhwnd,WM_KEYUP,VK_CONTROL,3223126017); PostMessage(MYhwnd,WM_KEYUP,86,3224305665);
怎么破?
------解决方案--------------------
向窗体发送组合按键只能使窗体处于焦点,虚拟按键。非焦点窗口发送组合按键的方法我也没找到。