我需要在不知道完整路径的情况下以Acad.exe的名称启动应用程序。这条路径很难决定安装应用程序的人员的安装。
我怎么能做到这一点?
答案 0 :(得分:3)
应用程序通常将其安装位置存储在注册表中,因此查找它们的首选方法是在注册表中查找适当的位置。这样,您就不会意外地使用相同的文件名启动另一个程序。
假设acad.exe
是AutoCAD,this page gives the locations you have to look up。
答案 1 :(得分:1)
尝试使用任何具有OLE2层接口的语言:
CreateDispatch("Autocad.Application")
在C ++中:
::CoInitializeEx(NULL);
::CreateDispatch("AutoCAD.Application");
使用批处理脚本:
将以下名称保存在`start_autocad.vbs
下set objShell=CreateObject("Autocad.Application")
objShell.Visible = TRUE
cscript start_autocad.vbs
。答案 2 :(得分:1)
如果此 acad.exe 安装符合Windows约定,则安装过程会在注册表中创建一个特殊密钥:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
如果使用所需参数定义 acad.exe ,则可以使用以下简单命令从批处理文件启动它:
START acad.exe
无需指定完整路径,Windows将从相应的AppPath条目中获取它。
答案 3 :(得分:0)
假设它在C:驱动器上,你可以这样做:
@echo off
c:
cd \
for /f "delims=" %%a in ('dir /s /b acad.exe') do set exeLcn=%%a
start %exeLcn%
答案 4 :(得分:0)
您可以重现CMD.EXE的行为,而不是发明自己的方法,在%PATH%中查找ACAD.EXE。
以此为例,让您入门......
:inpath
echo %~$PATH:1
echo %~dp$PATH:1
goto :eof
以这种方式调用
call :inpath acad.exe