VB开机自动运行代码

VB开机自动运行代码,第1张

给你提供我用到的代码:

'初始化全局变量

Option Explicit

Public pathini As String

Public mark As Integer '控制是否自启动的标志变量(1自启动,0不自启动)

'添加删除自启动项目的API函数声明

Public Const HKEY_CLASSES_ROOT = &H80000000

Public Const HKEY_CURRENT_USER = &H80000001

Public Const HKEY_LOCAL_MACHINE = &H80000002

Public Const HKEY_USERS = &H80000003

Public Const HKEY_PERFORMANCE_DATA = &H80000004

Public Const HKEY_CURRENT_CONFIG = &H80000005

Public Const HKEY_DYN_DATA = &H80000006

Public Const REG_NONE = 0

Public Const REG_SZ = 1

Public Const REG_EXPAND_SZ = 2

Public Const REG_BINARY = 3

Public Const REG_DWORD = 4

Public Const REG_DWORD_BIG_ENDIAN = 5

Public Const REG_MULTI_SZ = 7

Declare Function RegOpenKey Lib "advapi32dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

Declare Function RegCreateKey Lib "advapi32dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

Declare Function RegCloseKey Lib "advapi32dll" (ByVal hKey As Long) As Long

Declare Function RegSetValue Lib "advapi32dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long

Declare Function RegSetValueEx Lib "advapi32dll" 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

Declare Function RegDeleteValue Lib "advapi32dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long

'在注册表中添加删除自启动项目的模块

Sub Main()

' 定义hKey 为句柄变量、SubKey为注册表RUN项目变量、Exe为程序名变量

Dim hKey As Long, SubKey As String, Exe As String

'将程序设定成随 Windows 启动而启动

'取程序所在路径,判断是否为根目录并分别加上程序全名并赋值给变量Exe

If Right(AppPath, 1) = "\" Then

Exe = AppPath + AppEXEName + "exe" ' 根目录情况

Else: Exe = AppPath + "\" + AppEXEName + "exe" ' 非根目录情况

End If

SubKey = "Software\Microsoft\Windows\CurrentVersion\Run" ' 设置项目

RegCreateKey HKEY_LOCAL_MACHINE, SubKey, hKey ' 取得句柄

RegSetValueEx hKey, "时间助手", 0, REG_SZ, ByVal Exe, LenB(StrConv(Exe, vbFromUnicode)) + 1 ' 写入键值

RegCloseKey hKey ' 关闭句柄

End Sub

自己看吧,很简单的,修改一下就可以用了

1 新建安装部署项目

打开VS2005,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目),然后点击确定。

2 安装向导

关闭后打开安装向导,点击下一步,或者直接点击完成。

3 开始制作

安装向导完成后即可进入项目文件夹:

双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来。然后右击你的文件,创建快捷方式,然后把快捷方式分别复制或剪切到左边的"用户的'程序'菜单"和"用户桌面"中。这样安装程序安装完成后会在 "开始->所有程序"和"桌面"上生成程序的快捷方式。也可以直接在"用户的'程序'菜单"和"用户桌面"相应目录下新建快捷方式,然后定位到你的文件。

然后右击左边的"应用程序文件夹"打开属性对话框:将属性中的"DefaultLocation"的路径中的"[Manufacturer]"去掉,不然的话做好的安装程序默认安装目录会是"C:\Program Files\你的用户名\安装解决方案名称";

然后打开解决方案管理器,右击你的解决方案名称,选择属性:打开的属性页中,选择"系统必备", 在打开的系统必备页中,在"指定系统必备安装组件的位置"中选中如下选择项:从与我的应用程序相同的位置下载系统必备组件。选上以后,在生成的安装文件包中包含NetFramework组件 。好了,这样就完成99%了,然后点击"生成->生成解决方案",生成成功!

我以前参考过的,希望对你有帮助。

>

新建两个 label1 的组,一个是 label1(0) 另一个是 label1(1)

新建三个 command

新建一个 timer代码如下:

Dim dd As Integer

Dim ff As Boolean

Private Sub Command1_Click()

Timer1Enabled = False

Timer1Interval = 3000

Timer1Enabled = True

ff = True

Label1(1)Caption = "!"

Label1(1)ForeColor = &HFF

Command2Visible = False

Command1Visible = False

Command3Visible = True

End Sub

Private Sub Command2_Click()

dd = dd + 1

Select Case dd

Label1(1)Caption = "离关机还有 " & 65 - dd & " 秒。"

End Select

End Sub

Private Sub Command3_Click()

ff = True

End

End Sub

Private Sub Form_Load()

Command3Visible = False

dd = 0

ff = False

End Sub

Private Sub Form_Unload(Cancel As Integer)

If Not (ff) Then

Cancel = True

End If

End Sub

Private Sub Timer1_Timer()

If ff Then End

If dd < 65 Then

dd = dd + 1

Label1(1)Caption = "离关机还有 " & 65 - dd & " 秒。"

Else

Shell "shutdown -s -t 0"

ff = True

End If

End Sub 编写好后 把该VB程序放到 开始菜单-程序-启动 里面 就行了

把程序放入

C:\Documents and Settings\All Users\开始\程序\启动

这个文件夹中,不只VB脚本,其他的bat (批处理程序) exe(应用程序) 也可以放进去运行的这个文件夹中的程序都是开机自动运行的

上面的路径中,All Users针对所有用户,你也可以针对某个用户单独改变

'API声明:

Private Type PROCESSENTRY32

dwSize As Long

cntUsage As Long

th32ProcessID As Long

th32DefaultHeapID As Long

th32ModuleID As Long

cntThreads As Long

th32ParentProcessID As Long

pcPriClassBase As Long

dwFlags As Long

szExeFile As String 1024

End Type

Const TH32CS_SNAPHEAPLIST = &H1

Const TH32CS_SNAPPROCESS = &H2

Const TH32CS_SNAPTHREAD = &H4

Const TH32CS_SNAPMODULE = &H8

Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)

Const TH32CS_INHERIT = &H80000000

Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long

Private Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long

Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

'查找进程的函数

Private Function fun_FindProcess(ByVal ProcessName As String) As Long

Dim strdata As String

Dim my As PROCESSENTRY32

Dim l As Long

Dim l1 As Long

Dim mName As String

Dim i As Integer, pid As Long

l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)

If l Then

mydwSize = 1060

If (Process32First(l, my)) Then

Do

i = InStr(1, myszExeFile, Chr(0))

mName = LCase(Left(myszExeFile, i - 1))

If mName = LCase(ProcessName) Then

pid = myth32ProcessID

fun_FindProcess = pid

Exit Function

End If

Loop Until (Process32Next(l, my) < 1)

End If

l1 = CloseHandle(l)

End If

fun_FindProcess = 0

End Function

'运行程序的子程序

Private Sub runexe(Byval exename as String)

Call Shell("rundll32exe urldll,FileProtocolHandler " & exename, vbHide)

End Sub

'窗体内部代码

’需要加入一个Timer控件,Interval属性设置为每多少毫秒检测一次。

Private Sub Timer1_Timer()

if fun_FindProcess("你要查找软件的进程名,例如avpexe")=0 then

runexe "要运行程序的路径,例如C:\1exe"

end if

要使用该程序必须让这个VB程序一直运行,Timer的Interval属性值太低会大量消耗内存。

以上就是关于VB开机自动运行代码全部的内容,包括:VB开机自动运行代码、vb.net做安装包,安装后自动运行程序、VB代码:让电脑开机自动运行EXE程序,运行EXE后,再自动执行关机命令…如此反复…求代码…并做相应解释等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9401886.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存