我想在程序中通过window服务名,获取window服务的路径.不知如何做(vs2003  c#)  望高人指点,谢谢

解决方案 »

  1.   

    System.Reflection.Assembly.GetExecutingAssembly().Location
      

  2.   

    兄弟,可能你没有理解我的意思.这样说吧,有一个explorer.exe服务(可能也是其它的服务).现在我要怎样写一个winform程序获得这个服务所在的路径.
      

  3.   

    Process[] processes = Process.GetProcessesByName("explorer.exe");
    foreache (Process proc in process)
    {
       Console.WriteLine(proc.MainModule.FileName);
    }
      

  4.   

    Process[] processes = Process.GetProcessesByName("explorer"); 
    foreache (Process proc in processes ) 

      Console.WriteLine(proc.MainModule.FileName); 
    }
      

  5.   

    1 WMI比较简单(不过需要管理员权限)
    SelectQuery query=new SelectQuery("SELECT * FROM Win32_Service");
    ManagementObjectSearcher searcher=new ManagementObjectSearcher(query);
    foreach(ManagementBaseObject service in searcher.Get())
    {
      if(service[Name] = "services name")
         return services[PathName];
    }
    return null;2 读取注册表
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 的信息3 利用windowsAPI
    具体忘记了,可以通过msdn看看GetServiceDisplayName能否找到相关信息。
      

  6.   

    方式太多,
    通过调用Process.GetCurrentProcess().MainModule.FileName可获得当前执行的exe的文件名。
    Environment.CurrentDirectory
    Directory.GetCurrentDirectory()
    AppDomain.CurrentDomain.BaseDirectory
    Application.StartupPath
    Application.ExecutablePath
    Assembly.GetExecutingAssembly
    AppDomain.CurrentDomain.SetupInformation.ApplicationBase获取当前应用程序所在的路径。
    http://www.cnblogs.com/xingd/archive/2005/03/21/123152.html
    System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory() 
      

  7.   

    AppDomain.CurrentDomain.BaseDirectory
    可以用于Windows服务中