sendkey(hcurrentwindow,'N');
PostMessage(hCurrentWindow, WM_KEYDOWN, VK_ESCAPE, 0);
SendMessage(hCurrentWindow, WM_KEYDOWN, $4E, 0);
PostMessage(hCurrentWindow, WM_KEYDOWN, VK_DOWN, 0);
如何才能发送按键N或者发送方向键是为了解决网页自动关闭的问题,---------------------------
Microsoft Internet Explorer
---------------------------
您查看的 Web 页正在试图关闭窗口。是否关闭此窗口?
---------------------------
是(Y) 否(N)
---------------------------我要发送否,焦点是在“是”上,如果直接发送回车就被关掉了,而我意思是不关掉他
PostMessage(hCurrentWindow, WM_KEYDOWN, VK_ESCAPE, 0);
SendMessage(hCurrentWindow, WM_KEYDOWN, $4E, 0);
PostMessage(hCurrentWindow, WM_KEYDOWN, VK_DOWN, 0);
如何才能发送按键N或者发送方向键是为了解决网页自动关闭的问题,---------------------------
Microsoft Internet Explorer
---------------------------
您查看的 Web 页正在试图关闭窗口。是否关闭此窗口?
---------------------------
是(Y) 否(N)
---------------------------我要发送否,焦点是在“是”上,如果直接发送回车就被关掉了,而我意思是不关掉他
解决方案 »
- 我现在有10000000条数据!
- Delphi如何进行源代码管理?
- 将c语言写的代码转换成delphi的。在线等!急!急!
- 求教高手:如何控制 将panel中的shape控件随意拖动。求源代码(急)
- 几个与string有关的问题,请各位指点
- 为何delph调用oracle的存储过程,一个参数时是正确的,但两个输入参数就出差,郁闷
- 谁有当年的Microsoft Pascal 1.0的
- 请问delphi有没有关机,重启,注销之类的函数?
- 在Rave中动态生成TRaveDataText?
- 请问DELPHI中webbrowser1.navigate(edit1.text,a,b,c,d)后面的参数abcd到底是什么意思呀?
- 关闭主程序后,子程序的托盘图标还在,需鼠标移向图标才令图标消失,请教解决办法?
- 为何我编写的cgi,总是被下载,而不是执行?
然后用FindWindowsex的句柄~!
之后你就可以发送你的按键给他了!~
改为hButton:=FindWindowEx(hForm,nil,nil,'是(&Y)' );
建议如下使用
findwindow;//得到句柄
SetActiveWindow;//使之活动
sendmessage;//发送按键消息
hCurrentWindow: HWnd;
szText: array[0..254] of char;
begin
try
hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST);
While hCurrentWindow <> 0 Do Begin
If GetWindowText(hCurrentWindow, @szText, 255) > 0 Then begin
if Strpas(@szText)='Microsoft Internet Explorer' then
begin
PostMessage(hCurrentWindow, WM_KEYDOWN, VK_ESCAPE, 0);
* keybd_event(ord('N'), MapVirtualKey(ord('N'), 0), 0, 0);
* keybd_event(ord('N'), MapVirtualKey(ord('N'), 0), KEYEVENTF_KEYUP, 0);
break;
end;
end;
hCurrentWindow := GetNextWindow(hCurrentWindow, GW_HWNDNEXT);
end;
except
end;
搞定了,发送N是上面两句
VOID keybd_event( BYTE bVk, // virtual-key code
BYTE bScan, // hardware scan code
DWORD dwFlags, // flags specifying various function options
DWORD dwExtraInfo // additional data associated with keystroke
);
我们还要知道扫描码不可以直接使用,要用函数MapVirtualKey把键值转成扫描码,MapVirtualKey的具体使用方法如下:
UINT MapVirtualKey( UINT uCode, // virtual-key code or scan code
UINT uMapType // translation to perform
);
好了,比说此快接键是CTRL+A,接下来让我们看看实际代码是怎么写的: keybd_event(VK_CONTROL,mapvirtualkey(VK_CONTROL,0),0,0);
keybd_event(65,mapvirtualkey(65,0),0,0);
keybd_event(65,mapvirtualkey(65,0),keyeventf_keyup,0);
keybd_event(VK_CONTROL,mapvirtualkey(VK_CONTROL,0),keyeventf_keyup,0);首先模拟按下了CTRL键,再模拟按下A键,再模拟放开A键,最后放开CTRL键,
这就是一个模拟按快捷键的周期。