delphi中怎么判断scktsrvr.exe是否启动

delphi中怎么判断scktsrvr.exe是否启动,第1张

1、先use TLHelp32, PsAPI,使用其中Process32First的函数和Process32Next遍历所有进程

2、然后判断是否存在scktsrvr.exe。

3、函数代码:

function checkAppExists(appN: string): Boolean

var

  lppe: TProcessEntry32

  found : boolean

  Hand : THandle

  磨羡P:DWORD

  s:string

begin

  result := false

  Hand := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0)

  found := Process32First(Hand,lppe)

  while found do

  begin

    s := StrPas(lppe.szExeFile)

    if lppe.th32ProcessID>0 then

      p := lppe.th32ProcessID

    else

      p := 0

    if (s = appN) then

    begin

      Result:= True

      Break

    end  

    found := Process32Next(Hand,lppe)

  end

end

4、程序示例,判断scktsrvr.exe是否存在瞎戚拍:

procedure TForm1.btn1Click(Sender: TObject)

begin

  if checkAppExists('scktsrvr.exe') then

  begin

    ShowMessage('scktsrvr.exe在运行!')

  仔腊end

  else

  begin

    ShowMessage('scktsrvr.exe没有运行!')

  end    

end

5、效果如下:

判断进程~~~~

uses TLHelp32

注意

function FindProcess(AFileName: string): boolean

var

hSnapshot: THandle//用于获得岩辩进程列表

lppe: TProcessEntry32//用粗陵缺于查找进程

Found: Boolean//用于判断进程遍历是否完成

begin

Result :=False

hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)//获得系统进程列表

lppe.dwSize := SizeOf(TProcessEntry32)//在调用Process32First API之前,需要初始化lppe记录的大小

Found := Process32First(hSnapshot, lppe)//将进程列表的第一个进程汪樱信息读入ppe记录中

while Found do

begin

if ((UpperCase(ExtractFileName(lppe.szExeFile))=UpperCase(AFileName)) or (UpperCase(lppe.szExeFile )=UpperCase(AFileName))) then

begin

Result :=True

end

Found := Process32Next(hSnapshot, lppe)//将进程列表的下一个进程信息读入lppe记录中

end

end

例子 if FindProcess( 'mysqld-nt.exe ') then memo1.Lines.Add( '发现SQL服务! ')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12425599.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存