现在的位置: 首页 > 综合 > 正文

C# api调用,上窗口在最上面,模拟键盘

2012年02月14日 ⁄ 综合 ⁄ 共 2365字 ⁄ 字号 评论关闭

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices; //闫磊

namespace Api
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //闫磊加入
        [DllImport("user32.dll")]
        private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
        [DllImport("user32.dll")]
        private static extern bool SetForegroundWindow(IntPtr hWnd);
        [DllImport("user32.dll")]
        private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        [DllImport("user32.dll")]
        private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
        [DllImport("user32.dll")]
        private static extern bool SetCursorPos(int X, int Y);
        [DllImport("user32.dll")]
        private static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
        [DllImport("user32.dll")]
        private static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
        [DllImport("user32.dll")]
        private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndlnsertAfter, int X, int Y, int cx, int cy, uint Flags);
        [DllImport("user32.dll", SetLastError = true)]
        static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

        [System.Runtime.InteropServices.DllImport("user32", EntryPoint = "SetForegroundWindow")]
        public static extern bool SetFocus(IntPtr hWnd);//设置此窗体为活动窗体

        private void button1_Click(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {

            IntPtr myIntPtr = FindWindow(null, "gisoracle的专栏 - CSDN博客 - Windows Internet Explorer");
            //ShowWindow(myIntPtr, SW_RESTORE); //将窗口还原
            SetWindowPos(myIntPtr, (IntPtr)(-1), 100, 200, 0, 0, 0x0040 | 0x0001); //放在最前面
            SendKeys.Send("{F5}");

            //SetParent(myIntPtr, this.Handle);
            // SetFocus(myIntPtr);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            IntPtr myIntPtr = FindWindow(null, "gisoracle的专栏 - CSDN博客 - Windows Internet Explorer");
            //ShowWindow(myIntPtr, SW_RESTORE); //将窗口还原
            SetWindowPos(myIntPtr, (IntPtr)(-1), 100, 200, 0, 0, 0x0040 | 0x0001); //放在最前面
            SendKeys.Send("{F5}");

            //SetParent(myIntPtr, this.Handle);
            // SetFocus(myIntPtr);

        }
    }
}

【上篇】
【下篇】

抱歉!评论已关闭.