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)   
---------------------------我要发送否,焦点是在“是”上,如果直接发送回车就被关掉了,而我意思是不关掉他

解决方案 »

  1.   

    用findwindow 和 findwindowex 就可以解决。
      

  2.   

    同意liyt的!先用findwindow找到"是否关闭此窗口?"这个窗体的句柄~
    然后用FindWindowsex的句柄~!
    之后你就可以发送你的按键给他了!~
      

  3.   

    hButton:=(hForm,nil,nil,'是(&Y)' ); // 如果,还不行第二参数改为 'Button'
    改为hButton:=FindWindowEx(hForm,nil,nil,'是(&Y)' );
      

  4.   

    同意楼上几位的方法:
    建议如下使用
    findwindow;//得到句柄
    SetActiveWindow;//使之活动
    sendmessage;//发送按键消息
      

  5.   

    var
        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是上面两句
      

  6.   

    我这边有点资料, 你看看,也许对你有帮助的keybd_event函数,其用法如下:
    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键,
    这就是一个模拟按快捷键的周期。