如何解决CreateProcess Windows API将Excel存储在Documents文件夹中
我正在开发一个调用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) 将修改将启动vbscript并传递excel文件的CreateProcess触发器bat文件。
一旦method1()结束,他们将再次在method2()中调用CreateProcess()以打开相同的excel文件。
method2()
{
BOOL bResult = ::CreateProcess(
NULL,// LPTSTR
NULL,// 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。