【Photoshop】AutoHotkeyでスクリプトランチャーを作成する方法

photoshop-autohotkey-script-launcher

前回AutoHotkeyのショートカットからスクリプトを起動できることがわかったのですが

【Photoshop】Autohotkeyで設定したショートカットからスクリプトを実行する方法

さらにGUIも作成できる事がわかったので試してみました。

※Type Libraryという機能で、 InDesign/Photoshop/Illustrator/Acrobatなどで使用できます。

AutoHotkeyでスクリプトランチャーを作成する方法

AutoHotkeyの導入方法は割愛、検索してインストールするだけです。

  1. Installer.ahkをメモ帳で開いて、下記のコードを挿入
{
Gui, 1:Add, Button,W200 Gscript1, アラート1
Gui, 1:Add, Button,W200 Gscript2, アラート2
Gui, 1:Add, Button,W200 Gscript2, アラート3
Gui,1:Show,,スクリプトランチャー
return
}

script1:
Gui, 1:
#IfWinActive ahk_class Photoshop
app:=ComObjCreate("Photoshop.Application")
app.DoJavaScriptFile("C:\Users\min\Desktop\alert.jsx")
return

script2:
Gui, 1:
#IfWinActive ahk_class Photoshop
app:=ComObjCreate("Photoshop.Application")
app.DoJavaScriptFile("C:\Users\min\Desktop\alert.jsx")
return

script3:
Gui, 1:
#IfWinActive ahk_class Photoshop
app:=ComObjCreate("Photoshop.Application")
app.DoJavaScriptFile("C:\Users\min\Desktop\alert.jsx")
return

ボタンを押すとスクリプトが実行されます。

タブを追加

タブを追加してみました!これでボタンをたくさん収納できます

{
Gui,+AlwaysOnTop
Gui, Add, Tab3,, General|View|Settings

Gui, 1:Add, Button,W200 Gscript1, アラート1
Gui, 1:Add, Button,W200 Gscript1, アラート2
Gui, 1:Add, Button,W200 Gscript3, アラート3

Gui, Tab, 2
Gui, 1:Add, Button,W200 Gscript1, アラート4
Gui, 1:Add, Button,W200 Gscript1, アラート5
Gui, 1:Add, Button,W200 Gscript1, アラート6

Gui, Tab, 3
Gui, 1:Add, Button,W200 Gscript1, アラート7
Gui, 1:Add, Button,W200 Gscript1, アラート8
Gui, 1:Add, Button,W200 Gscript1, アラート9

Gui,1:Show,,スクリプトランチャー
return
}

script1:
Gui,1:
#IfWinActive ahk_class Photoshop
app:=ComObjCreate("Photoshop.Application")
app.DoJavaScriptFile("C:\Users\min\Desktop\alert.jsx")
return

備考

  • Installer.ahkという名前ではなく別名推奨
  • コメントアウトしてしまっていますが、ショートカットから起動も可能
  • alert.jsxの中身はalert("テスト\nHello World");
  • Gui,1:DestroyとするとGUIが閉じます。
  • Gui,+AlwaysOnTopと入れておくと常に最前面に表示されます。

その他の機能追加

  • Alt2回クリックで起動できるように

[追記1]設定ファイルからのAdobeのバージョン指定方法

Photoshopなど複数バージョンが入っている場合、指定しないとうまく動作しないことがわかったので作成

設定データの作成

メモ帳で下記のコードでsetting.iniというデータを作成します。

[photoshop]
version=Photoshop.Application.110

PhotoshopのバージョンごとのCLSID

2019 130
2018 120
2017 110
2016 100
2015 90
2014 80
2013 70
2012 60

Photoshop CC2017の場合はPhotoshop.Application.110になります。

ちなみにイラレは

Illustrator.Application.CS6
Illustrator.Application.CC.2017

という表記になります。

バージョン判別コード

通常はPhotoshop.Applicationで読み込んで、
複数入れている場合はsetting.iniからバージョンを読み込んでスクリプトを実行します。

#InstallKeybdHook

IniFile = %A_WorkingDir%\setting.ini

psid = Photoshop.Application

IfExist, %IniFile%
{
IniRead, psid, setting.ini, photoshop, version
}

script1:
app:= ComObjCreate(psid)
app.DoJavaScriptFile("C:\Users\min\Desktop\alert.jsx")
MsgBox,%psid%
return

[追記2]手当たり次第のAdobeのバージョン指定方法

try-catchで手当たり次第実行してます。

#InstallKeybdHook

;バージョン
Default:="Photoshop.Application"
CC2019:="Photoshop.Application.130"
CC2018:="Photoshop.Application.120"
CC2017:="Photoshop.Application.110"
CC2015:="Photoshop.Application.90"
CC2014:="Photoshop.Application.80"
CC:="Photoshop.Application.70"
CS6:="Photoshop.Application.60"

;スクリプト
script1:="C:\Users\min\Desktop\alert.jsx"

;スクリプトの実行
PScript(Version,Script){
  app:=ComObjCreate(Version)
  app.DoJavaScriptFile(Script)
  MsgBox,%Version%
  return
}

go(Script){  
;バージョン確認
Try {
  PScript(Default,Script)
  } Catch e {
  Try {
    PScript(CC2019,Script)
    } Catch e {
    Try {
      PScript(CC2018,Script)  
      } Catch e {
      Try {
        PScript(CC2017,Script)  
        } Catch e {
        Try {
          PScript(CC2015,Script)  
          } Catch e {
          Try {
            PScript(CC2014,Script)  
            } Catch e {
            Try {
              PScript(CC,Script)  
              } Catch e {
                PScript(CS6,Script)  
              }
            }
          }
        }
      }
    }
  }
}


go(script1)

コンバイルのやり方

.exeにします。
右クリック>Compile Scriptで.exeにすることもでるのですが、アイコンも変えたいので別の方法を紹介します。

  1. まずアイコンを作成(32x32px) .pngで保存

  2. 下記のサイトからpng⇛icoに変換
    https://service.tree-web.net/icon_converter/

  3. メモ帳を開いて、下記のコードをコピー。あとはパスを整えます。

"c:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exe" /in C:\Users\ユーザー名\Desktop\フォトショップ.ahk /out C:\Users\ユーザー名\Desktop\フォトショップ.exe /icon C:\Users\min\Desktop\フォトショップ.ico
pause
  1. ○○.batで保存して、ダブルクリックで実行。exeファイルが作成されれば成功です。

まとめ

たったこれだけでスクリプトランチャーが作成できます。
しかも外部ソフトなので、Photoshopのバージョンに依存しません。
いろいろできるので、AutoHotkeyは本当に沼ります!

追記

さらなる改造は下記の記事にて足していこうと思います。

【AutoHotkey】GUI上でショートカット設定を変更して保存する方法