用perl获得系统信息
perl是一个优秀的脚本语言,支持强大的网络编程,其实它实现对本地机器操作的编程功能也不弱哦,在去年刚开始学习perl的时候查阅它的帮助文档,发现perl中也可以用API,顿时来了兴趣,于是就写了个获得磁盘 信息的程序,最近闷的慌,所以就有了把这个程序强化的念头,看了两天的帮助,学了不少东西,然后这篇文章就诞生了 :P 。 首先确认你的机器装了perl解释器,以及WIN32-API包。 如何安装WIN32-API包? 在SHELL下进入perl的BIN目录,然后运行PPM后出现 C:/Perl/bin>ppm PPM - Programmer's Package Manager version 3.1. Copyright (c) 2001 ActiveState SRL. All Rights Reserved. Entering interactive shell. Using Term::ReadLine::Stub as readline library. Type 'help' to get started. ppm> 输入install WIN32-API 回车后确认一下,机器就下载包,等安装完毕用EXIT来退出。 从注册表中获取相关信息 在C中我们对这个已经很熟悉了,perl中调用也是非常相似的。Perl中对注册表的操作和C一样强大,想怎么玩看你的了。看看获取信息的代码吧。 Sub other() {
my $key; my $data; RegOpenKeyEx( HKEY_LOCAL_MACHINE, "SOFTWARE//Microsoft //Windows NT//CurrentVersion", 0,KEY_READ, $key )||die "注册表打开失败",regLastError(),"/n"; RegQueryValueEx( $key, "ProductName", [], [], $data, [] ); #获得操作系统相关信 printf "操作系统:$data "; 息,在注册表的这个 RegQueryValueEx( $key, "CurrentVersion", [], [], $data, [] ); 位置还有很多信息我就 printf "$data."; 列出来了。可以自己添 RegQueryValueEx( $key, "CurrentBuildNumber", [], [], $data, [] ); 加。 printf "$data "; RegQueryValueEx( $key, "CSDVersion", [], [], $data, [] ); printf &#