一个在删除程序里找,一个到注册表里找,是么在program files里找!!

解决方案 »

  1.   

    用上SQLSERVER的W95SCM.LIB中的
    SQLSCMGetLocalServiceStateA
      

  2.   

    在user根键下找到microsoft,再找到sql server子键,
    找到安装目录,最后调用fileExist判断文件是否存在.
      

  3.   

    1.如果要连接此机器的SQL,则扫描1433端口,一般都是。
    2.如果监测装没装,检查注册表
      

  4.   

    如果已经安装ms sql,在分布式com接口里就可以找到。用dcomcnfg可以看到ms sql的com接口的。
      

  5.   

    uses
      Registry;procedure TForm1.Button1Click(Sender: TObject);
    var
      vStringList: TStringList;
      I: Integer;
    begin
      vStringList := TStringList.Create;
      with TRegistry.Create do try
        RootKey := HKEY_LOCAL_MACHINE;
        if OpenKey('\Software\Microsoft\Windows\CurrentVersion\Uninstall\', False) then begin
          GetKeyNames(vStringList);
          for I := 0 to vStringList.Count - 1 do
            if Pos('Microsoft SQL Server', vStringList[I]) > 0 then
              ShowMessage(vStringList[I]);
        end;
        CloseKey;
      finally
        vStringList.Free;
        Free;
      end;
    end;