CG・映像デザイナー技術ブログ

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

eyecatch_ photoshop

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

この記事の著者
CGブロガー すいみん

CGブロガー

すいみん

Suimin

プロフィール

某美大の油絵科を卒業後、大手CG映像プロダクションに入社。
その後ゲーム業界に転職。
現在は技術系のCGデザイナーをしています。 書籍:Unity デザイナーズ・バイブル
プロフィール詳細はこちら

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

STEP.1
テキストに下記のコードをコピペ
alert ("こんにちは!ねむいねこだよ");
STEP.2
alert.jsxという名前で保存
STEP.3
Autohotkeyをダウンロード&インストール
STEP.4
インストール後 Installer.ahkをメモ帳で開き、下記のコードを挿入

Photoshopの場合

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

Illustratorの場合

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

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

;Shift +
;Ctrl ^
;Alt !
;Win #
 
STEP.5
Autohotkeyの実行
ショートカットで簡単にスクリプトを実行できます。

パスを指定しない方法

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

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

macで実行する場合

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

参考 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は本当に沼ります!

以上、すいみん(@cg_method)でした!

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

Photoshopに関する記事を下記にまとめました。



photoshop-summary-article


便利な機能紹介!Photoshopに関する作り方まとめ

フォトショップのソフトウェア購入


eyecatch-buy-adobe-creative-cloud
【Adobe Creative Cloud】最安!アドビ認定スクールから購入する方法(+講座付き)

フォトショップの参考書籍

assistant すいみん

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