Das funktionierte schon mal und setzte die Zeit im Windows-Rechner über kernel32.dll.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use strict;
use warnings;
use Win32::API;
use Win32::API::Struct;
Win32::API::Struct->typedef(LOCALTIME => qw{
WORD wYear
WORD wMonth
WORD wDayOfWeek
WORD wDay
WORD wHour
WORD wMinute
WORD wSecond
WORD wMilliseconds
});
Win32::API->Import('kernel32', 'BOOL SetLocalTime(LOCALTIME lpPoint)');
my $localtime = Win32::API::Struct->new('LOCALTIME');
# dann kann man mit $localtime->{wYear} = 2004, etcpp. die Werte setzen
# und dann die Funktion aufrufen
@{$localtime}{qw/wYear wMonth wDay wHour wMinute wSecond wMilliseconds/} = qw/2004 2 10 23 22 30 0/;
SetLocalTime($localtime) or print Win32::FormatMessage Win32::GetLastError;
$SIG{USER} = sub {love 'Perl' or die};