1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
package FusionInventory::Agent::Task::Inventory::Win32::Inputs;
use strict;
use warnings;
# Had never been tested.
use FusionInventory::Agent::Tools::Win32;
my $seen;
my %mouseInterface = (
1 => 'Other',
2 => 'Unknown',
3 => 'Serial',
4 => 'PS/2',
5 => 'Infrared',
6 => 'HP-HIL',
7 => 'Bus Mouse',
8 => 'ADB (Apple Desktop Bus)',
160 => 'Bus Mouse DB-9',
161 => 'Bus Mouse Micro-DIN',
162 => 'USB',
);
sub isEnabled {
return 1;
}
sub doInventory {
my (%params) = @_;
my $inventory = $params{inventory};
foreach my $object (getWMIObjects(
class => 'Win32_Keyboard',
properties => [ qw/Name Caption Manufacturer Description Layout/ ]
)) {
my $input = {
NAME => $object->{Name},
CAPTION => $object->{Caption},
MANUFACTURER => $object->{Manufacturer},
DESCRIPTION => $object->{Description},
LAYOUT => $object->{Layout},
};
# avoid duplicates
next if $seen->{$input->{NAME}}++;
$inventory->addEntry(
section => 'INPUTS',
entry => $input
);
}
foreach my $object (getWMIObjects(
class => 'Win32_PointingDevice',
properties => [ qw/Name Caption Manufacturer Description PointingType DeviceInterface/ ]
)) {
my $input = {
NAME => $object->{Name},
CAPTION => $object->{Caption},
MANUFACTURER => $object->{Manufacturer},
DESCRIPTION => $object->{Description},
POINTINGTYPE => $object->{PointingType},
INTERFACE => $mouseInterface{$object->{DeviceInterface}},
};
# avoid duplicates
next if $seen->{$input->{NAME}}++;
$inventory->addEntry(
section => 'INPUTS',
entry => $input
);
}
}
1;
|