全然知らないプログラム言語を なんとなく読んで弄れるようになる方法(例 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

────────────────────────────────

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る