在不知道完整路径的情况下执行 exe

发布于 11-18 12:49 字数 80 浏览 4 评论 0原文

我需要在不知道其完整路径的情况下启动名为 Acad.exe 的应用程序。该路径完全由安装应用程序的人决定。

我怎样才能做到这一点?

I need to start an application by the name of Acad.exe without knowing its full path. this path is namly decide upon instalation by the person installing the app.

how can i achive this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

一念一轮回2024-11-25 12:49:13

应用程序通常将其安装位置存储在注册表中,因此查找它们的首选方法是在注册表中查找适当的位置。这样,您就不会意外启动具有相同文件名的不同程序。

假设 acad.exe 是 AutoCAD,此页面提供您必须查找的位置

It is common for applications to store their install location in the registry, so the preferred way of finding them would be to look up the appropriate place in the registry. That way, you won't accidentally start a different program with the same file name.

Assuming acad.exe is AutoCAD, this page gives the locations you have to look up.

够钟2024-11-25 12:49:13

在任何具有 OLE2 层接口的语言中尝试此操作:

CreateDispatch("Autocad.Application")

在 C++ 中:

::CoInitializeEx(NULL);
::CreateDispatch("AutoCAD.Application");

使用批处理脚本:

  • 将以下内容保存在名称“start_autocad.vbs”下

    set objShell=CreateObject("Autocad.Application")
    objShell.Visible = TRUE
    
  • run cscript start_autocad.vbs”下。

Try this in any language that has an interface to the OLE2 layer:

CreateDispatch("Autocad.Application")

In C++:

::CoInitializeEx(NULL);
::CreateDispatch("AutoCAD.Application");

With a batch script:

  • Save the following under the name `start_autocad.vbs

    set objShell=CreateObject("Autocad.Application")
    objShell.Visible = TRUE
    
  • run cscript start_autocad.vbs.
小糖芽2024-11-25 12:49:13

如果此acad.exe安装遵循Windows约定,则安装过程会在注册表中创建一个特殊键:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

如果acad.exe在其中定义了所需的参数,则可以使用以下简单命令从批处理文件启动它:

START acad.exe

无需指定完整路径,Windows 将从相应的 AppPath 条目中获取它。

If this acad.exe installation follows the Windows convention, the installation process creates a special key in the registry :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

If acad.exe is defined there with required parameters then it's possible to start it from a batch file with this simple command :

START acad.exe

No need to specify the complete path, Windows will get it from the corresponding AppPath entry.

嗫嚅2024-11-25 12:49:13

假设它位于 C: 驱动器上,您可以执行以下操作:

@echo off
c:
cd \
for /f "delims=" %%a in ('dir /s /b acad.exe') do set exeLcn=%%a
start %exeLcn%

Assuming it is on the C: drive, you could do:

@echo off
c:
cd \
for /f "delims=" %%a in ('dir /s /b acad.exe') do set exeLcn=%%a
start %exeLcn%
就像说晚安2024-11-25 12:49:13

您无需发明自己的方法,只需重现 CMD.EXE 的行为,在 %PATH% 中查找 ACAD.EXE。

尝试以此作为示例来帮助您开始...

:inpath
echo %~$PATH:1
echo %~dp$PATH:1
goto :eof

以这种方式调用它

call :inpath acad.exe

Instead of inventing your own method, you just might reproduce the behavior of CMD.EXE, looking for ACAD.EXE in the %PATH%.

try this as an example to get you started...

:inpath
echo %~$PATH:1
echo %~dp$PATH:1
goto :eof

invoke it this way

call :inpath acad.exe
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文