Community
    • Login

    Finding available shortcut keys (originally "Where's the 'New Window' command?")

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    53 Posts 7 Posters 5.8k Views
    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.
    • TBugReporterT
      TBugReporter @Alan Kilborn
      last edited by

      @Ekopalypse said in Finding available shortcut keys (originally “Where’s the ‘New Window’ command?”):

      while True:
          result = notepad.messageBox('','', MESSAGEBOXFLAGS.ABORTRETRYIGNORE)
          if result != MESSAGEBOXFLAGS.RESULTRETRY:
              break
      

      Okay, but where do I put the code that I want it to retry, and where do I put the code that tests whether to show the MessageBox? (without having to duplicate either of those?)

      @Alan-Kilborn said in Finding available shortcut keys (originally “Where’s the ‘New Window’ command?”):

      It boggles the mind

      Yeah, but isn’t it nice to know that your mind can still be boggled? 😁

      Stop Script should only be run from the menus as a last resort

      This was a stopgap measure for me - a placeholder until I could understand my difficulties with scope for variables. I think I got that under control; I just need to test it out and then I’ll do like you said.

      PeterJonesP 1 Reply Last reply Reply Quote 0
      • PeterJonesP
        PeterJones @TBugReporter
        last edited by PeterJones

        @TBugReporter said in Finding available shortcut keys (originally “Where’s the ‘New Window’ command?”):

        Okay, but where do I put the code that I want it to retry

        while True:
            result = notepad.messageBox('','', MESSAGEBOXFLAGS.ABORTRETRYIGNORE)
            if result != MESSAGEBOXFLAGS.RESULTRETRY:
                break
            # code to redo goes here
        

        or alternately, if it makes more sense to you,

        while True:
            result = notepad.messageBox('','', MESSAGEBOXFLAGS.ABORTRETRYIGNORE)
            if result == MESSAGEBOXFLAGS.RESULTRETRY:
                # code to redo goes here
            else:
                break
            # code to redo goes here
        
        TBugReporterT 1 Reply Last reply Reply Quote 0
        • TBugReporterT
          TBugReporter @PeterJones
          last edited by

          @PeterJones

          It seems to me that that structure won’t do the “code to redo” a first time without first putting up the A/R/I box…?

          PeterJonesP 1 Reply Last reply Reply Quote 0
          • PeterJonesP
            PeterJones @TBugReporter
            last edited by

            @TBugReporter ,

            It seems to me that that structure won’t do the “code to redo” a first time without first putting up the A/R/I box…?

            Then put the code in whatever order you think is logical for your needs.

            while True:
               # code to do every loop goes here 
               result = notepad.messageBox('','', MESSAGEBOXFLAGS.ABORTRETRYIGNORE)
               if result != MESSAGEBOXFLAGS.RESULTRETRY:
                    break
            
            TBugReporterT 1 Reply Last reply Reply Quote 0
            • TBugReporterT
              TBugReporter @PeterJones
              last edited by

              @PeterJones
              I’ve now tried this …

              def bailout(msg):
                  print(msg)
                  user_response = notepad.messageBox(msg, "Error", MB_CANCELTRYCONTINUE | MB_ICONWARNING)
                  if user_response == MB_RESULTCANCEL:
                      notepad.runPluginCommand('Python Script', 'Stop Script')
                  else:
                      return user_response
              
              def main():
                  # ...
                  while True:
                      sk_mapper_hwnd = user32.FindWindowW(None, u"Shortcut mapper")
                      if not sk_mapper_hwnd:
                          action_to_take = bailout("Mapper window not found!")
                      if action_to_take != MB_RESULTTRYAGAIN:
                          break
                  # ...
              

              … but that gives me …

              UnboundLocalError: local variable 'action_to_take' referenced before assignment
              

              Where did I go wrong?

              EkopalypseE 1 Reply Last reply Reply Quote 0
              • EkopalypseE
                Ekopalypse @TBugReporter
                last edited by

                @TBugReporter

                Scope problem. An if-block introduces a new scope and the variables defined there are only valid within this scope. Either the comparison with MB_RESULTTRYAGAIN is indented to have it in the same scope, or action_to_take must be defined at the same scoping level as the comparison.

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

                  I don’t know that I like the trend of this thread. It seems we’re teaching Python??

                  1 Reply Last reply Reply Quote 1
                  • Mendella ReplacementM
                    Mendella Replacement @Alan Kilborn
                    last edited by

                    @Alan-Kilborn please can i get your attention? I need help pls

                    Mendella ReplacementM 1 Reply Last reply Reply Quote 0
                    • Mendella ReplacementM
                      Mendella Replacement @Mendella Replacement
                      last edited by

                      @Mendella-Replacement said in Finding available shortcut keys (originally “Where’s the ‘New Window’ command?”):

                      @Alan-Kilborn please can i get your attention? I need help pls

                      PeterJonesP 1 Reply Last reply Reply Quote 0
                      • PeterJonesP
                        PeterJones @Mendella Replacement
                        last edited by

                        This discussion has stopped being about “new window” or about “shortcut keys”, and really ceased even being about Notepad++. And now it’s even attracting random posts as well.

                        This topic is being locked. If anyone has Noteapd++ related discussion, a new topic can be started quite easily; if you need to, provide a link back to this discussion for reference.

                        1 Reply Last reply Reply Quote 3
                        • PeterJonesP PeterJones locked this topic on
                        • Alan KilbornA Alan Kilborn referenced this topic on
                        • First post
                          Last post
                        The Community of users of the Notepad++ text editor.
                        Powered by NodeBB | Contributors