2016年11月14日月曜日

Keyhac for Windows ver 1.76

Keyhac for Windows ver 1.76をリリースしました。

https://sites.google.com/site/craftware/keyhac-en

1.76
  • Fixed an issue that Keyhac cannot exit correctly when ListWindow is opened.
  • Fixed an issue that the task tray icon disappears after explorer crashes and reboots.

5 件のコメント:

  1. config.pyのactivateOrExecuteNotepadを一部改変して以下のような関数とホットキーを作っています。

    def check_run(path, class_name=""):
    wnd = Window.find(class_name, None)
    if wnd:
    if wnd.isMinimized():
    wnd.restore()
    wnd = wnd.getLastActivePopup()
    wnd.setForeground()
    else:
    executeFunc = keymap.ShellExecuteCommand(None, path, "", "")
    executeFunc()

    keymap_global["A-C"] = lambda: check_run("C:/Program Files/Mozilla Firefox/firefox.exe", "MozillaWindowClass")


    firefoxがアクティベートされないのですがこれは仕様でしょうか?他のソフトでは問題なくアクティベートされます。
    お時間があればお答え頂けると助かります。よろしくお願いします。

    返信削除
    返信
    1. 以下で動きます。インデントなくなると思いますが、分かりますか?

      def check_run(path, class_name=""):
      wnd = find_window(class_name)
      if wnd:
      if wnd.isMinimized():
      wnd.restore()
      wnd.getLastActivePopup().setForeground()
      else:
      keymap.ShellExecuteCommand(None, path, "", "").executeFunc()

      def find_window(class_name):
      def get_window(wnd, arg):
      nonlocal window
      if wnd.isVisible() and not wnd.getOwner():
      if wnd.getClassName() == class_name:
      window = wnd
      return False
      return True

      window = None
      Window.enum(get_window, None)
      return window

      keymap_global["A-C"] = lambda: check_run(r"C:/Program Files/Mozilla Firefox/firefox.exe", "MozillaWindowClass")

      削除
    2. ありがとうございます.
      ぜひ使わせて頂きます.

      削除
    3. 既にgithubのissueの方で修正済みのようですが、ShellExecuteの行が間違っていました。正解は以下となります。

      keymap.ShellExecuteCommand(None, path, "", "")()

      また、MozillaWindowClassというクラスネームはThunderbirdでも使われているようです。ですので、プログラム名も含めてチェックするなどの対策が必要なようです。

      一応、報告します。

      削除
  2. レポートをありがとうございます。確かにFirefoxがアクティブ化されないようです。
    今のところ、何故そうなるのかわかっていません。調査します。

    返信削除