CF - 在设备上安装后启动应用程序

时间:2010-07-06 10:44:56

标签: compact-framework installation cab

在我的setup.dll中,我有以下内容:

#include "stdafx.h"
#include "ce_setup.h"

TCHAR Message[] = _T("TERMS & CONDITIONS\r\n ")
    _T("Do you agree to terms? \r\n");

codeINSTALL_INIT Install_Init
(    
    HWND hwndParent,
    BOOL fFirstCall,
    BOOL fPreviouslyInstalled,
    LPCTSTR pszInstallDir 
)
{
if (!fFirstCall || ::MessageBoxW(0, Message, _T("RmapGeneric"), MB_YESNO) == IDYES)
          return codeINSTALL_INIT_CONTINUE;
      else
          return codeINSTALL_INIT_CANCEL;
}

codeINSTALL_EXIT Install_Exit
(
    HWND    hwndParent,
    LPCTSTR pszInstallDir,
    WORD    cFailedDirs,
    WORD    cFailedFiles,
    WORD    cFailedRegKeys,
    WORD    cFailedRegVals,
    WORD    cFailedShortcuts
)
{
    PROCESS_INFORMATION pi = {0};
    codeINSTALL_EXIT cie = codeINSTALL_EXIT_DONE;
    TCHAR szPath[MAX_PATH];
    _tcscpy(szPath, pszInstallDir);
    _tcscat(szPath, _T("\\"));
    _tcscat(szPath, _T("Application.exe"));
    MessageBox(GetForegroundWindow(), szPath, L"status", MB_OK);
    if (!CreateProcess(szPath, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, &pi))
    {
        MessageBox(GetForegroundWindow(), szPath, L"failed", MB_OK);
        cie = codeINSTALL_EXIT_UNINSTALL;
    }
    return cie;
}

虽然第一个函数有效,但Install_Exit却没有。 我想要的是在安装后应用程序自动启动。

任何建议我做错了什么?

2 个答案:

答案 0 :(得分:0)

关于什么是错的,没有什么是完全明显的。您确定目标可执行文件位于该文件夹中吗?您是否调用了GetLastError来查看为什么它失败了?

答案 1 :(得分:0)

好的,我在.DEF文件中找到了问题

我忘了导出退出功能:S