Community
    • Login

    Presentation mode?

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    5 Posts 2 Posters 1.3k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • roweryanR Offline
      roweryan
      last edited by

      Is there a way to get Notepad++ to enter presentation mode? I would like to stop the screensaver kicking in all the time (IT set it to 5 minutes and I cannot change it). Thanks.

      Alan KilbornA 1 Reply Last reply Reply Quote 0
      • Alan KilbornA Offline
        Alan Kilborn @roweryan
        last edited by

        @roweryan

        Ah, those I.T. clowns…always doing dumb things.

        Sounds like what you need is a mouse-jiggler.

        Alan KilbornA 1 Reply Last reply Reply Quote 1
        • Alan KilbornA Offline
          Alan Kilborn @Alan Kilborn
          last edited by PeterJones

          So, as I often do, I grabbed the jiggler script I use, and I cleaned it up for forum posting. The script runs via the PythonScript plugin and executes behind the scenes whenever your Notepad++ is running, preventing your computer from entering screensaver/sleep mode.

          Curiously, I notice if I have Visual Studio IDE running in addition to Notepad++, my computer WILL sleep after the I.T. prescribed timeout – I have no idea why this is.

          Here’s MouseJiggleDaemon.py:

          # -*- coding: utf-8 -*-
          
          import ctypes
          from ctypes import Structure, c_uint, sizeof, byref, POINTER, c_int
          from ctypes.wintypes import DWORD, LONG
          import threading
          import time
          
          ULONG_PTR = ctypes.POINTER(DWORD)
          
          INPUT_MOUSE          = 0
          MOUSEEVENTF_ABSOLUTE = 0x8000
          MOUSEEVENTF_MOVE     = 0x0001
          
          class MOUSEINPUT(ctypes.Structure):
              _fields_ = (
                  ('dx', LONG),
                  ('dy', LONG),
                  ('mouseData', DWORD),
                  ('dwFlags', DWORD),
                  ('time', DWORD),
                  ('dwExtraInfo', ULONG_PTR)
                  )
          
          class _INPUTunion(ctypes.Union):
              _fields_ = (
                  ('mi', MOUSEINPUT),
                  )
          
          def MouseInput(flags, x, y, data): return MOUSEINPUT(x, y, data, flags, 0, None)
          def Input(structure): return INPUT(INPUT_MOUSE, _INPUTunion(mi=structure))
          def Mouse(flags, x=0, y=0, data=0): return Input(MouseInput(flags, x, y, data))
          
          class INPUT(ctypes.Structure):
              _fields_ = (
                  ('type', DWORD),
                  ('union', _INPUTunion)
                  )
          
          def sendInput(*inputs):
              nInputs = len(inputs)
              LPINPUT = INPUT * nInputs
              pInputs = LPINPUT(*inputs)
              cbSize = ctypes.c_int(ctypes.sizeof(INPUT))
              return ctypes.windll.user32.SendInput(nInputs, pInputs, cbSize)
          
          def sendMouseMoveDeltaXY(x, y):
              flags = MOUSEEVENTF_MOVE
              event = Mouse(flags, x, y, 0)
              return sendInput(event)
          
          class MJD(object):
          
              def __init__(self):
                  self.jiggle_thread = threading.Thread(target=self.jiggle_thread_function, args=(1,))
                  self.jiggle_thread.daemon = True  # thread won't stop until parent ends
                  self.jiggle_thread.start()
          
              def jiggle_thread_function(self, name):
                  multiplier = 1
                  while True:
                      sendMouseMoveDeltaXY(multiplier, multiplier)
                      multiplier *= -1
                      time.sleep(5.0)  # use this so we don't continuously use CPU time
          
          if __name__ == "__main__":
              try:
                  mjd
              except NameError:
                  mjd = MJD()
          

          You can set it up for automatic use by adding these two lines to your user startup.py file:

          import MouseJiggleDaemon
          mjd = MouseJiggleDaemon.MJD()
          

          and by configuring your PythonScript to run “at startup” by choosing this setting:

          Imgur

          roweryanR 1 Reply Last reply Reply Quote 3
          • roweryanR Offline
            roweryan @Alan Kilborn
            last edited by

            @alan-kilborn it is working thank you.

            Maybe this could make it to mainline np++ one day :)

            Alan KilbornA 1 Reply Last reply Reply Quote 1
            • Alan KilbornA Offline
              Alan Kilborn @roweryan
              last edited by

              @roweryan said in Presentation mode?:

              Maybe this could make it to mainline np++ one day

              It seems perfect as an add-on script.
              Glad that it works for you.

              Now you have a reason to never exit N++.
              If you need such a reason.
              :-)

              1 Reply Last reply Reply Quote 0
              • Alan KilbornA Alan Kilborn referenced this topic on
              • PeterJonesP PeterJones referenced this topic on

              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

              With your input, this post could be even better 💗

              Register Login
              • First post
                Last post
              The Community of users of the Notepad++ text editor.
              Powered by NodeBB | Contributors