2013-11-23 160 views
1

我試圖用我自己的啓動管理員權限啓動我的應用程序。啓動程序在我的64Bit Win7上運行,但不在我的32Bit WinXP計算機上運行。 我使用的代碼是這樣的:ShellExecute失敗:ERROR_FILE_NOT_FOUND

wstring fullAppPath = "myapp.exe"; 
ShellExecuteW(NULL, 
      L"runas",      //admin rights 
      fullAppPath.c_str(), 
      NULL,       //startup params 
      NULL,       //default dir 
      SW_SHOWNORMAL 
      ); 

我用MSVC 2010 32位編譯器與Qt的IDE和啓動應用程序和主應用程序在同一個目錄中,這是不C:\ Windows \ System32。 在我的WinXP計算機上,我隨時可以啓動我的啓動程序ERROR_FILE_NOT_FOUND錯誤。 (值) 我該如何解決這個問題?

+0

您是否試過轉義反斜槓,即「C:\\ myapp.exe」? – Paul

+0

我當然試過了。確切地說,我使用了一個相對路徑。 –

+1

這聽起來很明顯,但myapp.exe是一個64位的應用程序?另外,如果用例如myapp替換myapp.exe,它是否工作正常NOTEPAD.EXE? – Paul

回答

2

該解決方案使用絕對路徑而不是相對路徑。

+0

非常感謝你們。我正在尋找大約一週的錯誤。我想知道如何解決方案可以很容易。 :)但爲什麼它一直在Win7上工作,而不是在WinXP上? –