大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> 用VB6编写强力的windows隐藏引擎

用VB6编写强力的windows隐藏引擎

时间: 2021-07-31 作者:daque

编制程序喜好者确定经罕见到不妨湮没桌面名目和状况栏等的软硬件,个中最驰名的即是hide-it。本来咱们不妨编写一个功效越发宏大的立即超等湮没引擎,它不只不妨湮没桌面名目、发端按钮、状况栏、时钟栏,并且不妨湮没任何软硬件的按钮、菜单、东西栏、文本框、状况栏之类,只假如不妨瞥见的独力局部——固然也不妨轻快的将它们回复出来。操纵更是简单到了点击“发端湮没”按钮,而后将鼠标放到须要湮没的名目上,按下f12键即可——点哪就湮没哪——这也是我称之为“湮没引擎”的因为。   一、编制程序道理  (1)windows api因变量showwindow不妨实行对步调界面(囊括windows9x和其余运用软硬件)以及子项手段表露遏制,经过挪用关系动静常数sw_hide = 0(湮没)和sw_show = 5(表露)就不妨实行对指定界面项手段湮没和从新表露出来。它所须要的其余一个参数是被湮没项手段句柄;  (2)getcursorpos因变量不妨归来暂时鼠标地方场所的屏幕坐标,而因变量windowfrompointxy凑巧不妨按照屏幕坐标归来该场所的窗体名目句柄——这恰是咱们所须要的!  (3)为了简单操纵,咱们须要为它备案一个体例级处事(激活)热键,我采用了f12;setwindowlong、getwindowlong、callwindowproc、registerhotkey、unregisterhotkey是五个必需的热键备案、反备案因变量;运用它们确定要粗枝大叶,要不大概会引导开拓平台的姑且解体,你不得不看到“该步调实行了不法操纵,行将被封闭”的启示窗口,并且你的处事功效会登时化为泡影;然而即使你依照正文的编写本领,保你“一帆风顺”;  (4)为了简单“回顾力”不好的伙伴,咱们须要一个列表框来表露仍旧被湮没的项手段句柄,再不不妨符合、需要的指示。  二、编制程序试验  (1)启用vb6,创造一个规范exe工程,增添一个窗体chinahide,增添四个command控件hideok对应“发端湮没”、unhide对应“回复一个”、unhideall对应“十足回复”;增添listbox控件list1(用来记录句柄);两个标签控件用来表露相关提醒消息。安排上述控件到符合场所和符合巨细,双击窗体,写入以次代码: dim lasthwnd as integer '被湮没名目句柄private sub form_load() '步调启用时备案功效热键f12 prewinproc = getwindowlong(me.hwnd, gwl_wndproc) setwindowlong me.hwnd, gwl_wndproc, addressof wndproc uvirtkey = vbkeyf12 registerhotkey me.hwnd, 1, modifiers, uvirtkeyend subprivate sub unhideall_click() '回复一切被湮没名目 for res = 0 to list1.listcount - 1  lasthwnd = list1.list(res)  showwindow lasthwnd, sw_show next res list1.clear '清空句柄列表框end subpublic sub hideok_click() '当"发端湮没"按钮被点击时,将窗口最小化 me.windowstate = 1end subprivate sub unhide_click() '回复一个选定的被湮没名目 if list1.listindex < 0 then  msgbox "请开始采用一个被回复的湮没名目!", vbexclamation  exit sub end if'考证句柄列表栏目能否仍旧被选中 hideindex = list1.listindex lasthwnd = list1.list(hideindex) x = showwindow(lasthwnd, sw_show) '回复选定的被湮没名目 list1.removeitem (hideindex) '移除该名目相关消息end subprivate sub form_unload(cancel as integer) '当步调被封闭时,废除仍旧备案的热键 setwindowlong me.hwnd, gwl_wndproc, prewinproc unregisterhotkey me.hwnd, uvirtkey '废除体例级热键,开释资源 end'中断步调运转end sub '主窗体代码中断  (2)增添一个规范模块,定名为mouldle1,写入以次代码:public declare function setwindowlong lib "user32" alias "setwindowlonga" (byval hwnd as long, byval nindex as long, byval dwnewlong as long) as long'在窗口构造中为指定的窗口树立消息public declare function getwindowlong lib "user32" alias "getwindowlonga" (byval hwnd as long, byval nindex as long) as long'从指定窗口的构造中博得消息public declare function callwindowproc lib "user32" alias "callwindowproca" (byval lpprevwndfunc as long, byval hwnd as long, byval msg as long, byval wparam as long, byval lparam as long) as long'运转指定的过程public declare function registerhotkey lib "user32" (byval hwnd as long, byval id as long, byval fsmodifiers as long, byval vk as long) as long'向体例备案一个指定的热键public declare function unregisterhotkey lib "user32" (byval hwnd as long, byval id as long) as long'废除热键并开释占用的资源'上述五个api因变量是备案体例级热键所必定的,简直实行进程如后文所示public declare function showwindow lib "user32" (byval hwnd as long, byval ncmdshow as long) as long'本因变量是实行湮没的中心,参数hwnd既是须要湮没项手段句柄'ncmdshow参数不妨确定使湮没仍旧表露public declare function getcursorpos lib "user32" (lppoint as pointapi) as long'本因变量获得暂时鼠标地方场所的屏幕坐标public declare function windowfrompointxy lib "user32" alias "windowfrompoint" (byval xpoint as long, byval ypoint as long) as long'本因变量按照屏幕坐标归来被湮没项手段句柄public type pointapi x as long y as longend type'鼠标坐标典型设置public const sw_hide = 0'湮没常数public const sw_show = 5'表露常数public const wm_hotkey = &h312 '热键标记常数,用来确定当键盘按键被按下时能否掷中了咱们设定的热键public const gwl_wndproc = (-4)public prewinproc as long, myhwnd as long,uvirtkey as long '设置体例的热键,原阻碍标示,被湮没的名目句柄 '请紧记底下的热键阻挡因变量,它将对你未来编写windows32高档遏制步调大有扶助!public function wndproc(byval hwnd as long, byval msg as long, byval wparam as long, byval lparam as long) as long'热键阻挡进程 if msg = wm_hotkey then'即使阻挡到热键标记常数  if wparam = 1 then   '即使是咱们的设置的热键f12...   '为了俭朴篇幅,我对热键阻挡处置不利害常精细...   hidedone   '实行湮没鼠标所指名目  end if  end if  '即使不是热键,大概不是咱们树立的热键,交还遏制权给  '体例,连接监测热键  wndproc = callwindowproc(prewinproc, hwnd, msg, wparam, lparam)end functionpublic sub hidedone()'最要害的名目湮没进程public sub hidedone()dim pt32 as pointapigetcursorpos pt32 ''获得鼠标屏幕坐标myhwnd = windowfrompointxy(pt32.x, pt32.y)''获得地方场所窗体名目句柄if myhwnd = chinahide.hwnd then exit sub'中断湮没步调自己chinahide.list1.additem (myhwnd)''增添关系消息showwindow myhwnd, sw_hide'实行湮没功效end sub‘模块中断    正文代码不只将向编制程序喜好者展现“湮没引擎”的魅力,也将让您连忙变成一个后盾遏制和体例级热键的编制程序能手。它实用于windows95/98/nt4/me/2000,vb5/6开拓平台。  看到这边,你确定会想到不妨将它运用到何处了吧(比方加个暗号就不妨养护你的桌面!)——心动不如动作,do it by youself!

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.