请看一下这一段代码。(100分)

  • 主题发起人 主题发起人 pander
  • 开始时间 开始时间
P

pander

Unregistered / Unconfirmed
GUEST, unregistred user!
只知道应用程序的名称,比如xx.exe,该程序是单进程的。
在其运行时如何获得其句柄,以便将其调到前端
有这么一段代码,如下:能讲讲程序类名大概是什么意思么?他对上面这个问题是否有帮助。
谢谢,代码如下:

: function LookAtAllWindows(Handle: HWND; Temp: LongInt): BOOL; stdcall;
: var
: ; WindowName, ClassName: Array[0..255] of Char;
: begin
: ; // 得到Handle窗口的类名称
: ; if GetClassName(Handle, ClassName, SizeOf(ClassName)) > 0 then
: ; ; if StrComp(ClassName, MyClassName) = 0 then // 是否和这个程序类名相同
:
: ; ; // 得到当前窗口名称
: ; ; ;if GetWindowText(Handle, WindowName, SizeOf(WindowName)) > 0 then
: ; ; ; ;// 判断是否同当前窗口名称相同
: ; ; ; if StrLComp(WindowName, MyAppName,StrLen(MyAppName)) = 0 then
: ; ; ; begin
: ; ; ; ;inc(NumFound);
: ; ; ; ;if Handle <> Application.Handle then // Handle是否同应用程序相同
: ; ; ; ;LastFound := Handle; // 保存句柄,以便可以把它带到前端运行
: ; ; ; end;
: ; ; ; ; Result:=True;
: end;
 
你直接用findwindow不就完了
 
这段代码几乎就是上面问题的答案了,你说有没有帮助 :)
 
有一定关系,你在上面这段程序,加上获取程序名称,就可以满足你的需要了。。[:)]
 
将应用程序调到前台可以用下面帖子中的函数实现!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=676583
 
程序的标题可不知道,也不是不变的。只知道Application的名称。
 
没人知道么?
 
简单点,可执行程序用ShellExecute就可以了,不管该程序正在运行与否,都能将其调到
前方来。不过不知道如何获得句柄
 
获得句柄h后,SetForegroundWindow(h)就可以了.
 
多人接受答案了。
 
后退
顶部