全然知らないプログラム言語を なんとなく読んで弄れるようになる方法(例 autohotkeyの個別終了)
さて、自分が弄れそうなプログラムを見つけたら
まずはその動作が、どれだけ自分の
目的に近いかの確認です。
例えばこちら、三番目のマクロ。
https://www.autohotkey.com/boards/viewtopic.php?t=39580
autohotkeyで画面の輝度を
調整するマクロなんですが
今回の場合はショートカットで起動させたい
サイレント起動、つまり設定画面を
非表示にする必要があるわけですね 。
ということで
①目標設定。設定画面を起動させない
つまり、設定画面表示タスクを消して
設定画面で入力される変数をこちらで
書き換える必要があります。
②文字列がコメントなのかどうか判断する
基本プログラムというものは
説明のためにコメントが挟まっているものです 。
ただ 我々はあんまり英語に詳しくないので
なんか行頭に変なものが付いていると思ったら
コメントがどうか疑いましょう 。
そうすれば 情報の取捨選択をすることができ、
より判断が簡単になります。
(今回の場合は「;」ですね)
③入力画面にあたるタスクがどこらへんにあるのかを調べる
プログラムというのは
誰かに使おうと思ってもらった時
変数を書き換える必要があるので
変数 設定画面を表示するコマンドがあるはずです。
というか、そういう親切なプログラムを
探すことに手間をかけるべきで
分かりにくいプログラムを読み解こうとすることに
労力をかけてはいけません。
マジでホントにキリがないですし、
分かりやすい方から学んだほうが10倍楽で簡単ですから。
…こほん。さて、話を戻しまして
今回の場合、設定画面表示タスクはinputboxですね 。
分かったのでネットでググりましょう。
https://ahkwiki.net/InputBox
そうすると このわけのわかんない長い,,,,,,~は
inputboxの変数だろうということがわかります。
https://www.autohotkey.com/boards/viewtopic.php?t=39580
また、このとき変数の最後尾が「vBright2」と、定義のようになっていて
で、それに位置する変数は「default」。
また、その前列でも「vBright2=50」と定義されています。
実際 設定画面のデフォルトは50ですし、間違いなさそうですね。
つまり、ここで求められている変数名は
inputboxの最初の変数、Titleにあたる「vBright」であり
つまり、このinputboxのタスクを削除して
「vBright」変数を設定してやればうまく動きそうですね。
⑤変数をこちらで書き換えてみて、
うまくいったら条件式にしてみる
vBright=70としたら
輝度が70%になってくれました 。
変数の書き換えはうまくいきましたので
次は条件式です。
マクロに変数が保存されているのなら
マクロが終わった時「vBright」の値は
70と変わらないはずなので、
70に設定するタスクの前に
vBright=70のとき~と
if文を組んでvBright「100」にすれば
100%のとき70,と70のとき100と
画面輝度のオンオフが一つのマクロでやれますね。
さて、しかしここで問題発生。
if文を書き換えても片方しか作動しません。
ということで、ここでif文の上にある
vBright=%1%に注目。
で、この%に挟まれる記述が何を意味するのかをググると
これはより強固な変数定義であることが分かりました。
ここで、さらに元のif式が「""」つまり、空白であることに注目。
「1」も未定義なわけですから、これはつまり
事前にvBrightを未定義の「1」にして
vBrightの消去をやっていると分かります。
⑥分からなかったら他のアプローチを試みる
さて、とはいえ他のタスクが分からない以上
下手に弄りたくはないものですから
もう一つのアプローチ、スクリプトそのものを終了することで
解決に持っていくのもありでしょう。
ということで、こちらのサイトと
https://www.autohotkey.com/board/topic/39319-how-do-you-close-another-ahk-script-solved/
こちらのサイトを混ぜ合わせて
https://ahkwiki.net/IfWinExist
ついでにマウスの第四、第五ボタンに
仕込み終わったら完成です。
https://clrmemory.com/pc-mobile/windows/autohotkey-mouse-4button-5button/
ということで、以下コードです。
────────────────────────────────
fullScriptPath = C:\Program Files\nodoka\輝度調整.ahk ; edit with your full script path
XButton1::
DetectHiddenWindows, On
IfWinExist, %fullScriptPath% ahk_class AutoHotkey
{
WinClose, %fullScriptPath% ahk_class AutoHotkey
Return
}
DetectHiddenWindows, On
IfWinNotExist, %fullScriptPath% ahk_class AutoHotkey
{
Run,C:\Program Files\nodoka\輝度調整.ahk
Return
}
────────────────────────────────
輝度調整.ahkはこちら。(初期値は70、以下同文)
────────────────────────────────
;'z dimmer.ahk' by jeeswg
OnMessage(0x5555, "MsgMonitor")
OnMessage(0x5556, "MsgMonitor2")
OnMessage(0x5557, "MsgMonitor3")
;handle command line parameter / request brightness
vBright = %1%
if (vBright = "")
{
vBright := 70
if ErrorLevel
return
}
~以下、元マクロと同様~
https://www.autohotkey.com/boards/viewtopic.php?t=39580
────────────────────────────────
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます