微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CreateProcess Windows API将Excel存储在Documents文件夹中

如何解决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 举报,一经查实,本站将立刻删除。