NonSoft

IEやFirefoxのF5(再表示)キー押下(送信)サンプル(C#.NET)

 サンプル(ソース/コード)
IEやFirefoxのF5(再表/最新の情報に更新示)キーを押下(送信)するサンプル(C#.NET)です。

IEの各タブは"Internet Explorer_Server"と言うコントロールにWEBページを表示しています。
Firefoxの各タブは"MozillaContentWindowClass"と言うコントロールにWEBページを表示しています。
WEBページを表示しているコントロールにF5キーを送信する事により再表示が出来ます。

IEやFirefoxを別プログラムから操作する時の参考になると思います。

IEでWEBページの更新チェック(F5による再表示/最新の情報に更新)をするツールはこちらです。
IEF5更新通知ツール(CarWebCheck)

VB.NET版のサンプルソースはこちらです。
IEやFirefoxのF5(再表示)を押すサンプル(VB.NET)

その他のサンプル(ブラウザ操作等)はこちらです。
サンプルソース(コード)

★フォーム(Form1.cs)
public partial class Form1 : Form
{
    private const int VK_F5 = 0x74;
    private const int WM_KEYDOWN = 0x100;
    [System.Runtime.InteropServices.DllImport
        ("user32.dll", EntryPoint = "PostMessageA")]
    extern static int PostMessage(
        int hWnd,
        int wMsg,
        int wParam,
        int lParam);
    [System.Runtime.InteropServices.DllImport
        ("user32.dll", EntryPoint = "FindWindowExA")]
    extern static int FindWindowEx(
        int hwndParent,
        int hwndChildAfter,
        String lpszClass,
        String lpszWindow);

    // IEのF5(最新の情報に更新)を押すサンプル
    private void button1_Click(object sender, EventArgs e)
    {
        int hwnd1 = FindWindowEx(0, 0,
             "IEFrame", null);

        int hwnd2 = FindWindowEx(hwnd1, 0,
            "TabWindowClass", null);

        int hwnd3 = FindWindowEx(hwnd2, 0,
            "Shell DocObject View", null);

        int hwnd4 = FindWindowEx(hwnd3, 0,
            "Internet Explorer_Server", null);

        PostMessage(hwnd4, WM_KEYDOWN, VK_F5, 0);
    }

    // FirefoxのF5(最新の情報に更新)を押すサンプル
    private void button2_Click(object sender, EventArgs e)
    {
        int hwnd1 = FindWindowEx(0, 0,
             "MozillaUIWindowClass", null);

        int hwnd2 = FindWindowEx(hwnd1, 0,
            "MozillaWindowClass", null);

        int hwnd3 = FindWindowEx(hwnd2, 0,
            "MozillaContentWindowClass", null);

        PostMessage(hwnd3, WM_KEYDOWN, VK_F5, 0);
    }
}

ちなみに、
VBS(VB Script)やエクセルVBAでIEをのF5(再表示)キーを押下(送信)するサンプルはこちらです。

Set IeShlObj = CreateObject("Shell.Application")
Set IeWinObj = IeShlObj.Windows(0)
IeWinObj.Refresh2(&H4)