标题:如何获取系统服务的路径
只看楼主
南川
Rank: 4
等 级:业余侠客
威 望:1
帖 子:111
专家分:235
注 册:2010-6-25
结帖率:86.21%
已结贴  问题点数:45 回复次数:7 
如何获取系统服务的路径
如图,我想获取Oracle10实例服务的红色框中的路径,请教如何实现此路径的获取。谢谢!
搜索更多相关主题的帖子: 获取 系统 路径 服务 
2010-11-09 21:27
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:22 
根据c# 获取Oracle10实例服务的路?

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-11-10 08:36
南川
Rank: 4
等 级:业余侠客
威 望:1
帖 子:111
专家分:235
注 册:2010-6-25
得分:0 
回复 2楼 wangnannan
是的,红色框里的路径应该是本地安装路径

我需要获取服务对应的这个路径
2010-11-10 09:48
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:23 
程序代码:
using System;
using System.Collections.Generic;
using using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.ServiceProcess;
using System.Management;
using Microsoft.Win32;

namespace WindowsApplication4
{
    public partial class Form1 : Form
    {
        public static string path = String.Empty;
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ServiceIsExisted("360rp");
            if (path!="")
            {
                MessageBox.Show(path);
            }
        }
        private bool ServiceIsExisted(string serviceName)
        {
            ServiceController[] services = ServiceController.GetServices();
            foreach (ServiceController s in services)
            {
                if (s.ServiceName == serviceName)
                {
                    if (FilePath(s.ServiceName)!="")
                    {
                        path = FilePath(s.ServiceName);
                    }
                    return true;
                }
            }
            return false;
        }
        public string FilePath(string serviceName)
        {


                RegistryKey _Key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\ControlSet001\Services\" + serviceName);
                if (_Key != null)
                {
                    object _ObjPath = _Key.GetValue("ImagePath");
                    if (_ObjPath != null) return _ObjPath.ToString();
                }
                return "";
           
        }

    }

}
按照楼主的意思 写出代码 由于本人机器没有安装oracle 所以用360 代替

WindowsApplication4.rar (31.32 KB)

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-11-10 10:19
南川
Rank: 4
等 级:业余侠客
威 望:1
帖 子:111
专家分:235
注 册:2010-6-25
得分:0 
回复 4楼 wangnannan
谢谢!问题搞定了!
2010-11-10 10:50
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
哦 那太好了 呵呵

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-11-10 10:51
globenese
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-2-4
得分:0 
找了半天了,在这里发现了。非常感谢沙发上的王童鞋。
不过网站的注册实在太不友好了,注册吗要输入三次。。。搞得我以为老是输错,差点放弃注册了。
2013-02-04 15:43
globenese
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-2-4
得分:0 
还有个问题,为什么访问注册表的ControlSet001分支,而不是 CurrentControlSet ?
有什么区别?
2013-02-04 15:54



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




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

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