共勉:perl实现同win32 ::OnDeviceChange一样的功能
用perl 实现同win32 ::OnDeviceChange一样 获取系统中磁盘信息的功能:
#vicky finished by 10-03-13 22:10
#!/usr/bin/perl
#use Win32::kernel32;
use win32;
use win32::api;
use Win32API::File 0.08 qw( :ALL );
my $total_disk=GetLogicalDriveStrings(4*26+1,$osBuffer);
my $len=length $osBuffer;
print "$len- $osBuffer\n";
my $rec_diskinfo="*** logical disk info ***\n";
for(my $index=0;$index<$len; $index += 4)
{
my $getdrive= substr($osBuffer, $index, 2);
$rec_diskinfo .="$getdrive-->";
my $type = GetDriveType($getdrive);
if( $type==1)
{ $rec_diskinfo .="The root directory does not exist\n";next; }
if( $type==2){ $rec_diskinfo .="floppy drive\n";next; }
if( $type==3){ $rec_diskinfo .="fixed drive\n"; $savdisk=$getdrive;next;}
if( $type==4){ $rec_diskinfo .= "remote (network) drive\n";next; }
if( $type==5){ $rec_diskinfo .="CD-ROM drive\n";next; }
if( $type==6){ $rec_diskinfo .="A RAM disk\n";next; }
if( $type<=0||$type>6){ $rec_diskinfo .= "UNKNOWN Disk\n";next; }
}
open DRVIF,">f:\\logicaldisk.inf"||die "can save logical disk info";
printf DRVIF $rec_diskinfo ;
close DRVIF;
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lhy2199/archive/2010/03/13/5377573.aspx
#vicky finished by 10-03-13 22:10
#!/usr/bin/perl
#use Win32::kernel32;
use win32;
use win32::api;
use Win32API::File 0.08 qw( :ALL );
my $total_disk=GetLogicalDriveStrings(4*26+1,$osBuffer);
my $len=length $osBuffer;
print "$len- $osBuffer\n";
my $rec_diskinfo="*** logical disk info ***\n";
for(my $index=0;$index<$len; $index += 4)
{
my $getdrive= substr($osBuffer, $index, 2);
$rec_diskinfo .="$getdrive-->";
my $type = GetDriveType($getdrive);
if( $type==1)
{ $rec_diskinfo .="The root directory does not exist\n";next; }
if( $type==2){ $rec_diskinfo .="floppy drive\n";next; }
if( $type==3){ $rec_diskinfo .="fixed drive\n"; $savdisk=$getdrive;next;}
if( $type==4){ $rec_diskinfo .= "remote (network) drive\n";next; }
if( $type==5){ $rec_diskinfo .="CD-ROM drive\n";next; }
if( $type==6){ $rec_diskinfo .="A RAM disk\n";next; }
if( $type<=0||$type>6){ $rec_diskinfo .= "UNKNOWN Disk\n";next; }
}
open DRVIF,">f:\\logicaldisk.inf"||die "can save logical disk info";
printf DRVIF $rec_diskinfo ;
close DRVIF;
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lhy2199/archive/2010/03/13/5377573.aspx
...全文
相关推荐
Win32::OLE
Win32::OLE模块正是利用了这一点,使得Perl脚本能够像操作任何其他Perl对象一样,操作如Excel、Word等Office应用程序。
Win32OpenSSL 、Perl
**命令行工具**:提供`openssl.exe`等命令行工具,便于执行加密、解密、证书管理等操作。安装Win32OpenSSL后,开发人员可以使用其API来集成到自己的应用程序中,实现安全通信功能。
perl_open.rar_open_win32apiperl
perl_open.rar_open_win32apiperl"这个主题就涉及到如何在Perl中调用Win32 API来实现文件的打开功能,并且会弹出一个对话框供用户选择文件。
Perl for Win32 Build B515 源代码
**Win32特定功能**:Perl for Win32版本包含了许多针对Windows操作系统的特有功能,比如文件系统访问、进程控制、网络通信等。
win32的
例如,`Win32::API`模块提供了一个简单的接口来加载动态链接库(DLLs)并调用其导出的函数。它允许你定义函数原型,指定参数类型和返回值类型,然后调用这些函数就像调用普通的Perl子程序一样。


