网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Delphi
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.利用网站短信漏洞,做自己的手机.
.序列化FastReport.
.delphi常用文档之四.
.mscomm32的简单应用.
.Delphi编程实现Ping操作.
.OTA:使用本地IDE对象[D4].
.通用查询组件设计(续).
.Delphi下的接口编程学习笔记(原.
.用程序模拟键盘和鼠标键盘.
.让你的DBGrid竖着站(1).
.古都Delphi.
.Delphi中的线程类--之(3).
.我的文章-《剖析Delphi中的构造和.
.玩转Windows桌面图标.
.delphi中的字符串处理,以及几个.
.delphi运行错误信息.
.控件移动类的实现之二.
.创建不规则形状的Control.
.DELPHI中DBGrid中行的定位及着色.
.扫雷外挂的设计与实现(二).

进程查看器1.3版开发后记

发表日期:2006-2-4


终于赶在元宵节这天发布“进程查看器1.3版”,顺便将它的中文版名字改为“05元宵版”。“进程查看器”一直都是用休息时间编码的,虽然1.3版增加的功能不多,但也耗用了好几天的下班时间。开发过程中还是有点东西需要记录下来,免得以后又忘记了。

一、查找主窗体
  通过特定的窗体句柄查找主窗体,这是以前做过的功能,随手写出以下代码:
    if hWnd <> 0 then
        while GetParent(hWnd) <> NULL do hWnd := GetParent(hWnd);
  在调整时发现竟然会死循环,把循环改为while GetParent(hWnd) <> 0后正常,后来才想起我以前在CSDN回答过别人的这个问题,发现自己起来越没记性了。

二、最大化窗口的矩形区域
  通过窗体句柄计算窗体矩形区域并画虚线提示框也是以前做过的功能,不过源码在家里,这趟只得重新编写。但是在我现用的Win2000系统中,最大化窗体的矩形区域左上角竟然是(-4,-4),且宽度也比屏幕宽度多了4,想来可能是Windows有意这样处理窗体,让它那个3D的边框显示在屏幕之外。印象中我上次做这个功能时并没有这个问题,不知是不是以前没注意到。

三、取进程的内存用量
  在Win2000下很容易实现,用GetProcessMemoryInfo就可以了,而且有任务管理器可以对比。而在Win98/ME下就麻烦多了,最后使用了下面的代码,但得到的数值很大,没得对比的情况下只能这样了。
    iFlag := VirtualQueryEx(hndProcess, lpAddr, mi, SizeOf(mi));
    repeat
        LongWord(lpAddr) := LongWord(mi.BaseAddress) + mi.RegionSize;
        if LongWord(lpAddr) > $7fffffff then break;
        if mi.State = MEM_COMMIT then Inc(iTotalCommit, mi.RegionSize);
        iFlag := VirtualQueryEx(hndProcess, lpAddr, mi, SizeOf(mi));
    until iFlag <> sizeof(mi);

四、GetWindowThreadProcessId
  DWORD GetWindowThreadProcessId(HWND, LPDWORD)可以返回两个值,一个是函数本身的返回值,另一个LPDWORD指向的变量,LPDWORD才进程ID。

上一篇:Delphi+MapX5中使用自定义字体符号 人气:5216
下一篇:Delphi控件制作技巧[一] 人气:4393
浏览全部Delphi的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐