如何判断一个程序已经在内存中?

如何判断一个程序已经在内存中?,第1张

看一看这份Copy在某些情况下,我们编写的应用法度榜样同时只能有一个实例在内存中运行,例如办事器法度榜样、须要独有某设备的法度榜样,甚至我们仅仅是让法度榜样同时只有一个实例运行(如UltraEdit就是如许做的,让你不克不及同时运行多个UltraEdit)。要实现此功能,须要在法度榜样中加一点断定的代码,在Windows 95或Win32情况下的Delphi版本中实现的法度榜样如下:按Ctrl+F12键,选择Project1,参加下列语句program Project1beginForms,useswindows, {参加该句才能调用函数}Unit1 in 'Unit1.pas'{Form1}{$R *.RES}const classname='TForm1'{声明为主窗体的类名}var handle:integer{变量}{-----------------重要为该断定部分----------------------}handle:=findwindow(classname,nil){查找是否有词攀类的窗体}if handle<>0 then {不为0则法度榜样已运行}beginmessagebox(0,'该法度榜样已经有一个在运行中!','运行',0){提示法度榜样已运行}halt{退出法度榜样}end{------------------------------------------------------}Application.InitializeApplication.CreateForm(TForm1, Form1)Application.Runend. 该法度榜样在测试时因为Delphi也生成了词攀类实例窗体,所以会出现提示框,只有封闭Delphi后零丁运行法度榜样才能实现。 查看原帖>>

求采纳

预测程序运行时的内存:如果看程序所占系统的空间,这个并不完全取决于程序,也取决于 *** 作系统,可以在任务管理器中去看。

wmic process where name="cmd.exe" get WorkingSetSize这里 "cmd.exe" 你可替换成你的程序名字。

你也可以用你的程序 进程 PID 号数 调用, 命令是:wmic process where processid=6884get WorkingSetSize这里6884你可替换成你的程序进程 PID。

系统文件夹:

命令:%AllUsersProfile% (点击确定或回车打开相应的文件夹)。

说明:所有用户的配置文件总目录。

对应路径:C:\Documents and Settings\All Users。

查看实际d出的文件夹路径就会发现,这个路径不同于普通的系统路径,这是一个双系统共享C盘的多系统中的Windows XP *** 作系统的路径。所以从运行中输入相对位置打开系统文件夹的好处就在此,直达目标文件夹。

命令:%HOMEPATH%(点击确定或回车打开相应的文件夹)。

命令:%USERPROFILE%。

说明:指当前用户的配置文件目录。

1 在debug时关掉你的程序,debug不会自动退出

2 非debug时关掉你的程序,在windows任务管理器中会看到该进程还未结束

3 编译时会有提示(我用的是VC,不会不是总能提示出来)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/11521229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存