我的服务进程启动后,工作良好。但是有两个问题:1 当服务启动之后,进程的当前工作路径是怎么设置的?比如,我的a.exe程序是执行服务功能的,它的同级目录下有一个配置文件b.ini,当服务启动之后,a.exe必须通过绝对路径才能读取b.ini,就是说a.exe的当前工作路径不是a.exe所在的路径!那么,我可以怎么设置呢?2 在我的服务进程中,当我用CreateProcess启动一个窗口进程时,发现这个进程已经启动并驻留在内存中,但是进程的窗口却没有显示,这是为什么?如何设置相关参数让窗口显示出来?

解决方案 »

  1.   

    一般服务进程的当前路径是c:\winnt你可以通过服务进程写日志的方法,用GetCurrentDirectory函数将当前路径写入日志文件就知道了.
      

  2.   

    1,服务进程是服务管理器创建的,当前路径在系统目录。要设计你的EXE为汉前目录用:GetModuleFileName,得到EXE的文件名, 取出路径。用SetCurrentDirectory设置当前路径、
    2. 后台服务运行在没有桌面支持的环境里,它创建的有界面的程序都不能显示出界面,要显示出界面,看下面这篇文章:
    《如何在服务(Service)程序中显示对话框》http://www.vckbase.com/document/viewdoc/?id=283
      

  3.   

    你是创建的子进程,好像在windows任务管理器中只能显示父进程,而子进行是不显示出来的.你可以下载procexp.exe工具下来,就可以看得到父进程下的所有子进程.
      

  4.   

    1 顺利解决
    2 其实只要设置lpDesktop参数即可