スクリプト追加例
スクリプトを追加するには
スクリプトを追加するにはcssup_user.ahkをメモ帳などのエディタで開き編集します。
追加するスクリプトは以下の4つの種類に分けられます。
- 1. 初期処理
- スクリプト起動時に実行されるスクリプトです。
- 2. 常に有効なホットキー
- cssup.ahk起動中は常に有効になるホットキーです。
- 3. ComicStudioでのみ有効なホットキー
- ComicStudioアクティブ時のみ有効なホットキーです。
- 4. その他(サブルーチン/関数)
- 上記以外のスクリプトです。2. 3.の箇所に追加してもかまいません。
それぞれ追加する場所が決まっているので注意して下さい。
1. 初期処理の追加
cssup_user.ahkを開くと上の方に以下のような箇所があります。
CSS_InitUser:
;ここに初期処理を追加します
return
「;ここに初期処理を追加します」の行の下に初期処理スクリプトを追加します。
2. 常に有効なホットキーの追加
1.の下に以下のような箇所があります。
#IfWinActive ;************************************************************************* ;******** ↓↓↓ ここから常に有効なホットキーを追加します ↓↓↓ ********* ;************* ↑↑↑ ここまで常に有効なホットキー ↑↑↑ **************** ;*************************************************************************
この間の行にスクリプトを追加します。
3. ComicStudioでのみ有効なホットキーの追加
2.の下に以下のような箇所があります。
#IfWinActive ahk_group CSWindow ;************************************************************************* ;*** ↓↓↓ ここからComicStudioのみ有効なホットキーを追加します ↓↓↓ *** ;----------------------------- 以下サンプル ------------------------------
「;*** ↓↓↓ ここからComicStudioのみ有効なホットキーを追加します ↓↓↓ ***」
の下の行にスクリプトを追加します。
4. その他(サブルーチン/関数)の追加
cssup_user.ahkの下の方に以下のような箇所があります。
;************************************************************************* ;******** ↓↓↓ ここから下にサブルーチン・関数を追加します ↓↓↓ *******
この下の行にスクリプトを追加します。
※その他(サブルーチン/関数)は2. 3.と同じ場所に追加しても問題ありません。
選択レイヤの表示/非表示切り替え
選択レイヤの表示/非表示を切り替えるショートカットです。
複数のレイヤが選択されている場合、1番上の選択レイヤが対象となります。
ショートカットがなかった気がするので作ってみました。(あったらすいません)
以下をcssup_user.ahkの「ComicStudioのみ有効なホットキー」に追加します。
sc07B & s::ToggleCurrentLayerVisible() ;呼び出し例 ;選択中のレイヤ表示/非表示切り替え ToggleCurrentLayerVisible() { Static last, append ;前回切り替え時から500ミリ秒以内ならクリック位置をずらす If (A_TickCount - last < 500 && last) append := append ? 0 : 5 else append := 0 WinGetPos, wx, wy,,, ahk_class CLayerPalette ControlGetPos, cx, cy, cw, ch, CLayerView2, ahk_class CLayerPalette px := wx + cx + Floor(cw / 2) py := wy + cy Loop { PixelGetColor, col, %px%, % ++py If (col = 0xFF9696) break If (py >= wy + cy + ch) { warn("選択レイヤが取得てきませんでした", 1000) return } } MouseGetPos, mx, my WinActivate, ahk_class CLayerPalette BlockInput, On MouseClick, L, % wx + cx + 10, % py + 10 + append,, 0 MouseMove, %mx%, %my%, 0 BlockInput, Off last := A_TickCount return }
赤文字がホットキーです。この例では[無変換]+[S]キーになっています。
ホットキーの記述についてはホットキー形式をご覧下さい。
この関数ではレイヤパレットの紫色(RGB: 9696FF)の箇所を選択レイヤと見なして
その列の左上から(10, 10)の位置をクリックしています。
そのためレイヤ表示色をRGB: 9696FFにしていると誤爆する場合があります。
けっこう適当なんで、そのうち気が向いたらもう少ししっかりしたものにしたいと思います。
特定キー+上下ドラッグで編集レイヤ移動
特定のキーを押しながら上下にドラッグすることで編集レイヤを移動します。
いちいちAlt+[とか押すのが面倒なので作ってみました。
(まぁショートカットを変更すりゃいいんだけど)
以下をcssup_user.ahkの「ComicStudioのみ有効なホットキー」に追加します。
;特定キー+ドラッグで選択レイヤ変更 sc07B & LButton::DragMoveLayer() DragMoveLayer() { mes("上下ドラッグで選択レイヤ移動") MouseGetPos,, my step := 10 Loop { KeyWait, LButton, T0.05 If (!ErrorLevel) break MouseGetPos,, my2 If (Abs(my2-my) > step) { step := 30 If (my2-my < 0) CSS_PostCmd(40595) else CSS_PostCmd(40596) my := my2 } } mes() return }
赤文字がホットキーです。この例では[無変換]+[マウス左ボタン]になっています。
[sc07B]を変更すれば他のキーにできます。
ホットキーの記述についてはホットキー形式をご覧下さい。
これもかなりいい加減なんで、そのうち何とかしたいです。
もっともこういうのはマウスジェスチャでやったほうがいいのかな。
未保存時5分毎に警告
[Ctrl+S]でファイルを保存してから5分経過すると
メッセージウィンドウが赤く点滅して警告を表示します。
[Ctrl+S]でファイルを保存するかメッセージウィンドウをクリックすると警告は終了します。そして5分後また発動します。
これはかなりうざいです。かといって警告をおとなしくすると見落としたりあとでいいやとか思って保存を先送りしたことを後悔するはめになったりするのでうざいぐらいでちょうどいいのかと思ったりします。
[Ctrl+S]で保存した場合にしか反応しないことに注意して下さい。
メニューで停止できるようになっています。
まず「初期処理」に以下を追加します。
;未保存時一定時間毎に警告 Menu, CSSMenu, Add, 未保存時5分毎に警告, EnableFileSaveAlert Menu, CSSMenu, Check, 未保存時5分毎に警告 Menu, CSSMenu, Add FileSaveAlertInterval := 300000 FileSaveAlertCnt := 0 FileSaveAlertEnable := true SetTimer, FileSaveAlert, %FileSaveAlertInterval%
赤文字の300000が間隔です。ミリ秒(1/1000秒)単位で指定します。
4294967295(49日と17時間強)以上には設定できません。
変更した場合、青文字の「5」もそれに合わせて変えましょう。
次に以下を「ComicStudioのみ有効なホットキー」に追加します。
;未保存時一定時間毎に警告 ~^s:: If (FileSaveAlertEnable) { warn() mes("保存しました", 1000) FileSaveAlertCnt := 0 SetTimer, FileSaveAlert, %FileSaveAlertInterval% } return FileSaveAlert: warn(++FileSaveAlertCnt * 5 "分間保存していません", 0 , true, "white", "ff3300") return EnableFileSaveAlert: Menu, CSSMenu,% FileSaveAlertEnable ? "Uncheck":"Check",未保存時5分毎に警告 SetTimer, FileSaveAlert,% FileSaveAlertEnable ? "Off":FileSaveAlertInterval FileSaveAlertEnable := !FileSaveAlertEnable FileSaveAlertCnt := 0 return
赤文字の「true」を「false」にすると点滅しなくなります。
次の青文字は文字色と背景色です。
うるさすぎる場合おとなしめの色を指定するといいでしょう。
※色はRRGGBB形式のカラーコード(例:FF9900)又は
Black/Silver/Gray/White/Maroon/Red/Purple/Fuchsia
Green/Lime/Olive/Yellow/Navy/Blue/Teal/Aqua と指定します。