你好
我试过了;
PostMessage(embeddedwb1.Handle,VK_RETURN,0,0);
sendmessage(embeddedwb1,wm_keyup,vk_return,0);
embeddedwb1.perform(wm_keyup,vk_return,0);
但我的程序不起作用。 我试过了;
Keybd_Event(VK_RETURN, 1, 0, 0);
我的程序已经完成。但这是为所有应用程序发送回车键的代码。我想只为我的程序编码。感谢您帮助我。
答案 0 :(得分:2)
在致电SetFocus(embeddedwb1.Handele)
之前,请确保使用Keypd_Event(...)
关注WebBrowser。
既然您可能想要提交表单,您是否考虑过使用DOM?这里有一些代码填充选定的输入字段,然后提交第一个表单。如果您导航到http://www.google.com,这很好用,但在现实世界中,您需要更加小心(按类或ID搜索输入字段,检查是否有表单等)
procedure TForm23.Button2Click(Sender: TObject);
begin
((W.Document as IHTMLDocument2).activeElement as IHTMLInputElement).value := 'Search';
((W.Document as IHTMLDocument2).forms.item(0, '') as IHTMLFormElement).submit;
end;
答案 1 :(得分:1)
如果Javascript用于提交表单,那么Cosmin回答不起作用我认为。在这种情况下,您必须知道按钮的JS代码并从程序中执行它。例如;在我的页面中,我使用JQuery提交表单。所以:
procedure TForm1.Button1Click(Sender: TObject);
var
js_code : string;
Win : IHTMLWindow2;
begin
Win := (WebBrowser1.Document as IHTMLDocument2).parentWindow;
js_code := '$("#formlogin").submit();';
Win.execScript(js_code, 'JavaScript');
end;
答案 2 :(得分:-1)
使用此:
PostMessage(EmbeddedWB1.HWND, WM_CHAR, 13, 0);
此代码将char 13(输入代码)发送到EmbeddedWB。