SendMessage VS PostMessage

/// <param name="hwnd">handle of destination window</param>
/// <param name="wMsg">message to post</param>
/// <param name="wParam">first message parameter</param>
/// <param name="lParam">second message parameter</param>
const string Dowm = 0x100;
const string Up = 0x101
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam);
[DllImport("User32.dll")]
static extern bool PostMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam);

SendMessage用在你需要馬上知道這個Message處理的結果
PostMessage只是把訊息丟入Message Queue會在下次進入訊息迴圈時才處理

GeckoFX利用JS document按按鈕

GeckoFX為Gecko的.net版。
目前為Mozilla家族網頁瀏覽器以及Netscape 6以後版本瀏覽器所使用。

string js = @"javascript:
l = document.getElementById('link');
alert('link = ' + l);
function fireEvent(obj,evt)
{
    alert('fireEvent');
    var fireOnThis = obj;
    if( document.createEvent )
    {
        alert('createEvent');
        var evObj = document.createEvent('MouseEvents');
        evObj.initEvent( evt, true, false );
        fireOnThis.dispatchEvent(evObj);
     }
    else if( document.createEventObject )
    {
        fireOnThis.fireEvent('on'+evt);
     }
}
fireEvent(l, 'click');
";

geckoWebBrowser1.Navigate(js);