2010-07-06 23 views
0

安装它在我的setup.dll后启动应用程序,我有如下因素:CF - 在设备

#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没有。 我只想安装后自动启动应用程序。

任何建议我做错了什么?

+0

对不起乱码,但代码格式似乎不正确格式的代码 – no9 2010-07-06 10:49:26

+0

您可能希望阅读标记。我修复了布局。 – ctacke 2010-07-06 13:04:32

回答

0

好吧,我发现.DEF问题文件

我忘记汇出exit函数:S

0

没有什么东西完全显而易见的。你确定目标可执行文件在该文件夹中吗?你有没有叫GetLastError看到为什么它失败?

+0

我的下一个问题是,如何调试这段代码,看看有什么不对。这是我的第一个移动应用程序设置,所以我以前从未这样做过。 – no9 2010-07-07 06:01:48

+0

因为我把相同的代码放在退出函数中,就像它在init函数中一样,我猜测退出函数永远不会被调用? – no9 2010-07-07 06:20:30

+0

我有其他问题: 是否有一些例子,我怎么能在任何这个功能检查设备上的.NET CF框架安装。 Ofcorse最好的解决方案是在安装过程中包含net cf cab,但是我知道我不能嵌套.cab文件。因此,使用消息框进行简单检查对我来说很有用...... – no9 2010-07-07 06:42:14