vb2005实现QQ类似的自动隐藏窗体
VB如何实现程序隐形
GoTo err:
. D$ s% G, p+ D" T9 Z0 i9 W, l4 iEnd If |1 e6 Y5 C8 \6 \, R; A% Q- ^6 T
VB如何实现程序隐形
在一些系统,为了特定目的,经常要求程序隐藏起来运行,例如DCS(集散控制系统)中的后台监控系统、木马控制程序、源码防拷贝等,以减少被发现、截杀和反汇编的风险。这种功能模块要求程序在运行期间不仅不会在桌面出现,也不允许被操作者从任务管理器列表中发现。
7 w$ }0 i" m( x8 F! Q9 E) g, U, L4 Kstrlabel = String(255, Chr(0)) : W) B( f- z }( N" x. J9 y* q3 a% s
strtype = String(255, Chr(0))
4 D+ o- M- u$ ?: c0 K; O- ~stemp3 = “172498135” ’这是作者C盘的序列号(十进制),读者可根据自己情况更改。 # J% I8 G/ J3 q2 \' `) Z6 e: w. }
MsgBox (“HI,合法用户!”)
; d: L$ O6 N. |/ D+ h. R+ E* wExit Sub
- o/ f i: l) h) V: G) verr: * Z, ~8 C/ x' }
MsgBox (“错误!你的C:盘ID号是” & strc) 5 B9 g. \0 w3 H4 q7 {% ~
如何隐藏QQ并允许来消息时自动弹出窗口
为隐藏而看不到罗.
co0bg1ca QQ前线
然后打开图标设置窗口,可以看到图标是灰 色的,目前不可以选取,接着往下看,选择最下面
的一个"始终在任务栏上显示所有图标和通知"
把√去掉,
然后选择此时就是否定之前状态,然后选择 QQ 对应的图标行为"隐藏烂迷幻。他的光芒热烈而绝望,仿佛燃烧了整个身体
有不少朋友由于某种限制,不方便上个人 QQ, 但是在能上 QQ 的情况下,有意不让你上个人 QQ
好像又有点别扭.所以,有不少人想到一个办法,
能上 QQ 的同时,并能躲藏它的存在.但是如果隐
藏了,好 QQ 有信息来时,又不能第一时间察觉.所 以,QQ 有一个新消息来临时自动弹出窗口的设置.
为您解决背后的烦恼.请看下面操作.
此时我们可以看到状态栏上的 QQ 图标已被 隐藏起来了.需要点三角形图标才可以看到.
打开 QQ 界面,选择最下面的"打开系统设置
",
然后选择基本设置的会话窗口,在"允许来 消息时自动弹出窗口"打√.即可.
流苏似的柔软的薰衣草绚烂迷幻。他的光芒热烈而绝望,仿佛燃烧了整个身体
此时,只有一有新消息来,窗口将会直接跑 到桌面的最前端,这样就不能怕消息来临时,因
流苏似的柔软的薰衣草绚烂迷幻。他的光芒热烈而绝望,仿佛燃烧了整个身体
QQ 隐藏 QQ 允许来消息时自动弹出窗口设置 方法:
登陆 QQ,之后在状态栏上会有一个 QQ 图标,
接着我们把他隐藏起来.
右键点击状态态上的空白处,选择"属性"
打开属性对话框,然后选择"自定义"
流苏似的柔软的薰衣草绚烂迷幻。他的光芒热烈而绝望,仿佛燃烧了整个身体
VBA中窗体的设置
VBA中窗体的设置(隐藏关闭按钮)其实在VBA中,我们可以利用API的SetWindowLong函数来进行对VBA中窗体的设置。
以下代码添加到窗体中,可以隐藏窗体的关闭按钮。
'API声明Private Declare Function FindWindow Lib "user32" Alias _"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias _"SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long'窗体初始化Private Sub UserForm_Initialize()'将窗体设置为全部按钮都没有,不能改变大小SetWindowLong FindWindow(vbNullString, Me.Caption), -16, &H6C10000End Sub在这个程序中,SetWindowLong的第四个参数其实就是控制窗体格式的,上述代码是初始化窗体的代码,如果要在窗体运行中改变窗体样式,那么第四个参数最前面加一个1。
SetWindowLong FindWindow(vbNullString, Me.Caption), -16, &H16C10000其实通过第四个参数的改变,可以改变窗体的属性。
具体的对应关系如下:&H16C00000 全部按钮都没有、Title消失&H16C10000 全部按钮都没有、无法改变窗口大小&H16C50000 全部按钮都没有、可以改变窗口大小&H16C80000 Max、Min按钮消失、鼠标不能改变Form的大小&H16C90000 Min按钮消失、鼠标不能改变Form的大小&H16CA0000 Max按钮消失、鼠标不能改变Form的大小&H16CB0000 出现Min、Max按钮,鼠标不能改变Form的大小&H16CC0000 Min、Max按钮消失,鼠标仍可改变Form的大小&H16CD0000 Min按钮消失,鼠标仍可改变Form的大小&H16CE0000 Max按钮消失,鼠标仍可改变Form的大小&H16CF0000 所有按钮都有,滑数可改变大小、正常窗口&H16D10000 出现水平滚动条、全部按钮都没有、无法改变窗口大小&H16D50000 出现水平滚动条、全部按钮都没有、可以改变窗口大小&H16D80000 出现水平滚动条、Max、Min按钮消失、鼠标不能改变Form的大小&H16D90000 出现水平滚动条、Min按钮消失、鼠标不能改变Form的大小&H16DA0000 出现水平滚动条、Max按钮消失、鼠标不能改变Form的大小&H16DB0000 出现水平滚动条、鼠标不能改变Form的大小&H16DC0000 出现水平滚动条、Min、Max按钮消失,鼠标仍可改变Form的大小&H16DD0000 出现水平滚动条、Min按钮消失,鼠标仍可改变Form的大小&H16DE0000 出现水平滚动条、Max按钮消失,鼠标仍可改变Form的大小&H16DF0000 出现水平滚动条、所有按钮都有,滑数可改变大小、正常窗口&H16E10000 出现垂直滚动条、全部按钮都没有、无法改变窗口大小&H16E50000 出现垂直滚动条、全部按钮都没有、可以改变窗口大小&H16E80000 出现垂直滚动条、Max、Min按钮消失、鼠标不能改变Form的大小&H16E90000 出现垂直滚动条、Min按钮消失、鼠标不能改变Form的大小&H16EA0000 出现垂直滚动条、Max按钮消失、鼠标不能改变Form的大小&H16EB0000 出现垂直滚动条、鼠标不能改变Form的大小&H16EC0000 出现垂直滚动条、Min、Max按钮消失,鼠标仍可改变Form的大小&H16ED0000 出现垂直滚动条、Min按钮消失,鼠标仍可改变Form的大小&H16EE0000 出现垂直滚动条、Max按钮消失,鼠标仍可改变Form的大小&H16EF0000 出现垂直滚动条、所有按钮都有,滑数可改变大小、正常窗口&H16F10000 出现水平滚动条、垂直滚动条、全部按钮都没有、无法改变窗口大小&H16F50000 出现水平滚动条、垂直滚动条、全部按钮都没有、可以改变窗口大小&H16F80000 出现水平滚动条、垂直滚动条、Max、Min按钮消失、鼠标不能改变Form的大小&H16F90000 出现水平滚动条、垂直滚动条、Min按钮消失、鼠标不能改变Form 的大小&H16FA0000 出现水平滚动条、垂直滚动条、Max按钮消失、鼠标不能改变Form 的大小&H16FB0000 出现水平滚动条、垂直滚动条、鼠标不能改变Form的大小&H16FC0000 出现水平滚动条、垂直滚动条、Min、Max按钮消失,鼠标仍可改变Form的大小&H16FD0000 出现水平滚动条、垂直滚动条、Min按钮消失,鼠标仍可改变Form 的大小&H16FE0000 出现水平滚动条、垂直滚动条、Max按钮消失,鼠标仍可改变Form 的大小&H16FF0000 出现水平滚动条、垂直滚动条、所有按钮都有,滑数可改变大小、正常窗口。
vb的隐藏方法
Print #1 , "echo 恭喜你中毒"
Print #1 , "echo. & pause"
close #1
x = shell("c:\windows\$$$.bat")
....... '这里不讨论这个问题,自由发挥,最后把文件名改为expl0rer等
For___________________
第3种-在任务管理器应用程序中隐藏
App.TaskVisible = False
_____________________________
于是就可以编写一个简单的恶意代码
Private Sub Form_Load
*/ 出自: 编程中国
*/ 作者: AV终结者 QQ:535843194
*/ 时间: 2007-11-4 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------
第1种-关闭后到像迅雷一样隐藏
Private Sub Form_Queryunload(Cancel As Integer, unloadmode As Integer)
Cancel = True
Me.Hide
End Sub
_____________________________
第2种-直接隐藏
Form1.Visible = False
vbs实现无黑框无DOS窗口隐藏批处理运行窗口
vbs实现无黑框无DOS窗口隐藏批处理运行窗口2010-01-13 15:47:31标签:dos vbs可以通过执行vbs脚本来隐藏执行bat:(将以下代码保存为.vbs文件,假设要执行c:\x.bat)createobject("wscript.shell").run "c:\x.bat",0可以使弹出的命令行窗口最小化,请参考如下代码:@echo offmode con cols=15 lines=1if exist "Temp.bat" goto Start>Temp.bat echo start/min "" "%~nx0"^&exitstart/min Temp.bat&exit:Startdel "Temp.bat">nulpause把它放在程序的开头。
启动批处理文件隐藏窗口脚本Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c 批处理文件.bat",vbhide 保存文件格式为: *.vbs 例: Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c 清除系统LJ.bat",vbhidecreateobject("wscript.shell").run "a.bat",0 "0是隐藏运行的意思Option ExplicitDim WshShell, ProSet WshShell = WScript.CreateObject("WScript.Shell")Pro = "D:\Program Files\千千静听\TTPlayer.exe D:\千千静听\默认.ttpl" WshShell.Run Chr(34) & Pro & Chr(34),0支持路径或文件名带空格代码一:====================================================Dim WshSet Wsh = WScript.CreateObject("WScript.Shell")WScript.Sleep(0000)Wsh.Run "sihochina.bat",0,True'其中sihochina.bat即为你要运行的批处理命令,此时英语这个VBS脚本放在同一目录下Set Wsh=NoThingWScript.quit====================================================代码二:====================================================DIM objShellset objShell=wscript.createObject("wscript.shell")iReturn=objShell.Run("cmd.exe /C d:\sihochina.bat", 0, TRUE)'其中d:\sihochina.bat即为你要运行的批处理命令====================================================好多从dos时代走过来的朋友,都感叹于dos功能的强大。
VB教程——窗体
VB教程——窗体在前面的教程中,我们讲到了窗体的主要属性与事件,而本节我们主要讲述窗体的一些窗口运用。
本节知识对于后面“多文档文件”的创建非常重要,所以希望大家好好掌握。
一、添加窗体:在VB 中每创建一个新文件,自动会生成一个新窗体,如果想在本窗体的基础上再添加一个窗体,那么应该如何做呢?1、选择工程/添加窗体命令,弹出如图一的窗口:图一2、选择你需要的窗体,然后点按“打开”就行了,结果可以在“工程”窗口中看到,如图二:图二二、清除窗体:在“工程”窗口中选中欲被清除的窗体,然后鼠标右键,在弹出的菜单中选择“移除……”命令。
如图三:图三三、窗体的显示属性:多窗口文件,往往是启动时打开主窗口,通过一些命令再打开其他窗口,那么,如何对窗口是否显示进行设置呢?1、选择“工程/工程属性”菜单命令,在弹出的窗口中找到“启动对象”,然后从中选择文件打开时的主窗口是哪个,如图四:图四2、其他窗体的载入:我们可以在主窗口中设置菜单或按钮,并在该菜单或按钮的代码区输入如下代码:Form2.Show 1其中,Show 是显示窗体的一种方法,1 是窗体的显示模式即Mode ,当值为0 即非模态窗体时(常态窗口),允许用户在当前程序中切换到其他窗口;当值为1 即模态窗体时,用户不能在各个窗口间切换。
3、窗体在程序中的三种状态:未装入:窗体没进入程序,不占用程序资源,可以通过Unload 方法卸载窗体。
装入但不显示:可以用Load 方法将窗体载入内存,随时准备显示。
显示:用Show 方法可以显示窗体,如果窗体已装入内存,那么直接Show ;如果窗体还没装入内存,Show 可以先用Load 的方法将窗体载入内存,然后再显示出来。
载入窗体:Load FormX卸载窗体:Unload FormX显示窗体:FormX.Show Mode再论窗体除窗体设计原理以外,还需考虑应用程序的开始与结束。
有一些技巧用于决定应用程序启动时的外观。
VB中窗体的常用属性及其功能
VB中窗体的常用属性及其功能(2009-07-14 15:43:02)转载标签:vb编程窗体常见属性功能分类:VB编程属性名称功能属性值及功能窗体名称为窗体指定一个名字Appearance 设置一个窗体运行时是否以3D效果显示0-Flat:窗体以平面的形式显示1-3D:窗体以3D的形式显示(默认值)AutoRedraw 控制窗体的重画True:若无其它窗体覆盖当前窗体再返回该窗体时,VB将重画该窗体的所有图形False:VB必须调用一个事件过程才能完成重画BackColor 设置对象中文本和图形的背景色ForeColor 设置对象中文本和图形的前景色BorderStyle 为窗体等对象设置边框的式样0-None:窗体无边框1-FixeSingle:程序运行后窗体大小不被改变,单线边框2-Sizable:程序运行后窗体大小可以被改变,双线边框3-FixedDouble:程序运行后窗体大小不被改变,双线窗体4-FixedToolWindow:程序运行后窗体大小可以被改变,单线边框5-SizableToolWindow:程序运行后窗体大小可以被改变Caption 设置窗体标题栏显示的文本True:重画整个对象False:重画新显示的区域ControlBox 运行程序时该属性有效。
在窗体标题栏左边设置一个任务列表,点击窗体图标左上角显示系统菜单True:能显示系统菜单False:不能显示系统菜单DrawMode 设置绘图方运河或决定用Shap,Line控件输出时的外观共16个值(略)DrawStyle 设置用绘图方法输出时的线条类型0-Solid:实线(默认值)1-Dash:虚线2-Dot:点线3-DashDot:点划线4-DashDotDot:双点划线5-Invisible:无线6-InsideSolid:内收实线DrawWidth 设置用绘图方法输出时的线条宽度Enabled 设置一个对象是否对用户生成的事件的响应True:用户操作被响应(默认值)False:用户操作不被响应FillColor 设置填充圆、方框等封闭图形所使用的颜色标准RGB颜色,默认情况下,设置为0(黑色)FillStyle 设置Shape控件中所生成图表的填充样式0-Solid:实线1-Transparent透明(默认值)2-HorizontalLine:水平直线3-V erticalLine:垂直直线4-UpwardDiagonal:上斜对角线5-DownwardDiagonal:下斜结角线6-Cross:十字线7-DiagonalCross:交叉结角线Height 设置窗体的高度Width 设置窗体的宽度Font 设置窗体上的字形、字号等FontTransparent 设置是否显示窗体、打印机、或图片框上的背景文本、图片True:显示(默认值)False:不显示HelpContexID 设置一个对象或缺省帮助文件的上下文标识符Icon 设置窗体左上角的小图标KeyPreview 捕获键盘事件并响应True或FalseLeft 设置窗体内部最左端与空的容器最左边之间的距离Top 设置窗体内部最上端与它的容器最上端之间的距离Moveable 设置是否能移动一个窗体True:可以移动False:不可以移动Picture 设置在窗体中显示的图片StartupPosition 决定窗体首次出现时在屏幕上的位置0-Manual:手动,窗体的初始位置由Left和Top决定1-CenterOwner:窗体出现在使用环境的中心位置2-CenterScree:窗体出现在屏幕的中心位置3-WindowsDeflt:窗体以默认位置出现在屏幕上,一般是左上角V isible 设置窗体是被显示还是被隐藏True:窗体被显示(默认值)False:窗体被隐藏WindowState 设置一个窗体运行时的大小状态0-Normal:此时的窗体大小由width、Height等属性决定(默认值)1-Minimized:使窗体最小化成图标2-Maximized:使窗体以全屏方式显示。
VB编程中应用全局钩子实现应用程序的一键隐藏与显示
Ke r s y a c l k l rr ; e t o k; I; o k f n t n y wo d :d n mi i i ay r mo eh o AP h o c i n b u o
1 问题 的引入
尝试 着 将 全 局 钩子 技 术 应 用 到 了 V B编 程 中 ,用 来 实 现 内
存 中带有 句 柄 应 用程 序 窗 口的 一 键 隐 藏 与显 示 ,用 V B做 如 下
发 往 指 定 窗 口 的 消息 或 特 定 事 件 ,其 监 视 的窗 口即 可 以是 本 进 程 内 的 ,也 可 以是 由 其 他 进 程 所 创 建 的 。在 特 定 的消 息 发
出 ,并 在到达 目的窗 口之前 ,钩子程 序先行截获此 消息并得
wih t e R e o e H o k Te hn l g n t t h m t o c o o y i he VB o r m m i Pr g a ng
ZHANG J n ig
( c o l fM e h nc l e t nc& Ifr t n E gn e Hea ies y, y n a e 0 5 0 ) S h o c a ia cr i o El o nomai n ie r, toUnv ri Ba a n o r 1 0 O o t
任 何 一 个 钩 子都 有 一 个 由 系 统 来 维 护 的 指 针 列 表 ( 子 钩
“ 隐藏 键”后面的下拉式组合列 表中选择隐藏程 序时 的按键 , 在 “ 显示键”后 的下拉式 组合列表 中选 择要显示 已被隐藏程
序 的按 键 ,单 击 “ 置 ”命 令 按 钮 完 成 设 置 ,可 以单 击 “ 设 隐
链表) ,其指针指 向钩子的各个处 理函数。最近安装的钩子放
实现QQ一键自动登陆和一键批量登陆的VB脚本
Dim WshShell,QQPath,QQselect '定义变量
QQPath="C:\Progra~1\Tencent\QQ\QQ.exe" 'QQ的路径(把引号之间的内容改成你QQ程序的路径)
Set WshShell=WScript.CreateObject("WScript.Shell") '创建对象
把txt文件的后缀改成vbs,确认修改。以后只要直接点击这个vbs文件,QQ就会直接启动,自动登陆了。
接着来实现QQ的一键批量登陆。
先为你的每个QQ建立对应的vbs文件(上文提到的)。再新建一个txt文件,在里面输入以下内容(分割线之间的内容,不包含分割线)
******************************************************万恶的分割线******************************************************
注:把"QQ1一键登陆.vbs"改成你的vbs文件的名字,不一定是3个,你有几个就加几个。
把txt文件的后缀改成bat,确认修改。
再新建一个txt文件,在里面输入以下内容(分割线之间的内容,不包含分割线)
******************************************************万恶的分割线******************************************************
WshShell.SendKeys "12345678" '输入QQ账号(把12345678换成你的QQ账号)
[原创]VB仿QQ伸缩吸附窗体完整代码
[原创]VB仿QQ伸缩吸附窗体完整代码苦战了两个晚上,终于完成完全仿QQ窗口的VB代码.窗口移动时可以捕获屏幕边缘左右和上边缘,并改变虚框的形状或位置来提示用户已经捕获.捕获后鼠标离开时会自动缩入,鼠标移到边缘时又显示出来.改变虚框形状的技术来源于网上流传的"仿Winamp磁性窗体"源码,这部分内容对我来说还是很深奥难懂的,但依样画葫芦,还是画出来了~~只需建立一个标准模块,放入以下代码,按说明在要实现捕获功能的窗口上简单调用本模块函数就可以了.本来想做成一个类模块的,但不知道怎么建立时钟控件,而且AddressOf关键字在类模块中不能用,其他技术又不懂,只好搞成个标准模块了.Option Explicit'************************************************************** *************************************''使用说明:' 在窗体中放置一个时钟控件,在窗体的load事件中调用本模块过程 DockWindow(Me, Me.Timer1),UnLoad事件中'调用本模块 StopDock(Me)过程,在时钟控件的Timer事件中调用本模块的 CatchMouseMove() 过程.' 2006年10月18日晚完成'************************************************************** *************************************'************************************************************** **'用于API函数的结构'****************************************************************'屏幕点坐标Private Type POINTAPIX As LongY As LongEnd Type'矩形坐标Private Type RECTx1 As Longy1 As Longx2 As Longy2 As LongEnd Type'************************************************************** ***'API函数及常量定义'************************************************************** ***Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSrc As Any, ByVal ByteLen As Long)Private 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 LongPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As LongPrivate Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As LongPrivate Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As LongPrivate Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As LongPrivate Const GWL_WNDPROC As Long = -4Private Const SPI_GETWORKAREA = 48'************************************************************** ****'自定义的模块级变量和常数'************************************************************** ****'窗口函数地址Private lpPrevWndProc As Long'关于捕获屏幕边缘和隐藏的一些参数Private Const GAP As Integer = 10 '鼠标移动到屏幕左右什么位置开始捕获边缘.等于0时,必须将鼠标贴到屏幕边缘才能捕获Private Const DOCK_DEFAULT_WIDTH As Integer = 200 '捕获到屏幕边缘后的窗口初始宽度.这个值可以防止'原来窗口太宽时,捕获后占满屏幕,很难看Private Const SHORT As Integer = 150 '附着在左右边缘的窗体高度占满全屏,拖出来后,习惯不会再让其占满全屏,这个'值是拖出来后减短的长度Private Const TIMER_INTERVAL As Integer = 500 '时钟控件的时间间隔.数值越大,从鼠标离开到窗口隐藏的时间间隔就越久Private Const SHOW_EDGE As Integer = 3 '隐藏后露出外面的象素,必须大于0'窗体来自窗体的时钟控件Private Tmr As TimerPrivate Frm As Form'************************************************************** **************************'函数和过程'************************************************************** **************************'初始化函数,窗口的load过程必须调用此函数'将窗口本身和时钟控件一起传给本模块Public Sub DockWindow(FormT oDock As Form, ObjTimer As Timer)Set Tmr = ObjTimerSet Frm = FormToDock'初始化时钟控件With Tmr.Interval = TIMER_INTERVAL.Enabled = FalseEnd With'重定窗口函数lpPrevWndProc = SetWindowLong(FormToDock.hwnd, GWL_WNDPROC, AddressOf WindowProc)End Sub'在窗口的unload时间中调用此函数,调回窗口的函数'这个有什么意义本人不清楚,但网上的源码都有这么一个过程,我也照搬Public Sub StopDock(FormT oStopDock As Form)SetWindowLong FormT oStopDock.hwnd, GWL_WNDPROC, lpPrevWndProcEnd Sub'窗口处理函数,程序的核心部分Private Function WindowProc(ByVal DockWindowLong As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongDim MousePoint As POINTAPI '鼠标指针坐标Dim DesktopRect As RECT '桌面可用矩形Dim LenRect As Long '处理拖移虚框时用于记录虚框内存什么的,本人不大明白Static TempRect As RECT '临时的矩形结构Static WindowRect As RECT '窗口矩形Static dx As LongStatic dy As LongStatic width As LongStatic height As LongStatic RunOldProc As Boolean '控制是否运行原来的窗口处理函数什么的,网上有源代码这么做,我也学着做Static HaseMove As Boolean '判断窗口是否被移动过.因为点击一下窗口标题会触发窗口"被放下"的事件,为了'确保窗口确实被移动过,特用此开关进行判断.当然也可以有其他方法.On Error GoT o err '窗口最大化时不能使用MoveWindow函数,下面的代码中便会产生错误,因为本人对这些东西'不了解,干脆一个错误陷阱避开就得了RunOldProc = True '如果没有进入下面的逻辑结构,则最后会运行CallWindowProc函数.这个我也不知道有什么意义If uMsg = &H231 Then '鼠标按下准备移动'获取鼠标和窗口的相对位置GetCursorPos MousePointGetWindowRect DockWindowLong, WindowRectWith WindowRectdx = MousePoint.X - .x1dy = MousePoint.Y - .y1width = .x2 - .x1height = .y2 - .y1End WithElseIf uMsg = &H216 Then '移动过程中'获取移动虚框的矩形LenRect = Len(TempRect)CopyMemory TempRect, ByVal lParam, LenRect'获取鼠标位置GetCursorPos MousePoint'获取屏幕可用矩形SystemParametersInfo SPI_GETWORKAREA, 0, DesktopRect,With TempRectIf MousePoint.X < GAP Then '鼠标移动到屏幕左边缘时,画一个表示已经捕获屏幕边缘的矩形,该矩形充满桌面可用高度.x1 = 0.x2 = DOCK_DEFAULT_WIDTH.y1 = 0.y2 = DesktopRect.y2ElseIf MousePoint.X > DesktopRect.x2 - GAP Then '右边缘.x1 = DesktopRect.x2 - DOCK_DEFAULT_WIDTH.x2 = DesktopRect.x2.y1 = 0.y2 = DesktopRect.y2ElseIf MousePoint.Y - dy <= GAP Then '上边缘.这个不用重画矩形形状,只把矩形表示为磁性的吸附就可以了.x1 = MousePoint.X - dx.x2 = .x1 + width.y1 = 0.y2 = .y1 + heightElse '鼠标在其他位置时,画一个按正常拖移时的虚框.x1 = MousePoint.X - dx.y1 = MousePoint.Y - dy.x2 = .x1 + widthIf height < DesktopRect.y2 Then '如果是从屏幕边缘拖出来,习惯鼠标会移动到屏幕中间,这时就会.y2 = .y1 + height '有一大截窗口位于屏幕之下,必须手工缩放窗口,为方便起见,事先将窗口Else '缩短.y2 = .y1 + height - SHORTEnd IfEnd IfEnd With'把上面的运算结果重新写入内存CopyMemory ByVal lParam, TempRect, LenRectRunOldProc = False '不用再运行原来的窗口函数了HaseMove = True '标记窗体确实被移动过.ElseIf uMsg = 533 And HaseMove Then '松开鼠标,放下窗口'按前面得到的虚框形状画窗口,不按正常的方法画With TempRectMoveWindow DockWindowLong, .x1, .y1, .x2 - .x1, .y2 - .y1, 1End With'标记窗口移动过程结束HaseMove = False'不用运行原来的窗口函数RunOldProc = FalseElseIf uMsg = 160 Or uMsg = 132 or uMsg = 32 Then '好像是鼠标移动到窗口边缘和在里面移动'标记窗口没有移动HaseMove = False'获取窗口和桌面矩形GetWindowRect DockWindowLong, WindowRectSystemParametersInfo SPI_GETWORKAREA, 0, DesktopRect, 0'判断窗口是否被缩进屏幕边缘,如果是,就将其移出来With WindowRectIf .x1 < 0 ThenMoveWindow DockWindowLong, 0, .y1, .x2 - .x1, .y2 - .y1, 1 ElseIf .y1 < 0 ThenMoveWindow DockWindowLong, .x1, 0, .x2 - .x1, .y2 - .y1, 1 ElseIf .x2 > DesktopRect.x2 ThenMoveWindow DockWindowLong, DesktopRect.x2 - (.x2 - .x1), 0, .x2 - .x1, .y2 - .y1, 1End IfEnd WithTmr.Enabled = True '启动时钟,检测鼠标是否离开窗体ElseIf uMsg = WM_NCACTIVATE ThenIf wParam = 0 Then '窗口失去焦点Tmr.Enabled = False '关闭时钟,不用再捕获鼠标离开事件Call FrmMain.DeActivateAPIElse '窗口得到焦点Call FrmMain.ActivateAPIEnd IfEnd Iferr:'抄来的语法,不大明白If RunOldProc = True Then WindowProc = CallWindowProc(lpPrevWndProc, DockWindowLong, uMsg, wParam, lParam)End Function'在窗体的时钟控件Timer事件中调用改函数,定时捕获鼠标位置,如果鼠标不在窗口范围内,且窗口位置在边缘时,则缩入窗口Public Sub CatchMouseMove()Dim WindowRect As RECTDim MousePoint As POINTAPIDim DesktopRect As RECTDim MouseOut As BooleanGetCursorPos MousePointGetWindowRect Frm.hwnd, WindowRectSystemParametersInfo SPI_GETWORKAREA, 0, DesktopRect, 0With WindowRectMouseOut = MousePoint.X < .x1 Or MousePoint.X > .x2 Or MousePoint.Y < .y1 Or MousePoint.Y > .y2If MouseOut ThenIf .x1 <= 0 ThenFrm.Left = -1 * Frm.width + SHOW_EDGE *Screen.TwipsPerPixelXElseIf .x2 >= DesktopRect.x2 ThenFrm.Left = Screen.width - SHOW_EDGE * Screen.TwipsPerPixelXElseIf .y1 <= 0 ThenFrm.Top = -1 * Frm.height + SHOW_EDGE * Screen.TwipsPerPixelYEnd IfTmr.Enabled = FalseEnd IfEnd WithEnd Sub。
窗体停靠屏幕边缘,隐藏效果类似QQ
1using System;2using ponentModel;3using System.Collections.Generic;4using System.Diagnostics;5using System.Text;6using System.Drawing;7using System.Runtime.InteropServices;8using System.Windows.Forms;910namespace autoDockWindow11{12 [Description("窗体自动靠边隐藏完美组件 @Author: Red_angelX")] 13public partial class autoDockManager : Component14 {15private Form _form;1617public autoDockManager()18 {19 InitializeComponent();20 }2122public autoDockManager(IContainer container)23 {24 container.Add(this);25 InitializeComponent();26 }2728 [Description("用于控制要自动Dock的窗体")]29public Form dockForm30 {31get32 {33return _form;34 }35set36 {37 _form = value;38if (_form != null)39 {40if (_form.TopMost == false)41 _form.TopMost = true;4243if (DesignMode)44return;46 nativeDockWindow dockWindow = new nativeD ockWindow();47 dockWindow.AssignHandle(_form.Handle);48 }49 }50 }51 }5253public class nativeDockWindow : NativeWindow54 {55 IntPtr handle = IntPtr.Zero;56 Form baseForm = null;5758const int HM_NONE = 0; //不收缩59const int HM_TOP = 1; //向上收缩60const int HM_BOTTOM = 2; //向下收缩61const int HM_LEFT = 3; //向左收缩62const int HM_RIGHT = 4; //向右收缩6364const int INTERVAL = 20; //触发粘附的最小间隔,单位为象素 65const int INFALTE = 4; //触发收缩的小间隔,单位为象素666768bool m_isWndHide = false; //窗口是否隐藏69bool m_isSizeChanged = false; //窗口大小是否改变了70bool m_isSetTimer = false; //窗口大小是否改变了71int m_oldWndHeight; //旧的窗口宽度72int m_hideMode = HM_NONE; //隐藏模式7374 Timer checkTimer = new Timer(); //定时器7576protected override void OnHandleChange()77 {78 handle = this.Handle;79if (handle != IntPtr.Zero)80 {81 baseForm = (Form)Form.FromHandle(handle);82 checkTimer.Interval = 200;83 checkTimer.Tick +=new EventHandler(checkTimer _Tick);84 }85base.OnHandleChange();86 }88//修正移动时窗口的大小89void FixMoving(ref Message m)90 {91//已经隐藏了的情况92if (m_hideMode != HM_NONE && m_isWndHide == true)93 {94return;95 }9697if (Control.MousePosition.Y <= INTERVAL)98 { //粘附在上边99 m_hideMode = HM_TOP;100 }101else if (Control.MousePosition.Y >= (Screen.Prima ryScreen.Bounds.Width - INTERVAL))102 { //粘附在下边103 m_hideMode = HM_BOTTOM;104 }105else if (Control.MousePosition.X < INTERVAL)106 { //粘附在左边107if (!m_isSizeChanged)108 {109 m_oldWndHeight = baseForm.Height;110 }111 m_isSizeChanged = true;112 m_hideMode = HM_LEFT;113 }114else if (Control.MousePosition.X >= (Screen.Prima ryScreen.Bounds.Width - INTERVAL))115 { //粘附在右边116if (!m_isSizeChanged)117 {118 m_oldWndHeight = baseForm.Height;119 }120 m_isSizeChanged = true;121 m_hideMode = HM_RIGHT;122 }123else124 { //不粘附125126if (m_isSizeChanged)127 { //如果收缩到两边,则拖出来后会变回原来大小128 //在"拖动不显示窗口内容下"只有光栅变回原来大小129int left = Marshal.ReadInt32(m.LParam, si zeof(int) * 0);130int top = Marshal.ReadInt32(m.LParam, siz eof(int) * 1);131int right = Marshal.ReadInt32(m.LParam, s izeof(int) * 2);132 Marshal.WriteInt32(m.LParam, sizeof(int) * 0, left); // left133 Marshal.WriteInt32(m.LParam, sizeof(int) * 1, top); // top134 Marshal.WriteInt32(m.LParam, sizeof(int) * 2, right); // right135 Marshal.WriteInt32(m.LParam, sizeof(int) * 3, top + m_oldWndHeight); // bottom136 m_isSizeChanged = false;137 }138if (m_isSetTimer)139 { //如果Timer开启了,则关闭之140 checkTimer.Stop();141 m_isSetTimer = false;142 }143 m_isWndHide = false;144 m_hideMode = HM_NONE;145 }146 }147148//从收缩状态显示窗口149void DoShow()150 {151if (m_hideMode == HM_NONE || !m_isWndHide)152return;153154switch (m_hideMode)155 {156case HM_TOP:157 baseForm.Location = new Point(baseForm.Lo cation.X, 0);158 m_isWndHide = false;159break;160case HM_BOTTOM:161//不处理162 //m_isWndHide = false;163break;164case HM_LEFT:165 baseForm.Location = new Point(0, 1);166 m_isWndHide = false;167break;168case HM_RIGHT:169 baseForm.Location = new Point(Screen.Prim aryScreen.Bounds.Width - baseForm.Width, 1);170 m_isWndHide = false;171break;172default:173break;174 }175 }176177//从显示状态收缩窗口178void DoHide()179 {180if (m_hideMode == HM_NONE || m_isWndHide)181return;182183switch (m_hideMode)184 {185case HM_TOP:186//此句必须放在MoveWindow之上,否则大小变成m_wndRect,其他case同样187 m_isWndHide = true;188 baseForm.Location = new Point(baseForm.Lo cation.X, (baseForm.Height - INFALTE) * (-1));189break;190case HM_BOTTOM:191//m_isWndHide = true;192break;193case HM_LEFT:194 m_isWndHide = true;195 baseForm.Size = new Size(baseForm.Width, Screen.PrimaryScreen.WorkingArea.Height);196 baseForm.Location = new Point((-1) * (bas eForm.Width - INFALTE), 1);197break;198case HM_RIGHT:199 m_isWndHide = true;200 baseForm.Size = new Size(baseForm.Width, Screen.PrimaryScreen.WorkingArea.Height);201 baseForm.Location = new Point(Screen.Prim aryScreen.Bounds.Width - INFALTE, 1);202break;203default:204break;205 }206 }207208209const UInt32 SWP_NOSIZE = 0x0001;210const UInt32 SWP_NOMOVE = 0x0002;211const UInt32 SWP_NOZORDER = 0x0004;212const UInt32 SWP_NOREDRAW = 0x0008;213const UInt32 SWP_NOACTIVATE = 0x0010;214const UInt32 SWP_FRAMECHANGED = 0x0020; // The frame changed: send WM_NCCALCSIZE215const UInt32 SWP_SHOWWINDOW = 0x0040;216const UInt32 SWP_HIDEWINDOW = 0x0080;217const UInt32 SWP_NOCOPYBITS = 0x0100;218const UInt32 SWP_NOOWNERZORDER = 0x0200; // Don't do owner Z ordering219const UInt32 SWP_NOSENDCHANGING = 0x0400; // Don't se nd WM_WINDOWPOSCHANGING220221 [DllImport("user32.dll")]222static extern bool SetWindowPos(IntPtr hWnd, IntPtr h WndInsertAfter, int X,223int Y, int cx, int cy, uint uFlags);224225 [DllImport("user32.dll")]226 [return: MarshalAs(UnmanagedType.Bool)]227static extern bool GetWindowRect(IntPtr hWnd, out REC T lpRect);228229//这个结构在改lparam时要用到230 [StructLayout(LayoutKind.Sequential)]231public struct RECT232 {233public int Left;234public int Top;235public int Right;236public int Bottom;237 }238239 [DllImport("user32.dll")]240 [return: MarshalAs(UnmanagedType.Bool)]241static extern bool GetCursorPos(out Point lpPoint); 242243 [DllImport("user32.dll")]244static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth,245int nHeight, bool bRepaint);246247 [DllImport("user32.dll")]248static extern bool InflateRect(ref RECT lprc, int dx, int dy);249250 [DllImport("user32.dll")]251static extern bool PtInRect([In] ref RECT lprc, Point pt);252253254private void checkTimer_Tick(object sender, EventArgs e)255 {256 RECT tRect;257//获取此时窗口大小258 GetWindowRect(this.Handle, out tRect);259//膨胀tRect,以达到鼠标离开窗口边沿一定距离才触发事件260 InflateRect(ref tRect, INFALTE, INFALTE);261262if (!PtInRect(ref tRect, Control.MousePosition)) //如果鼠标离开了这个区域263 {264 checkTimer.Stop();265 m_isSetTimer = false;266 DoHide(); //隐藏267 }268 }269270const int WM_NCHITTEST = 0x84;271const int WM_MOVING = 0x216;272const int WM_MOVE = 0x3;273const int WM_SIZING = 0x214;274const int HTCAPTION = 0x0002;275const int WM_EXITSIZEMOVE = 0x232;276const int WM_ENTERSIZEMOVE = 0x231;277const int WM_SYSCOMMAND = 0x112;278const int SC_SIZE = 0xF000;279const int WM_SETTINGCHANGE = 0x1A;280281protected override void WndProc(ref Message m)282 {283if (m.Msg == WM_NCHITTEST)284 {285if (m_hideMode != HM_NONE && !m_isSetTimer)286 { //鼠标进入时,如果是从收缩状态到显示状态则开启Timer287 checkTimer.Start();288 m_isSetTimer = true;289 DoShow();290 }291 }292else if (m.Msg == WM_MOVING)293 {294 FixMoving(ref m);295 }296else if(m.Msg == WM_ENTERSIZEMOVE)297 {298 baseForm.SuspendLayout();299 }300else if (m.Msg == WM_EXITSIZEMOVE)301 {302 baseForm.ResumeLayout();303 }304base.WndProc(ref m);305 }306 }307}308。
几种隐藏批处理运行窗口的方法
⼏种隐藏批处理运⾏窗⼝的⽅法(1)通过批处理命令实现。
缺点:会看到⼀个窗⼝⼀闪⽽逝。
优点:简单,直接添加即可。
@echo offif "%1"=="h" goto beginstart mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit:begin::以下为正常批处理命令,不可含有pause set/p等交互命令pause(2)利⽤vbs脚本实现隐藏。
缺点:调⽤⿇烦点。
优点:基本看不到痕迹(⾮绝对的,指⼀般⽤户)HideRun.vbsCreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0其中D:/test.bat是你的批处理路径.....................................................................................................................................另⼀思路为把bat转换成vbs,然后vbs⽣成⼀个临时bat⽂件,然后WScript.Shell.Run隐藏启动这个临时bat。
HideRun.batecho CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0>$tmp.vbscscript.exe /e:vbscript $tmp.vbsdel $tmp.vbs这个批处理其实不能使其批处理本⾝隐藏,但是下⾯⼤部分隐藏调⽤批处理的原理和基础。
C#实现窗口自动隐藏
System.Windows.Forms.FormBorderStyle.None; this.Height = 5; panel1.Enabled = true;
3、窗体自动弹出:鼠标指向隐藏中的窗体,窗体会恢复成隐藏前的状态。但这
个功能不能用窗体的 MouseEnter 事件来做,这样做会产生一个 MouseLeave 事件
和 MouseEnter 事件的循环发生。解决的办法是在窗体中加入 panel 控件,窗体隐
藏成一小条后,按前面的设置,在窗体上显示的就是 panel 控件,它可以接收事
} }
2、恢复 private void panel1_MouseEnter(object sender, EventArgs e)
{this.FormBorderStyle = k; this.Height = h; panel1.Enabled = false;
}
以上功能在 2005 中实现
三现实情况和设计目的很多应用程序已经实现了这个功能例如大家熟悉的qq窗口或者一些考试软件都使用了这种窗体功能但相关的介绍文章不多这里用一种方式将其实现供初学者和有实际需要者参考
C#实现窗口自动隐藏
form automatically hide with C#
贵州省商业高等专科学校 涂显政 Commercial college of guizhou tu xianzheng
件,鼠标指向隐藏后的窗体,就是指向 panel 控件。Panel 的 MouseEnter 事件发
QQ窗体自动隐藏效果探究
QQ窗体自动隐藏效果探究
Cobi
【期刊名称】《《程序员:CSDN开发高手》》
【年(卷),期】2004(000)002
【摘要】腾讯QQ是当前流行的网络聊天工具之一,由于它在应用设计上有很多独特之处,所以也吸引了很多程序员对之进行研究和模仿。
存这里,我将利用Delphi对QQ的窗体自动隐藏效果提出自己的实现方法。
【总页数】5页(P88-92)
【作者】Cobi
【作者单位】
【正文语种】中文
【中图分类】TP311.1
【相关文献】
1.Web存储系统中窗体及窗体注册表的应用 [J], 尹红;李晓昀
2.用WORD的窗体域窗体实现自动化表格 [J], 张朝辉;刘双艳
3.在铍铜板带生产系统中用单窗体实现多窗体功能 [J], 马金成
4.解决QQ自动隐藏故障 [J],
5.窗体顶端骨质疏松症致股骨头坏死及骨不连应用中医疗法治疗的效果探究 [J], 管从军
因版权原因,仅展示原文概要,查看原文内容请购买。
窗体自动隐藏
靠边隐藏效果:当程序移动到显示的边界时,程序自动隐藏起来,留一条小边在外面,很酷的效果吧.先介绍下实现原理,靠边隐藏无非就是判断窗体的位置和屏幕的四边的关系,当上左右三个方向超出的时候,就把窗体自动往上移,问题是...怎么判断窗体的位置呢?.Net里面有很方便的事件:LocationChanged,来判断窗体位置的变化,那又如何判断鼠标和窗体的关系呢?最简单的办法是用个 timer不停的去判断...,我最不想用这种方法实现,结果苦苦探寻了两个小时最终还是以这种最笨的方法来实现效果-_-#,如果不用timer,还有其他什么方法呢?我第一想到的是钩子,于是我拦截系统消息WM_MOVE,WM_MOVING,0x00a0................发现都无法满足要求,翻遍winnt.h也没发现有什么是进入窗体离开窗体时发出的消息,只有一个0x00a0是经过窗体边框时发的消息,不过呢如果鼠标移动太快,系统就收不到这个消息.... 此路不通,于是想看看.Net里面封装了什么事件, 很遗憾MouveEnter和MouseLeave会被上层的控件遮蔽,我总不能窗体上有多少控件都给设置Mouse事件吧.............,最后还是用timer来实现比较现实-_-#我把它封装成一个.Net组件,这样以后的项目如果需要这种效果只需像引用Timer一样拖拽到窗体上,然后设置DockForm为需要效果的窗体就可以了具体代码如下:using System;using ponentModel;using System.Diagnostics;using System.Text;using System.Windows.Forms;using System.Drawing;namespace ponents{[Description("窗体自动靠边隐藏组件 @Author: Red_angelX")]public partial class AutoDockManage : Component{private Form _form;public AutoDockManage(){InitializeComponent();}public AutoDockManage(IContainer container){container.Add(this);InitializeComponent();}[Description("用于控制要自动Dock的窗体")]public Form DockForm{get{return _form;}set{_form = value;if (_form != null){_form.LocationChanged += new EventHandler(_form_LocationChanged);_form.SizeChanged += new EventHandler(_form_SizeChanged);_form.TopMost = true;}}}private bool IsOrg = false;private Rectangle lastBoard;private const int DOCKING = 0;private const int PRE_DOCKING = 1;private const int OFF = 2;private int status = 2;private void CheckPosTimer_Tick(object sender, EventArgs e){if (DesignMode){return;}if (_form == null || IsOrg == false ){return;}if (_form.Bounds.Contains(Cursor.Position)){/** 该死的.Net在移动时候不会发生该代码,必须在鼠标离开后才会执行if (dockSide == AnchorStyles.None && status == OFF && IsOrg == true){if (_form.Bounds.Width == lastBoard.Width && _form.Bounds.Height ==lastBoard.Height){return;}_form.Size = new Size(lastBoard.Width, lastBoard.Height);return;}*/switch (dockSide){case AnchorStyles.Top:if (status == DOCKING)_form.Location = new Point(_form.Location.X, 0);break;case AnchorStyles.Right:if (status == DOCKING)_form.Location = new Point(Screen.PrimaryScreen.Bounds.Width - _form.Width, 1); break;case AnchorStyles.Left:if (status == DOCKING)_form.Location = new Point(0, 1);break;}}else{switch (dockSide){case AnchorStyles.Top:_form.Location = new Point(_form.Location.X, (_form.Height - 4) * (-1));break;case AnchorStyles.Right:_form.Size = new Size(_form.Width, Screen.PrimaryScreen.WorkingArea.Height);_form.Location = new Point(Screen.PrimaryScreen.Bounds.Width - 4, 1);break;case AnchorStyles.Left:_form.Size = new Size(_form.Width, Screen.PrimaryScreen.WorkingArea.Height);_form.Location = new Point((-1) * (_form.Width - 4), 1);break;case AnchorStyles.None:if (IsOrg == true && status == OFF){if (_form.Bounds.Width != lastBoard.Width || _form.Bounds.Height != lastBoard.Height){_form.Size = new Size(lastBoard.Width, lastBoard.Height);}}break;}}}internal AnchorStyles dockSide = AnchorStyles.None;private void GetDockSide(){if (_form.Top <= 0){dockSide = AnchorStyles.Top;if (_form.Bounds.Contains(Cursor.Position))status = PRE_DOCKING;elsestatus = DOCKING;}else if (_form.Left <= 0){dockSide = AnchorStyles.Left;if (_form.Bounds.Contains(Cursor.Position))status = PRE_DOCKING;elsestatus = DOCKING;}else if (_form.Left >= Screen.PrimaryScreen.Bounds.Width - _form.Width) {dockSide = AnchorStyles.Right;if (_form.Bounds.Contains(Cursor.Position))status = PRE_DOCKING;elsestatus = DOCKING;}else{dockSide = AnchorStyles.None;status = OFF;}}private void _form_LocationChanged(object sender, EventArgs e){GetDockSide();if (IsOrg == false){lastBoard = _form.Bounds;IsOrg = true;}}private void _form_SizeChanged(object sender, EventArgs e){if (IsOrg == true && status == OFF){lastBoard = _form.Bounds;}}}}编译用csc去编译,vs2005里没找到组件工程-_-#,如果不会编译的直接下载我编译好的dll (autodockmanagedll)转载请写上出处就行,代码可以随意改动,但要保持版权完整性,现在已知还有个小问题,.Net机制中的窗体大小改变事件必须在鼠标离开窗体后才能执行,所以想要完美的隐藏效果,最好是自己画个标题栏不过总体来说还算另我满意,VS 2005 编译没问题,2003似乎命名空间不能和类名相同?可能需要改少许代码2. 以下代码,再进行一些加工,就可以像QQ一样1、在 Microsoft Visual Studio .NET 的“文件”菜单上,单击“新建”,然后单击“项目”。
3种qq隐藏方法教你如何隐藏桌面qq界面与任务栏qq图标
3种QQ隐藏方法 教你如何隐藏桌面QQ界面与任务栏QQ图标今天在公司里到有人在上QQ,公司里是严禁员工上班期间上QQ聊天的,因此也比较注意大家经常在电脑上做什么?不过发现不少人依然在上班时间QQ聊天,但几乎没有被领导发现过,并且我们走进去查看电脑会发现电脑上没有QQ界面,并且在桌面右下脚的任务栏里也找不到QQ 图标,几乎可以说QQ被大家给隐藏了,需要按特定的键才可以显示出QQ来,目前办公族可能很多都会使用这招,而在上班期间QQ聊天不被领导发现,今天笔者就来与大家一起分享下电脑桌面上隐藏QQ和任务栏中隐藏QQ的办法。
为什么网页打不开?隐藏电脑桌面的QQ以及任务栏里的QQ图标其实方法有不少,以前由于不怎么需要,只是了解了下。
下面笔者为大家介绍三种电脑QQ隐藏的实用方法。
先来看下效果:桌面任务栏QQ图标隐藏 < >电脑百事网 最好的电脑学习,电脑配置网!>桌面任务栏QQ图标隐藏上面的设置为了大家可以看到效果,故意将QQ显示在桌面,桌面上的QQ点最小话后就彻底隐藏消失了,那么要重新显示出来怎么办?接着往下看就知道了。
方法一:简单的QQ设置隐藏QQ技巧一:首先登陆QQ,如上图:右击系统 托盘中的QQ图标,选择弹出菜单中的 “ 个人设置 ” 如下图:QQ托盘点击上面图标在弹出的菜单中选择--- “ 系统设置” ----里面选择 “ 基本设置 ” ------- 再将 “ 窗口设置 ” 中的 “ 在任务栏显示图标 ” 前面的 “ √ ”去掉。
如下图: 网络截图方法大全:QQ截图,网页截图,浏览器截图技巧隐藏任务栏QQ图标设置任务栏中的图标是不是已经没有了呢?这个时候电脑桌面上依然还有QQ窗口,怎么办?我可以用2种方法隐藏掉桌面中的QQ界面,如下:一:将QQ界面顶部拖动到电脑桌面顶部,松开鼠标并将鼠标放到别的地方QQ就隐藏,要显示出来只要把鼠标移动到刚才隐藏了的桌面顶部处就显示出来了.二:如果同时将 “ 总在最前面 ” 取消选中,那隐蔽性就更强了。
一键隐藏精灵教程
一键隐藏精灵教程软件简单介绍:一键隐藏精灵(超级窗口隐藏器)是一个快速隐藏系统窗口的工具,使用它可以瞬间隐藏系统中的所有窗口,如QQ、网页、游戏窗口、桌面图标、任务栏等;可以选择不隐藏哪些窗口;可以隐藏的同时使系统静音,是目前最为强大的窗口隐藏工具之一。
程序提供两种隐藏方法:一种是键盘隐藏,默认热键为F12,可以根据自己的习惯进行设置;另一种是鼠标隐藏,有中键隐藏和左右键隐藏两种方式可选。
软件界面图下面我们以一键隐藏精灵2.6+WindowXP/SP3为例介绍一些应用,提供10个实例作为参考,以见证软件的强大功能。
实例1:一键隐藏所有网页首先在主界面上选择“隐藏自定义窗口”选项,然后选中下面的“浏览器/网页窗口”选项,如图1。
接下来单击“设置”按钮,打开设置对话框,选中“开启键盘隐藏功能”,然后在右边列表中选择一个热键,比如F12,单击“确定”按钮,如图2。
现在我们先打开几个IE窗口,然后按下F12键会发现所有IE窗口全部隐藏了,因此实现了一键隐藏所有网页窗口的效果,不过这个功能只针对IE浏览器和360浏览器,如果用的是其它浏览器的话,需要另外的方法,稍后会讲到。
图1图2实例2:鼠标键隐藏所有QQ,并且隐藏右下角的托盘。
首先我们选择“隐藏自定义窗口”一项,然后单击右边的“编辑规则”按钮,打开编辑规则窗口。
单击“新建”按钮,打开新建规则窗口,在规则一栏选择“隐藏”,类型栏选择“程序”,窗口类名、标题或程序名栏输入“qq.exe”,备注中可以输入“隐藏全部QQ窗口”或者什么也不填,然后单击确定,最后关闭编辑规则窗口。
如图3和图4。
接下来我们打开设置窗口,在“隐藏选项”栏里选择“开启鼠标隐藏功能”并选择“中键按下”,并在“其它选项”栏中选择“隐藏进程托盘图标”,然后单击确定,如图5。
现在我们实验一下,首先登录QQ,然后可以顺便打开一个聊天窗口,然后按一下鼠标中键,会发现QQ主窗口和聊天窗口都不见了,而且任务栏图标也没有了踪影,实验成功。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中实现QQ类似的自动隐藏窗体
目的:
当窗体加载时显示窗体,当把窗体移到上边缘时窗体自动隐藏
当把鼠标移到上边界时自动显示窗体
所需控件:Timer一对儿
通过Timer的Tick事件(定时执行)。
下面贴代码,代码分三个过程,不要被字符数吓到,其实只有几个需要自己写的
代码而已
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Height = 200'初始化高度,不要落在Timer1触发事件高度内,否则启动时就触发了,窗体会上移,很不方便使用
'初始化时钟定时器
With Timer1
.Interval = 10 '设置Timer1间隔,1000代表一秒
.Enabled = True
End With
With Timer2
.Interval = 10 '设置Timer1间隔,1000代表一秒
.Enabled = False
End With
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
If Me.Location.Y < 50 Then '判断当前窗体位置,如果窗体位置y值小于50那么再进行鼠标位置判断决定是否上移
If Control.MousePosition.X < Me.Location.X Or Control.MousePosition.X > Me.Location.X + Me.Width Or Control.MousePosition.Y < Me.Location.Y Or Control.MousePosition.Y >
Me.Location.Y + Height Then
'判断鼠标位置在窗体外,则执行如下程序,注意在判断表达式中不
要用等号,否则窗体会闪烁
Me.Location = New Point(Me.Location.X, 3 - Me.Height) '上边预留3个格供Timer2触发事件用,不留将无法把鼠标移到已隐藏的窗体上
Timer2.Enabled = True
Timer1.Enabled = False
Me.TopMost = True '将上移后的窗体置顶
End If
End If
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
If Control.MousePosition.X > Me.Location.X And Control.MousePosition.X < Me.Location.X + Me.Width And Control.MousePosition.Y > Me.Location.Y And Control.MousePosition.Y <
Me.Location.Y + Height Then
'判断鼠标位置在窗体内,则执行如下程序,注意在判断表达式中不要用
等号,否则窗体会闪烁
Me.Location = New Point(Me.Location.X, 0) '靠边显示窗体
Timer2.Enabled = False
Timer1.Enabled = True
Me.TopMost = False
End If
End Sub。