为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

利用VB编程突破“灰色按钮”限制

2013-07-10 2页 pdf 166KB 15阅读

用户头像

is_329304

暂无简介

举报
利用VB编程突破“灰色按钮”限制 科技情报开发与经济 SC1一TECH INFORMATION DEVELOPMENT&ECONOMY 2006年 第 l6卷 第l0期 文章编号:1005—6033(2006)10-0216-02 利用VB编程突破 “ I 色按钮"限制 杨 剀,黄玲玲 (南华大学计算机科学与技术学院,湖南衡阳,421001) 摘 要:介绍了在 VB环境中如何利用Windows API函数更改其他应用程序窗口中按 钮的活动状态。 关键词:灰色按钮;API;窗口句柄 中图分类号:TP31 文献标识码:A 随着计算机技...
利用VB编程突破“灰色按钮”限制
科技情报开发与经济 SC1一TECH INFORMATION DEVELOPMENT&ECONOMY 2006年 第 l6卷 第l0期 文章编号:1005—6033(2006)10-0216-02 利用VB编程突破 “ I 色按钮"限制 杨 剀,黄玲玲 (南华大学计算机科学与技术学院,湖南衡阳,421001) 摘 要:介绍了在 VB环境中如何利用Windows API函数更改其他应用程序窗口中按 钮的活动状态。 关键词:灰色按钮;API;窗口句柄 中图分类号:TP31 文献标识码:A 随着计算机技术的不断发展,用户能够使用的软件数量也不断增 加。然而在这些软件的使用过程中经常会遇到某些按钮为灰色不可用状 态。造成这种现象的原因大致有两类:一类是病毒或者是恶意代码,例 如,不小心浏览了含有恶意代码的网页后,会使IE浏览器的起始主页被 修改,并且IE的主页设置选项变为灰色不能修改。另一类是该软件必须 注册才能使用这些功能,例如,某些软件在安装过程中要输入序列号,如 果没有序列号,则安装过程就无法继续。无论是何种原因,软件中的灰色 按钮总会对用户造成不便。本文简单地介绍了如何利用VB编程突破灰 色按钮限制。在Windows中每个应用程序窗13都有一个唯一的窗13句 柄,同时应用程序窗13中的每个控件(轻量控件除外)也分配了一个窗13 句柄。因此,要突破灰色按钮限制,首先就要获取应用程序窗13的窗13句 柄;然后通过应用程序窗13的窗13句柄获取灰色按钮的窗13句柄;最后 通过使用相应的Windows APt函数更改按钮的活动状态。这样就能突破 灰色按钮限制了。 l 获取应用程序窗口的窗口句柄 利用VB编程突破灰色按钮限制,首先需要获取应用程序窗13的窗 13句柄。获取应用程序窗口的窗口句柄的方法很多,本文简单介绍两种。 方法一:用FindWindow函数获取指定应用程序窗口的句柄。获取某 个指定的应用程序窗13的窗口句柄可用Windows API函数FindWindow (4)建立内控监督机构,加强内控队伍建设。内控监督机构对每个岗 位、每个部门和各项业务实施全面监督反馈,实现与行政管理交叉 控制,加强内部监控。内部控制必须被监督。监督是一种随着时问的推移 而评估制度、执行质量监督的过程。只有施行切实可靠的监控,才能及时 发现和解决内部控制过程中出现的问胚。 (5)建立一个有效的会计系统。一个有效的会计系统,实施会计控制 是内部控制制度的关键。会计系统的建立也就是企业会计制度的设计。 会计制度的设计不仅包括规定会汁账户、账簿、会汁报等内容的编制 说明,还包括发生在企业各部门间各类经营管理活动中会计处理程序的 具体规定,把内部控制抽象性、要索性的方法和程序融化为企业会计制 度中具体可操作的方法与程序。 (6)加强企业的内部审计制度。内部审计作为企业内部控制体系的一 个重要方面,其主要任务是监督本企业的生产经营活动是否按照所制定 的方针政策和执行,会计记录是否按国家颁布的会计准则进行,会计 收稿 日期:2006—03—15 直接获取。在使用FindWindow函数之前必需在模块中做如下声明: Declare Function FindWindow t,ib “user32’’Alias“FindWindowA” (ByVal lpClassName As String.ByVal lpWindowName As String)As Long 该函数的返回值是找到窗13的句柄,如未找到相符窗13,则返回零。 该函数有两个参数lpClassName和lpWindowName,lpClassName指向包 含了窗口类名的空中止(C语言)字串的指针,或设为零,表示接收任何 类;lpWindowName指向包含了窗 13文本(或标签)的空中止(C语言)字 串的指针,或设为零,表示接收任何窗口标题。 只要知道指定应用程序窗口的窗口标题就可用此函数获取窗 口句 柄。例如要想获取“Internet属性”窗体的句柄可用以下语句实现: hwndlEAttrib=FindWindow(vbNullString.“Inlernet属性”) 方法二:用GetForegroundWindow函数获取前台应用程序活动窗口 的句柄。Windows API函数GetForegroundWindow可以获取前台应用程序 活动窗口的窗口句柄。在使用GetForegroundWindow函数之前必须在模 块中作如下声明: Declare1~’unctionGetForegroundWindowLib‘'user32’'Alias‘‘GetForeground Window”()As Long 该函数的返回值是前台应用程序活动窗口的窗口句柄。 可用以下语句获取当前活动窗口句柄 ; hwndForeWindOW=GetForegroundWindow 报表能否正确反映企业的财务状况和经营,本企业的生产经营有无违反国 家财经法纪等。它在履行审计职能,监督经济活动,加强经济管理.提高经 济效益等方面发挥着重要作用。然而,由于我国的内部审计人员向厂长、经 理负责,且当前有较多企业轻视内部审计的作用。同时有不少企业在人员 的编制上,将企业内部审计人员由企业会计人员兼任,或是兼管某一业务, 这就使得企业内部审计无法发挥作用。如果要发挥企业内部审计的作用, 就必须将内部审计人员从会计、财务人员中分离出来,直接对董事会负责, 这样才能真正发挥内审人员的作用,监督和保护企业的资产 、财产安全,监 督企业朝着合理、合法的良性方向发展。 (实习编辑:王永胜) 第一作者简介:陶春海,男,1967年6月生,1987年毕业于山西省第 二人民警察学校,会计师,阳泉一监二监区,山西省阳泉市郊区荫营镇, 04501l, Discussion on the Internal Control of Enterprise TAo chun-hai ABSTRACT:This paper analyzes on the problems existing in the internal control of enterprise,and puts forward some suggestions on strengthening the internal control of enterprise. KEY W ORDS:enterprise management;internal control;internal audit 216 维普资讯 http://www.cqvip.com 杨 剀,黄玲玲 利用vB编程突破“灰色按钮”限制 本刊E-maihbjb@mail.sxinfo.net 信患技术 2 获取灰色按钮的窗口句柄 获取应用程序窗口的窗口句柄之后,可以利用 Windows API函数 EnumChildWindows获取灰色按钮的窗口句柄。在使用 EnumChild Windows函数之前必须在模块中作如下声明: Declare Function EnumChildWindows Lib “user32”Alias“Enum Child Windows”(ByVM hWndParent As Long,ByVal lpEnumFunc As Long,ByVal 1P~am As Long)As Long 该函数的作用是为指定的父窗I=I枚举子窗I=I。该函数有 3个参数, hWndParent欲枚举子窗I=I的父窗I=I的句柄;lpEnumFune为每个子窗口 调用的函数的指针 用Addmss Of运算符获得函数在一个标准模块中的 地址 ;lParam这个值的含 义是由程序员规定的。EnumChildWindows函 数的第二个参数是一个函数的指针,在VB中必须用AddressOf运算符 获得函数j生标准模块中的地址,该函数(可命名为EnumChildProc)将被 每个子窗I=I调用。对于EnumChildProc函数的定义和使用是有一定要 求的,EnumChildProc函数首先必须是一个有返回值的函数,若不成功 则返回零.若成功则返回非零;其次它必须有两个参数,第一个参数是 由父窗口指定的子窗口句柄,第二个参数的值由EnumChildWindows函 数的第三个参数 ~aram确定。因此 EnomChildProc函数必须按以下格 式编写: Function EnumChildProc(ByVal hwnd As Long,ByVal 1Param As Long) AsLong End Function 用以下语句可枚举应用程序窗I=I的所有子窗1:3: hwndFW=Enum Child Windows(hwndForeWindow.Address Of Enum ChildProc.0) 3 更改按钮的活动状态 因为EnumChildWindows函数能获取应用程序窗口中的每个控件的 窗口句柄,并执行 EnumChildProc函数,所以在 EnumChildProc函数中使 用相应的Windows AP1函数更改按钮的活动状态,便可突破灰色按钮限 制。在这里要使用的Windbws API函数是E blewindUw函数。在使用 EnableWil·dow函数之前必须在模块中作如下声明: Declare Funetion EnableWindow Lib “user32’’Alias“EnableWindow” (ByVal hwndAsLong,ByValfEnableAsLong)AsLong 该函数的作用是在指定的窗口里允许或禁止所有鼠标及键盘输入。 该函数有两个参数hwnd和fEnable.hwnd欲操作的窗I=I句柄;fEnable的 值为零时窗口禁止所有鼠标及键盘输入.非零时窗口允许所有鼠标及键 盘输入。 因此只要在EnumChildProc函数中对灰色按钮执行语句“Enable Windowhwnd,1”,就可突破灰色按钮限制了。 在VB编程过程中,可将代码放人一个窗体模块和一个标准模块中。 在标准模块中声明对需要用到的 Windows API函数的引用: Public Declare Function GetForegroundWindow Lib“user32”()As Long Public Declare Function EnumChildWindows Lib “user32”(ByVal hWndParent As Long,ByVal lp·EnumFunc As Long,ByVal 1Param As Long) AsLong Public Declare Function lsWindowEnabled Lib“user32”(ByVal hwnd As Long)AsLong Public Declare Function EnableWindow Lib “user32”fByVal hwnd As Long,ByVal fEnable As Long)As Long Public Declare Function FindWindow Lib"IISer32”Alias“FindWindowA” (ByVal lpClassName As String,ByVal lpWindowName As String)As Long 另外,更改按钮的活动状态的函数过程 EnumChildProc也可在标准 模块中定义: Function EnumChildProc(ByVal hwnd As Long,ByVal 1Param As Long)As Long ’如果窗口是不活动状态,则激活它。 If lsWindowEnabled(hwnd)=0 Then EnableWindow hwnd,1 EnumChildPrOC l End Function 在窗体模块中主要就是利用 Windows API函数 FindWindow或 GetForegroundWindow获取应用程序窗 I=I句柄 ,然后调用函数 Enum ChildWindows将不活动窗口激活。 例如,要想激活“[nternet属性”窗体中的灰色按钮 ,可在窗体模块中 添加一个命令按钮并添加如下代码: Private Sub Commandl — Click() Dim hwndlEAttrib As Long HwndlEAttrib=FindWindow(vhNullString,“Intemet属性”) hwndlEAttrib=EnumChildWindows (hwndlEAttrib,AddressOf Enum ChildProc.0) End Sub 如果要想激活前台应用程序窗1:3中的灰色按钮,可在窗体模块中添 加一个命令按钮和一个定时器并添加如下代码: Private Sub Commandl — Click() l'imer1.Enabled=True End Sub Private Sub Timerl — Timer() Dim hwAsLong hw=GetForegroundWindow If hw=Me.hwnd fhen Exit Sub hw:EnumCbildWindows(hw.AddressOf EnumChildProc,0) End Sub 综上所述,灰色按钮就是处于不活动状态的控件,只要找到它的窗 口句柄,使用WindowsAP1函数 EnableWindow更改按钮的活动状态.就 可以突破灰色按钮限制了。 (实习编辑:王永胜) 第一作者简介:杨 剀,男,1979年2月生.2000年毕业于湖南师范 大学理学院.助教,南华大学计算机学院。湖南省衡阳市,421001. To Break through the Limitation of the“Grey Button’’by VB YANG Kai,HUANG Ling-ling ABSTRACT:This paper introduces how to use Windows API function to change the active status of the button in the \ window of the other application programs in VB environment. KEY W ORDS:grey button;API;handle of window 217 维普资讯 http://www.cqvip.com
/
本文档为【利用VB编程突破“灰色按钮”限制】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索