如何编写这样的程序(100分)

  • 主题发起人 主题发起人 wp231957
  • 开始时间 开始时间
W

wp231957

Unregistered / Unconfirmed
GUEST, unregistred user!
我想写一个程序,该程序没有窗体,就是运行后在任务栏,托盘,进程管理器(WINDOWS自带)中均看不到的,而且还要能具备以下功能:能够记录所有当前用户所打开的窗口(标题),并每隔N秒/分保存到文本日志里,大家给点思路
 
把窗口hidden,再注册为系统进程,大概这样子了,我也不会
 
写成服务
 
想在进程管理器里看不到需要进程注入 搜索以前记录......<br><br>想没窗体,直接写成服务<br><br>参考服务中那些给svchost.exe加参数运行的服务
 
谢谢楼上的每一个人<br><br><br>第一:我想知道在DELPHI中如何写服务程序,一点都不懂,还希望能详细些<br>第2:要求每打开一个窗口都要记录在案,不能有遗漏,所以不能用定时扫描桌面这个办法<br> &nbsp; &nbsp;因为有可能在你扫描时,某个打开的窗口已经 被关闭了
 
我记得Delphi园地上有例子,你可以到上面看一看。 www.delphifans.com 。
 
用窗口钩子 实现简单 &nbsp;勾住窗口创建消息 就行了
 
来自:菜鸟的问题, 时间:2006-10-11 10:34:51, ID:3593347<br>用窗口钩子 实现简单 &nbsp;勾住窗口创建消息 就行了 &nbsp;<br>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br><br>能不能给个例程啊,没写过钩子程序,也没写过服务程序
 
看到内容就是没存好心...又一个病毒即将诞生...
 
来自:zangcb, 时间:2006-10-11 10:52:33, ID:3593375<br>看到内容就是没存好心...又一个病毒即将诞生... &nbsp;<br>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>你错了,这个特别适合家长用,可以监控当你不在时,孩子们都用<br>电脑做了些什么,虽然用到了所谓的病毒技术,但技术无罪
 
问题是如何写呢
 
怎么最近的人都问这个....
 
具体的例子网上都是可以搜的,不要老指望我能告诉你们 -- 我们老总说得~~~<br><br>ps 他已经告诉我们很多了~呵呵
 
我写了一个服务程序:目的是每分钟弹出一个对话框,显示当前的日期<br>可是我在控制面板中启动它以后,却什么都不弹出呢<br><br>unit Unit2;<br><br>interface<br><br>uses<br> &nbsp;Classes,windows,sysutils,messages,dialogs;<br><br>type<br> &nbsp;data = class(TThread)<br> &nbsp;private<br> &nbsp; &nbsp;{ Private declarations }<br> &nbsp;protected<br> &nbsp; &nbsp;procedure Execute; override;<br> &nbsp;end;<br><br>implementation<br><br>{ Important: Methods and properties of objects in visual components can only be<br> &nbsp;used in a method called using Synchronize, for example,<br><br> &nbsp; &nbsp; &nbsp;Synchronize(UpdateCaption);<br><br> &nbsp;and UpdateCaption could look like,<br><br> &nbsp; &nbsp;procedure data.UpdateCaption;<br> &nbsp; &nbsp;begin<br> &nbsp; &nbsp; &nbsp;Form1.Caption := 'Updated in a thread';<br> &nbsp; &nbsp;end; }<br><br>{ data }<br><br>procedure data.Execute;<br>begin<br> &nbsp;showmessage(datetimetostr(now));<br> &nbsp;sleep(60000);<br>end;<br><br>end.<br> &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>unit Unit1;<br><br>interface<br><br>uses<br> &nbsp;Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr,<br> &nbsp;unit2,Dialogs;<br><br>type<br> &nbsp;Tdemo = class(TService)<br> &nbsp; &nbsp;procedure ServiceStart(Sender: TService; var Started: Boolean);<br> &nbsp; &nbsp;procedure ServiceStop(Sender: TService; var Stopped: Boolean);<br> &nbsp;private<br> &nbsp; &nbsp;{ Private declarations }<br> &nbsp;public<br> &nbsp; &nbsp;function GetServiceController: TServiceController; override;<br> &nbsp; &nbsp;{ Public declarations }<br> &nbsp;end;<br><br>var<br> &nbsp;demo: Tdemo;<br> &nbsp;da:data;<br>implementation<br><br>{$R *.DFM}<br><br>procedure ServiceController(CtrlCode: DWord); stdcall;<br>begin<br> &nbsp;demo.Controller(CtrlCode);<br>end;<br><br>function Tdemo.GetServiceController: TServiceController;<br>begin<br> &nbsp;Result := ServiceController;<br>end;<br><br>procedure Tdemo.ServiceStart(Sender: TService; var Started: Boolean);<br>begin<br> &nbsp;da:=data.Create(false);<br> &nbsp;started:=true;<br>end;<br><br>procedure Tdemo.ServiceStop(Sender: TService; var Stopped: Boolean);<br>begin<br> &nbsp;da.Terminate ;<br> &nbsp;stopped:=true;<br>end;<br><br>end.
 
有知道没
 
用钩子来截获窗体消息
 
后退
顶部