フォトショやイラレのスクリプトを外部ソフト「Autohotkey」で指定したショートカットから実行する方法の紹介です。
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のショートカットからスクリプトを起動できることがわかったのですが、さらにGUIも作成できる事がわかったので試してみました。
※Type Libraryという機能で、 InDesign/Photoshop/Illustrator/Acrobatなどで使用できます。
AutoHotkeyの導入方法は割愛、検索してインストールするだけです。
- 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にすることもでるのですが、アイコンも変えたいので別の方法を紹介します。
- まずアイコンを作成(32x32px) .pngで保存
-
下記のサイトからpng⇛icoに変換
https://service.tree-web.net/icon_converter/ -
メモ帳を開いて、下記のコードをコピー。あとはパスを整えます。
"c:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exe" /in C:\Users\ユーザー名\Desktop\フォトショップ.ahk /out C:\Users\ユーザー名\Desktop\フォトショップ.exe /icon C:\Users\min\Desktop\フォトショップ.ico
pause
- ○○.batで保存して、ダブルクリックで実行。exeファイルが作成されれば成功です。
たったこれだけでスクリプトランチャーが作成できます。
しかも外部ソフトなので、Photoshopのバージョンに依存しません。
いろいろできるので、AutoHotkeyは本当に沼ります!