解决方案 »

  1.   

    楼主可以查查系统api这个东西
      

  2.   

    [DllImport("user32.dll")]
            private static extern void keybd_event(byte bVk, byte bScan, long dwFlags, long dwExtraInfo);
            private void button1_Click(object sender, EventArgs e)
            {
                const byte VK_LWIN = 0x5B;
                const byte VK_R = 0x52;
                const byte KEYEVENTF_KEYUP = 0x2;
                const byte KEYEVENTF_EXTENDEDKEY = 0x1;
                keybd_event(VK_LWIN, 0, KEYEVENTF_EXTENDEDKEY, 0);
                keybd_event(VK_R, 0, KEYEVENTF_EXTENDEDKEY, 0);
                keybd_event(VK_R, 0, KEYEVENTF_KEYUP, 0);
                keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);        }
      

  3.   

    非常感谢您的回答!
    我技术很菜,用这种方法,我看的并不是很懂,当我把这种方法用在打开“运行”窗口的事件中时,并没有成功打开“运行”窗口,报了异常,而重要的并不是这个,而是这种方法对键盘的控制(包括软键盘):当在任意地方按键盘的时候,比如“E”键,说就是“win+E”的结果,像QQ截图的快捷键“Ctrl+Alt+A”已经失效......此方法带来的“副作用”实在是不怎么友好,没办法,只好用鼠标点击,保存一切需要保存的信息,然后重启。
      

  4.   

    添加对Microsoft Shell Controls And Automation(shell32.dll)的引用添加如下代码:var shell = new Shell32.Shell();
    shell.FileRun();
      

  5.   

     Type shellType = Type.GetTypeFromProgID("Shell.Application");
                object shellObject = System.Activator.CreateInstance(shellType);
                shellType.InvokeMember("FileRun", System.Reflection.BindingFlags.InvokeMethod, null, shellObject, null);