VB6中如何用shell执行如下语句

来源:百度知道 编辑:UC知道 时间:2024/05/13 00:29:33
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Cache /t reg_expand_sz /d "%drive_letter%\My Folder\Temporary Internet Files" /f
其实这一长串是DOS命令行下用来添加注册表项的,因为我不想用API,所以想用shell看看能否实现这一长串命令,楼上的方法行不通,我用chr(34)也试过,也不行。

还是没找到我要的答案,我现在用的方法是:
Open Environ("windir") & "\system32\RunMove.bat" For Output As #1
Print #1, "reg add"; " "; Chr(34) + "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" & Chr(34); " "; "/v Cache /t reg_expand_sz /d"; " "; Chr(34) + Text1.Text & Chr(34); " "; "/f"
Close #1
也就是把字符串写入到BAT文件中,再用shell执行BAT文件,唉,就是不想用这种方法,如果能直接在shell里执行就OK了!

我并不建议你这么做.
shell语句是可行的,但是你这条语句里有"这个字符
所以用vb实现可以这样.
shell("cmd /c " & 你的一大串)
但是注意!!vb不是别你的"为string而是认为string结束符.
所以你的一大串要这样表示

"reg add " & """ & "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"& """ & " /v Cache /t reg_expand_sz /d " & """ & "%drive_letter%\My Folder\Temporary Internet Files" & """ & " /f"

还有一个方法,就是有点麻烦.
如果愿意的话可以尝试.
建立一个richtextbox,并让被一个按钮挡住(看不到了),然后向其中输入你的dos命令.
用richtextbox的save方法,保存文件到一个固定的文件夹为C.bat
然后shell c.bat
记住,一定要wait=true 然后,等程序执行完,kill

shell可以调用.exe文件,这条语句的可执行文件就是%windir%\system32\reg.exe

楼上的方法是可行的,语法本身没有错误

如果楼主是想通过此方法来改变Temporary Internet Files的位置的话,同时还要修改HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell