我是新手,希望我能正确地做到这一点。
我有一个bat文件,它将在hklm \ Apache Software Foundation \ Tomcat下搜索注册码。当我手动单击它时,Bat文件返回答案,但是当Shell使用Excel VBA调用时,它无法搜索该键。这是bat文件:
@echo off
setlocal enableextensions enabledelayedexpansion
set xx=2
for /f "tokens=3 delims= " %%D in (
'reg query \\servername"\hklm\software\Apache Software Foundation\Tomcat" /s /v Version'
) do (
if !xx!==1 set "var3=%%D,"
set /a "xx = xx - 1"
)
if "%var3%"=="" (set "var3= ,")
echo %var3%
pause
以下是vba如何调用它: 调用Shell(“C:\ Users \ mynetworkID \ desktop \ c.bat”)
它正确运行bat文件,但无法搜索注册码。有什么想法吗?提前致谢
答案 0 :(得分:0)
Shell()无法在未经许可的情况下绕过regsvr32.exe,可以使用ShellExecute API:
http://support.microsoft.com/kb/238245
希望我有代码,但现在项目不再在我手中了