标题:开机自动启动--[异常]System.NullReferenceException: 未将对象引用设置到对 ...
只看楼主
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
结帖率:78.99%
已结贴  问题点数:20 回复次数:12 
开机自动启动--[异常]System.NullReferenceException: 未将对象引用设置到对象的实例
大家好,请问一下。麻烦大家帮帮忙,O(∩_∩)O谢谢~~~~~~~~~~~~~
我写了一个程序,手动的双击打开完全没有问题。而如果设置为开机自动启动的话(也就是通过程序修改注册表),就会有下面的错误。
--------------------------------------
关调用实时(JIT)调试而不是此对话框的详细信息,
请参见此消息的结尾。

************** 异常文本 **************
System.NullReferenceException: 未将对象引用设置到对象的实例。
   在 Sunisoft.IrisSkin.xbd3f2493841f18a1.DoInit()
   在 Sunisoft.IrisSkin.x095234c5c1abb370.DoInit()
   在 Sunisoft.IrisSkin.xbd3f2493841f18a1..ctor(Control control, SkinEngine engine)
   在 Sunisoft.IrisSkin.x095234c5c1abb370..ctor(Control control, SkinEngine engine)
   在 Sunisoft.IrisSkin.xa427f1b2281f554b..ctor(IntPtr handle, SkinEngine engine)
   在 Sunisoft.IrisSkin.SkinEngine.DoAddWnd(IntPtr handle, Boolean isManual)
   在 Sunisoft.IrisSkin.SkinEngine.FnHookProc(Int32 nCode, IntPtr wParam, IntPtr lParam)
   在 System.Windows.Forms.SafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow)
   在 System.Windows.Forms.Form.set_WindowState(FormWindowState value)
   在 View.MainFrom.MainFrom_Load(Object sender, EventArgs e) 位置 D:\Backup\我的文档\Visual Studio 2008\Projects\Remain\View\MainFrom.cs:行号 59
   在 System.Windows.Forms.Form.OnLoad(EventArgs e)
   在 System.Windows.Forms.Form.OnCreateControl()
   在 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   在 System.Windows.Forms.Control.CreateControl()
   在 System.Windows.Forms.Control.WmShowWindow(Message& m)
   在 System.Windows.Forms.Control.WndProc(Message& m)
   在 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   在 System.Windows.Forms.ContainerControl.WndProc(Message& m)
   在 System.Windows.Forms.Form.WmShowWindow(Message& m)
   在 System.Windows.Forms.Form.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** 已加载的程序集 **************
mscorlib
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.3615 (GDR.050727-3600)
    基本代码: file:///C:/windows/
----------------------------------------
View
    程序集版本: 1.0.0.0
    Win32 版本: 1.0.0.0
    基本代码: file:///D:/Backup/我的文档/Visual%20Studio%202008/Projects/Remain/View/bin/Debug/View.exe
----------------------------------------
System.Windows.Forms
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.3053 (netfxsp.050727-3000)
    基本代码: file:///C:/windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.3614 (GDR.050727-3600)
    基本代码: file:///C:/windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.3053 (netfxsp.050727-3000)
    基本代码: file:///C:/windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
IrisSkin2
    程序集版本: 2006.3.22.45
    Win32 版本: 2006.3.22.45
    基本代码: file:///D:/Backup/我的文档/Visual%20Studio%202008/Projects/Remain/View/bin/Debug/IrisSkin2.DLL
----------------------------------------
System.Configuration
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.3053 (netfxsp.050727-3000)
    基本代码: file:///C:/windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.3053 (netfxsp.050727-3000)
    基本代码: file:///C:/windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
mscorlib.resources
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.3615 (GDR.050727-3600)
    基本代码: file:///C:/windows/
----------------------------------------
System.Windows.Forms.resources
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400)
    基本代码: file:///C:/windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_zh-CHS_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------

************** JIT 调试 **************
要启用实时(JIT)调试,
该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置
jitDebugging 值。
编译应用程序时还必须启用
调试。

例如:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

启用 JIT 调试后,任何无法处理的异常
都将被发送到在此计算机上注册的 JIT 调试器,
而不是由此对话框处理。
--------------------------------------------------------------
通过程序自动生成的注册表信息是:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\[Remain]\[D:\Backup\我的文档\Visual Studio 2008\Projects\Remain\View\bin\Debug\View.exe]
搜索更多相关主题的帖子: 注册表 详细信息 对话框 
2011-04-12 22:56
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:5 
对我来说,太深奥了!

   唯实惟新 至诚致志
2011-04-13 00:02
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
得分:0 
不会吧,请大家帮帮忙啊~~~~~~~
2011-04-13 09:21
chenhao19860
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:86
专家分:151
注 册:2010-3-15
得分:5 
晕,你把代码贴出来撒
2011-04-13 11:15
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
得分:0 
回复 4楼 chenhao19860
加了开机启动了程序,开机自动启动就有问题,手动打开就没有问题。
------------------------------------------------------
using Microsoft.Win32;

        /// <summary>
        /// 是否开机自动启动(修改注册表)
        /// </summary>
        /// <param name="started">是否需要开机自动启动</param>
        /// <param name="name">程序名</param>
        /// <param name="path">路径</param>
        private static void AutoStart(bool started, string name)
        {
            //获取启动程序的路径和名称
            string path = Application.ExecutablePath;

            RegistryKey HKLM = Registry.LocalMachine;
            RegistryKey Run = HKLM.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
            if (started)
            {
                //启动[开机自动启动]
                try
                {
                    Run.SetValue(name, path);
                    HKLM.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString(), "启动失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                //关闭[开机自动启动]
                try
                {
                    Run.DeleteValue(name);
                    HKLM.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString(), "关闭失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
2011-04-13 23:10
athenalux
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河北石家庄
等 级:小飞侠
威 望:8
帖 子:975
专家分:2514
注 册:2008-11-26
得分:5 
代码不能保证每种情况HKlM.Close();都会被执行。

QQ:81704464
2011-04-14 08:04
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
得分:0 
回复 6楼 athenalux
你好,您的意思是??????请教教我的~~~~~~~~~~
2011-04-14 10:17
athenalux
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河北石家庄
等 级:小飞侠
威 望:8
帖 子:975
专家分:2514
注 册:2008-11-26
得分:0 
我只是建议HKlM.Close();放在finally里面做。没别的意思。

QQ:81704464
2011-04-14 11:03
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
得分:0 
回复 8楼 athenalux
可以吗???
2011-04-14 21:31
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
得分:0 
别沉下去啊~~~~~~~~~~~~~~~~
2011-04-16 22:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-336471-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055515 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved