2011-11-01 131 views
0

我甚至不知道到底我應該問什麼,所以我需要多爲一些建議,想法,可能的原因...註冊表應用程序崩潰

那麼,問題如下: 我有一個應用程序應該在用戶登錄到計算機時運行。當它從快捷方式或從主可執行文件中執行時,應用程序正常工作。我已經把註冊表項:

HKLM \微軟\的Windows \當前版本\運行

指向我的應用程序。我也把一個條目:

HKLM \微軟\的Windows \當前版本\應用程序路徑\我Application.exe

,因爲應用程序需要一個配置文件來指定工作目錄( XML)。儘管如此,每當我用「.exe遇到問題並需要關閉」的消息啓動計算機時,應用程序仍然會崩潰並顯示調試選項,但是當我點擊調試按鈕時,它不會顯示任何內容。

我不知道究竟是什麼問題,所以任何建議都會得到好評。

解決問題:

問題解決了,但我仍然有我不得不學習一些問號。無論如何,對於一些未知的(還)原因,如果我把工作文件夾路徑到

HKLM \微軟\的Windows \當前版本\應用程序路徑\我Application.exe

註冊表沒有任何效果。因此,解決辦法是這個路徑寫入到

HKLM \微軟\的Windows \當前版本\ Run中以下列方式

註冊表:

CMD/C開始 「」/ d 「工作目錄路徑」「完全路徑到exe」。

此解決方案似乎運作良好。 感謝您的回覆。

+0

你有沒有在'startup'文件夾中放入一個快捷方式,並試過? – Serdalis

+0

是的,這是可行的,但要求是使用註冊表項。 – SebiG

+0

這可能是當前目錄的問題。您可以使用「映像文件執行選項」註冊表項來強制應用程序在啓動時在調試器下運行。 –

回答

0

查找沃森博士登錄磁盤,如果你沒有找到一個,配置測試系統生成一個。搜索谷歌的指示,這很簡單。

一旦你有一個日誌文件,在文件中搜索「fault - >」,它會告訴你正在崩潰的程序集的地址。如果幸運的話,它會爲您提供一個函數,但您可能需要將日誌文件與匹配的.map配對,以查找崩潰地址並將其與一行代碼/函數相關聯。此外,在發佈模式下使用Debug> Windows> Disassembly調試匹配源也會顯示確切的內存地址,您可以在dr watson日誌中找到「fault - >」行。

0

如果你有機會到源代碼,你可以寫一個日誌文件,詳細說明該程序起牀崩潰之前,這應該給你更多的具體細節,Windows 7的是非常嚴格的這一點,所以請考慮使用Task Scheduler

你可能需要把完整路徑的:
HKLM\Microsoft\Windows\Current Version\App Paths\My Application.exe
鍵可以得到正確的應用程序上下文。
例如
path: C:\My Folder\

Source here for registry keys