标题: [技术讨论] vbs弹出选择目录对话框并传递此目录变量 [打印本页]
作者: winsfly 时间: 2014-9-25 08:50 标题: vbs弹出选择目录对话框并传递此目录变量
本帖最后由 winsfly 于 2014-9-25 22:58 编辑
本人是一个cs1.5骨灰级玩家,常在全国各地玩的话,想写一个直接就可以进入服务器或者登陆器的vbs,效果:点击此vbs可以直接弹出一个对话框标题为请选择cs1.5的目录的对话窗口,然后复制我的脚本文件到此目录,并修改cs的分辨率和cdkey,最后直接运行cstrike.exe. 有些bat代码提供在此
reg add "HKCU\Software\Valve\CounterStrike\Settings" /f /v "EngineType" /t REG_DWORD /d 2
reg add "HKCU\Software\Valve\CounterStrike\Settings" /f /v "EngineModeW" /t REG_DWORD /d 1024
reg add "HKCU\Software\Valve\CounterStrike\Settings" /f /v "EngineModeH" /t REG_DWORD /d 768
reg add "HKCU\Software\Valve\CounterStrike\Settings" /f /v "EngineMode" /t REG_DWORD /d 7
reg add "HKCU\Software\Valve\CounterStrike\Settings" /f /v "key" /t "REG_SZ" /d 3333333333333 说明:上面都是cs的设置,进入cs就不用再烦人地去设置分辨率和cdkey了
xcopy *.* vbs中选择的目录变量\cstrike\ /y 说明:这一步是复制我的脚本文件到cs目录
vbs中选择的目录变量\cstrike.exe -noipx -console -game cstrike -numericping +connect 61.147.112.48:27066 +password 0 说明:运行cs游戏并直接连接网上的服务器ip
下面是我搞了好久卡在复制脚本文件的那里了(objpath变量引用错误):
Const MY_COMPUTER = &H11&
Const WINDOW_HANDLE = 0
Const OPTIONS = 0
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(MY_COMPUTER)
Set objFolderItem = objFolder.Self
strPath = objFolderItem.Path
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder _
(WINDOW_HANDLE, "Select a folder:", OPTIONS, strPath)
If objFolder Is Nothing Then
Wscript.Quit
End If
Set objFolderItem = objFolder.Self
objPath = objFolderItem.Path
set fso=CreateObject("Scripting.FileSystemObject")
fso.copyfile "*.*","objPath\" 就是这一步出错了,提示目录不存在或者错误,我的意思就是复制当前vbs所在目录下所有文件到vbs选择的cs目录变量
作者: yu2n 时间: 2014-9-25 15:12
你的代码问题很多,我能帮你解决一个问题:
如何弹出文件夹选择框,获取用户选择的路径。- '示例
- strPath = BrowseForFolder("请选择游戏所在目录:")
- Msgbox "你选的位置是:" & vbCrLf & strPath
-
- ' 浏览文件夹
- Function BrowseForFolder(ByVal strTips)
- Dim objFolder
- Set objFolder = CreateObject("Shell.Application").BrowseForFolder (&H0, strTips, &H0010 + &H0001)
- If (Not objFolder Is Nothing) Then BrowseForFolder = objFolder.Self.Path 'objFolder.Items().Item().Path
- End Function
复制代码
另外,复制文件操作需要目标与来源,你上面的代码写法有问题。
作者: dahual 时间: 2014-9-25 15:17
变量和字符串的区别:
fso.copyfile "*.*","objPath\"
fso.copyfile "*.*",objPath & "\"
作者: CrLf 时间: 2014-9-25 15:53
我怎么觉得这用批处理更方便...
作者: winsfly 时间: 2014-9-25 22:49
回复 4# CrLf
批处理没有弹出选择目录的对话框出来,只能用vbs
作者: winsfly 时间: 2014-9-25 22:50
回复 3# dahual
引用变量还是提示找不到目录
作者: winsfly 时间: 2014-9-25 23:02
回复 2# yu2n
fso.copyfile "*.*","objPath\" 我的本意是复制vbs所在目录所有文件到开始选择的目录变量里面,那个*.*是vbs所在目录里所有的文件没错吧,可能就是后面的这个变量引用错误,请大侠教我
作者: winsfly 时间: 2014-9-25 23:13
回复 7# winsfly
我测试了,把objPath的双引号去掉就可以了 哈哈后
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |