_HWnd:=FindWindow(Nil,PChar('你要找的程序窗体名'));
If (_HWnd<>0) Then
//存在
Else
//不存在
解决方案 »
- 有没有画“柏拉图”的控件或者代码推荐一些谢谢。
- 各位兄台是怎么确保数据库操作的可靠性的?有何高招给小的介绍介绍,
- 如何判断是否已经运行了一个可执行文件?
- 突然想问个问题,SY的时候用左手好还是右手好~~~
- 字段的数据类型 ftFixedChar 和 ftString有什么区别?
- 关于打包的问题!!在线急等!
- TdbEdit连接的是一个时间类型的字段,当输入的字符不合法时,程序就会瘫痪
- 发现一个问题:Delphi属性的缺省值好像没有什么用!!!
- 简单问题,在DLL单元里,前面定义的过程如何访问后面定义的过程?
- 一个重要的问题,希望能够看一下?
- 关于delphi6中的Demos\Corba\Idl2Pas\Midas XML例子
- 大家帮帮我,用Delphi做了一个CORBA程序(三层),在发布时客户端应发布什么文件,发布时应用程序服务器应发布什么文件??
If (_HWnd<>0) Then //存在
Else //不存在
程序开始,就使用openmutex进行回斥句柄的检测,不为零表示存在实例,否则利用createmutex创建互斥句柄!
这几个函数用来遍历系统中所有的进程,然后你可以将你要找的进程特征与列表中
的进程进行比较。
这几个函数是示例如下:
var
dwProcessId: DWORD;
hSnapshot: THandle;
lppe: TProcessEntry32;
begin
result:='';
GetWindowThreadProcessID(hWnd,@dwProcessId);
hSnapShot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
lppe.dwSize:=Sizeof(lppe);
if Process32First(hSnapshot,lppe) then
while Process32Next(hSnapshot,lppe) do
if dwProcessId=lppe.th32ProcessID then result:=lppe.szExeFile;
CloseHandle(hSnapshot);
以上代码用来查找指定句柄窗口所在进程的文件名称
createmutex(NIL,TRUE,'SFSFDSDSGDSGDSGDSGDSGDGD');
IF GetLastError=ERROR_ALREADY_EXISTS THEN “存在在”;
在函数createmutex的最后一个参数为特别字符(随便写),在两个程序中都加入上面两行,
当一个程序运行后,另一个就能检测到。