易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi Services 里面Findwindow 问题

老产品维护问题,
Delphi 版本:delphi6

如果新建一个Application,
用一下Code可以获得正确的Handle
Delphi(Pascal) code:

procedure TForm1.Button1Click(Sender: TObject);
var
EVMHandle:HWND;
EVMTitle: String;
begin
EVMHandle:=FindWindow(nil,'console');
Showmessage(inttostr(EVMHandle));
end;



但如果写一个delphi service application,
返回的handle值一直是0
Delphi(Pascal) code:

procedure TSvcChkHandle.ServiceStart(Sender: TService;
var Started: Boolean);
var
EVMHandle: HWND;
begin
try
Coinitialize(nil);
EVMHandle:=FindWindow(nil,'console');
Writelog(inttostr(EVMHandle));
Started := True;
except
On E: Exception do LogMessage(E.Message);
end;
end;


console 是我一个应用程序的窗口标题

在线等,谢谢

有没有什么方法在service里面可以检查某一个应用程序是否在运行?

老的产品在service里用Findwindow 来判断应用程序是否运行,怀疑是否windows2000里面可以
,但XP或者更高版本有问题,我在网上查到很多类似问题,但还没有解决我目前问题的方法。

谢谢关注,请继续支招。

可以用 psapi 单元的 EnumProcesses 或者 toolhlp 单元的 CreateToolhelp32Snapshot, Process32First, Process32Next 来定


相关问答:

ACCESS的自定义函数在delphi里怎么用呢...

我在模块里自定义了一个函数:stradd()

可是在adoquery1.sql.add('select stradd(author) from book');
时提示stradd未定义...

这个问题有什么办法可以解决的吗? 非常感激!


(在A ......

delphi 异步线程

delphi 异步线程怎么怎么实现?
请各位大佬帮忙!
最好有个实例!
多谢

你不同步就是异步了,还写啥

默认情况下,线程就是异步的…………*^_^*

估计楼主同步和异步概念都没弄清

真无语。。可 ......

delphi bypass 是什么意思

procedure ChangeProxy(Addr: string; Bypass, Enabled: Boolean); 
    var 
      Info: INTERNET_PROXY_INFO; 
      Reg : TRegistry;&nb ......

delphi操作数据库问题

先说说以前用asp查询的方法
down是一个表,分别有字段down_id,down_url,down_text
testdown是另一个表,分别有字段down_id,test_down_url
sql="select * from down order by down_count desc"
s ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号