vb获取启动文件夹路径
为避免因操作系统不同(XP、Vista…)产生错误,为使程序开机自动启动,必须要获取启动文件夹路径(注册表太烦),高手教我,谢谢!
注:不是快速启动,是开机自动启动。
追问:你太有才了!成功了。就是不懂什么意思……SpecialFolders这是什么?
为避免因操作系统不同(XP、Vista…)产生错误,为使程序开机自动启动,必须要获取启动文件夹路径(注册表太烦),高手教我,谢谢!
注:不是快速启动,是开机自动启动。
追问:你太有才了!成功了。就是不懂什么意思……SpecialFolders这是什么?
答案:如果你用VB做一个程序需要它开机自动运行,必须做完了之后先运行一下,让他通知系统当系统重启的时候自动运行它,然后运行它之后做它要做的事,因此,现实思路是这样,用VB写一个自动运行功能的函数,并且要判断,如果这个程序被设置成自动运行了,则不用再设置了,如果没有被设置成自动运行则设置一下,设置自动运行的代码可参考如下 VB开机运行是我们经常要用到的,下面给出实现方法代码 有两种方法,1是注册表方式 模块代码Option ExplicitPublic 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 LongPublic Declare Function RegCreateKey Lib \"advapi32.dll\" Alias \"RegCreateKeyA\" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As LongPublic Declare Function RegCloseKey Lib \"advapi32.dll\" (ByVal hKey As Long) As LongPublic Declare Function RegDeleteValue Lib \"advapi32.dll\" Alias \"RegDeleteValueA\" (ByVal hKey As Long, ByVal lpValueName As String) As LongPublic Const REG_SZ = 1Public Const HKEY_LOCAL_MACHINE = &H80000002\'*************************************************************************\'**函 数 名: SetAutoRun\'**输 入: ByVal Autorun(Boolean) -\'**输 出: 无\'**功能描述: 随WINDOWS自动启动/取消启动模块\'**全局变量:\'**调用方法: Call SetAutoRun(True/False)\'**作 者: Mr.David\'**日 期: 2006-09-05 09:07:25\'**修 改 人:\'**日 期:\'**版 本: V1.0.0\'*************************************************************************Public Sub SetAutoRun(ByVal Autorun As Boolean)Dim KeyId As LongDim MyexePath As StringDim regkey As StringMyexePath = App.Path & \"\\\" & App.EXEName & \".exe\" \'获取程序位置regkey = \"Software\\Microsoft\\Windows\\CurrentVersion\\Run\" \'键值位置变量Call RegCreateKey(HKEY_LOCAL_MACHINE, regkey, KeyId) \'建立If Autorun ThenRegSetValueEx KeyId, \"MySoftware\", 0&, REG_SZ, ByVal MyexePath, LenB(MyexePath)ElseRegDeleteValue KeyId, \"MySoftware\"End IfRegCloseKey KeyIdEnd Sub调用方法SetAutoRun(ByVal Autorun As Boolean)2是利用Vb5工程/引用/Windows Script .....
Dim wsh As New WshShell
MsgBox wsh.SpecialFolders("Startup")