Sha256: 2e5ba4bb72fbfd531b0f53ecb43c36e80181e02ce22646da2f769804f7e9bb10

Contents?: true

Size: 1.1 KB

Versions: 3

Compression:

Stored size: 1.1 KB

Contents

module MyScripts
  # This script prevents screen saver from locking down Windows by randomly moving
  # mouse pointer a bit every 4 minutes or so. Why would you need this? Well, if your
  # XP box is in a domain with security-crazy admins who have immutable policy of
  # forced screen saver after 5 minutes of inactivity you'd feel the pain...
  #
  class Wake < Script
    SLEEP_TIME = 4 * 60 # seconds

    def initialize( name, argv, cli )
      require 'win/gui/input'
      self.class.send(:include, Win::Gui::Input)
      super
    end

    def move_mouse_randomly
      x, y = get_cursor_pos
      x1, y1 = x + rand(3) - 1, y + rand(3) - 1
      mouse_event(MOUSEEVENTF_ABSOLUTE, x1, y1, 0, 0)
      puts "Cursor positon set to #{x1}, #{y1}"
    end

    def run
      case @argv.size
        when 0
          sleep_time = SLEEP_TIME
        when 1
          sleep_time = @argv.first.to_f * 60
        else
          usage "[minutes] - prevents screen auto lock-up by moving mouse pointer every (4) [minutes]"
      end

      loop do
        move_mouse_randomly
        sleep sleep_time
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
my_scripts-0.1.3 lib/my_scripts/scripts/wake.rb
my_scripts-0.1.0 lib/my_scripts/scripts/wake.rb
my_scripts-0.0.24 lib/my_scripts/wake.rb