FindWindow函数!具体谈谈你的要求,你要知道运行的程序是自己的还是别的应用程序?
解决方案 »
- 有谁用过QuickReport.v5.04 For D2009的没有,不能解决的问题
- 谁有DynamicSkinFormv10.45的源码和相应SkinAdapter,帮帮忙啊!
- delphi生成的exe和原工程文件运行结果不一致?
- 怎样把图象数据存进ACCESS数据库?
- 希望大家可以介绍几本了解Windows消息,WinShell,Delphi的VCL类库的经典之作??
- 怎样进行rgb亮度调节??
- 请问怎么用DELPHI做一个和网易、GOOGLE一样的搜索的TOOLBAR,就是嵌到IE里的那种
- 【菜鸟问题:Pchar和String的copy】
- 关于CASE
- 如何清除键盘缓冲区的数据!!!!急!
- 有没有办法在delphi中调用vc的头文件方法啊
- 悟透delphi——》》》
0;如:Findwindow(TApplication,'NetAnts 1.24');能查出是否运行了网络蚂蚁!
Acdsee 呢?
program Project1;uses
Forms,
Windows,
main in 'main.pas' {FrmMain};{$R *.RES}var Mutex:THandle;begin
Mutex:=CreateMutex(nil,True,'project1');
if GetLastError<>ERROR_ALREADY_EXISTS then
begin
Application.Initialize;
Application.CreateForm(TFrmMain, FrmMain);
Application.Run;
end
else
begin
Application.MessageBox('程序已经运行!','提示',MB_OK+MB_ICONINFORMATION);
end;
ReleaseMutex(Mutex);
end.
1)若是找自己编写的应用程序,就正于joyhero(JoyHero)所言!
2)若是想找任意的应用程序是否在运行,那就用如下方法: //列出所有运行的主窗体
function EnumWindowsProc(hWindow:hwnd; lparam:longint):bool;stdcall;
var
lpbuffer:PChar;
windowcaptionfound:bool;
classnamefound:bool;
begin
getmem(lpbuffer,255);
result:=true;
windowcaptionfound:=false;
classnamefound:=false; try
if GetWindowtext(hwindow,lpbuffer,255)> 0 then
if pos(PFindWindowStruct(lParam).caption,strpas(lpbuffer))>0 then
windowcaptionfound:=true; if PFindWindowStruct(lParam).classname='' then
classnamefound:=true
else if GetclassName(hwindow,lpbuffer,255)> 0 then
if pos(PFindWindowStruct(lParam).classname,strpas(lpbuffer))>0 then
classnamefound:=true; if (windowcaptionfound and classnamefound) then
begin
pFindwindowStruct(lParam).windowHandle:=hWindow;
Result:=false;
end;
finally
freemem(lpbuffer,sizeof(lpbuffer^));
end;
end;function FindAWindow(caption:string; classname:string):THandle;
var
WindowInfo:TFindWindowStruct;
begin
windowinfo.caption:=caption;
windowinfo.classname:=classname;
windowinfo.windowhandle:=0; EnumWindows(@EnumWindowsProc,longInt(@windowinfo));
FindAWindow:=Windowinfo.windowhandle;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
TheWindowHandle:THandle;
begin
TheWindowHandle:=FindAWindow('浏览','');//这里可以找任意的应用程序标题
if TheWindowHandle=0 then
begin
showmessage('window not found!');
winExec('EXPLORER.EXE',SW_SHOWNORMAL);
end
else
BringWindowToTop(TheWindowHandle);
end;end.