CreateProcess windows API 在 Documents 文件夹中存储 excel
CreateProcess windows API stores excel in Documents folder
我正在处理调用 CreateProcess 方法的遗留应用程序
method1()
{
BOOL bResult = ::CreateProcess(
NULL, // LPCTSTR
wctAppPath, // LPTSTR lpszCommandLine
NULL, // LPSECURITY_ATTRIBUTES lpsaProc
NULL, // LPSECURITY_ATTRIBUTES lpsaThread
FALSE, // BOOL fInheritHandles
NULL, // DWORD fdwCreate
NULL, // LPVOID lpvEnvironment
NULL, // LPCTSTR lpszCurDir
&stStatusInfo, // LPSTARTUPINFO lpsiStartInfo
&stProcInfo // LPPROCESS_INFORMATION lppiProcInfo
);
}
wctAppPath 值:(folderPath\test.bat ..\excel.xls)
此 CreateProcess 触发器 bat 文件将启动 vbscript 并已修改传递的 excel 文件。
此方法 1() 结束后,他们将在方法 2() 中再次调用 CreateProcess() 以打开相同的 excel 文件。
method2()
{
BOOL bResult = ::CreateProcess(
NULL, // LPCTSTR
wctAppPath, // LPTSTR
NULL, // LPSECURITY_ATTRIBUTES lpsaProc
NULL, // LPSECURITY_ATTRIBUTES lpsaThread
FALSE, // BOOL fInheritHandles
NULL, // DWORD fdwCreate
NULL, // LPVOID lpvEnvironment
NULL, // LPCTSTR lpszCurDir
&stStatusInfo, // LPSTARTUPINFO lpsiStartInfo
&stProcInfo // LPPROCESS_INFORMATION lppiProcInfo
);
}
这里wctAppPath是(excelInstallationPath\EXCEL.exe folderPath\excelFile.xls)
一旦所有主要功能结束,所需的修改 excel 将存储在 Documents 文件夹中,而不是实际给定的路径中。实际给定 excel 根本没有修改。
method2我已经评论了,也试过了。预期 excel 出现在给定路径中。
旧版应用程序是 CATIA。
在V5中,CATScriptUtilities::ExecuteScript用于调用catvba。
在V6中,我们可以使用相同的API来调用catvba。它工作正常。
不需要调用 .bat->.vba->.catvba
我正在处理调用 CreateProcess 方法的遗留应用程序
method1()
{
BOOL bResult = ::CreateProcess(
NULL, // LPCTSTR
wctAppPath, // LPTSTR lpszCommandLine
NULL, // LPSECURITY_ATTRIBUTES lpsaProc
NULL, // LPSECURITY_ATTRIBUTES lpsaThread
FALSE, // BOOL fInheritHandles
NULL, // DWORD fdwCreate
NULL, // LPVOID lpvEnvironment
NULL, // LPCTSTR lpszCurDir
&stStatusInfo, // LPSTARTUPINFO lpsiStartInfo
&stProcInfo // LPPROCESS_INFORMATION lppiProcInfo
);
}
wctAppPath 值:(folderPath\test.bat ..\excel.xls) 此 CreateProcess 触发器 bat 文件将启动 vbscript 并已修改传递的 excel 文件。
此方法 1() 结束后,他们将在方法 2() 中再次调用 CreateProcess() 以打开相同的 excel 文件。
method2()
{
BOOL bResult = ::CreateProcess(
NULL, // LPCTSTR
wctAppPath, // LPTSTR
NULL, // LPSECURITY_ATTRIBUTES lpsaProc
NULL, // LPSECURITY_ATTRIBUTES lpsaThread
FALSE, // BOOL fInheritHandles
NULL, // DWORD fdwCreate
NULL, // LPVOID lpvEnvironment
NULL, // LPCTSTR lpszCurDir
&stStatusInfo, // LPSTARTUPINFO lpsiStartInfo
&stProcInfo // LPPROCESS_INFORMATION lppiProcInfo
);
}
这里wctAppPath是(excelInstallationPath\EXCEL.exe folderPath\excelFile.xls)
一旦所有主要功能结束,所需的修改 excel 将存储在 Documents 文件夹中,而不是实际给定的路径中。实际给定 excel 根本没有修改。
method2我已经评论了,也试过了。预期 excel 出现在给定路径中。
旧版应用程序是 CATIA。 在V5中,CATScriptUtilities::ExecuteScript用于调用catvba。 在V6中,我们可以使用相同的API来调用catvba。它工作正常。 不需要调用 .bat->.vba->.catvba