2010-07-06 36 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