不卡视频在线观看_三级网站视频在线观看_91精品网站_国产综合一区二区

完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業名稱
* 信用代碼
* 所在行業
* 企業規模
* 所在職位
* 姓名
* 所在行業
* 學歷
* 工作性質
請先選擇行業
您還可以選擇以下福利:
行業福利,領完即止!

下載app免費領取會員

NULL

ad.jpg

二次開發教程:C#鍵盤鉤子

發布于:2019-08-23 17:01:11

網友投稿

更多

       HookProc hookProc = null;

        IntPtr hookValue = IntPtr.Zero;

        const int WM_CLICK = 0x00F5;

        public Form1()

        {

            InitializeComponent();

        }


        //安裝

        private void button1_Click(object sender, EventArgs e)

        {

            if (hookProc == null)

            {

                hookProc = new HookProc(this.MyProMethod);

                IntPtr hModule = NativeMethods.GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName);

                //局部鉤子

                hookValue = NativeMethods.SetWindowsHookEx(HookType.WH_KEYBOARD, hookProc, hModule, NativeMethods.GetCurrentThreadId());

                //全局鉤子

                //hookValue = NativeMethods.SetWindowsHookEx(HookType.WH_KEYBOARD_LL, hookProc, hModule, 0);

            }

        }


        private int MyProMethod(int nCode, IntPtr wParam, IntPtr lParam)

        {

            int code = nCode;

            int w = wParam.ToInt32();

            int l = lParam.ToInt32();


            //直接用IntPrt無法返回

            List<IntPtr> prts = GetHandle(this.Handle, IntPtr.Zero, null, "Test");

//向控件發送消息

            IntPtr tp = NativeMethods.SendMessage(prts.First(), WM_CLICK, IntPtr.Zero, IntPtr.Zero);


            return NativeMethods.CallNextHookEx(hookValue, nCode, wParam, lParam);

        }




相關類:


    public delegate int HookProc(int nCode, IntPtr wParam, IntPtr lParam);

    public delegate bool EnumWindowProc(IntPtr hWnd, IntPtr parameter);

    public enum HookType : int

    {

        WH_JOURNALRECORD = 0,

        WH_JOURNALPLAYBACK = 1,

        WH_KEYBOARD = 2,

        WH_GETMESSAGE = 3,

        WH_CALLWNDPROC = 4,

        WH_CBT = 5,

        WH_SYSMSGFILTER = 6,

        WH_MOUSE = 7,

        WH_HARDWARE = 8,

        WH_DEBUG = 9,

        WH_SHELL = 10,

        WH_FOREGROUNDIDLE = 11,

        WH_CALLWNDPROCRET = 12,

        WH_KEYBOARD_LL = 13,

        WH_MOUSE_LL = 14

    }

    public class NativeMethods

    {

        //設置鉤子 

        [DllImport("user32.dll")]

        public static extern IntPtr SetWindowsHookEx(HookType idHook, HookProc lpfn, IntPtr hInstance, int threadId);



        //卸載鉤子

        [DllImport("user32.dll", SetLastError = true)]

        [return: MarshalAs(UnmanagedType.Bool)]

        public static extern bool UnhookWindowsHookEx(IntPtr hhk);



        //調用下一個鉤子 

        [DllImport("user32.dll")]

        public static extern int CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam);



        [DllImport("kernel32.dll")]

        public static extern int GetCurrentThreadId();



        [DllImport("user32.dll")]

        public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);


        [DllImport("user32.dll")]

        public static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);


        [DllImport("Kernel32.dll")]

        public static extern IntPtr GetModuleHandle(string lpModuleName);



        [DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]

        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);



        [DllImport("user32.dll", EntryPoint = "FindWindowEx", SetLastError = true)]

        public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, string windowTitle);



        [DllImport("user32")]

        [return: MarshalAs(UnmanagedType.Bool)]

        public static extern bool EnumChildWindows(IntPtr window, EnumWindowProc callback, IntPtr i);

    }


//t通過className和windowTitle來尋找控件

    public class ControlIntPrtUtils

    {

        private string className = string.Empty;

        private string windowTitle = string.Empty;

        public ControlIntPrtUtils(string className,string windowTitle)

        {

            this.className = className;

            this.windowTitle = windowTitle;

        }

        public List<IntPtr> GetHandle(IntPtr parentHandle, IntPtr childAfter)

        {

            List<IntPtr> prts = new List<IntPtr>();

            IntPtr hwnd = NativeMethods.FindWindowEx(parentHandle, IntPtr.Zero, className, windowTitle);

            if (hwnd != IntPtr.Zero)

            {

                prts.Add(hwnd);

                return prts;

            }

            GCHandle gch = GCHandle.Alloc(prts);

            NativeMethods.EnumChildWindows(parentHandle, new EnumWindowProc(EnumCallBack), GCHandle.ToIntPtr(gch));

            return prts;

        }

        private bool EnumCallBack(IntPtr hWnd, IntPtr parameter)

        {

            IntPtr hwnd = NativeMethods.FindWindowEx(hWnd, IntPtr.Zero, className, windowTitle);

            if (hwnd != IntPtr.Zero)

            {

                GCHandle gch = GCHandle.FromIntPtr(parameter);

                List<IntPtr> prts = gch.Target as List<IntPtr>;

                prts.Add(hwnd);

                return false;

            }

            return true;

        }

    }


本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。

未標題-1.jpg

上一篇:二次開發教程:Revit開發關于創建Tab的問題

下一篇:二次開發教程:WPF 使用net 資源多語言

60acb4e0ef112.png
不卡视频在线观看_三级网站视频在线观看_91精品网站_国产综合一区二区

      久久www成人_看片免费不卡| 亚洲国产片色| 国产精品中文字幕欧美| 嫩模写真一区二区三区三州| 欧美激情亚洲| 国产麻豆91精品| 99re这里只有精品6| 亚洲黄色一区| 欧美偷拍另类| 久久成人av少妇免费| 亚洲国产裸拍裸体视频在线观看乱了中文| 欧美成人一区在线| 亚洲欧美视频在线观看视频| 伊人激情综合| 国产精品久久久久久久午夜| 欧美一区二视频在线免费观看| 在线欧美电影| 国产精品夜夜夜| 免费在线视频一区| 亚洲欧美日本精品| 亚洲精品视频啊美女在线直播| 国产精品乱看| 欧美福利小视频| 久久成年人视频| aa级大片欧美三级| 国产在线拍偷自揄拍精品| 欧美日韩伦理在线| 久久综合色天天久久综合图片| 一区二区三区高清视频在线观看 | 亚洲高清免费在线| 国产精品久久久久久久久久免费| 老牛影视一区二区三区| 亚洲自啪免费| 99re6这里只有精品| 一区在线视频观看| 国产人妖伪娘一区91| 欧美日韩中文字幕综合视频| 老司机精品视频一区二区三区| 亚洲欧美成人网| 在线视频亚洲一区| 亚洲日本中文字幕| 在线播放日韩欧美| 国产在线一区二区三区四区| 国产精品久久久久一区二区| 欧美人与禽猛交乱配视频| 免费成人激情视频| 久久午夜国产精品| 久久精品国产综合精品| 午夜激情一区| 亚洲综合三区| 亚洲一区在线直播| 亚洲午夜激情免费视频| 99视频精品全部免费在线| 亚洲人成人一区二区三区| 在线不卡欧美| 在线精品在线| 亚洲国产合集| 亚洲激情影院| 亚洲精品中文字| 亚洲精品一区二区三区婷婷月| 在线精品视频一区二区三四| 尤物yw午夜国产精品视频明星| 国产一区二区三区免费不卡| 好看的日韩视频| 在线观看国产日韩| 亚洲国产精品久久久久| 最新国产乱人伦偷精品免费网站| 亚洲国产91精品在线观看| 136国产福利精品导航网址应用 | 亚洲免费观看高清完整版在线观看熊 | 在线观看日产精品| 亚洲高清中文字幕| 亚洲乱码视频| 在线亚洲欧美视频| 亚洲欧美韩国| 久久精品国产久精国产爱| 久久免费少妇高潮久久精品99| 老司机午夜精品视频在线观看| 欧美大胆成人| 欧美日韩在线播放三区| 国产精品区一区二区三| 国产午夜精品一区二区三区视频 | 欧美在线一区二区| 久久久久久免费| 欧美激情一区二区三区全黄| 欧美日韩一区二区国产| 国产精品视频网| 韩国av一区二区三区四区| 亚洲日韩视频| 亚洲欧美日韩精品久久| 久久亚洲欧美国产精品乐播| 欧美久久久久久蜜桃| 国产精品亚洲产品| 在线观看成人一级片| 艳女tv在线观看国产一区| 亚洲一区二区三区视频播放| 久久精品国产99精品国产亚洲性色| 免费久久99精品国产自| 国产精品激情电影| 在线播放日韩| 亚洲女人天堂av| 欧美承认网站| 国产精品永久免费观看| 国产综合久久久久影院| 99精品热视频只有精品10| 久久av在线看| 欧美日韩一区在线| 激情视频亚洲| 亚洲五月六月| 欧美va天堂在线| 国产精品久久久久久久久久久久久| 激情成人av| 亚洲欧美成人| 欧美精品一区三区在线观看| 国产在线精品二区| 亚洲精品一级| 久久香蕉精品| 国产区欧美区日韩区| 日韩亚洲欧美成人一区| 久久全国免费视频| 国产日韩专区| 亚洲一区二区三区在线看| 欧美不卡视频一区发布| 国产婷婷色一区二区三区四区| 亚洲精品小视频在线观看| 六月婷婷久久| 激情欧美亚洲| 久久久久欧美精品| 国产日韩欧美高清| 在线午夜精品| 欧美精品导航| 亚洲精品国产日韩| 毛片一区二区三区| 在线观看三级视频欧美| 久久精精品视频| 国产日本欧洲亚洲| 亚洲欧美国产精品va在线观看 | 亚洲国产欧美日韩精品| 久久久久久久97| 国内揄拍国内精品少妇国语| 欧美一区二区精美| 国产精品视频1区| 日韩午夜在线播放| 欧美精品一区在线观看| 亚洲精品视频啊美女在线直播| 蜜桃av噜噜一区| 一区二区在线观看av| 久久久久国产成人精品亚洲午夜| 国产欧美激情| 久久电影一区| 国内精品久久久久国产盗摄免费观看完整版 | 亚洲美女中出| 欧美日韩国产不卡| 一区二区三区欧美| 国产精品久久久久久久久免费 | 91久久极品少妇xxxxⅹ软件| 久久精品视频在线播放| 激情久久五月| 久色成人在线| 亚洲精品国久久99热| 欧美激情一区二区三区在线视频观看| 亚洲人成在线播放| 欧美涩涩网站| 香蕉成人伊视频在线观看| 国产亚洲va综合人人澡精品| 久久久久综合网| 1000部国产精品成人观看| 欧美另类变人与禽xxxxx| 亚洲手机成人高清视频| 国产乱码精品一区二区三区五月婷 | 久久亚洲精品中文字幕冲田杏梨 | 亚洲资源av| 国产一区二区丝袜高跟鞋图片| 久久精品亚洲乱码伦伦中文 | 亚洲欧美怡红院| 国内在线观看一区二区三区| 男女av一区三区二区色多| 夜夜嗨av一区二区三区| 国产老女人精品毛片久久| 久久一综合视频| 一本色道久久综合亚洲精品高清| 国产精品久久久久久亚洲调教| 久久爱www久久做| 亚洲三级毛片| 国产欧美一区二区三区久久人妖 | 欧美午夜激情小视频| 久久国产欧美精品| 亚洲精品免费网站| 国产午夜精品一区理论片飘花| 欧美va亚洲va日韩∨a综合色| 亚洲小说欧美另类社区| 伊人久久大香线| 国产精品久久久久久妇女6080 | 蜜桃久久av| 亚洲一区二区三区乱码aⅴ蜜桃女| 久久久九九九九| 国产美女精品免费电影| 欧美国产三区| 久久国产成人| 亚洲作爱视频|