Delphi判断进程是否存在(使用CreateToolhelp32Snapshot)

[html] view plain copy

  1. program Project2;
  2. uses
  3. windows,TLHelp32;
  4. function FindProcess(AFileName:string):boolean;
  5. var
  6. hSnapshot:THandle;
  7. lppe:TProcessEntry32;
  8. Found:Boolean;
  9. begin
  10. Result:=False;
  11. hSnapshot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
  12. lppe.dwSize:=SizeOf(TProcessEntry32);
  13. Found:=Process32First(hSnapshot,lppe);
  14. while Found do
  15. begin
  16. if(lppe.szExeFile = AFileName) then Result:=True;
  17. Found:=Process32Next(hSnapshot,lppe);
  18. end;
  19. end;
  20. begin
  21. if FindProcess(‘QQ.exe‘) then
  22. MessageBox(0, PChar(‘QQ存在‘), PChar(‘提示‘), MB_OK);
  23. end.

http://blog.csdn.net/cmdasm/article/details/9961575

时间: 2024-10-02 05:46:43

Delphi判断进程是否存在(使用CreateToolhelp32Snapshot)的相关文章

C++ 判断进程是否存在

#include <windows.h> #include "psapi.h" #include <tlhelp32.h> ////判断进程是否存在DWORD GetProcessidFromName(LPCTSTR name){PROCESSENTRY32 pe;DWORD id=0;HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);pe.dwSize=sizeof(PROCESSE

delphi 判断是否出现滚动条

delphi 判断是否出现滚动条 if (GetWindowlong(Stringgrid1.Handle, GWL_STYLE) and WS_VSCROLL) <> 0 then    ShowMessage('Vertical scrollbar is visible!');  if (GetWindowlong(Stringgrid1.Handle, GWL_STYLE) and WS_HSCROLL) <> 0 then    ShowMessage('Horizonta

探讨下在Delphi里面进程之间的数据共享

进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动.它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元.现在小编就和大家来探讨一下在Delphi里面进程之间的数据共享吧. 一.动态链接库 DLL(即动态链接库),是Dynamic Link Library的缩写形式,它是一个包含可由多个程序同时使用的代码和数据的库.除此之外,它还是实现代码重用的重要手段,创建Windows应用程序.那么问题就来了?当我们需要在进程之间共享数据的时候,应该如何

判断进程存不存在

#!/bin/bash # #调用关闭jboss进程脚本 stopMethodServer.sh #打印出当前的jboss进程:grep jboss查询的jboss进程,grep -v "grep" 去掉grep进程 jmsThread=`ps -ef | grep gdms | grep jboss | grep -v "grep"` echo $jmsThread #查询jboss进程个数:wc -l 返回行数 count=`ps -ef | grep gdms

inno setup 安装前判断进程是否存在,以及停止相应进程&lt;转&gt;

打包的时候遇到了这样的需求:假似用户都是傻瓜                  式操作,如果更新安装程序的时候,之前的老程序还在运行这个时候如果你去提示让用户吧老程序手动退掉也不现实. 所以当遇到这种情况的时候能不能在更新安装程序上下手,在更新的时候就默认吧老程序杀掉(如果老程序在运行). 答案是明确的inno setup 是可以这样的操作. 下面是转的文章,谢谢作者的分享. ============================================================

delphi 判断SQL Server 服务器是否安装与开启

1. 问题简介: 一般情况下,使用程序连接数据库的时候,当数据库服务器不存在,或者数据库服务器没有启动的时候, 会导致数据库连接失败,所花费的时间很长.所以,在进行连接前,有必要对这些做出判断,然后返回给用户一 个正确的提示信息,减少等待的时间. 2. 数据库服务器连接不上,可以分成以下几种情况: 1>. 根本就不存在数据库服务器,及系统根本就没有安装数据库服务器. 2>. 系统安装了数据库服务器,但是数据库服务器没有开启. 3>. 数据库服务器开启了,但是处于[暂停]或者[停止]的状态

delphi杀进程的两种方式

第一种:比较简单,根据标题,找到窗口,再找到进程,杀死进程 [delphi] view plain copy procedure KillProgram(WindowTitle : string); const PROCESS_TERMINATE = $0001; var ProcessHandle : THandle; ProcessID: Integer; TheWindow : HWND; begin TheWindow := FindWindow(nil, PChar(WindowTit

Delphi 判断exe是否以管理员身份启动

1 1:获取程序运行的用户名 2 function GetProcessIdentity(): String; 3 var 4 hToken: THandle; 5 UserName, UserDomain: String; 6 cbName, cbDomainName: ULONG; 7 ReturnLength: DWORD; 8 Buff: array of Byte; 9 tu: PTokenUser; 10 peUse: SID_NAME_USE; 11 label 12 Cleanu

判断进程是否正在运行

#include <windows.h> #include <tlhelp32.h> int FindProcess(char *s) //返回此进程运行个数 { int cnt=0; PROCESSENTRY32 pe32; pe32.dwSize = sizeof(pe32); HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); bool bMore = ::Process32Firs