社区
Delphi
帖子详情
调用函数得到系统信息
peterzhu1999
2004-01-30 08:31:03
如何调用函数得到操作系统的一些信息
如:系统版本号
系统容量
内存
...全文
36
3
打赏
收藏
调用函数得到系统信息
如何调用函数得到操作系统的一些信息 如:系统版本号 系统容量 内存
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
荣爵
2004-01-31
打赏
举报
回复
对
hch_45
2004-01-30
打赏
举报
回复
结果放在Memo1中。
procedure TForm1.Button1Click(Sender: TObject);
var
systeminfo: SYSTEM_INFO;
memory: MEMORYSTATUS;
sector,byte,cluster,free: DWORD;
freespace,totalspace: longint;
CDtype: UINT;
name: CHAR;
drvname: string;
volname,filesysname: PCHAR;
sno,maxl,fileflag: DWORD;
begin
Memo1.Lines.Clear();
//获得CPU型号
GetSystemInfo(systeminfo);
Memo1.Lines.Add('您的CPU类型是:' + inttostr(systeminfo.dwProcessorType));
//获得内存状态
memory.dwLength := sizeof(memory); //初始化
GlobalMemoryStatus(memory);
Memo1.Lines.Add('您的物理内存是(' + inttostr(integer(memory.dwTotalPhys div 1024 div 1024)) + 'MB)。');
Memo1.Lines.Add('其中可用内存是(' + inttostr(integer(memory.dwTotalPhys div 1024)) + 'KB)。');
//获得C盘可用空间
GetDiskFreeSpace('C:', LPDWORD(@sector)^, LPDWORD(@byte)^, LPDWORD(@free)^, LPDWORD(@cluster)^); //获得返回参数
totalspace := cluster * byte * sector div 1024 div 1024; //计算总容量
freespace := free * byte * sector div 1024 div 1024; //计算可用空间
Memo1.Lines.Add('C盘总空间(' + inttostr(integer(totalspace)) + 'MB)。');
Memo1.Lines.Add('C盘可用空间(' + inttostr(integer(freespace)) + 'MB)。');
//检测CD-ROM,是否有光盘
GetMem(volname, 255);
GetMem(filesysname, 100);
for name :='C' to 'Z' do//循环检测A~Z
begin
drvname := name + ':';
CDtype := GetDriveType(PCHAR(@drvname[1])); //获得磁盘类型
if (CDtype = DRIVE_CDROM) then
begin
Memo1.Lines.Add('您的光驱盘符为[' + drvname + ']');
volname^ := Chr(0);
filesysname^ := Chr(0);
if ( not (GetVolumeInformation(PCHAR(@drvname[1]), volname, 250, LPDWORD(@sno), LPDWORD(@maxl)^, LPDWORD(@fileflag)^, filesysname,100))) then
Memo1.Lines.Add(drvname + '驱中没有发现光盘') //如果返回值为假
else //如果返回值为真
begin
Memo1.Lines.Add (drvname + '驱中光盘卷标为: [' + String(volname) + ']');
Memo1.Lines.Add (drvname + '驱中光盘序号为: [' + inttostr(sno) + ']');
end;
end;
end;
FreeMem(volname);
FreeMem(filesysname)
end;
hch_45
2004-01-30
打赏
举报
回复
var ver:integer;//版本号 major:integer;//主版本号 minor:integer;//次版本号
begin
ver:=getversion();//获得版本号
major:=ver and 255;//获得主版本号
minor:=(ver and 255*256)div 256; //获得次版本号
showmessage(‘系统版本号是:’+inttostr(ver)); //显示版本号
showmessage(‘系统主版本号是:'+inttostr(major));//显示主版本号
showmessage(‘系统次版本号是:'+inttostr(minor));//显示次版本号
end;
springboot2.0企业中台实战之权限统一管理与应用统一授权 (dubbo分布式
系统
实战)
本课程是一门具有很强实践性质的“项目实战”课程,即“企业中台
系统
实战”,其中主要包含三大块核心内容,如下图所示(右键可以在新标签页中打开图片放大查看): 即主要包含以下三大块内容: ① 企业内部应用
系统
菜单资源和操作权限的统一管理; ② 分布式应用
系统
通信时的统一授权,即基于AccessToken的授权与认证; ③ 分布式服务/
系统
通信时的两大方式(基于dubbo rpc协议和基于http协议的restful api实战)。 值得一提的是,这套中台
系统
由于讲解了如何统一管理企业内部各大应用
系统
的“菜单资源列表”、“操作权限”,故而本门课程的“代码实战”是建立在之前debug录制的“企业权限管理平台”这套课程的基础之上的,故而在这里debug建议没有项目开发基础的小伙伴可以先去学习我的那套“企业权限管理平台”的实战课程,之后再来学习我的这套中台
系统
的实战才不会很吃力(课程链接:) 本课程的课程大纲如下图所示(右键可以在新标签页中打开图片放大查看): 除此之外,这套“中台
系统
”由于统一管理了企业内部各大应用
系统
的“菜单资源和操作权限”以及“应用
系统
之间通信时的统一授权”,故而难免需要涉及到“中台
系统
”与“中台子
系统
”、“中台子
系统
”与“中台子
系统
”之间的通信(即分布式服务之间的通信),在这里我们是采用“dubbo + zookeeper”的方式加以落地实现的,详情如下图所示(右键可以在新标签页中打开图片放大查看): 而众所周知,作为一款知名以及相当流行的分布式服务调度中间件,dubbo现如今已经晋升为Apache顶级的开源项目,未来也仍将成为“分布式
系统
”开发实战的一大利器,如下图所示为dubbo底层核心
系统
架构图(右键可以在新标签页中打开图片放大查看): 而在这门“中台
系统
实战”的课程中,我们也将始终贯彻、落地dubbo的这一核心
系统
架构图,即如何将中台
系统
开发的服务注册/发布到注册中心zookeeper,中台子
系统
如何订阅/消费/调度中台
系统
发布在zookeeper的接口服务,中台子
系统
在走http协议调度通信时dubbo如何进行拦截、基于token认证接口的调用者等等,这些内容我们在课程中将一一
得到
代码层面的实战落地! 下图为本课程中涉及到的分布式
系统
/服务之间 采用“http协议restfulapi”方式通信时的Token授权、认证的流程图(右键可以在新标签页中打开图片放大查看): 而不夸张地说,基于AccessToken的授权、认证方式在现如今微服务、分布式时代
系统
与
系统
在通信期间最为常用的“授权方式”了,可想而知,掌握其中的流程思想是多么的重要! 以下为本门课程的部分截图(右键可以在新标签页中打开图片放大查看): 核心技术列表: 值得一提的是,由于本门课程是一门真正介绍“中台思想”以及将“中台思想”和“分布式
系统
开发实战”相结合落地的课程,故而在学完本门课程之后,可以掌握到的核心技术自然是相当多的。主要由SpringBoot2.0、SpringMVC、Mybatis、Dubbo、ZooKeeper、Redis、OkHttp3、Guava-Retrying重试机制、JWT(Json Web Token)、Shiro、分布式集群session共享、Lombok、StreamAPI、Dubbo-Filter以及ServiceBean等等。如下图所示(右键可以在新标签页中打开图片放大查看):
【
系统
调用】常用
系统
调用函数
:详细介绍
提供了一些常见的
系统
调用函数
的具体介绍和代码示例,包括open、perror、close、write、read、stat、dup、fcntl等函数,涵盖了文件操作、错误处理、文件状态获取、文件描述符操作等功能。 此外,我们还介绍了其他一些与I/O和目录相关的
系统
调用函数
,包括access、chmod、chown、truncate、link、symlink、readlink、unlink、rename、getcwd、chdir、opendir、closedir、readdir等函数,并提供了相应的代码示例。
浅谈C语言函数调用与
系统
调用
1. 函数调用和
系统
调用概述 1.1 定性的去区分函数调用和
系统
调用 很多初学C语言的同学,亦或者开发中很少接触
系统
底层的同学可能会认为函数调用以及
系统
调用是一回事。因为在应用程序,两者都被抽象成接口去给应用程序调用。其实函数调用和
系统
调用还是有区别,我们通过下图先有个全局的了解! 图1-1
系统
功能模块关联图 从图1-1 我们可以知道应用程序访问内核,主要通过两种方式:中断和
系统
...
系统
调用和函数调用的区别
系统
调用 操作
系统
服务的编程接口 通常由高级语言编写(C或C++) 程序访问通常通过高层次 的API接口(C标准库的库函数)而不是直接进行
系统
调用 每个
系统
调用对应一个
系统
调用编号
系统
调用与函数调用的区别
系统
调用 1.使用INT和IRET指令,内核和应用程序使用的是不同的堆栈,因此存在堆栈的切换,从用户态切换到内核态,从而可以使用特权指令操控设备 2.依赖于内核,不保证移植性 3.在用户...
系统
调用与函数调用的区别
1、
系统
调用和库函数的关系
系统
调用通过软中断int 0x80从用户态进入内核态。函数库中的某些函数调用了
系统
调用。函数库中的函数可以没有调用
系统
调用,也可以调用多个
系统
调用。编程人员可以通过函数库调用
系统
调用。高级编程也可以直接采用int 0x80进入
系统
调用,而不必通过函数库作为中介。如果是在核心编程,也可以通过int 0x80进入
系统
调用,此时不能使用函数库。因为函数库中的函数是内核访问不到的
Delphi
5,402
社区成员
262,733
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章