in reply to Re: Win32 idle state (screensaver like)
in thread Win32 idle state (screensaver like)

Wonderful, now how do i combine it with perl ?
though it's told there that it's also C++'s function i've never seen it in C++ neither in C# and most important, i don't know how to get it to return the output into a Perl's variable.
  • Comment on Re^2: Win32 idle state (screensaver like)

Replies are listed 'Best First'.
Re^3: Win32 idle state (Updated)
by BrowserUk (Patriarch) on Sep 28, 2007 at 21:38 UTC

    You learn how to use Win32::API

    This uses win32::API::Prototype which you may not be able to obtain, but shoudl be readily adaptable to Win32::API. It loops, calling the api and printing the return. Move the mouse or touch a key to see the output change.

    #! perl -slw use strict; use Win32::API::Prototype; ApiLink( 'user32.dll', 'bool GetLastInputInfo( pvoid p )' ) or die $^E +; my $info = pack 'VV', 8, 0; while( sleep 1 ) { GetLastInputInfo( $info ) or die $^E; printf "Last input was at: %u\n", unpack 'x[V] V', $info; } __END__ c:\test>junk Last input was at: 850068125 Last input was at: 850068125 Last input was at: 850068125 Last input was at: 850068125 Last input was at: 850068125 Last input was at: 850073953 Last input was at: 850073953 Last input was at: 850073953 Last input was at: 850073953 Last input was at: 850077828 Last input was at: 850078250 Last input was at: 850078250 Last input was at: 850078250 Last input was at: 850078250 Last input was at: 850078250 Last input was at: 850078250 Last input was at: 850078250 Last input was at: 850078250 Last input was at: 850086593 Last input was at: 850086593 Last input was at: 850086593 Last input was at: 850086593 Last input was at: 850090578 Last input was at: 850092078 Last input was at: 850092703 Terminating on signal SIGINT(2)

    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
      Thanks a lot, i'm VVery grateful :)

      use Win32::API::Prototype; ApiLink( 'user32.dll', 'bool GetLastInputInfo( pvoid p )' )
      can be replaced with
      use Win32::API; Win32::API::->Import('user32.dll', 'BOOL GetLastInputInfo(PVOID p)')
      removing the dependency of Win32::API::Prototype. Win32::API has its own prototype parser. (I guess Win32::API::Prototype predates the Import method in Win32::API.)

      lodin