in reply to lock WinXP Desktop with perl

Bad news: I can't find any existing module to do this.

Good news: Win32::API can be used to access all system calls and any DLL using only Perl and no compiler. The system call in question appears to be LockWorkStation.

Update: It might be as simple as the following (untested) code:

use Win32::API (); Win32::API->Import("user32", "BOOL LockWorkStation()"); LockWorkStation();

Update: Here's a tested version with error checking:

use Win32::API (); Win32::API->Import("user32", "BOOL LockWorkStation()") or die("Unable to import LockWorkStation: $^E\n"); LockWorkStation() or die("Unable to lock workstation: $^E\n");

If Import returns false and $^E is numerically equal to 127 ("The specified procedure could not be found"), then it's probably because the function is not required on that particular OS.