スクリプト追加例

スクリプトを追加するには

スクリプトを追加するには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 と指定します。



不具合・バグ報告、ご意見・ご感想などありましたらこちらからどうぞ。

([送信]を押すとすぐに送信します。確認ページとかありません。)