首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

WF程序解决办法

2012-03-02 
WF程序如何让编写的程序不能通过组合键启用任务管理器来结束进程[解决办法]路过帮顶...期待中...[解决办法

WF程序
如何让编写的程序不能通过组合键启用任务管理器来结束进程

[解决办法]
路过帮顶...期待中...
[解决办法]
http://topic.csdn.net/u/20090203/16/1b8c7268-3cfd-473f-83b3-727151abb915.html
http://blog.csdn.net/panpanloveruth/archive/2007/06/20/1659236.aspx
[解决办法]
C#不能屏蔽CTRL+ALT+DEL,不过用另一种方法...就是用Kill方法在TIMER中若发现taskmgr.exe就Kill掉就好了...
[解决办法]

C# code
//这是一个HOOK类public class myHook    {        private IntPtr pKeyboardHook = IntPtr.Zero;//键盘钩子句柄        public delegate int HookProc(int nCode, Int32 wParam, IntPtr lParam);// 钩子委托声明        //键盘钩子委托实例不能省略变量        private HookProc KeyboardHookProcedure;        //底层键盘钩子        public const int idHook = 13;        //安装钩子        [DllImport("user32.dll", CallingConvention = CallingConvention.StdCall)]        public static extern IntPtr SetWindowsHookEx(int idHook, HookProc lpfn,            IntPtr pInstance, int threadId);        //卸载钩子        [DllImport("user32.dll", CallingConvention = CallingConvention.StdCall)]        public static extern bool UnhookWindowsHookEx(IntPtr pHookHandle);        //键盘钩子处理函数          private int KeyboardHookProc(int nCode, Int32 wParam, IntPtr lParam)        {            KeyMSG m = (KeyMSG)Marshal.PtrToStructure(lParam, typeof(KeyMSG));            if (pKeyboardHook != IntPtr.Zero)            {                switch (((Keys)m.vkCode))                {                    case Keys.LWin:                    case Keys.RWin:                    case Keys.Delete:                    case Keys.Alt:                    case Keys.Escape:                    case Keys.F4:                    case Keys.Control:                    case Keys.Tab:                        return 1;                }            }            return 0;        }        //安装钩子        public bool InsertHook()        {            IntPtr pIn = (IntPtr)4194304;            if (this.pKeyboardHook == IntPtr.Zero)            {                this.KeyboardHookProcedure = new HookProc(KeyboardHookProc);                this.pKeyboardHook = SetWindowsHookEx(idHook, KeyboardHookProcedure, pIn, 0);                if (this.pKeyboardHook == IntPtr.Zero)                {                    this.UnInsertHook();                    return false;                }            }            return true;        }        //卸载钩子        public bool UnInsertHook()        {            bool result = true;            if (this.pKeyboardHook != IntPtr.Zero)            {                result = (UnhookWindowsHookEx(this.pKeyboardHook) && result);                this.pKeyboardHook = IntPtr.Zero;            }            return result;        }        [StructLayout(LayoutKind.Sequential)]        public struct KeyMSG        {            public int vkCode;            public int scanCode;            public int flags;            public int time;            public int dwExtraInfo;        }    }
[解决办法]
http://blog.csdn.net/zdming2000/category/789570.aspx
工作流管理平台

热点排行