首页 > 解决方案 > 为什么manifest文件没有效果

问题描述

我尝试使用 C++ 打开 photoshop.exe,但 photoshop.exe.manifest 没有生效。如果你手动双击打开photoshop.exe文件,说明工作正常。

注册表已设置并重新启动系统:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide]
"PreferExternalManifest"=dword:00000001

也许这是路径?

Photoshop

TCHAR szCommandLineName[200]= _T("Photoshop.exe");
TCHAR szCommandLinePath[200] = _T("F:\\Program Files\\Adobe Photoshop 2020\\");
TCHAR szCommandLine[200] = _T("F:\\Program Files\\Adobe Photoshop 2020\\Photoshop.exe");

TCHAR buf[1000];
GetCurrentDirectory(1000, buf);   
TRACE(_T("Current Directory:%s\n"), buf);

 SetCurrentDirectory(szCommandLinePath);
//::WinExec("F:\\Program Files\\Adobe Photoshop 2020\\Photoshop.exe", SW_SHOW);
//ShellExecuteW(NULL, _T("open"), _T("photoshop.exe.bat"), NULL, szCommandLinePath, SW_SHOWNORMAL);
//return;

// system("photoshop.exe");
// return;
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;

si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESHOWWINDOW;
//si.wShowWindow = SW_HIDE;
si.wShowWindow = TRUE;
BOOL bRet = ::CreateProcess(
    szCommandLine,
    NULL,
    NULL,
    NULL,
    FALSE,  //bInheritHandles
    NULL,   //dwCreationFlags
    NULL,   //lpEnvironment
    NULL,//lpCurrentDirectory
    &si,
    &pi);
int nError = GetLastError();

::CloseHandle(pi.hThread);
::CloseHandle(pi.hProcess);

return ;

标签: c++manifestphotoshop

解决方案


推荐阅读