如题
我试过用服务来调用一个窗体,服务是开出来了,可我试下来的结果是即时在已登陆的情况下服务中都无法显示窗体或是messagebox消息框,更别说未登陆的情况了可能我有些东西还不知道,无法实现,请高手指教

解决方案 »

  1.   

    int id=61;
                OracleConnection objConn;
                string oracle = "Data Source=jinhe;User ID=jinhekz;password=mggis";
                objConn = new OracleConnection(oracle);
                objConn.Open();
                openFileDialog1.ShowDialog();
                pimg.Text = openFileDialog1.FileName;
                FileStream fs = new FileStream( pimg.Text, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
                int filelen = Convert.ToInt32(fs.Length);
                byte[] buffer = new Byte[filelen];
                fs.Read(buffer, 0, filelen);
                fs.Close();
                string update = "update ppoint set image = " + buffer + " where pid=" + id.ToString();            OracleCommand com = new OracleCommand(update , objConn);            com.ExecuteNonQuery();            objConn.Close();   
      

  2.   

    首先服务是不能直接弹出窗口的,因为没有状态机制。
    其次,不要梦想在系统登录前能弹出什么对话框的,因为那样直接推翻了Windows的安全性原则了。
      

  3.   

    to 我试过用服务来调用一个窗体,服务是开出来了,可我试下来的结果是即时在已登陆的情况下服务中都无法显示窗体或是messagebox消息框,更别说未登陆的情况了是这样的,否则service就没有什么意义了你可以判断系统是否登陆,然后再决定是否显示窗体
      

  4.   

    你可以用日志来记录服务干了什么?
    ms-help://MS.MSDNQTR.2003FEB.2052/vbcon/html/vbtskcreatingremovingcustomlogseventsources.htm
      

  5.   

    在登录Windows前时无法显示窗体的。
    在登录后可以显示,将服务的“允许服务与桌面交互”选上即可
      

  6.   

    如果你想在系统登录前显示你自己的窗体,必须写一个DLL替换系统的DLL,这个在技术上是能够实现的,只不过比较麻烦。我在网上看到过相关的文章。
      

  7.   

    把窗口编成dll文件,在你的service程序中调用。应该可以的。
      

  8.   

    windows service是不支持gui的
    .net/c#编程属于ring3编程,windows底层的事情,它做不了,当然可以调用windows的API,但那是不一样的。你要做的在windows还没进的时候就显示你东西(C#做的),那是不可能的。你可以考虑用c来写,这不是c#的方向。