2011-11-01 133 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