C# .Net 移动外部程序的窗口相关的函数

C# 移动外部程序的窗口相关的函数

		[DllImport("user32.dll")]
        public static extern int FindWindow(string lpClassName, string lpWindowName);
        [DllImport("user32.dll")]
        public static extern int GetTopWindow();
        [DllImport("user32.dll")]
        public static extern bool UpdateWindow(IntPtr hWnd);
        [DllImport("user32.dll")]
        public static extern int GetForegroundWindow();
        [DllImport("user32.dll")]
        public static extern int SendMessage(int hWnd, uint Msg, int wParam, int lParam);
        [DllImport("User32.dll", ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]
        private static extern bool MoveWindow(IntPtr hWnd, int x, int y, int cx, int cy, bool repaint);

        public const int WM_COMMAND = 0x0112;
        public const int WM_CLOSE = 0xF060;
		int screenIndex = 1;
		Screen[] screens = Screen.AllScreens;
		Process MCProcess = new Process();

		MCProcess.StartInfo.FileName = lblFolderPath.Text + "\\" + listView3.Items[0].Text;

		MCProcess.Start();

		System.Threading.Thread.Sleep(500);

		handle = GetForegroundWindow();

		MoveWindow((IntPtr)handle,
                    screens[screenIndex].Bounds.Left + 10,
                    screens[screenIndex].Bounds.Top + 10,
                    1260,
                    1004,
                    true
                    );

GetForegroundWindow() 函数往往获取不到想要指定的窗口

     		int handle = 0;
            if (m_Process.WaitForInputIdle(1000))
                handle = FindWindow(null, "Free Virtual Keyboard - www.mediafreeware.com");  

            int keyborard_Width = Screen.PrimaryScreen.WorkingArea.Size.Width / 3;
            int keyborard_Height = Screen.PrimaryScreen.WorkingArea.Size.Height / 4;
           
            int WidthLocation = Screen.PrimaryScreen.WorkingArea.Size.Width/4;
            int HeightLocation = Screen.PrimaryScreen.WorkingArea.Size.Height / 2 +13;

            MoveWindow(
               (IntPtr)handle,
                WidthLocation,
                HeightLocation,
                keyborard_Width,
                keyborard_Height,
                true
                );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值