一种接管windows系统开始菜单的方法与流程

文档序号:12595573阅读:977来源:国知局

本发明涉及计算机领域,具体涉及一种接管windows系统开始菜单的方法。



背景技术:

Windows多桌面,通过系统API函数 CreateDesktop即可创建一模一样的桌面环境,让同一个工作中程序放在一个桌面里面,另外的工作则放入另一个虚拟桌面,让工作和任务更加条分缕析,井井有条。比如在默认桌面下,可以访问访问互联网等娱乐操作,而在桌面2下只能办公等。现有实现方式下,默认桌面和桌面2开始菜单里面的内容是一样的,都是系统默认的,不利于管理员对在桌面2下进行限制,比如禁止运行QQ或禁止使用控制面板等,也不利于用户对默认桌面和桌面2进行良好的区分。



技术实现要素:

本发明为了克服以上技术的不足,提供了一种通过Windows HOOK技术接管新建桌面下开始菜单,显示自定义的开始菜单,可实现不同桌面下应用程序的隔离和控制的接管windows系统开始菜单的方法。

本发明克服其技术问题所采用的技术方案是:

一种接管Windows系统开始菜单的方法,包括如下步骤:

a)调用Windows系统中的API FindWindowW和FindWindowEx参数分别获取任务栏和开始菜单的窗口句柄;

b) 调用Windows系统中的SetWindowsHookExW参数注册键盘HOOK,在GdGlobaKeyHook函数中,对接收到的键盘的按键进行判断,键盘的按键内容定义在Windows系统中的struct KBDLLHOOKSTRUCT参数中,当struct KBDLLHOOKSTRUCT参数的一个参数定义为#define VK_LWIN 0x5B或#define VK_RWIN 0x5C时,启动GdStartMenu,系统接管Windows系统的开始菜单,并显示自定义菜单,同时返回Windows系统中的假FALSE参数,终止键盘参数定义为#define VK_LWIN 0x5B或#define VK_RWIN 0x5C的键盘码的发送;

c) 调用Windows系统中的SetWindowsHookExW参数注册鼠标HOOK,在GdGlobaMouseHook函数中,接收鼠标按下时如下参数:包括横向坐标x及纵向坐标y、获取任务栏主窗口尺寸、获取开始菜单窗口尺寸,当鼠标按下时横向坐标x大于系统开始菜单左边距且小于系统开始菜单右边距,鼠标按下时纵向坐标大于任务栏上边距且小于任务栏下边距时,启动GdStartMenu,系统接管Windows系统的开始菜单,并显示自定义菜单,同时返回Windows系统中的假FALSE参数,终止鼠标按下时的参数的消息发送;

d)根据任务栏窗口位置,设置自定义开始菜单的左边距和下边距分别为任务栏窗口的左边距和上边距,调用SetWindowPos参数,显示自定义的开始菜单。

本发明的有益效果是:本方法除了接管了Windows开始菜单,方便用户区分两个桌面,更实现了对另外一个桌面的应用程序控制,相比传统应用程序黑名单要等应用程序运行后再杀掉,本方案使得用户只能运行自定义开始菜单GdStartMenu内置的程序,使得非法应用程序根本得不到运行。

具体实施方式

下面对本发明做进一步说明。

一种接管Windows系统开始菜单的方法,包括如下步骤:

a)调用Windows系统中的API FindWindowW和FindWindowEx参数分别获取任务栏和开始菜单的窗口句柄;b) 调用Windows系统中的SetWindowsHookExW参数注册键盘HOOK,在GdGlobaKeyHook函数中,对接收到的键盘的按键进行判断,键盘的按键内容定义在Windows系统中的struct KBDLLHOOKSTRUCT参数中,当struct KBDLLHOOKSTRUCT参数的一个参数定义为#define VK_LWIN 0x5B或#define VK_RWIN 0x5C时,启动GdStartMenu,系统接管Windows系统的开始菜单,并显示自定义菜单,同时返回Windows系统中的假FALSE参数,终止键盘参数定义为#define VK_LWIN 0x5B或#define VK_RWIN 0x5C的键盘码的发送;c) 调用Windows系统中的SetWindowsHookExW参数注册鼠标HOOK,在GdGlobaMouseHook函数中,接收鼠标按下时如下参数:包括横向坐标x及纵向坐标y、获取任务栏主窗口尺寸、获取开始菜单窗口尺寸,当鼠标按下时横向坐标x大于系统开始菜单左边距且小于系统开始菜单右边距,鼠标按下时纵向坐标大于任务栏上边距且小于任务栏下边距时,启动GdStartMenu,系统接管Windows系统的开始菜单,并显示自定义菜单,同时返回Windows系统中的假FALSE参数,终止鼠标按下时的参数的消息发送;d)根据任务栏窗口位置,设置自定义开始菜单的左边距和下边距分别为任务栏窗口的左边距和上边距,调用SetWindowPos参数,显示自定义的开始菜单。本方法除了接管了Windows开始菜单,方便用户区分两个桌面,更实现了对另外一个桌面的应用程序控制,相比传统应用程序黑名单要等应用程序运行后再杀掉,本方案使得用户只能运行自定义开始菜单GdStartMenu内置的程序,使得非法应用程序根本得不到运行。比如某公司采用虚拟化桌面办公,在默认桌面下客户访问互联网,可以运行QQ和迅雷,在桌面2下,不允许运行QQ和迅雷。通过对桌面2的开始菜单进行接管,显示自定义开始菜单。这样在桌面2下就不能通过开始菜单来运行QQ和控迅雷,而不是等QQ和迅雷运行起来后再通过应用程序黑名单再杀掉,只能允许运行内置的软件如OA系统,另一方面,也方便了用户区分默认桌面和桌面2。持所有Windows操作系统,包括XP、Win7、win8和win10等。通过HOOK来实现接管开始菜单支持鼠标和键盘按钮两种方式,不改变用户的使用习惯。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1