LoginSignup
0
0

More than 3 years have passed since last update.

autohotkeyでscrapboxの新規カード作成のショートカットを作成する方法

Last updated at Posted at 2020-04-09

scrapboxになぜか存在しないカード新規作成ショートカット

最近scrapboxを使い始めてとても使い勝手が良くていいなあと思っていたのですが唯一不満なのがなぜか新規作成のショートカットが存在しないことでした。
カードを連続で何個も作成したいときにいちいちマウスに手をのばさなければならないので結構なストレスを感じていました。
調べてみても見つからないし、ないなら自分で作るの精神でショートカットを作成しました。

ショートカット作成には王道のautohotkeyを使用しました。これめっちゃ便利なのでほかのことにも使っていきたい。

autohotkeyのインストール

導入はこちらを参考にしました。
https://qiita.com/chr/items/47f50e36703d3bb20371

注意点として、なぜかGoogleChromeからは悪意のあるプログラムとしてダウンロードできないので他のブラウザを使用しましょう。Microsoft Edgeからはインストールできることを確認しています。

インストールが終わったら適当なテキストファイルを作って以下のスクリプトを記述します。

Move_URL(targetURL)
{
    send, !d ; アドレスバーにフォーカスする
    sleep,10 ;環境によってはここの数字を大きくしなければいけない可能性あり
    send, %targetURL% ; ログインフォームを開く
    sleep,100 ;環境によってはここの数字を大きくしなければいけない可能性あり
    send, {enter}
    sleep,100 ;環境によってはここの数字を大きくしなければいけない可能性あり
}

IME_SET(SetSts, WinTitle="A")    {
    ControlGet,hwnd,HWND,,,%WinTitle%
    if    (WinActive(WinTitle))    {
        ptrSize := !A_PtrSize ? 4 : A_PtrSize
        VarSetCapacity(stGTI, cbSize:=4+4+(PtrSize*6)+16, 0)
        NumPut(cbSize, stGTI,  0, "UInt")   ;    DWORD   cbSize;
        hwnd := DllCall("GetGUIThreadInfo", Uint,0, Uint,&stGTI)
                 ? NumGet(stGTI,8+PtrSize,"UInt") : hwnd
    }

    return DllCall("SendMessage"
          , UInt, DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hwnd)
          , UInt, 0x0283  ;Message : WM_IME_CONTROL
          ,  Int, 0x006   ;wParam  : IMC_SETOPENSTATUS
          ,  Int, SetSts) ;lParam  : 0 or 1
}

;新規カード作成ショートカット
^+c::
 Move_URL("{新規カード作成URL}")
Return

IME_Set関数は入力時のモードが全角だとURLが全角になってしまうことの対策です。問答無用で半角にする処理を入れております。
autohotkeyではIMEの状態を取得するのが難しいようなので標準では搭載していません。自分も以下のGitHubを参考にしました。

上記のコードの{新規カード作成URL}の部分にはscrapboxで新しいカードを作成するときに使用される既定のURLを入力します。

既定のURLの形式は以下のようになっています。

https://scrapbox.io/{アカウント名}/new

scrapbox使っている時のURLを見ればアカウント名が分かると思うので適宜入力してください。

参考URL
https://scrapbox.io/scrapboxlab/%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E6%96%B0%E8%A6%8F%E4%BD%9C%E6%88%90%E7%94%BB%E9%9D%A2%E3%81%AB%E5%8D%B3%E5%BA%A7%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9

あとはテキストファイルを.ahkファイルとして保存した後にそのファイルをダブルクリックすればautohotkeyが有効になりショートカットを入力することで一発で新規カードを作成できます。

上記のソースコードではctrl+shift+cがショートカットキーになっているので同時に押すことで起動できます。

ショートカットキーを変更したい場合は下記のURLを参考にしてスクリプトを書き換えてください。ショートカットキーの書き換えだけならすぐできるはず。

ブラウザが立ち上がっていない時はこのコマンドは使用できません。ブラウザを立ち上げるコマンドは記述していない(毎回ブラウザを起動するとウィンドウが増えてしまうため)のでブラウザが立ち上がっている時に使用しましょう。

参考URL
http://www.sakuranomichi.jp/wordpress/2018/12/24/adressbar-at-firefox/

ChromeであればShortKeysという拡張機能を使うことで実現できるようです。ただし有料拡張機能。プログラミングが分からない人向け。
http://hokoxjouhou.blog105.fc2.com/blog-entry-1308.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0