AutoHotkey スレッド part25 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
普通のキーをモディファイアキーとして使うのは、いろいろと不便があるよ。 >>850
あっ そうか
そりゃそうっすよね
しかし、2キーをトリガーで3つ目をifってみたけど駄目ですな〜
う〜ん
ちょっと分岐してごにょごにょしてみます 出来ますた
~a & sc03A:: ;a+CapsLock
GetKeyState, state, Space, P ;Spaceの状態
If state = D ;押されてたら
Send, +a ;Shift+aを送る
else ;そうでない場合
GetKeyState, state, Space, P ;Spaceの状態
If state = U ;押されてなかったら
Send, a ;aを送る
return
ありがとうございました! と、思ったら駄目だった
CapsLock+aが使えなくなった
分岐の必要が無かった
~a & sc03A::
GetKeyState, state, Space, P
If state = D
Send, +a
return
しかし、CapsLock+aに行くには一度キーを離さないと駄目だぬ 結果的に1キートリガーのSpaceの状態をifった
a::
GetKeyState, state, Space, P
If state = U
Send, a
else
GetKeyState, state, Space, P
If state = D
Send, +a
Return
これならCapsLockに指乗せたままで2つのコマンドを行き来できて
単独でaキーも押せる
まぁ実際CapsLock押して無くていいんだけど
操作の流れで感覚的にCapsLockをコマンドキーにしたかったので
まぁいいか Msgboxですが、はい、いいえ、キャンセルと3つのボタンをつけられますが、
このはい、いいえ、キャンセルという名前を変えることは出来ませんか。
これらを表示してからあとからの変更でも構いません ControlSetText
ただし普通にMsgBoxの次の行に書いてもダメだからなんらかの別スレッドで 試してないけどメニューと同じで別スクリプトでやらないとダメなんじゃないかしら
無理にmsgbox使うよりGUIでカスタムダイアログ作るほうが良さげ こんなのさあ、デフォルトで出来るようにしておいて欲しいよねw いや
winAPIのMessageBox関数を呼び出してるだけだし
AHKに限らず どの言語でもMsgBoxつったらこういう仕様なんだけど 共通ダイアログは共通のUIであることこそが価値なのであって、勝手に変えられたら意味がない windows 10です
コマンドプロンプトにcontrolsendでファイル名やコマンドを送ると
2文字目が大文字になって(元の文字列の大文字にした文字の次の文字が大文字になります)
しまいます。どうしたらなおせますか? 単純なコードがまったく効かず小一時間トライアンドエラー
おかしいと思いはじめ調べたところオートリーロードのコードが効かなくなっていた Orz
原因を調べようとエディタを変えてみたが変わらずリロードできない
別のahkファイルをオートリーロードすると効く
で、問題のファイルに戻りトライアンドエラー
ファイル名変更も駄目
ファイル作り直しても駄目
簡単なコードだけ残して試しても駄目
バックアップしておいた物を丸ごと上書きしても駄目
何故このファイルのみオートリーロードのコードが効かなくなってしまったか原因がわからない
ファイル名以外のとこを別のファイルへ移植して動くので
コード自体に問題は無いはず
ファイル名自体も間違っていない
Auto execute Section内は特に何も変更していない
タスクトレイのアイコンは反応ある
キーは送信されている
PCの再起動はした
セキュリティソフトで除外もした
#IfWinActive, ahk_class TextEditorWindowW166 ;サクラエディタ
~^s::
ScriptName :=Remap
If WinActive, %ScriptName%
{
Reload
}
Return
#IfWinActive
お手上げです 再インストールしたら直りました。
何だよもぅ
はじめにトライすればよかった
時間を無駄にしたわ Orz
何が原因だったんだろう… c言語を大学の講義で習った程度のアラサー業界未経験でプログラマになりたいけど
autohotkeyでpc作業の効率化・自動化、正規表現を用いたファイル操作等を行うスクリプトは趣味でやったことありますはアピールになるかな? 趣味で→業務の効率化を行いました
と言い換えておけ。
大抵の人にはAHKなにそれって言われるだろうけど業務に役に立つものとわかれば多少のプラスにはなるんじゃないか AHKが業務に役立つって一体なんだ?
せいぜいクリックしたりのルーチンワークをやらせるくらいだろ
そんなもの特技にもアピールにもなら無いと思うよ
まだExcel使いこなせます、の方が100倍通る 未経験者歓迎の会社ならやる気がある人だとポジティブに見てもらえるかも程度かなあ
スキルとしては役に立つとは見なされないだろうけど
しかし今はアラサーからでも始められるんだねえ
うちなんかの頃はプログラマー35才定年説とか冗談でいいながら
結局30才の時に辞めちゃったけど >>867
業務にめっちゃ役立つだろ。 どんだけ効率化できることか
ただ世間では知らない人の方が圧倒的に多いから
何それって言われるだけ マー枠でないオフィスワークならPC作業のかなりの割合がルーチンワークなので
あの人に頼むと仕事速いって評価は得られる
履歴書段階ではよくわからん余計な事が書いてあるみたいな顔されるけどね
プログラマーの仕事は職場環境の改善や効率化ではないのでアピールとしては微妙かな
SEなら顧客先への提案にAHKでの効率化もねじ込めるかも知れないが おしえてください。
.ahkにドラッグアンドドロップされたファイルを違うアプリにわたす場合、
どうやって変数を書いたらいいのでしょうか?(ドラッグアンドドロップされるファイル)
.ahkにドラッグアンドドロップされたmp3ファイルをmp3directcut.exeに渡したい(D&D)です。 まあいまなら、RPAツールで効率化って言えばいいんじゃね。 >>871
#NoTrayIcon
Run, mp3directcut.exe %1% このソフトって画像認識は余り重要視されない感じですか?
OpenCVベースのライブラリを作成中なのですが。 >>877
AHKはスクリプトであり簡易的なプログラム
本格的なプログラミング言語に比べ、用途を限定することで、覚えやすいように簡単な構造になっている
スクリプトの中でもAHKは特に簡単な方なんじゃないかな多分 プログラミングの足掛かりにはなるけど
用途も限られ、誰でも覚えられ、用意されたコマンドも少ない
でも高度な事しようと思ったらwin apiの知識が必要だったり
他からライブラリ持ってきたり
リファレンスが英語しかなかったり
汎用性はあまりないよ >>878
AHKの言語はかなり特殊で癖が強すぎて出来は良くないよ
perlの方が圧倒的に言語としての出来はいい いきなり使えるという意味では楽なほうだと思うけど
スプリクト言語として簡単な方だとは正直言い難い
増改築繰り返してて色んな言語の方言ぶち込まれてるから纏まりないしね >>880
出来がいいとか悪いとかそんな話は誰もしてないから >>877
プログラミング言語は以下の総称、AHKはスクリプト言語に属している
スクリプト言語 - プログラミング言語のうち、プログラムの記述や実行を比較的簡易に行うことができる言語の総称
JavaScript、Perl、Python、PHP、Rubyなど
コンパイラ言語 - 人間が書いたプログラムをコンピュータが理解できる形式に変換するプログラム言語
C言語やC++、Javaなど、上記と比較してパフォーマンスに優れている >>884
スクリプト言語とインタープリタの違いは? アセンブラが抜けてるぞ
コンパイルせんけどあれもれっきとしたプログラミング言語ですよ 日本語のwikiは4年前から更新が止まってるけど
日本のユーザーほとんどいないのかしら 「Insert」「Scroll Lock」って何で設置されてるんです? キーボードの“いらないキー”の使い方
https://headlines.yahoo.co.jp/hl?a=20180317-00000007-it_nlab-sci
本来の用途を知ってもやっぱりahkで覆すのが一番だな Insertは固定テーブル書換でよくお世話になったし今もたまに使う
BreakもVBAの暴走止めるのに使うしScrollLockだけは要らんけど
あの辺をahkで覆すことってないなあ
そもそもホームポジションから遠いから便利キーとして活用しづらいというのもあるが この前INSを知らんうちに押しててその性質を失念しててパニックになったw 昔使ってたワープロ専用機がパソコンで言えば挿入キーが効いた状態が標準だったので、パソコンに移行した初期はよく使ってたな。今でもたまに長い名称の修正の時に使うことがある。
無変換キー使わないから他に置き換えるって記事も出てくるけど、個人的にはしょっちゅう使ってるんだよなぁ。ショートカットの関係とかもあるし、キーの置き換え考えるのってけっこう難しい。 Insert::return
^Insert::Send, {Insert} 例えば、
Aキーを押した後、Xを押したらある処理Xをする
Aキーを押した後、Yを押したらある処理Yをする
Aキーを押した後、Zを押したらある処理Zをする
みたいなことをしたいのですが、簡単なスクリプトの書き方ってありますか? >>895
キーによって最適の処理があるとおもうから、具体的に何のキーか書いた方が良いよ a & x::
処理
Return
ではいかんの?aキー殺したくないなら~a & x::で。 >>897
そぅいう書法があるのですか。これは初めて知りました。ちょっと調べてきますね >>897
やってみました。 なるほど。これでもよさそうです。 ありがとうございました スマホのWindows10 MobileにAuto Hot Keyって導入できる
んでしょうか?
無変換+Jに左矢印を割り当てるくらいできればいいのですが。 文字列で、最初の10行を取り出す、とかはないのでしょうか 見つからないので、
StringGetPosで`nを見つけてみたいなことをしています。 それしか方法ないのかな やるとしたらLoop, ParseかRegExReplace()あたりでやるかなあ >>904
100万回ぶん回したらRegExMatchのほうが1.8倍早かった
Text =
(
111
222
333
444
)
RegExMatch(Text, "`n)(?:.*\n*){2}", Var1)
MsgBox % Var1
Loop, Parse, Text, `n
Var2 .= A_LoopField "`n"
Until A_Index = 2
MsgBox % Var2
return 私は、
StringGetPos, n, text, `n, L10
StringLeft, text,text, n
としました。
Loop, ParseかRegExReplaceってのは気づきませんでした
いくつか方法ありますね。 gnuとかやってたのでもうちょっと関数ほしいかな RegExMatchで変数同士の比較の際に、変数内に特殊記号が入ってる場合のエスケープってどうすればいいんですか?
例えば↓だと記号が入っている行では0が帰ってきてしまうので、これを正しくマッチさせたいです
str =
(
abcdefg
abcd*e\fg
hijklmn
hijk*"l\mn
)
Loop,parse,str, `n
{
a := RegExMatch(str, A_LoopField)
MsgBox % a
} Class k{
A:="U|D|L|R"
x:="X|3|m|x"
Ax:="(" . A . "|" . x . ")"
}
k := new k
Shift & Ctrl::msgbox,% k.Ax
このk.Axが(U|D|L|R|X|3|m|x)で欲しいのですが
(|)が還ってきます
Classの中では、変数の再定義などもエラーになるので振る舞いが違うようですが、
Class中で自身の変数を使うにはどうしたらいいのでしょうか UWSCからAutoHotKeyに鞍替えしようと思っているのですが
UWSCのchkimgXのような高機能な画像認識機能はこちらにはありますか? 指定した画像と一致するかどうかという機能(完全一致〜ゆるく一致までざっくり設定可)と、
ピクセルの色を調べる機能はあるぞ DLL呼び出しはどうやるのかな?
必要なら私が作成したchkimgXのようなのを公開しますが。 DLL呼び出しして画面と画像でテンプレートマッチングしてクリックまではできました。
配列とかが難しいですね>< chkimg(完全一致検索)
chkimgX(テンプレートマッチング)
それぞれ互換性を持った関数をDLLとして提供しています。
ahkでUWSCとほぼ同じ画像認識操作が可能です。
https://www.axfc.net/u/3901288 1.1.28.02 リリース
また細かいバグフィックスだろうけど
現時点でチェンジログは出ていない >>922
thx
Fixed Control ChooseString and ControlGet FindString ignoring the first two items.
Fixed Control ChooseString to send WM_COMMAND even if the control's ID is 0.
Fixed WinActivate to restore the active window, as originally intended for [v1.1.20.00].
最後のやつ、なんかおかしいと思ってたんだよ
やっぱバグだったのか 質問なのですが、画面の特定の座標だけでスクリプトを動作せたいので次の様に書いたのですが
ifの条件が無視されて画面のどこでも動作してしまいます
どのように書けば良いのでしょうか?
Xbutton1 ::
CoordMode,Mouse,Screen
MouseGetPos,xpos,ypos
if (100<xpos<200 && 100<ypos<200 )
{
send,a
}
return a<b<c
って書き方を認めていない言語も多かったような >>925
その通りでした
if (100<xpos && xpos<200 && 100<ypos && ypos<200 )
としたら動きました、ありがとうございます AHKなどソフトウェアマクロが弾かれるゲームでどうしてもハードウェアマクロ使いたい人向けかな
ま、要らんけど https://ux.getuploader.com/autohotkeyl/download/130
Autohotkeyでゲームパッドを弄り倒す叩き台作ってみたよ
サンプルはトーチライト2 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) win7からwin10に移行して1か月経ったが、ホイールリダイレクトがwin標準になったのを最近知った
なので、win7時代から使っていたWheelAccel.ahkが不要になったよ
(むしろ、スタートメニューなど一部の窓でスクロール出来なくて困っていたし、加速機能使わなかったから不便無い) バイナリデータn書き換えについて質問します
例えばbinary.datと言うファイルがあります
このファイルの中身は”FF FF FF FF”とします
これを先頭が”FF”だった場合に”00 FF FF FF”と書き換えたいのです。
どこかに良いサンプルコードありませんでしょうか? 更新フラグでFileOpenしてRawWriteでできるでしょ 書き換え方法がわかりません
どうすれば良いですか?
FileGetSize, size, binary.dat
FileRead, data, binary.dat
file := FileOpen("binary.dat", "w")
file.RawWrite(data, size) >>933
Jtkのまがいもの更新しました。
https://ux.getuploader.com/autohotkeyl/download/131
思いつくのは入れて満足したのでしばらくこのままだと思います。
なにか要望あれば考えます 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) >>939
バグ報告いいかな?
無線パットだと起動した直後にLRがキーログに出てくる
実際押されてる模様。初期化の速さに通信が追いついてないっぽい
あと要望はLTトリガーにフルプル対応してほしい。それさえクリアしたらSteamのキーアサインの呪縛から抜けられそう window10 pro 64bit版で.NETアプリを自動操作させようとしているのですが、
コントロール名の取得方法が分からず、座標で操作しています。
しかし、画面サイズが異なると座標がずれてしまうため、コントロール名で操作したいです。
コントロール名を取得する良い方法はありませんか。
Au3Info_x64を使ったりもしているのですが、テキストボックスやボタンの名前の取得もできません。
よろしくお願いします。 mousrgetposで取れない?Dll叩いてもだめ?そうでないなら画像認識で無理やりかな >>939
jtkモドキ微更新。何度もすみません
バグ取ってフルプル分岐作りました。
フルプルとソフトプルの分岐設定も書いているので参考に
https://ux.getuploader.com/autohotkeyl/download/132 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) >>943
十字キー関数にミスが有りました。再アップしたので>>1のAutohotkey専用うpろだ からどうぞ。目玉でまくってるし >>942
ありがとうございます
mousegetpos試してみました
そこで取得したテキストボックスらしきClassNNにsendしてみたけど入力されないので、
ClassNNがあってるかどうかも分からない状態です
dllはまだよく分かっておらず、試せていません
もう少し試行してみます gui上のあるボタンを押したらcaps入り切り、というのが上手くいきません
capslockのキーコードをsendすれば?と思いましたが必ずロック入にだけなってしまいオフにできません >>947
946です、出来ました感謝m(_ _)m Jtkモドキにマウスカーソルの形状を判断して1か0を返す関数を追加しました
画面上のボタンにマウスカーソルが乗っているかどうかを1か0で返す関数も作りました
今回は主に画像で分岐する処理を追加したものになります
https://ux.getuploader.com/autohotkeyl/download/137 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) レス数が950を超えています。1000を超えると書き込みができなくなります。