用BCB如何写内存驻留程序?

seaman117 2004-10-29 09:15:42
给个例子看看!
...全文
184 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
崔作非 2004-10-30
  • 打赏
  • 举报
回复
接着昨天的说,其实做成服务程序并不占用多少资源,可多可少,就看你想写什么了,很多软件也都是这么做的。如一般杀毒软件,数据库,开发工具的调试器等,什么都有,你可以看一下任务管理器,那里面的多数程序都是服务程序。它最大的好处是可以和其它服务程序相互依存,有些服务用户只要运行就不能被终止的,用任务管理器也不好使。现在都是用W2K或XP了,他们会更好的支持服务程序的。
seaman117 2004-10-30
  • 打赏
  • 举报
回复
to weill:
嗯,谢了!那儿有钩子的书啊?贴个地址看看吧!
分稍后送上!
weill 2004-10-30
  • 打赏
  • 举报
回复
上面的东西,你可别死记硬背哦,要理解偶为什么这样做,你才能学到东西。
weill 2004-10-30
  • 打赏
  • 举报
回复
示例下载点:
http://www.pcjia.net/viewFile.asp?Boardid=17&ID=467
可能需要注册一个用户才能下。

另:这个程序这不是真正意义上的后台,真正意义上的后台是没有窗体的,也就是说,在任务管理器中的“应用程序”中是看不到的,不过,在应用程序中看不到,也就是不会有界面给用户,其实,这种程序也容易实现,因为只要不做窗体就可以了,你可以研究一下项目文件。

比如,最简单的:
新建一个典型的应用程序工程,然后把窗体删去(方法是点左上的第七个小图标,也就是那个带个红色减号的那个图标),然后按Ctrl+F12,调出所有的程序文件列表,现在你可以看到,里面只有一个东西让你选了,选中它,打开工程文件代码,把里面的代码改成如下:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
int A;
for(A = 0;A<100;A++){
Sleep(1000);
};
return 0;
}
//---------------------------------------------------------------------------

这就是一个最简单的后台程序了,上面的程序实际上没做任何事,他只是在后台进行"A"变量的递增,每秒一次,一直到A=100,然后退出程序,至于你要做别的什么事,那么,请你理解着去做吧。

又及,开发这类程序,要使它真正有功能,一般要使用到钩子等,用用户的击键等去激活你的程序的实际功能,上面所说的只是最基础的东西。要开发这类程序,你要了解的东西会很多,而且可能整个程序工程要进行改去,和典型的windows程序有很大不同。

至于做成服务,那就是另说了,本人没做过NT服务类的程序,所以不发言。
ahaozi 2004-10-30
  • 打赏
  • 举报
回复
那要看什么级别的了.一般hook就是一个很好的例子了!
weill 2004-10-30
  • 打赏
  • 举报
回复
可以使用托盘图标式的程序来解决你的问题(注,将托盘图标隐了就完事)。
具体例子稍后给你。
tccsdn 2004-10-30
  • 打赏
  • 举报
回复
内存驻留程序在WINDOWS里面好象没有这样的说法吧,最简单的办法就是不显示主窗口就可以了
weill 2004-10-30
  • 打赏
  • 举报
回复
本人不同意上一楼的做成服务式的东西,原因有二:
一、对于一般用户来说,不知道怎么停止其服务。
二、不知怎么卸载它。

如果不想做恶意代码,只想让他后台服务的话,做个主程序无窗体的程序是最好的。
至于钩子,也不是一两句能说清的,呵呵,但是也不是很难,至于书嘛,唉……本人也没找到,也许商店里有,但专门讲这个的书很难找到。倒是这个论坛中你自个去搜一搜,应该能找到不少的资料。
如果实在不行,你就发个贴子,问问怎么做热键程序吧。

另外,仔细研究工程基本文件,看懂每一行的意思,你才能达到你的目的。
当然了,要做一个使用者在任务管理器中都难以发现的程序,只能用到“服务”了。本人可不怎么喜欢这样的东东。
seaman117 2004-10-29
  • 打赏
  • 举报
回复
dos下的TSR不能在win平台下运行吧!
我要的是win32下的!
东西不大,用后台服务是不是资源开销太大了
ropriest 2004-10-29
  • 打赏
  • 举报
回复
http://blog.csdn.net/acqy/archive/2001/01/22/6600.aspx
崔作非 2004-10-29
  • 打赏
  • 举报
回复
例如你可以开发一个Windows 2000/XP的服务程序,BCB有这个开发向导,他就在你控制面版->管理工具->组件里面的那些程序,他是和windows一起启动的,驻留在后台执行的,不知道合不合呼你的要求。
ropriest 2004-10-29
  • 打赏
  • 举报
回复
http://it.icxo.com/htmlnews/2004/07/26/274663.htm

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧