メニュー

【Photoshop】Autohotkeyからスクリプトを実行する方法[ショートカット・GUI]

eyecatch_ photoshop

フォトショやイラレのスクリプトを外部ソフト「Autohotkey」で指定したショートカットから実行する方法の紹介です。

海外でフリーランスをしているテクニカルアーティスト
ゲーム開発・映像制作・WEB制作等を請け負っています。
当ブログは作業効率化のための技術ブログです。

目次

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

[timeline]
[tl label=’STEP.1′ title=’テキストに下記のコードをコピペ’]

alert ("こんにちは!ねむいねこだよ");

[/tl]

[tl label=’STEP.2′ title=’alert.jsxという名前で保存’]
[/tl]

[tl label=’STEP.3′ title=’Autohotkeyをダウンロード&インストール’]
https://www.autohotkey.com/

[/tl]
[tl label=’STEP.4′ title=’インストール後 Installer.ahkをメモ帳で開き、下記のコードを挿入’]

Photoshopの場合

#IfWinActive ahk_class Photoshop
;Ctrl+Shift+A
^+a::
    app:=ComObjCreate("Photoshop.Application")
    app.DoJavaScriptFile("C:Users\min\Desktop\alert.jsx")
Return

Illustratorの場合

#IfWinActive ahk_class illustrator
;Ctrl+Shift+A
^+a::
    app:=ComObjCreate("Illustrator.Application")
    app.DoJavaScriptFile("C:Users\min\Desktop\alert.jsx")
Return
 

ショートカットを変えたい場合は下記参考

;Shift +
;Ctrl ^
;Alt !
;Win #
 

[/tl]
[tl label=’STEP.5′ title=’Autohotkeyの実行’]
ショートカットで簡単にスクリプトを実行できます。

[/tl]
[/timeline]

パスを指定しない方法

下記のコードの用に中身を記述

;Ctrl+Shift+A
^+a::
alert=
(
alert ("こんにちは!ねむいねこだよ");
)
app:=ComObjCreate("Photoshop.Application")
app.DoJavaScript(alert)
Return

macで実行する場合

AutoHotkeyではなくkeyboardmaestroで代替できます。

あわせて読みたい
AutoHotkeyでイラレのスクリプトにショートカットキーを割り当ててみる(1)|イラレ|ぼんぷろぐ 【ぼんぷろぐ】InDesignとかイラレとかのスクリプトよもやま話AutoHotkeyでイラレのスクリプトにショートカットキーを割り当ててみる(1)

応用:外部ソフトからスクリプトランチャーを作成する方法

AutoHotkeyのショートカットからスクリプトを起動できることがわかったのですが、さらにGUIも作成できる事がわかったので試してみました。
※Type Libraryという機能で、 InDesign/Photoshop/Illustrator/Acrobatなどで使用できます。

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回クリックで起動できるように

設定ファイルからの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

手当たり次第の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は本当に沼ります!

全記事一覧

  • URLをコピーしました!

Photoshopに関する参考記事・ツール・書籍のまとめ

Photoshopのソフトウェア購入

Photoshopが学べるスクール

Photoshopの参考書籍

独学で勉強できてしまうPhotoshopですが、他の人の手法を見ると全然使いこなせてなかったことに気がつくこともあります

目次