c#用run32dll打开系统dll(如系统图片查看器,并置最顶层)

  [DllImport("user32.dll", EntryPoint = "SetWindowPos",CharSet = CharSet.Auto)]
        static extern bool SetWindowPos(
        IntPtr hWnd,
        IntPtr hWndInsertAfter,
        int X,
        int Y,
        int cx,
        int cy,
        uint uFlags
        );
        static readonly IntPtr HWND_TOPMOST = new IntPtr(-1);
        static readonly IntPtr HWND_NOTOPMOST = new IntPtr(-2);
        static readonly IntPtr HWND_TOP = new IntPtr(0);
        const UInt32 SWP_NOSIZE = 0x0001;
        const UInt32 SWP_NOMOVE = 0x0002;
        const UInt32 SWP_NOZORDER = 0x0004;
        const UInt32 SWP_NOREDRAW = 0x0008;
        const UInt32 SWP_NOACTIVATE = 0x0010;
        const UInt32 SWP_FRAMECHANGED = 0x0020;
        const UInt32 SWP_SHOWWINDOW = 0x0040;
        const UInt32 SWP_HIDEWINDOW = 0x0080;
        const UInt32 SWP_NOCOPYBITS = 0x0100;
        const UInt32 SWP_NOOWNERZORDER = 0x0200;
        const UInt32 SWP_NOSENDCHANGING = 0x0400;
        const UInt32 TOPMOST_FLAGS = SWP_NOMOVE | SWP_NOSIZE;
        private void button1_Click(object sender, EventArgs e)
        {
            Process process = Process.Start("rundll32.exe",@"C:\WINDOWS\system32\shimgvw.dll,ImageView_Fullscreen d:\1.jpg");
            
            IntPtr str = process.Handle;

            SetWindowPos(this.Handle, HWND_NOTOPMOST, 0, 0, 0, 0, 1 | 2); //最后参数也有用1 | 4

        }

 

posted @ 2016-05-09 21:38  小小高  阅读(746)  评论(0编辑  收藏  举报