AutoHotkey スレッド part30

■ このスレッドは過去ログ倉庫に格納されています
2022/02/07(月) 21:22:19.36ID:eoboeZNM0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑スレ立てする時は3行にして下さい

■配布元
https://autohotkey.com/download/

■前スレ
AutoHotkey スレッド part29
https://egg.5ch.net/test/read.cgi/software/1620768466/

■日本語解説等
AutoHotkey Wiki
http://ahkwiki.net
AutoHotkeyを流行らせるページ(ミラー)
http://hdd.s300.xrea.com/ahk/
AutoHotkeyJp(過去ログdatあり)
https://sites.google.com/site/autohotkeyjp/
Autohotkey日本語ヘルプ(chmファイル)
https://www6.atwiki.jp/eamat/

■スクリプト投稿
Autohotkey専用うpろだ
https://ux.getuploader.com/autohotkeyl/
簡易スクリプト掲示板
https://pastebin.com/

■その他のテンプレ(5chのURL規制が厳しいのでpastebinに退避しました)
https://pastebin.com/raw/bWipuNmt

次スレは>>950が建てましょう。建てられなかったらレス番指定して頼みましょう
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2022/02/10(木) 00:46:01.55ID:Wk9QomJed
>>3
5ch運営も重複認めてるから好きなの使えばいい
俺はこっち使うわ
2022/02/10(木) 01:17:00.94ID:Q1S3g6LJ0
sc79(変換)+A-Z0-9も活用しろよ
2022/02/10(木) 17:40:02.60ID:xT43oO6w0
D&Dしか受け付けないソフトにファイル送るための方法探していて行き着いたんですが、動きません。
関数のパラメーター指定が解っていないのかもしれないですが、アドバイス頂きたいです。

Run, notepad,,
Sleep, 1000
DropFiles(ahk_class EmEditorMainFrame3, "D:\_mov\疑惑.mp4", ptX=100, ptY=100, fNC=False)
ExitApp

以下関数本体
DropFiles(hwnd, files, ptX=0, ptY=0, fNC=False) {

https://p.ahkscript.org/?p=912e4b6a
2022/02/10(木) 20:36:48.36ID:DORJ6Qu90
最終的にドロップしたいアプリ先はなに?
EmEditorがドロップしか受け付けないということはないのでとりあえずのお試しなんたろうけど
動作を見たいだけならサンプルの通りまずはメモ帳で確認してみては
2022/02/10(木) 20:50:20.05ID:jdT+d41A0
>>7
>DropFiles(hwnd, 〜 ) {
・・・
PostMessage, WM_DROPFILES := 0x233, hDrop , 0, , ahk_id %hwnd%
}
関数へ渡す引数はウインドウハンドル(hwnd)じゃないとだめのような…
なのに ahk_class EmEditorMainFrame3 とか違うのを渡してるからじゃないかな
2022/02/10(木) 23:37:28.10ID:WabIUjFV0
^g::
^c ;@
#Down ;A
sleep, 500 ;B
Run, "C:\Program Files\xxx\xxx.exe" %clipboard% ;C
return

ctrl+g でテキストをコピーした後、コピー元のウィンドウを最小化して
クリップボードの文字列をプログラムxxxに渡して起動したいんですが

@、B、Cはそれぞれ単独だと動くけど、一緒にすると動きません
Aは何も反応しません
どうしたら良いでしょうか
2022/02/10(木) 23:42:23.78ID:5bxAhMo10
>>10
Send使えよ
2022/02/10(木) 23:49:00.76ID:WabIUjFV0
ありがとうございます
動きました
2022/02/11(金) 09:31:28.70ID:MON05gg2a
>>10
Cだけだと実行されるプログラムは最前面に表示されるしアクティブになってるけど
他と組み合わせると最背面に表示されてアクティブになりません
この違いは何が原因ですか
2022/02/11(金) 09:44:57.35ID:E/6+5Ye00
Runしただけではアクティブ化は保証されない
その時々の処理待ち時間や同時に動いてるタスクの有無で挙動が変わるので
理由を探してもしょうがないよ
確実にアクティブ化したいなら相応の処理を足したらいい
https://egg.5ch.net/test/read.cgi/software/1620768466/873
2022/02/11(金) 10:19:48.35ID:MON05gg2a
>>14
ありがとうございます
2022/02/11(金) 14:38:25.56ID:dRHEwNGk0
サンプルコード見せただけで発狂するキチガイ消えて良かったね
2022/02/11(金) 14:54:56.57ID:dtKpOz6n0
>>8
>>9
ありがとうございます
ドロップ先は動画カッターというソフトです。

うわー恥ずかしいpastbinには隠して書いたのに検証中のコード入っちゃいました...
色々試すもまだうまく動きません。

ウィンドウハンドル部分を””で囲む、ahk_id入れる、0x0000の0x取る、をやってもダメでした。
念の為ウィンドウアクティブにしてます。

WinGet, hwnd, ID, ahk_class (notopadを指定)
WinActivate, ahk_class (notopadを指定)
Sleep, 1000
DropFiles(%hwnd%, "D:\test.txt", ptX=100,ptY=100, fNC=False)
ExitApp
2022/02/11(金) 15:12:24.10ID:dtKpOz6n0
>>8
実はffmpegでカットするべくがんばったのですが「時間を変更するとリアルタイムでコマンドライン部分のテキストを書き換える」動作が上手く行かず断念していました。もうソフトに投げればいいやと。
あと00:00:00 / 00:00:00のテキストトリミングが分からず1時間以下の動画は数値変更に反映できないというお粗末な理由でも断念しました...
https://i.imgur.com/Y7dzMca.png

q::
Run, %A_ScriptDir%\_tool\movie_cutter.ahk
ControlGetText, var_winctr_get_text_in, Static2, A
StringTrimRight, var_trim_text_out, var_winctr_get_text_in, 11
Sleep, 50
ControlSend, Edit1, %var_trim_text_out%, 動画カッター
WinActivate, ahk_class MediaPlayerClassicW
Return
2022/02/11(金) 15:51:39.41ID:jkwntZTx0
>>17
DropFiles の引数 hwnd は %% で括る必要は無いよ
あとはドロップ対象のプログラムが管理者権限で動いていて、AHK側が非管理者の場合も上手くいかないと思う
2022/02/11(金) 16:02:26.35ID:E/6+5Ye00
>>17
関数のパラメータに%%は要らない
あとドロップは背面でもいけるのでアクティブにしなくてもいい
WinGet, hwnd, ID, ahk_class Notepad
DropFiles(hwnd, "D:\test.txt")

アプリ起動からやるならsleepじゃなくて>14同様pid指定したほうがいい
Run,notepad,,,pid
WinWait,ahk_pid %pid%
DropFiles(WinExist("ahk_pid " pid), "D:\test.txt")
2022/02/11(金) 16:16:31.60ID:JseNxLBV0
>>17-18
やりたいことはahkを使って何かをしたいわけじゃなく、
動画編集ソフトに動画ファイルを送る(渡す)→動画を無劣化カット
なんだとしたら Avidemux 使っとけば?
Avidemux.exe ほげ.mp4
で普通に ほげ.mp4 を編集できる状態で起動できるぞ
2022/02/12(土) 18:58:53.65ID:JTyLfvYaa
Esc::
Keywait, Esc, U
Keywait, Esc, D, T0.2
If (ErrorLevel=1)
{
Send,{Esc}
}
else
{
Send, WinMinimizeAll
}
return

esc2回でボスが来たボタンにしようと思ったのですが動きません
どこを直したら良いですか
2022/02/12(土) 19:17:29.98ID:nrDth/9S0
>>22
とりあえず>>1のwiki全体を読めとは言わないが流し見程度で良いからしてほしいな

本音は↑だけど、「サンプルコード集」とか「使用例」にはそのまま使えるスクリプトもある(>>22の答えもある)からそこ見るだけでもいい
2022/02/14(月) 16:52:00.15ID:abZhcv/w0St.V
>>20-21
ありがとうございます!
何度やってもうまくいきませんでしたが、まっさら仮想環境で期待通りに動作しました。
ただ、Notepadは成功、それ以外は全く動きません。chrome・エクスプローラー・EmEditor・avidemuxを試しましたが動きません。
後学のために、何が原因だと考えられそうでしょうか?

一応コード
https://p.ahkscript.org/?p=0fb0f891
2022/02/14(月) 16:52:19.26ID:abZhcv/w0St.V
>>20-21
ありがとうございます!
何度やってもうまくいきませんでしたが、まっさら仮想環境で期待通りに動作しました。
ただ、Notepadは成功、それ以外は全く動きません。chrome・エクスプローラー・EmEditor・avidemuxを試しましたが動きません。
後学のために、何が原因だと考えられそうでしょうか?

一応コード
https://p.ahkscript.org/?p=0fb0f891
2022/02/14(月) 16:55:41.54ID:abZhcv/w0St.V
>>21
ありがとうございます、これ、、いいですね。今後これ使います。
2022/02/17(木) 19:21:38.35ID:zmLOSuWk0
chromeで特定のページを開いている時のみスクリプトを有効にさせたいのですがうまくできません。
例えばこのページをchromeで開くとタイトルは"AutoHotkey スレッド part30 - Google Chrome"なので
以下のように書いているのですが、どうすればうまく動くようになりますでしょうか?

#IfWinActive, AutoHotkey スレッド part30 - Google Chrome
(...何らかのキー割り当て処理...)
return
#IfWinActive
2022/02/17(木) 19:59:50.22ID:MSJ1Z9eq0
2022/02/17(木) 20:01:15.01ID:MSJ1Z9eq0
>>27
>(...何らかのキー割り当て処理...)
>return
2022/02/17(木) 20:01:19.56ID:uoVMVdelr
>>27
wiki読め
タイトル指定になってない
2022/02/17(木) 20:01:32.22ID:MSJ1Z9eq0
あれ書き込めない
2022/02/17(木) 20:05:48.08ID:oC8fKynP0
>>27
普通にそのやり方で動いたぞ
>(...何らかのキー割り当て処理...)
の部分に何か問題があるんじゃねえの

#IfWinActive, AutoHotkey スレッド part30 - Google Chrome
F1::
msgbox, test
return
#IfWinActive
2022/02/17(木) 20:06:30.17ID:MSJ1Z9eq0
>>27
タイトルに間違いがないのならむしろ>>29の部分がおかしいのでは?

なんなんだろう?ちゃんと書き込めない
2022/02/17(木) 20:07:28.36ID:MSJ1Z9eq0
ちゃんと書き込めない上にダブったorz
2022/02/17(木) 20:07:55.38ID:oC8fKynP0
>>30
タイトル指定も問題無いぞ
このページをchromeで開いた時だけF1でmsgboxが出る
他のサイトだと通常のF1の動作
2022/02/17(木) 20:19:46.90ID:OJrFjzUg0
>>27
スクリプトの文字コードは UTF8 BOM で保存してますか?
2022/02/17(木) 22:19:14.58ID:zmLOSuWk0
>>32
>>33
条件式を外すと動いたので処理の部分の問題ではなさそうでした
>>27のコードで動いたという情報は助かります!

>>36
他の処理はきちんと動くので文字コードの問題でもなさそうです


みなさん返信ありがとうございます
もうちょっと試行錯誤してみようと思います
2022/02/17(木) 23:09:30.75ID:zmLOSuWk0
不本意ですが SetTitleMatchMode, 2 でタイトルの部分一致を条件にしたら無事に特定ページだけ処理を分けることができました。
タイトル丸ごとコピペだと動かなかったのが謎なので、いつか調べて解決したら一応レスしに来ます。
答えてくれた方々ありがとうございました!
2022/02/18(金) 11:00:33.94ID:mzg8lZMJ0
>>30
くっさw
2022/02/18(金) 12:39:52.70ID:p/kPZrwm0
>>27ですが原因わかりました
僕の環境ではどうやらタイトルに日本語が入っているとifの中を読み込んでくれないみたいです
タイトルに日本語が入っていると全滅、英語のみタイトルでは全てOKでした

#IfWinActive, (この部分→)AutoHotkey スレッド part30 - Google Chrome
(...何らかのキー割り当て処理...)
return
#IfWinActive
2022/02/18(金) 12:42:34.71ID:XKvUwEWr0
>>36
2022/02/18(金) 12:59:05.53ID:p/kPZrwm0
>>41
utf8の正式名称かなと勘違いしててBOM付き、BOM無しの存在を知りませんでした...
今ググってファイルを作り直したら日本語タイトルでも読み込めました...!!
>>36さん昨日指摘してくれてたのにすみません!ありがとうございます

みなさんお騒がせしました、完全解決しました!
ありがとうございましたm(_ _)m
2022/02/18(金) 13:01:28.38ID:itFn+OXV0
>>40
>>36は確認した?
2022/02/18(金) 13:03:19.27ID:itFn+OXV0
うわ、、、またしてもダブり…(´・ω・`)(´・ω・`)(´・ω・`)
2022/02/18(金) 19:25:37.26ID:KkGo5aqE0
InStr()のNeedleを複数指定するにはどうすればいいでしょうか?
,|で切っても上手くいきません。

Needle := "test"
2022/02/18(金) 19:57:43.89ID:itFn+OXV0
>>45
最終的にどのようなスクリプト作ろうとしてるか分からんけど、自分なら RegExMatch() 使うかなあ

(´・ω・`).。oO(こんどこそダブらないように…)
47名無しさん@お腹いっぱい。 (ワッチョイ efdc-i3kx)
垢版 |
2022/02/18(金) 22:12:38.50ID:KkGo5aqE0
>>46
ありがとうございます、いけました。

Needle := "test1|test2"
2022/02/19(土) 11:16:00.98ID:62pi6+Fx0
改行を含む正規表現の検索がうまく動きません。
どうしたら良いのでしょう?

clipboard = "Alpha`nBetta`nOmega"
src := Clipboard
RegexMatch(src, "(.*)`n(.*)`n", LastLetter)
MsgBox % "The last letter is: " . LastLetter2

結果 Betta が取り出せて成功するのですが
実際に文字列をコピーしてから実行させると何も取り出せないです。

Alpha
Betta
Omega


src := Clipboard
RegexMatch(src, "(.*)`n(.*)`n", LastLetter)
MsgBox % "The last letter is: " . LastLetter2
2022/02/19(土) 11:31:38.31ID:E7VNRjTq0
>>48
つ CRLF
2022/02/19(土) 16:31:15.36ID:62pi6+Fx0
>>49

なんのこと???
と、思いつつ改行を`r`nにしたら思い通りに取り出せました。
ありがとうございました
2022/02/22(火) 01:06:46.13ID:m3B4u60n0
ClassNNの上だけで機能するキーマッピングしたいのですがどうすればいいでしょうか?
2022/02/22(火) 01:23:00.22ID:DUdudIE/0
ClassNNの上かどうかを判断する関数作って#if で呼び出して判定
http://ahkwiki.net/-If
2022/03/01(火) 21:11:05.49ID:+wYPWB9B0
Everythingなどの特定のアプリケーション上でahkに割り当てたファンクションキーって動作する?
例えばF15にボリュームアップを割り当てたとすると、
デスクトップ上やChromeなどのブラウザでは動くんだけど、Everything上では動かないんだよね
2022/03/01(火) 22:09:12.74ID:YfjfhKe+0
>>53
管理者権限でahk実行してる?
2022/03/01(火) 23:45:13.59ID:+wYPWB9B0
>>54
yes
そのせいなのか
2022/03/01(火) 23:52:22.52ID:AoOE2nmn0
yes
57名無しさん@お腹いっぱい。
垢版 |
2022/03/02(水) 19:43:50.61ID:XwNJnufL
今まではコンパイル済み実行ファイルを
使うだけの消費者だったアタシ。
最近、自分で改良してスクリプトを書いてみたら
思いの外手こずって衰えを感じます。



こちとら、空手初段、 C言語 100段じゃい!
なめんな、こらぁ ('# ‘ω‘ )
58名無しさん@お腹いっぱい。
垢版 |
2022/03/02(水) 19:47:45.39ID:XwNJnufL
PCのクリックゲーでアタシがネットで作業をしている時でも

「バックグラウンドでゲームのウインドウへ
毎秒50回の左クリックを連打しつつ、数字キーを押して技を発動する」

そういうのをやってます。(' ‘ω‘ )

ウインドウのフォーカスがゲーム本体にある時は動作するけど、
そうでなくなった途端になぜか数字キーだけが押されない。
左クリック連打は効いているのに。マジクソだわ、この国。
59ケンカ100段、C言語100段のこどおじ (ワッチョイ c6f4-U4gN)
垢版 |
2022/03/02(水) 19:51:20.32ID:XwNJnufL0
; This is a test post.

Hage::Fusa
2022/03/02(水) 21:35:14.34ID:mHBtCTL30
>>58
めでたしめでたし
61C言語100段 (' ‘ω‘ ) ◆iD93.8lby6 (ワッチョイ c6f4-U4gN)
垢版 |
2022/03/04(金) 00:34:24.59ID:v/3ypSMl0
autoclick:
if !(WinActive("ahk_id" . actWin) && (A_TimeIdlePhysical < 50 && !mouseMoved))
{
ControlSend, , 3, ahk_id %actWin%
; Send directly to Digit3 to the window.
cx := xp%currentClick%
cy := yp%currentClick%
ControlClick, x%cx% y%cy%, ahk_id %actWin%,,,, NA
currentClick := % Mod(currentClick + 1, totalClicks)
}
return

↑ これで後半5行目の ControlClick はちゃんと機能する、
ゲームのウインドウが 裏側になっても ひっそりと左クリック連射してくれる。
しかし、手前の1行目の ControlSend は機能してくれない。
ゲーム Windowが背面に行ったら、その時点で 3 キーがちゃんと送られなくなる。
どこが間違っているのかわからん!なんでや!
2022/03/04(金) 01:40:52.99ID:ZUYcCarh0
>>61
関係無いかもしれんけど
SetKeyDelayでPressDurationを100msくらいにセットしてみてはどうだろう
裏に行ったとき一瞬すぎると反応出来てない可能性
2022/03/04(金) 03:09:11.96ID:u6iSGFuE0
ControlSendは任意のContolに直Sendするためのコマンドだが
必ずしもバックグラウンドSendを保証するものではない
アプリや送り先Controlによってはうまく動かないことはある

ControlSendはWindowではなくContolに対するコマンドなので
送り先のControlをちゃんと指定したほうが成功率は上がる
ClassNNよりcontrolHWNDがおすすめ
http://ahkwiki.net/Window#Control.E7.B3.BB.E3.82.B3.E3.83.9E.E3.83.B3.E3.83.89.E3.81.AE_Control_.E5.BC.95.E6.95.B0
64名無しさん@お腹いっぱい。
垢版 |
2022/03/04(金) 03:22:04.25ID:v/3ypSMl
さんくす! 試してみます!

コントロールとウインドウとウインドウハンドルの違いもわからん。
右も左も上も下も
前も後ろも分からん!
AutoHotKeyのWikiって関数へのリンクはあるけど
専門用語へのリンクが無いよな。
65C言語100段 ◆iD93.8lby6 (ワッチョイ c6f4-U4gN)
垢版 |
2022/03/04(金) 04:01:28.00ID:v/3ypSMl0
>>61
あ、なんか分かってきた。

人の書いたスクリプトを編集・改変しているから気づかなかった。
これ、関数内で直線的に処理が行われているだけじゃないんだな。

マウスクリックが発生してアクティヴ・ウインドウが変わった時に
他所の関数の処理に飛んでるわ。
そこで ahk_id の値が書き換わってる、
だから、ゲームウインドウが後ろに行った時に
ControlSend が届いていない。 見えてきたな (' ‘ω‘ )
2022/03/04(金) 04:56:22.89ID:ZUYcCarh0
>>65
ahk_id の値が書き換わってるんだったら ControlClick の方も裏に行ったら動かないはずでは?
2022/03/04(金) 13:32:10.89ID:ljvEuR8a0
Windowが最小化(タスクバーに収納)されてるか否かで、分岐条件を書きたいんだけど、方法はあるのでしょうか?
2022/03/04(金) 13:43:31.58ID:GcVXrzsN0
winget
2022/03/04(金) 13:49:12.82ID:ZUYcCarh0
>>67
WinGet の第二引数 MinMax
70名無しさん@お腹いっぱい。 (ワッチョイ 03dc-xbwq)
垢版 |
2022/03/04(金) 15:02:15.44ID:td9njwVp0
ウィンドウがアクティブ/非アクティブで処理を分岐させたいのですが、よい関数ありますでしょうか?
これがうまく動かなくて。
https://www.autohotkey.com/board/topic/59059-wintrigger-watch-deactivationunexistance-of-windows/page-2
2022/03/04(金) 15:25:40.83ID:u6iSGFuE0
WinActive()
非アクティブかつ存在してるかの確認も必要なら WinExist() も一緒に使う
2022/03/05(土) 00:18:32.81ID:KfWmd2Ba0
>>70
Thanks助かった!
2022/03/05(土) 00:21:07.69ID:KfWmd2Ba0
>>69
アンカーミス。
ありがとう助かった69さん。
2022/03/05(土) 04:09:57.58ID:HBl5uDMh0
>>71
ありがとうございます。
SetTimerとIfWinActiveで奮闘中です。
2022/03/05(土) 04:15:09.12ID:HBl5uDMh0
2つ質問です。
短縮URL展開が目的で、2行目クリップボード部分でエラーが出ます。
適当な変数で代入しても効果なし。どうすればいいでしょうか?
ClipboardにURL平打で入れると動きます。

req := ComObjCreate("WinHttp.WinHttpRequest.5.1") ;URL展開準備
req.Open("HEAD", "%Clipboard%") ;URL展開開始
req.Option(6) := False ; Disable auto redirect
req.Send()
origin_url := req.GetResponseHeader("Location") ;出力結果

2つ目
日本語URLを正規表現で取りたく %..* でマッチしたのですが正規表現のAHK構文がわかりません。どうすればいいでしょうか?
76C言語100段 ◆iD93.8lby6 (ワッチョイ eff4-irv2)
垢版 |
2022/03/05(土) 06:51:42.34ID:NK/bMZpv0
>>61
なぜか知らんけど ControlClickの引数の NA を
取り除いたら
ウインドウがアクティヴじゃない場合でも
Control"Send" がちゃんと機能して 数字3 キーを送れるようになった。

ControlClick, x%cx% y%cy%, ahk_id %actWin%,,,,
ControlSend, ,{3},ahk_id %actWin%
2022/03/05(土) 08:04:53.28ID:xdg9IakK0
MsgBox, % "%Clipboard%"
2022/03/05(土) 08:12:49.07ID:n/sXRmRH0
>>75
1. req.Open("HEAD", Clipboard) ;URL展開開始
2. ahkの正規表現はPCRE準拠
http://ahkwiki.net/RegEx

ワッチョイ dc- ってことは>17と同一人物?
あの時も書いたけど関数へ変数渡すのに"%%"で括ったらあかん
コマンドと関数の違いも分かってなさそうだし
一旦ちゃんとチュートリアルに目を通したほうがいいと思う
79C言語100段 ◆iD93.8lby6 (ワッチョイ eff4-irv2)
垢版 |
2022/03/11(金) 02:54:41.09ID:6OOGMPCK0
1週間ほど使った感想

まず、気に入った点。
スクリプト言語で記述がお手軽。
コンパイルも簡単、コンパ後に生で実行ファイルを庶民どもへ配布できるのもいい。
しかも、庶民側でランタイムライブラリが不要、
ここは相当に高く評価したい。

次に気になった点。
動作の保証および厳密さが、ややフワフワしている感じがある。
ただし、この欠点は個人で使う分にはさして問題にならないので無視できるといえよう。

そんな感じ ( '‘ω‘)ちなみにケンカ100段です
2022/03/11(金) 17:34:05.98ID:e4IMEGGD0
なんだこいつ
気持ち悪いクソコテage厨だな
NGだ
81C言語100段 ◆iD93.8lby6 (ワッチョイ 06f4-omDX)
垢版 |
2022/03/12(土) 12:06:46.92ID:lyO/cUgw0
{80}:: YanaYatsu
return
2022/03/14(月) 13:16:55.74ID:LX6x3Q3L0Pi
他のプログラミング言語を知らずにAHKを使い倒す事に限界を感じてる。
AHKの理解に役立つ言語って何?

Dll関数が奥深いとか言うから、やっぱりC言語をやらなきゃダメなのか。
pythonってやつが簡単そうだけど、それで勉強してもAHKと関連ないか?
2022/03/14(月) 13:25:15.06ID:skBuJIMU0Pi
中途半端に他の言語知っても逆に違いで混乱するだけじゃね?
84C言語100段 ◆iD93.8lby6 (オーパイ 06f4-omDX)
垢版 |
2022/03/14(月) 13:49:12.47ID:sU3yfQx90Pi
>>82
何かを学ぶのは良い姿勢だが
「なぜそれが必要か、本当に必要なのか?」
これがもっとも重要なことだ。

後学のため、または、泊をつけるために
C言語やJava, Visual C#を学ぶという人もいるかもしれないが、
それは単に目的もなく英語の学習をする女子大生と変わらない。

たまにいるけど、DQN家庭が自分の子(幼児)に英語学習の教材を
やらせているのをみるけど悲しくなる。
代書屋や通訳さんにするつもりなんだろうか…。
目的を持たない学びはかえって有害だよね。( '゜ω゜)
2022/03/14(月) 14:09:30.70ID:2WBKjXLgrPi
関数のスコープ?とか変数に名前つけるルールとか そういう予備知識みたいなもの少しでもあったらラクかなあとは思うわたしもビギナー
86名無しさん@お腹いっぱい。 (オーパイW eedc-OnfK)
垢版 |
2022/03/14(月) 18:29:08.40ID:uPS2e/4d0Pi
>>78
ありがとうございます。
最終的にこうなりました。(?:%[[:xdigit:]]{2})+
2022/03/15(火) 00:44:56.51ID:LT/lXTek0
>>82

AHKの構造を簡単に言うとメッセージポンプという機能に介入するソフトなんで
C/C++でWindowsAPIで叩くところをやらないといけない。
ほかの言語だとこの部分が隠蔽されてる。
なぜなら一般のアプリでは殆どいじる必要がないので。
2022/03/15(火) 12:11:36.20ID:2J4RhbhJ0
>>82
AHKの理解ってのが何を言いたいのか良く分からんけど、他の人が書いたDllCallの部分が何をしてるかを知りたいならC言語一択かな
APIの呼び出しに関してはAHKよりCから呼び出す方が遥かに楽
とうかAHKから呼び出す場合はとても面倒くさいことをしなければならないので、始めて見るAPIコールがAHKのコードならまず理解できないと思う

python自体は使える言語だけど覚えたところであなたの言うAHKの理解には結び付かないと思う
2022/03/15(火) 12:15:58.04ID:2J4RhbhJ0
連投失礼
C++だとMFCというクラスライブラリを使うのが一般的で、APIがラッパーで覆われた感じになってしまっているから
DllCallを理解したいなら++ではなく無印Cのソースを見た方が良い
2022/03/15(火) 13:53:15.23ID:XEsZbqbM0
C/WindowsAPI→DllCall
C++/COM→ComObject
C#/.NET→CLR.ahk
AHKで出来ることの幅が広がるのはこの辺かな
91名無しさん@お腹いっぱい。 (ワッチョイW 69dc-OnfK)
垢版 |
2022/03/15(火) 15:10:30.50ID:re97+6F/0
置換処理について質問です。
StringReplaceとRegExReplaceを3回記述していますがこれもっとスマートに処理する方法あるでしょうか?AHKでの処理はそういうものなのでしょうか?

置換前https://tanaka.aaa.com/post/51975486261/%E3%81%9F%E3%81%AA%E3%81%8B

置換後
https://www.aaa.com/edit/51975486261/
2022/03/15(火) 15:51:09.19ID:+deaD77J0
その三回の記述を貼らないと
93名無しさん@お腹いっぱい。 (ワッチョイW 69dc-OnfK)
垢版 |
2022/03/15(火) 16:41:02.34ID:re97+6F/0
貼るまでもなく、tanakaとpostとURLエンコードを置換してるだけです。
2022/03/15(火) 16:54:58.14ID:EscCaD9Qa
じゃあ答えるまでもないな
2022/03/15(火) 17:57:21.64ID:qN1jBt150
>>87
>>88
やっぱりCかぁ。
ポインタあたりで、オレは家電のコードでも書くつもりか?と疑問に思って
勉強をストップしてたから、また始めてみるわThanks
WinAPIの参考書も買うわ。
2022/03/15(火) 18:06:45.14ID:PZVzUiLD0
説明不足だから
51975486261だけ抜き取ればええんじゃない?となる
2022/03/15(火) 18:38:55.54ID:GBPBSABrM
>>93
正規表現の基礎くらい学習してから来いよ
してたら>>91みたいな疑問は出ないはず
98名無しさん@お腹いっぱい。 (ワッチョイW 69dc-OnfK)
垢版 |
2022/03/15(火) 19:14:03.73ID:re97+6F/0
>>96
ありがとうございます。確かに、、よく見たら数字だけ抽出で良い感じに出来ました。
RegExMatch \d{5,}
2022/03/15(火) 19:24:45.33ID:TL0yCQF/0
ワッチョイ dc-
2022/03/15(火) 19:40:21.80ID:LT/lXTek0
>>89

昔MFCやVCLで作ってたようなアプリは今はみんなC#に移行してて、
今更C/C++でやってる少数派はビジネスアプリ作ってるわけじゃないんで
それこそWIN32++でもQtでもなんでもござれだよ。
2022/03/15(火) 19:40:23.17ID:+deaD77J0
ええ?俺もかよw
2022/03/15(火) 21:24:25.21ID:0cVGIK6W0
>>101
巻き込まれ事故カワイソw
2022/03/16(水) 00:54:54.22ID:U+Ng5L9M0
dllcallで呼べるAPIの仕様は昔はVBのDeclareの解説を探して形確認してたなあ
今はMS公式のドキュメントがググれば出てくるから楽でいいよね
2022/03/16(水) 09:45:10.99ID:exh4xln+0
WinSetのRegionを使ってウインドウの一部を透明にすると、一部は隠れるのですが、全体の輪郭が薄く残ります
Windows10のときです
Windows7のときは問題ありませんでした

これなんとかなりませんか?
ちなみにVer1.1.33.06
です
2022/03/16(水) 14:50:12.83ID:f/WB1z690
>>104
OS仕様の問題なのでAHK側が対応しない限り無理なんじゃね
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

ニューススポーツなんでも実況