gpt4 book ai didi

CreateProcessA %appdata%

转载 作者:太空宇宙 更新时间:2023-11-04 07:55:25 25 4
gpt4 key购买 nike

我正在尝试使用 CreateProcessA调用 %appdata% 下的应用程序目录。

例如,使用以下内容:

CreateProcessA(
NULL, "%appdata%\myfile.exe", NULL, NULL, FALSE,
CREATE_NO_WINDOW, NULL, NULL, &sI, &pI
);

调用myfile.exe时需要使用完整路径吗?或者有什么办法我可以使用 %appdata%在调用 CreateProcessA

最佳答案

MSDN 中所述,并且由于您将 NULL 作为第一个参数传递给 CreateProcessA,因此 CreateProcessA 的第二个参数:lpApplicationName正在扮演要执行的命令行的角色。除非lpApplicationName指向某个目录下的exe,否则系统会按照以下顺序查找

  1. The directory from which the application loaded.
  2. The current directory for the parent process.
  3. The 32-bit Windows system directory. Use the GetSystemDirectory function to get the path of this directory
  4. The 16-bit Windows system directory. There is no function that obtains the path of this directory, but it is searched. The name of this directory is System. The Windows directory. Use the GetWindowsDirectory function to get the path of this directory.
  5. The directories that are listed in the PATH environment variable. Note that this function does not search the per-application path specified by the App Paths registry key. To include this per-application path in the search sequence, use the ShellExecute function.

因此,除非 CreateProcessA 的第二个参数采用 {directory}/{executable_name}.{ext} 形式,否则您必须:

  1. 将 executable_name 放在加载应用程序的同一目录中
  2. 将executable_name放在父进程的同一目录下
  3. 将 executable_name 放在 Windows System32 目录中:C:\Windows\System32
  4. 将 executable_name 放在 Windows 目录中:C:\Windows
  5. 在 PATH 中包含 executable_name 所在的目录

正如 Ben 所说,看看 ExpandEnvironmentStrings修改 PATH 环境变量。

关于CreateProcessA %appdata%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50456382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com