如何向非当前窗口发送一个按键Y消息(50)

  • 主题发起人 主题发起人 rgn
  • 开始时间 开始时间
R

rgn

Unregistered / Unconfirmed
GUEST, unregistred user!
如何向非当前窗口发送一个按键Y消息首先用 findwindow获得句柄 if hWnd <> 0 then begin SetForegroundWindow(hWnd); keybd_event($59, MapVirtualKey($59, 0), 0, 0); keybd_event($59, MapVirtualKey($59, 0), KEYEVENTF_KEYUP, 0); end ;不用这样的方法行吗?这样的方法实际上还是先让程序变为当前窗口后才输入的,并不是是向非当前窗口进行输的。可以参考http://www.delphibbs.com/delphibbs/dispq.asp?lid=1631067但我不知道怎样改成发送一个按键Y消息
 
procedure TForm1.Button1Click(Sender: TObject);//向edit3发送一个按键Y消息begin SendMessage(edit3.Handle,WM_SYSKEYDOWN,89,$20210001);//然后发送了一个'Y'键 SendMessage(edit3.Handle,106,89,$20210001);// 然后发送了一个字符'y 'end;
 
我这边就ok~~要先获取该窗体的句柄,什么窗体~~告诉我~~
 
dbgrideh导出到excel的是2.1版本,我想对excel(合并单元格)作出修改,保存的时候 不能用ExcelApp.DisplayAlerts:=False来自动保存修改。必须使它出现提示框, Wnd := FindWindow('XLMAIN',0); if hWnd <> 0 then begin SetForegroundWindow(hWnd); keybd_event($59, MapVirtualKey($59, 0), 0, 0); keybd_event($59, MapVirtualKey($59, 0), KEYEVENTF_KEYUP, 0); SetForegroundWindow(hWnd); keybd_event($59, MapVirtualKey($59, 0), 0, 0); keybd_event($59, MapVirtualKey($59, 0), KEYEVENTF_KEYUP, 0); end ; 我这个方法就可以自动按下那个提示框, 但这样的方法实际上还是先让程序变为当前窗口后才输入的,并不是是向非当前窗口进行输入的。 如果我在导出修改excel的过程中,在电脑上做其它的事情,它还会出现那个提示框。 我就是想excel保存时出现那个提示框,程序发送一个按键Y,使它自动保存,但不能用ExcelApp.DisplayAlerts:=False(因为excel2.1合并单元格不能自动保存)
 
后退
顶部