首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么用DELPHI编程读取MYSQL的安装路径

2012-03-25 
如何用DELPHI编程读取MYSQL的安装路径如何用DELPHI编程读取MYSQL的安装路径比方说MYSQL4.0路径是:C:\Progr

如何用DELPHI编程读取MYSQL的安装路径
如何用DELPHI编程读取MYSQL的安装路径
比方说
MYSQL4.0 路径是:
C:\Program Files\MySQL\MySQL AB\MySQL Server 4.1\bin
MYSQL5.0 路径是:
C:\Program Files\MySQL\MySQL Server 5.0\bin

当然还有一种不“确定”的情况
就是用户在安装MYSQL安装时“自定义”的路径


[解决办法]
注册表HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB\MySQL Server 5.0
[解决办法]
这个路径应该在注册表有记录的.具体在哪里不知道 每弄过


如果是一个绿色软件 就真的放哪里都不知道了.



开个多线程 土办法慢慢找文件名吧



MYSQL 应该有执行, 可以通过进程快照取他的文件路径
[解决办法]
开个多线程 土办法慢慢找文件名吧
-------------------------------
这方法也太土了吧?

还不如获取进程列表,然后看进程mysqld-nt.exe的位置。
[解决办法]
必须承认,论坛这种交流模式把很多人害了,变得懒惰。
[解决办法]

探讨

还请赐教一二

[解决办法]
注册表取把 注册表肯定存储到路径信息
[解决办法]
菜鸟来看热闹了。。。
[解决办法]
看样子是要帮你把过程代码写出来才行了。
[解决办法]
小鸟也懒了!
Delphi(Pascal) code
unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, TLHelp32, PsApi;type  TForm1 = class(TForm)    Button1: TButton;    procedure Button1Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}function GetProcessPath(ProcessID: DWORD): string;var        mHandle: THandle;        ModName: Array[0..Max_Path-1] of Char;        hMod: HModule;        n: DWORD;begin        Result:='';        mHandle:=OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,                False,                ProcessID);        if mHandle>0 then                try                        //uses PsAPI                        ENumProcessModules(mHandle,@hMod,Sizeof(hMod),n);                        if GetModuleFileNameEx(mHandle,hMod,ModName,Sizeof(ModName))>0 then                                Result:=ModName;                except                end;end;function GetPath(AFileName: string): string;const        PROCESS_TERMINATE = $0001;var        ContinueLoop: BOOL;        FSnapShotHandle: THandle;        FProcessEntry32: TProcessEntry32;begin        //uses TLHelp32        result := '';        FSnapShotHandle := CreateToolhelp32SnapShot(TH32CS_SNAPPROCESS, 0);        FProcessEntry32.dwSize := SizeOf(FProcessEntry32);        ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);        while integer(ContinueLoop) <> 0 do        begin                if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(AFileName))                        or (UpperCase(FProcessEntry32.szExeFile ) = UpperCase(AFileName))) then                begin                        result := GetProcessPath(FProcessEntry32.th32ProcessID);                        break;                end;                ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);        end;end;procedure TForm1.Button1Click(Sender: TObject);begin        showmessage(GetPath('svchost.exe'));end;end.
[解决办法]
不但懒,还很抠,加分!!!!!!!!!!!!!!!
------解决方案--------------------


探讨

不但懒,还很抠,加分!!!!!!!!!!!!!!!

[解决办法]

热点排行