AutoHotkey スレッド part26at SOFTWARE
AutoHotkey スレッド part26 - 暇つぶし2ch282:名無しさん@お腹いっぱい。
18/06/24 01:05:16.40 gl6IIcaZ0.net
ちなみにAHK v2のMenuはまさにそんな感じ
URLリンク(lexikos.github.io)

283:名無しさん@お腹いっぱい。
18/06/27 17:27:43.88 hg8rqnbu0.net
iniwriteの時に書き込む値にカンマがあった場合はどうすればいいのでしょうか?

284:名無しさん@お腹いっぱい。
18/06/27 17:32:41.64 0iRb2wcH0.net
エスケープするor変数に入れる

285:名無しさん@お腹いっぱい。
18/06/27 18:25:58.86 hg8rqnbu0.net
hensuu = 111,aaa,222,bbb
iniwrite, %hensuu%, test.ini, test, test
iniwrite, 111`,aaa`,222`,bbb, test.ini, test, test
こんな事が出来るなんて知りませんでした。
どちらでもできました、ありがとうございます。

286:名無しさん@お腹いっぱい。
18/07/02 03:06:06.99 g0LGh7eu0.net
ATOKの日付変換が便利なんだけど、使いたいフォーマットがない。
例えば "yyyy_mmdd" とか。
now対象だけならahkで作れそうなきがするけど、ATOKみたく「あした」「あさって」とか
「げつようび」とかで、前後の日をサポートするとなると大変そう。
こんな日付変換に対応したものってありますか?

287:名無しさん@お腹いっぱい。
18/07/02 08:08:57.58 obbanbrL0.net
別のスクリプト同士で変数をやり取りする方法はありませんか?
情報をやり取りするためのファイルに書き込んでおき、
別のスクリプトで読み込むしかないでしょうか?

288:名無しさん@お腹いっぱい。
18/07/02 10:28:37.55 2sJUYxCT0.net
>>277
URLリンク(ahkwiki.net)
::nitiyoubi::
SUNDAY=1
send,% DateCalc(SUNDAY-A_WDay,"yyyy-MMdd")
return
DateCalc(offset,format) {
TimeStamp := A_Now
TimeStamp += %offset%, Days
FormatTime,TimeStamp,%TimeStamp%,%format%
return TimeStamp
}
>>278
URLリンク(ahkwiki.net)()

289:名無しさん@お腹いっぱい。
18/07/02 12:22:32.02 obbanbrL0.net
>>279
サンクスコ助かりました

290:名無しさん@お腹いっぱい。
18/07/02 13:08:15.58 YBwm2/8CH.net
>>279
わぁ、作っていただけるなんて。
ありがとうございます。
これを元にメニュー化してみます。

291:名無しさん@お腹いっぱい。
18/07/07 02:08:28.79 qwGCuEP30.net
GUIで使われるデフォルトのフォントはコレであっていますか?
分かる人いたらお願いします。
OS日本語 MS UI Gothic (win7で確認、win10も同じ?)
OS英語 MS Sans Serif?

292:名無しさん@お腹いっぱい。
18/07/07 08:53:40.58 OoZZ3/qe00707.net
>>282
ググればわかることだが両方違う
win7はメイリオ、win10は遊ゴシック系
URLリンク(www.atmarkit.co.jp)
英語版OSは Segoe UI
URLリンク(ja.m.wikipedia.org)

293:名無しさん@お腹いっぱい。
18/07/07 09:50:28.34 qwGCuEP300707.net
>>283
言葉足らずでした、AHKのGUIコマンドの話です
原文のリファレンスを読むとデフォルトはGetStockObjectのDEFAULT_GUI_FONTの事だとは思うのですが
他環境のフォント情報がなかなか見つからず質問した次第です

> Omit the last two parameters to restore the font to the system's default GUI typeface, size, and color.
Gui, Font,, メイリオ
Gui, Add, Text,, あいうえおABCDEabcde (メイリオ)
Gui, Font,, MS UI Gothic
Gui, Add, Text,, あいうえおABCDEabcde (MS UI Gothic)
A_GuiFont := GuiDefaultFont()
A_GuiFontSize := A_LastError
Gui, Font
Gui, Add, Text,, %A_GuiFont%`t%A_GuiFontSize% (デフォルト)
Gui Show
Return
GuiDefaultFont() { ; By SKAN www.autohotkey.com/forum/viewtopic.php?p=465438#465438
hFont := DllCall( "GetStockObject", UInt,17 ) ; DEFAULT_GUI_FONT
VarSetCapacity( LF, szLF := 60*( A_IsUnicode ? 2:1 ) )
DllCall("GetObject", UInt,hFont, Int,szLF, UInt,&LF )
hDC := DllCall( "GetDC", UInt,hwnd ), DPI := DllCall( "GetDeviceCaps", UInt,hDC, Int,90 )
DllCall( "ReleaseDC", Int,0, UInt,hDC ), S := Round( ( -NumGet( LF,0,"Int" )*72 ) / DPI )
Return DllCall( "MulDiv",Int,&LF+28, Int,1,Int,1, Str ), DllCall( "SetLastError", UInt,S )
}

294:名無しさん@お腹いっぱい。
18/07/07 11:20:45.04 OoZZ3/qe00707.net
失礼
win10も MS UI Gothic だったよ

295:282
18/07/08 18:55:55.14 jnfyQm1X0.net
ありがとうございました
他のフォント情報も見つけることができました
URLリンク(msdn.microsoft.com)(v=vs.110).aspx

296:名無しさん@お腹いっぱい。
18/07/14 00:28:43.55 c9o5o3bi0.net
「コントロール+クリック」を「無変換+クリック」に割り当てられるといいんだけどな@あ

297:名無しさん@お腹いっぱい。
18/07/14 00:33:52.87 wrBaH4zb0.net
割り当てられますけど

298:名無しさん@お腹いっぱい。
18/07/14 07:29:02.66 TH1SIGBe0.net
>>287
失敗した書き方はどんな感じ?

299:名無しさん@お腹いっぱい。
18/07/15 09:50:14.97 bqpX/mGQ0.net
関数内でループをさせて、そのループのA_indexを使ったことをさせたいんですが、A_indexを使ったことというのを関数内で何度も使うのでその記述を簡略化したいんですが
どうすればいいですかね?やりたことは下記のようなことなんですが、labelとgosubで動くものなのかがよくわからないでいます
test()
{
loop,10
{
label:
tooltip,%A_index%
return
gosub,label
sleep,500
gosub,label
sleep,500
gosub,label
sleep,500
}
return
}

300:名無しさん@お腹いっぱい。
18/07/15 20:19:37.01 we5y7DJBM.net
関数内でもラベルは使えるけどサブルーチンは無理
そのコードだとtooltipの下のreturnで関数ごと抜けてしまうよ

301:名無しさん@お腹いっぱい。
18/07/15 21:19:24.01 p+q5mhPf0.net
>>290
サブルーチン部分をloop外に出せば動くとは思うが、正直何をしたいかよく分からん
同じA_indexで同じ処理を3回してるから、その部分をloopで回せば簡略化できると思うが…
test() {
loop,10 {
count := A_index
loop,3 {
gosub,label
sleep,500
}
}
return
label:
tooltip,%count%
return
}
長いので次レスで

302:名無しさん@お腹いっぱい。
18/07/15 21:19:59.91 p+q5mhPf0.net
続き
それとも、こんなことか?
test() {
loop,10 {
gosub, label1
gosub, label2
gosub, label3
}
return
label1:
tooltip,%A_index%
sleep,500
tooltip,
return
label2:
MsgBox,%A_index%
sleep,500
return
label3:
Clipboard := A_index
MsgBox,Clipboard は %Clipboard%
sleep,500
return
}
以上、かなり適当

303:名無しさん@お腹いっぱい。
18/07/15 21:21:21.92 p+q5mhPf0.net
>>293
かなり見づらくてスンマソン

304:名無しさん@お腹いっぱい。
18/07/18 16:42:54.30 trYB5odT0.net
290 ですが返事がおそくなってすみません。
結局loopでlabel部分をループさせました。ありがとうございました。

305:名無しさん@お腹いっぱい。
18/07/20 14:55:17.40 2RsjRDqU0.net
win7から10へマシン変えようか考えてますが
ahkスクリプトは相当書き換える必要あるのでしょうか? 今あらゆる作業でずいぶん頼ってるのでそこが悩みどころでして

306:名無しさん@お腹いっぱい。
18/07/20 15:09:10.38 wv55im470.net
>>296
もしWin7のUAC設定を一番下にしてオフにしてるならばWin10に移行後にUAC絡みで気を付ける必要があるかも
Win7ではUAC一番下にするだけでほぼ機能しなくなるけどWin10では一番下にしても完全にはオフにならないので
必要に応じてスクリプトを管理者権限で実行したり、標準権限で実行したりを気を付けなきゃならない
元からWin7でUACオンにして使ってるなら特に使い勝手は変わらないと思う

307:名無しさん@お腹いっぱい。
18/07/20 16:04:35.24 2RsjRDqU0.net
>>297
ありがとうございました!ユーザーアカウントというあたりは元々ぜんぜんいじってないです。
スクリプトそのまま移行して使い続けられそうでホッとしてます

308:名無しさん@お腹いっぱい。
18/07/20 16:20:15.17 IY43ug2o0.net
>>296
自分はahk以外にもWSHやAutoItも使ってるので参考になるか分からないが…
スクリプトでレジストリにアクセスしようとしてもブロックされまともに動かなかったので、
[HKEY_LOCAL_MACHINE\SOFTWAR


309:E\Microsoft\Windows\CurrentVersion\Policies\System] の"EnableLUA"=dword:00000001 → "EnableLUA"=dword:00000000 にしてUACを無効化した 自分はwin7 32bitからwin10 64bitにしたけど、特に大掛かりなスクリプトの書き換えはしなかったような気がするが、 win7時代に動いていたスクリプトがwin10で動かなくなったのはあったな このスレにあったヤツだったか忘れたが、ウインドウに穴開けてデスクトップを見るスクリプトだった 他人作だし使う機会も少なかったのでもう使用はしていない…



310:名無しさん@お腹いっぱい。
18/07/20 20:57:51.00 GOaXWtHw0.net
無理矢理UAC完全無効化はストアアプリに不具合出るしMS的にはストアアプリ推しだから
将来的に大きなトラブルになる可能性もある

311:名無しさん@お腹いっぱい。
18/07/20 21:09:21.49 9LPAAB/e0.net
UAC無効化しなくてもUI Access有効化でよくない?

312:名無しさん@お腹いっぱい。
18/07/20 23:46:35.78 IY43ug2o0.net
情報サンクス
>>300
>ストアアプリに不具合出るしMS的にはストアアプリ推し
自分としては別に使う気はないからどうでも良いかなぁ
win10使う上で必須のアプリがあるなら考えるけども…
>>301
UI Access っつうのちょっと調べた限りでは、フォルダ限定される?
自分はCドライブにソフトやスクリプトは殆ど置かないので、UI Access有効化は余り意味がないかもしれない

313:名無しさん@お腹いっぱい。
18/07/22 10:19:40.82 OCDGBqGi0.net
なぜ日本語wikiのキーリストで
変換:vk1Csc079のように記載されているのでしょうか?
実際,スクリプトにはvk1Cと記載しないと動きませんよね?
誤解を招くような気がする(実際に自分も戸惑った)のですが,これにはなにか理由があるのですか?

314:名無しさん@お腹いっぱい。
18/07/22 10:58:23.54 AMD77juC0.net
>>303
v1.1.24まではvc○○sc○○の記述が可能だった
v1.1.27で修正されてvk○○またはsc○○の片方しか記述出来なくなった
v1.1.28で以前の仕様(vc○○sc○○が可能)に戻ったらしいけど
俺はv1.1.24からアップデートしていないので未確認

315:名無しさん@お腹いっぱい。
18/07/23 21:15:15.12 M4VJIdNm0.net
いや、v1.1.28でも最新のv1.1.29.01でも「vk○○sc○○」の記述はエラー出ますよ
今も「vk○○」か「sc○○」の片方のみ可能なのでwikiを直さないと新規の人には分かりにくいだろうね

316:名無しさん@お腹いっぱい。
18/07/23 22:11:48.54 ionPQ2gz0.net
いろんな文法を認めている割に、これに関しては厳しくしたいっていうのが良く分からんね。

317:名無しさん@お腹いっぱい。
18/07/25 03:34:26.75 gZ0Se62R0.net
keyhacですが、tkinterは入れたままにして頂きたい!
その方がポータブル感が高まると思います。

318:名無しさん@お腹いっぱい。
18/07/25 04:35:30.78 XXshHs+p0.net
すいません質問させて下さい
URLリンク(superuser.com)
上のサイトのスクリプトはエクスプローラ上で同階層フォルダ間を移動するものですがあくまで英語圏のためのものであり
日本語のフォルダ名だとエクスプローラの表示順通りに移動できませんがどうすればいいでしょうか
Windows XP以降のソート順は特殊でShlwapi.dllのStrCmpLogicalW()というAPIを使う必要があるらしいのですが
Windows 7 64bit
Autohotkey(x64) v1.1.22.09

319:名無しさん@お腹いっぱい。
18/07/25 14:19:24.59 tDovQ0SL0.net
>>308
一旦兄弟フォルダを全部取得してからフォルダ名でソートすればいいんじゃないか、�


320:ニいうことで自分でも使用したいので作った Win10で動作確認 https://pastebin.com/sZVcY14F オリジナルに変更を加えた部分はある程度コメントを入れてあるので詳細はそっちで それと、親フォルダのソート状況を推察するのは難(*1)があるので、移動の順番は名前で昇順ソートされた状態を想定してる 別ウィンドウで親フォルダを日付や名前の降順でソートして表示していて、移動してみたら順番が違う!というのは諦めて (*1) 親フォルダのソート状況を推察できる状況 ・一つのエクスプローラーウィンドウで親フォルダを表示している 厳しいとき ・親フォルダを表示していない ・複数のウィンドウで親フォルダを開いていて、それぞれソート状況が異なる。(どちらを選択するのか?)



321:308
18/07/25 15:49:51.80 XXshHs+p0.net
>>309
質問者ですがwindows7でも動作確認しました
兄弟フォルダ間の移動なんて簡単て思ってたらとんでもなかったw
前提条件を認識した上で使わせてもらいます
ありがとうございました

322:名無しさん@お腹いっぱい。
18/07/26 17:12:06.86 t46bhQ3w0.net
URLリンク(pastebin.com)
よく分かってないけど>>309のスクリプトで最初と最後の兄弟フォルダにも移動したいときはこんな感じでいいのかな

323:名無しさん@お腹いっぱい。
18/07/28 17:20:36.99 pDAfKZEBM.net
こんなの聞くの申し訳ないんですがTrayTIpが動きやせん
調べでもわからなくて困った
windows10 1803 AHKL1.1.29.01(64bit)
#NotTrayIcon使用なし
全文が長くなるとTrayTIpがwin上で反映されない
LOGだと指令でてる&短い文でテストすると問題なし
コンパイルすると動いてたが更に全文長くしたらコンパイルしてもTrayTIpでない
うわーん

324:名無しさん@お腹いっぱい。
18/07/28 17:47:48.00 pDAfKZEBM.net
>>312
自己解決しました。win10の設定でAHKの通知取得がoffやった…
むしろなんで短いと通るのか不思議になりましたが
スレ汚しごめんなさい

325:名無しさん@お腹いっぱい。
18/07/31 02:10:13.15 GTD+3eTh0.net
下記サンプルコードではタスクバー上の空きスペースクリック時メニューが出てしまうので
メニューを出さずにアイコン上か空きスペースかの当たり判定ができましたら教えてください
■サンプルコード
中クリックでアプリ閉じ
問題点…空きスペースクリック時のメニュー
;タスクバー上
#If MouseIsOver("ahk_class Shell_TrayWnd", "MSTaskListWClass1")
 MButton::
  Send {RButton}
  Sleep, 250
  if WinExist("ジャンプ リスト ahk_class DV2ControlHost")
   Send {Up}{Enter}
  else
   Send {Esc}
 return
#If
MouseIsOver(WinTitle, ClassNN:="") {
 MouseGetPos,,, hWnd, ControlNN
return (!ClassNN ? WinExist(WinTitle " ahk_id " hWnd) <> 0 : WinExist(WinTitle " ahk_id " hWnd) && ClassNN = ControlNN)
}

326:314
18/08/01 01:43:23.52 tCZRzMJu0.net
サムネイル有無だとメニューは出ないがサムネイルがないとミスってしまう
SendMessageなどでの当たり判定や、そもそも閉じるのに右クリック→上→Enterではない案(AHKで)などありましたら教えてください
■サムネイル有無判定
Sleep, 250
if !WinExist("ahk_class TaskListThumbnailWnd")
 return

327:名無しさん@お腹いっぱい。
18/08/01 20:39:43.87 RFuZeACf0.net
タスクバー上でカーソル下がアイコンか空きスペースかの判定だけなら
Acc.ahk使えばすぐじゃないかな
Roleの値が違うはずだし

328:名無しさん@お腹いっぱい。
18/08/01 21:50:53.68 tCZRzMJu0.net
>>316さん
Acc_GetRole()関数利用で希望する動作になりました
今までACC.ahkはテンプレで紹介されているのは知っていましたが、用途が分からずインスコしていませんでした
めちゃ便利ですね。教えていただきありがとうございました

329:名無しさん@お腹いっぱい。
18/08/02 22:02:20.44 Ys9NGPTx0.net
Acc.ahkは使い方がわかればDoDefaultActionが便利だった
俺は分からず分かったのはUI Automationに手を出した後という

330:名無しさん@お腹いっぱい。
18/08/02 23:21:29.21 SOQUJBoF0.net
いまさらながらオミトロンのバイパス状態の見分け方が分かったので記念カキコ
;Proxomitron バイパス
1 Up::
 SavedDHW := A_DetectHiddenWindows
 DetectHiddenWindows, On
 ControlGet, BypassSt, Enabled,, Web ページ・フィルタ, ahk_class PrxTronCls
 BypassSt ? ToolTip("Bypass On") : ToolTip("Bypass Off")
 PostMessage, 0x111, 1007,,, ahk_class PrxTronCls
 DetectHiddenWindows, %SavedDHW%
return
;ToolTip() URLリンク(pastebin.com)

331:名無しさん@お腹いっぱい。
18/08/03 21:43:37.48 pHE6KlnQ0.net
Acc_GetName()で一般のコピーツールなどでは取得しにくいTreeView上のテキスト取得や
Acc_GetName()とAcc_GetRole()の併用でWM_NCHITTESTではだめなタイトルバーのボタン上の正確な位置判定など
あらためて教えていただいた>>316さんには感謝
ACC.ahk URLリンク(ux.getuploader.com) 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


332:名無しさん@お腹いっぱい。
18/08/04 02:18:49.52 H2OE/J7G0.net
acc.ahkが便利そうなのでググったら日本語解説ページがなく
クルマのワーゲンの機能らしい
accはオートクルーズコントロールみたいなのだが
ahkはよくわからない
ムキになって検索しまくり
ようやくヒットする
BMWも搭載してるようで動画で確認
クルマの下からチンコがでてきた
違う!

333:名無しさん@お腹いっぱい。
18/08/04 20:08:36.57 mW/OGX1W0.net
>>320
なんか凄いツールですね
AccInfoViewer_kai.ahk を使ってみたところ
メモ帳のツールバーの 編集>貼り付け のところにカーソルを合わせると
Name : 貼り付け(P) Ctrl+V
Action : 実行
と出るのですが、この情報を使ってmouseclick AHKで 貼り付け を

334:名無しさん@お腹いっぱい。
18/08/04 20:11:05.28 mW/OGX1W0.net
すいません途中で送信してしまいました
>>320
なんか凄いツールですね
AccInfoViewer_kai.ahk を使ってみたところ
メモ帳のツールバーの 編集>貼り付け のところにカーソルを合わせると
Name : 貼り付け(P) Ctrl+V
Action : 実行
と出るのですが、この情報を使ってmouseclick を使わずに AHKで 貼り付け を
実行させることは可能でしょうか?
もしできるならどのように書けば良いのでしょうか?

335:名無しさん@お腹いっぱい。
18/08/04 22:48:25.99 KKkpi8nV0.net
自分が見つけたのは↓だけど、同じもの?
Acc library (MSAA) and AccViewer download links - AutoHotkey Community
URLリンク(autohotkey.com)
の「AccPack.zip」
URLリンク(autohotkey.com)
に含まれる「Acc.ahk」
あと、「COM.ahk」というのも同時に必要なのだろうか?
ここ↓のでOK?
COM Standard Library - Page 44 - Scripts and Functions - AutoHotkey Community
URLリンク(autohotkey.com)
検証もせず、レスしてスマソ

336:名無しさん@お腹いっぱい。
18/08/05 05:48:53.94 KjBFiGmx0.net
>>324
AccInfoViewer_kai.ahk 付属のACC.ahkについては
ダウンロードボタンの少し上のコメントに
フォーラム


337:で拾ったものって書いてあるよ



338:名無しさん@お腹いっぱい。
18/08/05 21:22:05.24 T6bMKT0H0.net
>>324
COM機能はいまは標準実装されているので不要
いつかはCOMが使えるようになりたいなぁ
>>320
> Acc_GetName()で一般のコピーツールなどでは取得しにくいTreeView上のテキスト取得や
と書いたけど、どこでもおもしろいほどテキスト取得できますね
いままでClipy、NNScanText、コピット!、CopitX使っていたけどおさらばしました

339:名無しさん@お腹いっぱい。
18/08/06 03:58:51.10 5wbNEfZL0.net
AHKでクラス使うときメソッド名のタイポがエラーにならないんだけど検出する方法ない?
これエラーにしてもらわないとつらすぎる

340:名無しさん@お腹いっぱい。
18/08/06 04:24:03.14 +DjLc0mw0.net
入力支援の利くエディタを使うしかないんじゃないかな…。
実行時に未定義のメソッドを呼んだときエラーを出すなら
class ErrorUndefineMethod
{
__Call(name)
{
throw Exception("This method is not defined." (name != "" ? " : " name : ": "), -1)
}
}
こんな感じの基底クラスを継承するなりすればいいけど、たぶん言ってるのはコーディング時の話だよね

341:名無しさん@お腹いっぱい。
18/08/08 16:55:10.42 Wo1vgWVl00808.net
google chromeでは、A_caretYでキャレット位置が取れないのですが、他になにか方法はないでしょうか?
ctrl-wにてタブ閉じは生かしつつ、入力シーンでは前単語削除に割り当てたいのですが…

342:名無しさん@お腹いっぱい。
18/08/08 18:35:25.42 byzIEboea0808.net
>>329
確実じゃ無いかもだけどIME.ahkの関数で取れる値が入力可能かどうかで変わると思う

343:名無しさん@お腹いっぱい。
18/08/08 20:06:38.93 Wo1vgWVl00808.net
>>330
ありがとうございます!
#if winactive(“ahk_exe chrome.exe”) && ime_getconvmode()
^w::send ^{bs}
return
上記、IME_GetConvMode()関数で分岐できました!
助かりました~

344:名無しさん@お腹いっぱい。
18/08/18 02:35:10.55 flWGLe7T0.net
r::send 7
このrを右クリックにしたいのですが何を入力すればいいのでしょうか
よろしく

345:名無しさん@お腹いっぱい。
18/08/18 03:23:00.41 aJSMzMBT0.net
>>332
wikiのキーリスト見なさい
マウスも書いてある

346:名無しさん@お腹いっぱい。
18/08/22 11:48:18.04 xeghXmwt0.net
ウインドウがAとBの2つあるとします。
Aをマウスでクリックしてアクティブにして
ControlClick, x100 y100
とすると、ウインドウAの100、100の位置をちゃんとクリックします。
ところが、ウインドウBをマウスでクリックしてからスクリプトで、
WinActivate, ウインドウのA
ControlClick, x100 y100
return
とすると、なぜかウインドウAの100、100の位置をクリックされません。また、リターンで戻るとウインドウBが
アクティブになっています。
WinActivate, ウインドウのA
MouseClick, left, 100, 100
とすればちゃんとクリックされます。また、ウインドウBがアクティブの状態で、
WinActivate, ウインドウのA
Sleep, 5000
ControlClick, x100 y100
return
とやってスリープ中にマウスでウインドウAを手動でアクティブにしてやってもダメです。なぜでしょうか。

347:名無しさん@お腹いっぱい。
18/08/22 12:00:43.76 xeghXmwt0.net
ちなみに、x100 y100のところにあるのはボタンなのですがそのボタンのClassNNを使って、
ControlClick, x100 y100
の代わりに
ControlClick, classNNの名前
でやってもダメでした。 ウインドウAを最初にアクティブにしてからなら問題ありません。

348:名無しさん@お腹いっぱい。
18/08/22 12:06:53.85 Tq1tthei0.net
試してないけど
WinActivateしただけじゃLast Found Windowが記録されないからじゃね
ControlClickは指定されたウィンドウをクリックするコマンド
必ずアクティブウィンドウをクリックするMouseClickとは違う
WinActivate, ウインドウのA
WinWaitActive, ウインドウのA ; ←ここでLast Found Windowを書き換える
ControlClick, x100 y100
もしくは
ControlClick, x100 y100, ウインドウのA ; ← 省略しないでウィンドウを指定する

349:名無しさん@お腹いっぱい。
18/08/22 12:23:41.78 xeghXmwt0.net
WinWaitActiveを入れて出来ました。
WinWaitActive�


350:ヘ一瞬で終わりました。 Sleep, 5000を入れてその間に手動でウインドウAをクリックしても出来なかったのがよくわかりませんが とりあえず、これで行くことにします。



351:名無しさん@お腹いっぱい。
18/08/22 12:25:05.21 xeghXmwt0.net
ああ、WinWaitActiveをしないと、WinActivateだけだと、どんなに時間がたっても
Last Found Windowは変わらないということですか

352:名無しさん@お腹いっぱい。
18/08/23 01:17:55.45 E69zRD1X0.net
youtubeのプレイヤー画面の座標を取得する方法はあるでしょうか?
最近youtubeの仕様が変わって再生する元動画のアスペクト比によってプレイヤー画面のの大きさも変化してしまい
プレイヤー内の設定ボタンなどの座標が動画ごとにずれてしまいます

353:名無しさん@お腹いっぱい。
18/08/23 09:54:48.67 jFzHledS0.net
Acc.ahkで座標は取得可能
もしかしたらDoDefaultAction使えるかもしれないけど確かめてない

354:名無しさん@お腹いっぱい。
18/08/23 11:02:03.29 E69zRD1X0.net
>>340
プレイヤーの高さ h によって挙動を変えたいので
if(h > 500){ }
のように書きたいのですがその h をどうやって取得すれば良いのでしょうか?
Acc.ahk を眺めると
Acc_Location(Acc, ChildId=0, byref Position="") { ; adapted from Sean's code
try Acc.accLocation(ComObj(0x4003,&x:=0), ComObj(0x4003,&y:=0), ComObj(0x4003,&w:=0), ComObj(0x4003,&h:=0), ChildId)
catch
return
Position := "x" NumGet(x,0,"int") " y" NumGet(y,0,"int") " w" NumGet(w,0,"int") " h" NumGet(h,0,"int")
return {x:NumGet(x,0,"int"), y:NumGet(y,0,"int"), w:NumGet(w,0,"int"), h:NumGet(h,0,"int")}
}
なんかそれらしいのが書いてあるのですがどう使えば良いか全く分からないです、、
当方 java で hello world したことあるぐらいの知識しかないです

355:名無しさん@お腹いっぱい。
18/08/23 12:33:47.88 jFzHledS0.net
使っているブラウザ次第で取得できないのを忘れていた
できるかどうかAccInfoViewer_kai.ahkで確認してください

356:名無しさん@お腹いっぱい。
18/08/23 12:44:31.29 E69zRD1X0.net
>>342
サンプルを参考にfirefoxだと
#include Acc.ahk
^b::
h := % Acc_GetLocation()["h"]
MsgBox,%h%
return
Acc_GetLocation(x="",y=""){
Acc := Acc_ObjectFromPoint(ChildId,x,y)
return Acc_Location(Acc,ChildId,Location)
}
のように書いたら動きました
ありがとうございました

357:名無しさん@お腹いっぱい。
18/08/24 05:53:49.88 8BBrzI5s0.net
1.1.30.00 - August 22, 2018
Fixed SendInput/SendPlay to restore DownR/remapped modifiers.
Increased limit of hotkeys per script from 1000 to 32762.
Changed commands which accept On/Off/Toggle to also accept 1/0/-1 (where documented).
Improvements to debugger (DBGp) support:
Added support for the -d (stack depth) option.
Added (DBGp-only) .<base> pseudo-property to resolve ambiguity.
Fixed debugger to avoid unsupported re-entry during break state.
Fixed DBGp command parser to support quoted parameters.

358:名無しさん@お腹いっぱい。
18/08/24 11:51:29.97 PobDvvRka.net
質問させて頂きたい事があります
ゲーム等のバックグラウンドでは動作が止まる、もしくは動作はする物のControlSendを受け付けなくなるウィンドウにおいて
タイトルバーで左クリック押下⇒winキー⇒左クリックを離すという操作を行うと
アプリ側にアクティブであると誤認させられるのかバックグラウンドで動作し、ControlSendで操作可能になります
この疑似アクティブ状態をAutoHotkeyで再現しようとすると上記のクリックやwinキーの操作を


359:実際に行わせるしかないでしょうか それとも直接的に上記状態にするような方法があるでしょうか なお、win7で確認しており、win10等でもできるかは不明です



360:名無しさん@お腹いっぱい。
18/08/24 12:03:59.39 PobDvvRka.net
自己解決しました
PostMessage, 0x06 , 2, , , ウィンドウ指定
といった形でWM_ACTIVATEをWA_CLICKACTIVEで送るとバックグラウンド動作できました

361:名無しさん@お腹いっぱい。
18/08/25 15:41:21.65 3RTHsCRA0.net
ド素人ですみません。
新しくインストールしたら使用できなくなりました。
今まで使用できたものが出来たくなっているみたいなのですが
どの様に直したらいいでしょうか?
貰いものなので中身は、分かっておりません。
宜しくお願い致します。
vkF2sc070::Send {-} ; [ひらカタ]縮小
AppsKey::Send {+} ; [menu]拡大
#############################
^AppsKey::
WinGet, active_id, ID, A
ChangeTF(active_id,33025) ;Period +
return
^vkF2sc070::
WinGet, active_id, ID, A
ChangeTF(active_id,33026) ;Period -
return

362:名無しさん@お腹いっぱい。
18/08/25 16:15:36.23 vYU0ROV20.net
>>347
vkF2sc070をsc070に書き換え

363:名無しさん@お腹いっぱい。
18/08/25 16:35:58.51 3RTHsCRA0.net
>>348
ありがとうございます。起動しました(^▽^)/

364:名無しさん@お腹いっぱい。
18/08/25 20:16:30.95 Z3REYl2m0.net
質問です。
やりたいこと
aの長押し(0.5秒以上)でctrl+c
作ってみたものの、コピーできたりできなかったり、
ctrl+aが出力されたり、
0.5秒以上推し続けているのにaが出力されたりします。
どうかご教授ください。
$a::
KeyWait, a, T0.5
if ErrorLevel
send,^c
else
send,a
keywait,a
return

365:名無しさん@お腹いっぱい。
18/08/25 21:22:09.82 vYU0ROV20.net
>>350
そのまま試したけどウチでは問題無く動くなぁ
見た感じも特に間違ってないと思うし
ただaが本来はキー押した時入力だけどkeywaitで離した時入力になるから
文章入力時に常駐させるのは厳しいw

366:名無しさん@お腹いっぱい。
18/08/25 21:53:27.97 Z3REYl2m0.net
>>351
返信ありがとうございます。
文章入力でaが出力されないことが結構あるので、
おっしゃる通り文章入力時にはダメですねー
ホームポジションから全く手を動かさずにコピペできたら
便利だと思ってやってみたんですけど、うまくいかないですね。

367:名無しさん@お腹いっぱい。
18/08/25 22:00:53.23 3wPFX9ho0.net
多分、長押しは待つのにイライラすると思うよ。

368:名無しさん@お腹いっぱい。
18/08/25 22:20:29.56 A9Th9uWK0.net
ロダにあるOSMを使うのがいいんじゃない?

369:名無しさん@お腹いっぱい。
18/08/25 23:23:34.42 Z3REYl2m0.net
>>353
待ち時間を0.3秒とか0.5秒位に設定して、
慣れればなかなかの使い心地になると妄想してました。
>>354
すみません
素人なもので、ちょっとどれかよくわからなかったです<(_ _)>

370:名無しさん@お腹いっぱい。
18/08/25 23:41:11.52 Zxet+5iL0.net
>>355
文字入力するときって無意識だけど一つのキーを押してそのキーから指を離す前に次のキーを押したりしてるから
Aだけキーを離した時に入力なんてしたら絶対に慣れるの不可能だと思うよ

371:名無しさん@お腹いっぱい。
18/08/26 00:12:59.70 BT4gFih30.net
>>356
そうですね
冷静に考えればそうですね
実をいうとホームポジションでコピペをしたいというよりは
無変換+○○、変換+○○に代わる手段を探してるんです。
無変換+○○、変換+○○は使いやすところは
大体割り当ててしまったので。
長押しとか二連打とかやってみたけど、
あまりうまくいかないです。

372:名無しさん@お腹いっぱい。
18/08/26 06:01:45.27 fZksv/ak0.net
質問です。
MS-IMEとGoogle IMEを切り替える[Ctrl]+[Shift]と、


373: 多言語設定を切り替える[Alt]+[Shift]を無効化して [Win]+[Space]に一本化したいのですが、 ^+::Return !+::Return ではうまくいきません。どのようにしたらいいのでしょうか?



374:名無しさん@お腹いっぱい。
18/08/26 06:48:07.65 Th03tA680.net
+^!は修飾キーとして使う場合のみ
修飾キーのみに設定する場合は shift ctrl alt にしないといけない
左右個別に設定する場合は頭にL or Rをつける、shift なら lshift または rshift
^shift::
!shift::
+ctrl::
+alt::msgbox, test
というかWindowsの言語設定でキー割り当てを「なし」にしたらだめなん?
そのほうが確実だよ

375:名無しさん@お腹いっぱい。
18/08/27 00:11:17.60 j51vjZYo0.net
>>359
ありがとうございます。
設定の方ですが、Google IMEはプロパティの「その他」で
[Ctrl] + [Shift]の無効化をみつけましたが、
MS-IMEの[Alt] + [Shift]を無効化する設定の場所がわかりません。
どこでしょう?
Windows7の頃は自分でショートカットキーを多少選べましたが、
Windows8以降はそういうのが無くなってしまい、
あきらめていました。
今はWindows10です。

376:名無しさん@お腹いっぱい。
18/08/27 05:09:22.24 qoV6L4Op0.net
スタート → 歯車アイコン(設定) → 時刻と言語 → 地域と言語
 → キーボードの詳細設定 → 言語バーのオプション
で「テキストサービスと入力言語」のウィンドウが開くので
「キーの詳細設定」タブを選択

377:名無しさん@お腹いっぱい。
18/08/27 06:00:44.94 j51vjZYo0.net
>>361
うわ~。こんなところにあったのか。ありがとうございます!!

378:名無しさん@お腹いっぱい。
18/08/29 12:27:49.35 XA7hyTCr0NIKU.net
みなさんAHKは管理者権限で起動している?
標準ユーザーで使ったら、管理者権限ウィンドウがアクティブになってるとホットキーが動かなかった

379:名無しさん@お腹いっぱい。
18/08/29 13:58:59.59 DhwLeReA0NIKU.net
常駐スクリプトは管理者権限で起動してる

380:名無しさん@お腹いっぱい。
18/08/29 14:46:26.91 HiQLd3YZ0NIKU.net
win8までは管理者だったけどwin10は標準で使ってる
win10は標準←→管理者間でのD&Dが効かなくなったり
管理者完全上位じゃなくなってるのでかえってめんどい

381:名無しさん@お腹いっぱい。
18/08/29 18:17:12.05 XA7hyTCr0NIKU.net
>>364-365
参考になりました
そう、標準←→管理者間でやりとりができなくなって混乱しました
管理者アプリでも動かしたければ素直にAHKも管理者権限で使うしかないんですね

382:名無しさん@お腹いっぱい。
18/09/02 12:28:08.49 65ZZk5O+0.net
キー::
click
return
ブラウザ、5chビュアはクリックができるのですがFXや株のインストールをして使うツールは
クリックができるものとできないものがありました。
これは何が原因だと考えられるのでしょうか?

383:名無しさん@お腹いっぱい。
18/09/02 14:03:06.99 nZZGk0pR0.net
>>367
管理者権限

384:名無しさん@お腹いっぱい。
18/09/02 20:22:05.84 65ZZk5O+0.net
>>368
管理者は自分になってるんですよね。
検索をしてみても答えが見つからないので困っています。

385:名無しさん@お腹いっぱい。
18/09/02 20:27:04.05 9vYX/DMY0.net
自分になってるっていうのはログインしているアカウントのことだろうけど
管理者権限はAutoHotKeyのスクリプトの話
普通の起動ではなくちゃんと管理者権限で動かしていますかってこと

386:名無しさん@お腹いっぱい。
18/09/02 21:40:12.12 wIEhSDDaM.net
株やFXは知らんけどゲームなんかだとマクロ系ツール対策してるソフトもあるで

387:名無しさん@お腹いっぱい。
18/09/03 00:18:46.94 aJN4MKIL0.net
>>367
キーやクリックを押す時間が短すぎると反応しない場合がある
SetKeyDelayのPressDurationを長めに設定して、Send, {Click}ならできるかも

388:名無しさん@お腹いっぱい。
18/09/04 04:16:10.63 g5h2GCQp0.net
SetKeyDelayのPressDurationってSend, {Click}ならマウスにも効くんだ?

389:名無しさん@お腹いっぱい。
18/09/05 19:34:21.37 TPq6AWrzH.net
controlsend で非アクティブウィンドウにキー送信し�


390:スいのですが、そのアプリの仕様上アクティブ化しないとキーを受け付けないみたいなので一瞬だけアクティブ化してキー送信を試みたのですが当然画面がちらついてしまいます それを回避するために、バックグラウンドでこれを実行するようなことできませんか?何かほかの手立て等もありましたらアドバイスください よろしくお願いします



391:名無しさん@お腹いっぱい。
18/09/06 21:42:11.58 bqZN8RaO0.net
Win10からかな? Ctrl+Alt+Tabでタスク切り替え画面が表示されるようになり
Excelのインデント機能が使えなくなった。
このキーアサインをWindowsじゃなくてExcelだけに渡す方法ってありますかね?
(もしくは前者を無効にする方法でもいいけど)
詳しい方よろしくお願いします。

392:名無しさん@お腹いっぱい。
18/09/06 21:52:26.32 ehmDNxzA0.net
>>375
EXCELの使い方の問題でAHK関係無いので完全にスレチ

393:名無しさん@お腹いっぱい。
18/09/06 22:17:54.18 bqZN8RaO0.net
>>376
AHKでもどうにもできないんだ。ふ~ん。
回答ありがとう。

394:名無しさん@お腹いっぱい。
18/09/06 22:40:25.04 dWFCDbiN0.net
あきらめてアクセラレータキー使え
URLリンク(tips.oreism.com)

395:名無しさん@お腹いっぱい。
18/09/06 22:44:24.39 bqZN8RaO0.net
試しにExcel起動時のみ、明示的に同じキーを送信するように書いてみたら
OSに取られる確率が減りました。
やってみるもんだね。
#IfWinActive ahk_class XLMAIN
 !^Tab::
  Send !^{Tab}
  return
 +!^Tab::
  Send +!^{Tab}
  return
#IfWinActive
慌てて操作すると取られることがある。もっといい方法ないかな?

396:名無しさん@お腹いっぱい。
18/09/06 22:48:53.53 bqZN8RaO0.net
>>378
それは最初にやってみた。元々Altコマンド派なので。
でもこの操作には合わないんだよね。落としたり上げたり連続で操作するので。
AHKで明示的に指定したらExcelに優先的に送られるようになりました。
でもWin7と同じ感覚でやると、時々取りこぼしてしまうみたい。

397:名無しさん@お腹いっぱい。
18/09/07 00:48:59.43 gH8vzFoz0.net
>>368
>>370
管理者権限が原因でした
ありがとうございます

398:名無しさん@お腹いっぱい。
18/09/07 00:51:57.73 9MzFgxMt0.net
>>375
URLリンク(www.sevenforums.com)
Win7の説明(英語)だけどWin10も同じ(Win10 Pro 64bit環境で確認済み)。
ファイル名を指定して実行(Win+R)に「Regedit」を貼り付けてEnter
レジストリエディタで下記キーを開く
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
右側(名前、種類、データ側)を右クリックして
新規 → DWORD(32ビット)値
名前を「AltTabSettings」にしてEnter
作成したAltTabSettingsをダブルクリックしてデータを1にする
Windowsを再起動
これでCtrl+Alt+Tabでタスク切換えが表示されなくなる。
但し、Alt+TabやShift+Alt+Tabでのタスク切換えが簡易表示(アイコン表示のみ)になる

399:名無しさん@お腹いっぱい。
18/09/07 03:20:53.84 ER2VoJ180.net
AutoHotkey_L v1.1.30.00でAccelerated Scrolling Script
URLリンク(autohotkey.com)
を参考にしてホイールの加速を作ってるんだけど
A_TimeSincePriorHotkeyが15~16msぐらいの精度しか出ないので
WheelDown/WheelUpの間隔が16ms、31ms、それ以上、の3段階くらいしか
実質ホイールの回転速度が区別できなくて
急加速したり思ったほど加速しなかったりでうまくいかない
もっとホイールの回転速度を精度高く区別する方法ない?

400:名無しさん@お腹いっぱい。
18/09/07 03:49:05.04 2guTp2kD0.net
>>382
情報ありがとうございます。
自分も阿久津さんのサイトでその情報に辿り着きました。
URLリンク(news.mynavi.jp)
ご指摘のエントリ追加でShell再起動したら懐かしのスイッチャーが、、
これでCtrl系のショートカットが落ちるんですね。
おかげで前OSと同様にサクサク動作するようになりました。
AHKの情報漁ってキーアサインの送信先アプリを限定するような
コードがないか捜しましたが、、ないみたいですね。
自分が試したスクリプトに Set, Enable,,(Win...) とか追加して
みましたが、高速操作で取りこぼすようでした。
一先ず問題回避できて良かったです。お騒がせしました。

401:名無しさん@お腹いっぱい。
18/09/08 15:09:39.61 HTbX78bG0.net
下記の目的を実現させようと書いたスクリプトが意図したとおりに動作しません。
無変換&BSの結果としてのBSに対して、1)が反応してしまっていると推測しますが、お助けください。
【目的】
  1) バックスペースを押す     → デリートとして認識させる
  2) 無変換&バックスペースを押す → バックスペースとして認識させる
【スクリプト】
  1) BS::Send,{Delete}
  2) vkEB & BS::Send,{BS} ;vkEBは私のPCでの無変換キーに対応するコード
【動作】
  1) バックスペースを押す     → デリート ;これはOK
  2) 無変換&バックスペースを押す → デリート ;ここをバックスペースとして認識させたい

402:名無しさん@お腹いっぱい。
18/09/08 15:24:46.05 yEblPpJT0.net
>>385
>vkEBは私のPCでの無変換キーに対応するコード
この部分に原因があるんだろうな
普通の日本語キーボード環境なら
BS::Send,{Delete}
vk1D & BS::Send,{BS}
で無変換&BS押せばちゃんとバックスペースとして動作する

403:名無しさん@お腹いっぱい。
18/09/10 22:58:19.55 aSONhD2l0.net
教えてください。
アクティブではないウインドウの中から、あるタイトルウインドウを探し、
そのようなウインドウがあったらそのウインドウをアクティブにしたい
と考えています。
どのように実現したら良いでしょうか?
よろしくお願いします。

404:名無しさん@お腹いっぱい。
18/09/10 23:04:41.89 D7YSHUJz0.net
>>387
WinActivate
使い方は自分でwiki見て勉強して

405:名無しさん@お腹いっぱい。
18/09/11 01:16:50.41 opTLw1oT0.net
>>388
wikiは見ているんだけど、アクティブでないウインドウの中からウインドウを探す方法が分からないのです。

406:名無しさん@お腹いっぱい。
18/09/11 01:28:10.85 yuiWPBQK0.net
>>389
IfWinExist
IfWinNotActive
ウィンドウを探すというよりタイトルを指定すりゃいいだけ
それで分からないならahk使うには厳しいから諦めた方が良い

407:名無しさん@お腹いっぱい。
18/09/11 06:43:59.14 opTLw1oT0.net
>>390
ahkは難しいね。できるということなので色々試してみたいと思います。

408:名無しさん@お腹いっぱい。
18/09/11 10:25:20.78 dJjlfJEo0.net
エディタに、SciTE4AutoHotkeyを使っています
gosub のあとのラベル名とかにカーソルを当ててF12を押すと、ラベルの場所へ飛ぶはずなのですが
飛ぶ場所がちょっとずれるという不具合があるようですが、これはどうにかなりませんか

409:名無しさん@お腹いっぱい。
18/09/11 16:59:18.96 yuiWPBQK0.net
>>389
そもそもアクティブにしたいウィンドウのタイトルが決まってるならそれを指定すりゃいいだけ
なのでウインドウを探す必要なんて無いんだけど?

410:名無しさん@お腹いっぱい。
18/09/11 17:09:13.47 QORl+FtnM.net
>>393
現在アクティブなウインドウのタイトルもアクティブにしたいウインドウと一緒なため、現在アクティブなウインドウを除外して検索したいのです。

411:名無しさん@お腹いっぱい。
18/09/11 17:14:42.91 WMEQYVqo0.net
>>394
そういうの後出しじゃ答える側には何も伝わらないから質問する時に先に書こうな
タイトルが同じならPIDなどで指定すりゃいい

412:名無しさん@お腹いっぱい。
18/09/11 19:19:39.78 QORl+FtnM.net
>>395
Win


413:GetとLoopを使って出来ました。



414:名無しさん@お腹いっぱい。
18/09/17 10:32:49.30 pVCkClPH0.net
こないだのWinUpdate以降、偶にMouseGestureLがずっとジェスチャー監視状態になって
タスクマネージャーで切らない限りマウスが他の操作を受け付けなくなる症状が出る
同じ症状の人or対策ってあるのかな

415:名無しさん@お腹いっぱい。
18/09/18 06:16:13.17 AXc2/XZs0.net
すみません質問なんですが
コンビネーションキーを使わず一時的にキーを入れ替えるということは可能でしょうか?
#IfWinActiveでというわけではなくひとつのソフト内で一時的に入れ替えを繰り返したいです
具体的にはコンビネーションキーを使わずアローキーとASDWを入れ替えたいです
ASDWはそれぞれ単推しが条件です
どのようなロジックにすればいいのかヒントをください

416:名無しさん@お腹いっぱい。
18/09/18 06:56:10.45 OjuHwNNl0.net
フラグで管理すればいい
f1::flag := !flag ; F1でフラグ変更
#if !flag
a::msgbox, 0
s::msgbox, 1
#if flag
a::msgbox, 10
s::msgbox, 11

417:名無しさん@お腹いっぱい。
18/09/18 07:07:04.43 AXc2/XZs0.net
>>399
ありがとうございます出来ました

418:名無しさん@お腹いっぱい。
18/09/19 10:16:39.44 3FfattUq0.net
ちょっとお伺いしたいんですけど、XYplorerなんかのアプリケーションで
WinSet, Style, -%WS_CAPTION%, ahk_id %hWnd%
でタイトルバー隠しつつウィンドウ最大化すると、
Altキー送るかごく一部のパーツ(アドレスバーの役割をするやつ)にマウスを乗っけるかするまで、
マウス操作に反応しなくなってしまうんですけど、何かスマートな復帰方法ってありますでしょうか?

419:名無しさん@お腹いっぱい。
18/09/19 12:28:31.23 hbmu9zXt0.net
無変換、変換キーとのコンビネーションが余りに良過ぎて絶頂快感レベルなんだが。

420:名無しさん@お腹いっぱい。
18/09/19 21:02:10.87 gnJBXJJ7M.net
>>402
わかる

421:名無しさん@お腹いっぱい。
18/09/20 01:47:33.71 z3KDZezp0.net
>>401
そのアプリでは確認してないがコレでどうかな?
擬似フルスクリーン関数 / Pseudo Full Screen Function
URLリンク(pastebin.com)

422:名無しさん@お腹いっぱい。
18/09/20 09:17:32.37 C98ZhkQO0.net
>>404
回答ありがとうございます
ですがどうやってタイトルバー隠して最大化するかという話ではなく、
ウィンドウ回りのメッセージいじくった副作用で、
マウスイベントが変になったウィンドウを正気に戻すにはどうすればという話ですので……
リンク先のコードもホットキーで最大化みたいな見た目にさせるものであって、
ウィンドウサイズを記憶するアプリケーションで嫌なことになるでしょうし、
HCBT_MINMAXイベントにフックして発火させてる自分のコードの参考にはなりませんでした

423:名無しさん@お腹いっぱい。
18/09/20 09:24:43.44 C98ZhkQO0.net
正直、他の大抵のアプリケーションでは何の問題もありませんし、
ControlSend, , {Alt}{Alt}, ahk_id %hWnd%でもだいたい治るのですが、
ほんの一部だけ変なままのコントロールがあったりしますし、
何かパッと全て解決する冴えた命令とかないのかなと思ってお伺いしたかったのです

424:名無しさん@お腹いっぱい。
18/09/20 10:12:39.47 z3KDZezp0.net
>>405
作者の意図しないスタイル変更で不具合起きても
再起動以外の万能な解決方法なんて「存在しない」と思うので
最大化すると狂うならしなければいいんじゃね?って答えです

425:名無しさん@お腹いっぱい。
18/09/20 19:54:17.92 U81pDOFs0.net
任意のアプリをつかっているときに、押したキーボードをファイルへ保存するために下記のようなものを作ろうと思っています。
a::
send, a
F


426:ileAppend a, filename return b:: send, b FileAppend b, filename return c:: send, c FileAppend c, filename return 試しに少し作ってやってみたらうまく行きました。 でもこれをa-zまで、また、1-9,0まですべてのキーに対して作ろうと思うと、ちょっとげっそりします なにかいい方法はありませんか



427:名無しさん@お腹いっぱい。
18/09/20 20:24:53.66 A/yRjkVr0.net
>>408
その方法のまま、ちょっと簡単にするなら、
~a::
~b::
~c::
k:=RegExReplace(A_ThisHotkey,"~","")
FileAppend %k%, keylog.txt
return

428:名無しさん@お腹いっぱい。
18/09/20 20:51:41.61 U81pDOFs0.net
>>409
なるほど。A_ThisHotkeyってのがミソですね
ちなみに、頭についているチルドはなんですか。ついてるのとついてないのではどういう違いがありますか

429:名無しさん@お腹いっぱい。
18/09/20 21:26:41.46 A/yRjkVr0.net
>>410
キーの動作はそのままに、ついでに実行する感じ。
だから、本来の動作をさせるために書いていたsendが不要になります。

430:名無しさん@お腹いっぱい。
18/09/20 22:07:05.65 U81pDOFs0.net
なるほど、ありがとうございました。 sendがいらないのですね

431:名無しさん@お腹いっぱい。
18/09/21 19:26:27.97 JRAgMbwQ0.net
includeで関数をまとめたahkを相対パスで読み込むスクリプトがあります
このスクリプトを普通にダブルクリックで起動した時は問題ないんですが
別のスクリプトでrunコマンドで起動するとincludeできないエラーがでます
なぜでしょうか

432:名無しさん@お腹いっぱい。
18/09/21 19:34:26.42 SEg6ZgdL0.net
カレントが includeで関数をまとめたahk のパスになってないから

433:名無しさん@お腹いっぱい。
18/09/22 01:31:57.12 107FtndLr.net
Array := ["平成","昭和","大正","明治","慶應","…"]
この配列の要素数を取得するにはどのようにすればいいのでしょうか?

434:名無しさん@お腹いっぱい。
18/09/22 02:08:16.24 F6Zy33Bn0.net
length()

435:名無しさん@お腹いっぱい。
18/09/23 10:43:20.32 FekjhB1ra.net
StringGetPosで文字の場所を特定したあと、そこへ即座にキャレットを移動するにはどうすればよいでしょうか?
行中で最初に見つかる特定の文字(ここでは「様」)を消す、というスクリプトを作ったのですが
{Right}をル-プしているせいか、offsetの値が大きめのときにガタガタと動作が遅くなってしまいます。
(等幅フォントなら、文字の横幅を計算するという力技も使えそうですが……)
^Right::
{
x := A_CaretX
y := A_CaretY
Send, +{End}
Send, ^c
MouseMove, x, y, 0
MouseClick, Left
content := Clipboard
StringGetPos, offset, content, 様
If offset = -1
{
Send, {End}{Right}
Return
}
Else
{
Loop, %offset%
{
Send, {Right}
}
Send, {Delete}
Return
}
}

436:417
18/09/23 10:48:16.10 FekjhB1ra.net
一応補足ですが>>417はStringReplaceで一括処理していい場面ではなく、
ひとつひとつ視認しながら作業したいとき用に作ったものです。

437:417
18/09/23 11:58:20.92 FekjhB1ra.net
>>417をいろいろ試してみましたが、文字サイズが小さいときはキャレットの位置がずれて変な挙動をしてしまいますね…

438:417
18/09/23 12:19:11.53 FekjhB1ra.net
度々すみません。
A_CaretX A_CaretY MouseMove の部分は、{Left}で事足りたようです。
しかし肝心の、{Right}をル-プしている部分の動作の遅さは改善できていません。
AppsKey::
{
Send, +{End}
Send, ^c
str := Clipboard
Send, {Left} ;何故かこれで選択文字列の先頭へキャレットが移動する
StringGetPos, offset, str,


439:、 If offset = -1 { Send, {End}{Right} Return } Else { Loop, %offset% { Send, {Right} } Send, {Delete} Return } }



440:417
18/09/23 12:28:15.56 FekjhB1ra.net
あ…ループせずとも、これでよかったですね。
いずれにせよ処理速度はやはり遅いままですが…
AppsKey::
{
Send, +{End}
Send, ^c
str := Clipboard
Send, {Left}
StringGetPos, offset, str, 様
If offset = -1
{
Send, {End}{Right}
Return
}
Else
{
Send, {Right %offset%}
Send, {Delete}
Return
}
}

441:名無しさん@お腹いっぱい。
18/09/23 13:48:06.18 ZOALMWKL0.net
特定のプログラムが起動 (アクティブや最前面) されたら、特定のプログラムが自動で起動出来るスクリプトは、可能でしょうか?

442:名無しさん@お腹いっぱい。
18/09/23 16:24:42.95 VYcnd+gw0.net
可能

443:名無しさん@お腹いっぱい。
18/09/23 18:03:43.65 ZOALMWKL0.net
#IfWinActive アクティブウィンドウ指定
RUN 起動したいプログラム
#IfWinActive
だけでは、出来ませんでした。
どなかた教えて頂けますでしょうか?

444:名無しさん@お腹いっぱい。
18/09/23 21:17:47.22 BliL24p00.net
Windowsのイベントを拾う - hoge
URLリンク(sites.google.com)

445:名無しさん@お腹いっぱい。
18/09/23 21:36:47.03 31DDKA4n0.net
>>417
; --- TEST ---
; カリン様の仙豆様様です
; カリン様の仙豆様様です
; ------------
SendMode Input
F1::SearchAndDestroy("様")
Esc::ExitApp
SearchAndDestroy(SearchText) {
BlockInput On
ClipSave := ClipboardAll
Clipboard =
Send {Home}+{End}^c
ClipWait 1
ClipStr := Clipboard
if (RegExMatch(ClipStr, "(.*?)" SearchText "(.*)", Str)) {
Clipboard := Str2
Send ^v{Home}
Sleep 100
Clipboard := Str1
Send ^v
Sleep 100
} else
Send {Down}{Home}
Clipboard := ClipSave
BlockInput Off
}

446:名無しさん@お腹いっぱい。
18/09/24 05:20:00.81 BRuHDRmp0.net
>>424
#if~(頭に#付き)はホットキー用
settimerを使って1~2秒毎に ifwinactive で監視すればいい
#Persistent
settimer, hoge, 1000
return
hoge:
ifwinactive ウィンドウタイトル
{
run 実行するプログラム
settimer, hoge, off
settimer, hage, 1000
}
return
hage:
ifwinnotactive ウィンドウタイトル
{
settimer, hage, off
settimer, hoge, on
}
return

447:名無しさん@お腹いっぱい。
18/09/24 11:54:00.95 ZlvdI27na.net
>>426
おぉっ、ありがとうございます!
実際には消さずに1つ飛ばして次へ行きたい場合もあるので、そういう機能も追加してみようと思います

448:名無しさん@お腹いっぱい。
18/09/24 15:34:23.11 9OJkCbcr0.net
>>427
ありがとうございました。

449:名無しさん@お腹いっぱい。
18/09/25 08:04:19.41 3R3+W8UO0.net
1.1.24から1.1.30へアプデしたら
ALTキーの空押しトリガーでアクセラレーターキー発動しまくりメニューが反応してしまう
大抵大丈夫なソフトが多かったがそれらのバージョンによっても反応しちゃったりしなかったり
酷いのはメニューがいきなりプルダウンする乱暴な奴とかいたり
トリガー変えたりなんだりいろいろやって納得行かず調べた結果どうやら1.1.27以降で仕様が変わったみたい
で対策(反応するっちゃするけど速攻で無効化)
#MenuMaskKey vk07
*~○○○::(LAlt、RAltを抜いた全部のキー)いっぱいなので割愛
*~LAlt::Send {Blind}{vk07}
*~RAlt::Send {Blind}{vk07}
プログラムによっちゃ無効化出来る設定あるけどOSレベルで無効にできんのかなぁ

450:名無しさん@お腹いっぱい。
18/09/26 14:20:01.12 7m8X8t6VM.net
Hayateがまともに動作しなくなったんでイラっとして1.1.26.01まで戻した

451:名無しさん@お腹いっぱい。
18/10/01 14:29:01.32 iwdKiYmDM.net
英語キーボードを使っていて、リモート接続のクライアントのIMEを右altで切り替えようとしているのですがうまくいきません
Send, SendInputいずれの場合も右alt1回目は普通にaltを押したようにメニューバーがアクティブになり
2回目かescapeでメニューバーをキャンセルするとimeが切り替わるようになります
ログ�


452:ゥると、どうやらRAltを押した瞬間に Send, {Blind}{vkF3 Up} とあり、 離したときに Send, {Blind}{vkF3 DownTemp} Send, {Blind}{vkF3 Up} とup, down, upの順に実行されていることが原因ではないかと思ったのですが down, upと動作させるにはどうしたらいいでしょうか? バージョンは1.1.24と1.1.30で試しましたが、u,d,uで実行されているのは変わりません



453:名無しさん@お腹いっぱい。
18/10/01 20:49:46.86 4Q2Wzr5t0.net
>>432
vkF3(半角/全角)で行う必要性が全く意味がわからないんだが
getIMEMode := IME_Get()
if (%getIMEMode% = 0)
{
IME_SET(1)
IME_SetConvMode(25)
}
else
{
IME_SET(0)
}
return

454:名無しさん@お腹いっぱい。
18/10/01 21:14:55.69 4Q2Wzr5t0.net
ちなみ俺のを貼っておく
URLリンク(dotup.org)

455:名無しさん@お腹いっぱい。
18/10/02 03:32:02.56 XIOIGa0E0.net
pngで貼るとか頭おかしいんちゃうか

456:名無しさん@お腹いっぱい。
18/10/02 03:54:49.60 yi1VJCDs0.net
参考程度に見れば十分やろ
関数は配布されてる単純なロジックやし使い方だって検索したらいくらでも説明あるでしょ
あとはリファレンス読めばわかるレベル
433で答えまで書いてやってんだから理解出来ないなら諦めたらえぇ

457:名無しさん@お腹いっぱい。
18/10/02 09:57:59.75 AEJZr7gaM.net
>>433
上部メニューのアクティブを抑制する行の追加リモート接続でも動きました
ありがとうございます
ちなみにIME_SETでは動かず、Send vkF3なら動作しました
キーボードの違いだと思いますが、何にせよ解決したので良かったです

458:名無しさん@お腹いっぱい。
18/10/02 10:12:56.41 z227XsnEa.net
Twitterで長文メモのスクショ貼る人みたい

459:名無しさん@お腹いっぱい。
18/10/05 13:08:49.72 SCAEAGvB0.net
たとえばFirefoxなのですが、縦スクロールバーがでている状態で、上下矢印キーを押すと上下にスクロール
するのですが、スクロールの幅が大きいのです。
スクロールバーの上下についている四角の箱をクリックしてもちょっと大きく動きます
これをAHK使って、あるいは他の方法でもいいのですが、1ピクセルづつスクロールさせたいのですが
出来ますか。

460:名無しさん@お腹いっぱい。
18/10/05 14:06:54.87 CEpw7DNT0.net
Firefoxのことは
Firefoxを調べた方が早いんじゃないの?

461:名無しさん@お腹いっぱい。
18/10/05 14:56:25.59 SCAEAGvB0.net
AHKならスクロールバーの制御も一般的に出来るのかなと思ったのですが

462:名無しさん@お腹いっぱい。
18/10/05 14:58:02.50 SCAEAGvB0.net
AHKでスクロールバーの制御をしようと思ったら、バーのマウスを持ってきてDown状態にして
カーソルを動かす、みたいなことしか方法はないのかな

463:名無しさん@お腹いっぱい。
18/10/05 15:32:42.44 Ff+7G5Zn0.net
1ピクセルずつとか文字列1行分スクロールするのに何回押さなきゃならないんだ
ってくらい使いにくくなるんだが

464:名無しさん@お腹いっぱい。
18/10/05 16:42:10.30 fes53dD+0.net
sexeやタスクスケジューラを使ってログオン前にLiveCapture3などのソフトを常駐させると、タスクトレイにアイコンが表示されないままになりますが、
AutoHotKeyを使って無理やりタスクトレイにアイコンを追加したり、該当ソフトのタスクトレイアイコン右クリック時に出るメニューと同じものを表示することは可能でしょうか?
SendMessage, 0x0205, , , , ahk_exe lc3.exe だと見つからず反応しませんでした
あと何故かtvrock.exeの場合トレイにアイコンがあっても反応しませんでした…

465:名無しさん@お腹いっぱい。
18/10/05 17:28:36.73 0eixHvUx0.net
sendmessageでスクロールメッセージ投げてやりゃスクロールはできるし
ホイールメッセージならマウスのプロパティで設定しとけば一行ずつにはなる
が、1ピクセルずつは無理じゃね
"スクロールバーを掴んで引っ張る"をエミュレーションできればあるいは

466:名無しさん@お腹いっぱい。
18/10/10 18:46:51.09 bXLwrapy01010.net
すみません、二つの変数を比較して同一の数値の場合に処理を実行したいのですが、これだと間違っていますか?
If HensuuA = %HensuuB%
{
処理
}

467:名無しさん@お腹いっぱい。
18/10/10 23:38:10.06 +qwU9+TE0.net
■変数と値の比較
if var = value
if (var = "文字列")
if (var = 数値)
■変数通しの比較
if var = %var%
if (var = var)
■代入演算子
var := var
var := "文字列"
var := 数値

468:名無しさん@お腹いっぱい。
18/10/11 03:55:06.71 AK0vvxQ+0.net
テストしてみればいいやん
HensuuA=1
HensuuB=1
If HensuuA = %HensuuB%
msgbox,1
else
msgbox,2
If (HensuuA=HensuuB)
msgbox,3
else
msgbox,4

469:名無しさん@お腹いっぱい。
18/10/11 08:32:11.30 nmZ2gWSh0.net
括弧なしifは旧仕様
分かりにくいし紛らわしいからなるべく使わない方向で

470:名無しさん@お腹いっぱい。
18/10/11 12:30:24.80 +ZOAvUFq0.net
>>447, >>448, >>449
出来ました、有難うございます。

471:名無しさん@お腹いっぱい。
18/10/13 20:22:56.92 R8f6qIw8a.net
質問です。
現在フォーカスしているテキストエリアが空っぽかどうかを確かめたいのですが、
^a^cなどクリップボードを経由する以外に簡単な方法ってありますか?

472:名無しさん@お腹いっぱい。
18/10/13 23:12:56.95 PPQQn2Ql0.net
ControlをGetしてTextを取得すれば良いと思うのだ、そうなのだ

473:名無しさん@お腹いっぱい。
18/10/17 17:16:37.12 D79vkLFj0.net
Windowsのレジストリで、環境によって変化するサブキーがありますが、これを取得する方法ってないでしょうか。
具体的には
\HKEY_CURRENT_USER\Control Panel\Desktop\PerMonitorSettings\の下のモニター識別子なんですが…

474:名無しさん@お腹いっぱい。
18/10/17 17:40:59.26 hablK01d0.net
>>453
URLリンク(ahkwiki.net)

475:名無しさん@お腹いっぱい。
18/10/17 18:17:16.63 D79vkLFj0.net
>>454
おお、ホントだ、ありがとうございます。
何かややこしく考え過ぎてました

476:名無しさん@お腹いっぱい。
18/10/19 10:15:05.21 pLy6hzb20.net
v1.1.30.00
Hotkey, If [, Expression]
Hotkey, If, (1)
エラーが出るけど、もしかして使えない?

477:名無しさん@お腹いっぱい。
18/10/19 11:09:45.16 gpPJ+axP0.net
エラー嫁

478:名無しさん@お腹いっぱい。
18/10/19 12:10:05.55 pefhSxfW0.net
アプデで動かなくなったならchangelogを確認
うちは 1.1.24.01の仕様変更で動かなくなった

479:名無しさん@お腹いっぱい。
18/10/19 14:15:23.77 EstbMLBD0.net
Win7
AutoHotkey_v1.1.30.00
MPC-HC v1.7.13
MPC再生リストのウィンドウサイズ変更をしたい 

Playr本体は、WinMoveでウィンドウサイズ変更可能 
WinMove , ahk_class MediaPlayerClassicW , 編集リスト , 150 , 322 , 680 , 400 , , ; ; X Y wid hei 除外tt
再生リストには、位置移動は効くが、ウィンドウサイズ変更が効かない
WinMove , 再生リスト , 再生リスト , 20 , 0 , 1300 , 315 , , , ; ; X Y wid hei 除外tt

WinSet , Region ,
ウィンドウを切り取った様に非表示にするが、ウィンドウ端を摘みサイズ変更で、消えてた領域も再表示 微妙
ControlMove , SysListView321 , 20 , 50 , 1009 , 615 , 再生リスト , 再生リスト , ,
ウィンドウサイズ変わらず、内部だけ変わる skrバーも消える 微妙

スマートにWサイズを変更出来ないから、もうMouseMoveして実際に掴んでWサイズを変えるか、別のソフトに頼るしかない 
MouseMoveせず、何とかAHKだけで出来ないだろうか? 
知恵をお借りしたい 

480:名無しさん@お腹いっぱい。
18/10/19 19:35:17.44 IXe0O+ly0.net
obj := {key: "a"}
Send, {%obj.key% Down} ;<- error
今は key := obj.key として %key% で2行目を通してるけど、



481:一時変数を使わず obj.key を使用する方法はありますか?



482:名無しさん@お腹いっぱい。
18/10/19 21:05:34.76 9raoExfA0.net
>>460
コマンドの各引数の先頭に「% 」で式になる
hoge, % 式, 文字列, % 式
F1::
obj := {key1: "a", key2: "b"}
obj.key3 := "c"
obj["key4"] := "d"
k = key
Send, % "{" obj.key1 "}{" obj["key2"] "}{" obj[k 3] "}{" obj[k "4"] "}"
return

483:名無しさん@お腹いっぱい。
18/10/20 01:01:00.88 9JrZydin0.net
>>461
ありがとう
おかげで理解が深まりました

484:名無しさん@お腹いっぱい。
18/10/20 03:18:16.02 HeWkqqCAa.net
今までに打ったpの回数を数えるスクリプトなのですが、動きません。
何がいけないのでしょうか?
kaisuu :=
$p::
kaisuu := %kaisuu% . "p"
Send, p
Return
k::
Loop, Parse, %kaisuu%
{
Send, %A_LoopField%
}
Return

485:名無しさん@お腹いっぱい。
18/10/20 08:48:26.84 e98hZzR20.net
これと kaisuu := %kaisuu% . "p"
これ Loop, Parse, %kaisuu%
上手くいかないときはlistlinesやlistvars見ればどこで躓いてるのかすぐわかる

486:名無しさん@お腹いっぱい。
18/10/20 19:12:56.61 HeWkqqCAa.net
>>464
単純に%を抜いたら動きました
ありがとうございます

487:名無しさん@お腹いっぱい。
18/10/20 19:54:03.54 f5Sc3ODKM.net
細かいことだが := で変数初期化するなら 値は "" にしたほうがいいよ
= だと右辺を空にするしか方法ないけど

488:名無しさん@お腹いっぱい。
18/10/20 20:02:07.60 ras6l8WJ0.net
それはなんで?

489:名無しさん@お腹いっぱい。
18/10/25 19:42:23.21 MT0G2iQx0.net
入力文字種をローマ字入力のひらがなに固定するスクリプトがいまのいままで間違ってた...orz
■正
if IME_GET()
{
 IMEMode := IME_GetConvMode()
 if (IMEMode <> 25)
 {
  if IMEMode in 0, 3, 8, 9, 11
   Send !{vkF2}
  IME_SetConvMode(25)
 }
}
■誤
if IME_GET()
{
 if (IME_GetConvMode() <> 25)
  IME_SetConvMode(25)
}
;かな入力時×

490:名無しさん@お腹いっぱい。
18/10/26 07:18:29.14 7VIDX2sma.net
キャレットを行末に移動したいのですが、{End}だとあくまで折り返し地点に行くだけで
改行コード(\rや\n)のあるところまで移動してくれません。
何かよい方法はありますか?

491:469
18/10/26 09:39:17.53 7VIDX2sma.net
{End}+{Left}^c{Right}からのRegExMatch()で改行があるかないかを調べ、
なかったら次の行を調べ…とすればいいのかなとも思いますが
最後尾にたどり着いても改行コードが見つからない場合は延々とループしそうなので
それを回避する手段が必要…?
{End}だけでなくこれの{Home}版も作りたいですが、考え方は同じ…?

492:名無しさん@お腹いっぱい。
18/10/26 18:44:43.09 HTEiSBrp0.net
もし、特定のソフト(テキストエディタ)で行末に移動させたいのであれば
行末に移動するショートカットキーが存在する場合があるのでヘルプを参照してみては

493:名無しさん@お腹いっぱい。
18/10/26 21:42:45.36 QyeYEwKz0.net
>>469-470
テキストエディタでの話と明言してなかったのでレスしなかったが>>471と同じこと思ってた(後出しだけど)
もしショートカットキーが無い場合でも検索機能で正規表現使えるなら「\n」を検索できるので、
それを備え付けのマクロ機能でマクロ化してショートカットキーに登録すれば一発で移動できると思うんだが…
有名何処のエディタならマクロ機能ぐらい装備してると思うけど「メモ帳」じゃ無理かも

494:469-470
18/10/27 11:24:09.50 7lsaB75Ra.net
>>471-472
あ、明言していませんでしたが主にGoogle Chromeですね…
調べてみたらChromeにはそのようはショートカットはありませんでした
(一応C


495:lrl + Endとかは動くものの、何を基準にした仕様なのかは分からず…) テキストエディタと違って[EOF]を検出できるかも怪しいので、 >>470 に書いたようにループを気にしていた次第です まず+^{End}^cで今いる地点から文末の間に改行コードがあるかどうかをRegExMatchで探し(なければ終了) もしあれば【最初に返ってきた位置地点までキャレットを瞬時に移動する】…方法があればいいですけど そういうのってないですよね…? (マウスクリックだとなんか安定しないし…) 仕方ないので一旦{Left}で選択を解除し、 +{End}^cで再度1行ずつ改行コードを探しつつ、 その行に改行コードがなければ次の行へ…とするのが最善…? ということで自己解決した…ような気がします



496:名無しさん@お腹いっぱい。
18/10/29 18:11:16.16 pGyDCuIr0NIKU.net
すいません教えて下さい。
USBテンキーの割当てについて、
今までi buffaloのテンキーを使用してnumlockオフ時のキーの割当てを変えていたのですが、
最近ナカバヤシのDigio2という静音のワイヤレステンキーを買ったらpgup、home等のキーがメインのキーボード側とは区別されていない仕様で、5のキーも何も割当てがない(ibuffaloのはclearが割当てられていました)仕様でした。
これはナカバヤシのが普通でibuffaloのが特殊なんでしょうか?
今まで通り割当てるつもりで買ったら何も出来ないので困っています。

497:名無しさん@お腹いっぱい。
18/10/29 19:07:38.51 G3c6EY1j0NIKU.net
下記で、AAAがアクティブなとき、aキーを押したとき、something2は実行されますか。
されないとすると、なぜでしょうか
#ifwinactive, AAA
a::
do something1
return
#ifwinactive
#ifwinnotactive, BBB
a::
do something2
return
#ifwinnotactive

498:名無しさん@お腹いっぱい。
18/10/29 19:31:45.02 DbSYxVta0NIKU.net
#if系 は排他制御だから
複数の条件で一致しても先に見つかったほうしか実行されない

499:名無しさん@お腹いっぱい。
18/10/29 19:52:49.55 XZZ80pWq0NIKU.net
>>474
んなもんハードウェア仕様次第だろ
各ハードごとの仕様の違いなんてスレチ

500:名無しさん@お腹いっぱい。
18/10/29 21:23:15.22 RYRYJnjF0NIKU.net
>>477
やっぱりメーカによって違うという事ですか。
分かりました元々キーコードが無いとどうしようもない?ので諦めてibuffaloにします。
ありがとうございました。

501:名無しさん@お腹いっぱい。
18/10/29 21:40:14.09 DbSYxVta0NIKU.net
お勧めのテンキー
スレリンク(hard板)
プログラマブルキーボード的な使い方を想定してる人もいるので一応見てみたら

502:名無しさん@お腹いっぱい。
18/10/29 23:43:32.58 RYRYJnjF0NIKU.net
>>479
テンキー専門のスレなんてあるんですね
自分はCADを使う時にテンキーにショートカットやマウスの動きを割り振っていたので参考になるかもしれません
ありがとうございます
最初に買ったテンキーがibuffaloの物だったのでほかのテンキーも何事もなく割り振れると思い込んでました・・・無知でした

503:名無しさん@お腹いっぱい。
18/10/31 09:13:41.73 WLGP5gIM0.net
AHKメニュー上で↓キーは効くのですが,無変換キーから送っている下記コードが動作しません.
sc07B & D::
Send {Blind}{Down}
return
AHKメニュー以外では問題なく動作します.
原因の分かる方おられませんでしょうか.

504:名無しさん@お腹いっぱい。
18/10/31 11:01:39.53 WLGP5gIM0.net
補足です.
"AHKメニュー上"というのは,AHKで作って出したメニューという意味です.

505:名無しさん@お腹いっぱい。
18/10/31 11:08:09.93 opd+04/w0.net
>>481
カーソルキーの定義だけ別のAHKで走らせておくと良いよ。
または、メニュー関連だけ別AHKとか。

506:名無しさん@お腹いっぱい。
18/10/31 11:13:25.55 gjv


507:71M2k0.net



508:名無しさん@お腹いっぱい。
18/10/31 12:36:04.50 RhubQVeN0.net
これもいい加減FAQだなあ

509:名無しさん@お腹いっぱい。
18/10/31 14:01:27.21 WLGP5gIM0.net
>>483
>>484
ご返信ありがとうございます.
>>Menu,Showしてる間はスクリプトがその行で完全に停止していてホットキー等の割り込みはできない
このような動作で無効となっているようでした.
実際にはアクセスキーを割り当てているので困ることは無いのですが,理解が深まりました.
長年の悩み解消に,大変感謝いたします.

510:名無しさん@お腹いっぱい。
18/10/31 14:02:30.72 WLGP5gIM0.net
>>483
>>484
ご返信ありがとうございます.
>>Menu,Showしてる間はスクリプトがその行で完全に停止していてホットキー等の割り込みはできない
このような動作で無効となっているようでした.
実際にはアクセスキーを割り当てているので困ることは無いのですが,理解が深まりました.
長年の悩み解消に,大変感謝いたします.

511:名無しさん@お腹いっぱい。
18/10/31 14:03:13.31 WLGP5gIM0.net
>>483
>>484
ご返信ありがとうございます.
>>Menu,Showしてる間はスクリプトがその行で完全に停止していてホットキー等の割り込みはできない
このような動作で無効となっているようでした.
実際にはアクセスキーを割り当てているので困ることは無いのですが,理解が深まりました.
長年の悩み解消に,大変感謝いたします.

512:名無しさん@お腹いっぱい。
18/10/31 14:40:12.38 dT0cJuwPH.net
めっちゃ感謝してるね

513:名無しさん@お腹いっぱい。
18/10/31 17:51:18.10 RhubQVeN0.net
w

514:名無しさん@お腹いっぱい。
18/10/31 21:04:54.32 OZesCr780.net
フォントを指定しないで作成した表示中のGUIで使用しているフォントの種類を知る方法ってありますか?。

515:名無しさん@お腹いっぱい。
18/10/31 22:52:35.57 LdONliey0.net
インプットメソッドの状態取得といえば定番は IME.ahk ですが、
(URLリンク(www6.atwiki.jp))
どうやら TSF (Text Service Framework)対応のアプリまたはインプットメソッドで、
状態取得に失敗するようなのです。
例えば、Thunderbird + MS-IME です。
伝聞形なのは、じぶんの環境で再現できていないからです。
ここで質問ですが、
1)IME.ahk がTSF対応アプリやインプットメソッドで問題となるケース
 特に、IME_GetConvMode() が変換モードを取得できないケースとは、
 具体的にはどのような操作なのでしょうか。
2)TSFに対応した autohotkey のライブラリ、もしくはサンプルスクリプトは
 どっかに落ちてないでしょうか。

516:名無しさん@お腹いっぱい。
18/10/31 23:37:37.36 RhubQVeN0.net
IME.ahkは同梱のtxtに記載がありますがTSF関数には全く対応していません
ただIME側で下位互換がありIMM関数で値が取れるものはかろうじて拾えるようです
どのIMEのどこまで互換があるのかは分からないです
TSFに関してはこの辺が参考になるかも知れません
URLリンク(qiita.com)
URLリンク(qiita.com)
URLリンク(msdn.microsoft.com)
自分は断念しました

517:名無しさん@お腹いっぱい。
18/11/01 01:44:27.83 9ZyI4byU0.net
>>493
詳細な情報をいただき、ありがとうございました。
自分は、TT_IME というフリーソフトが、コード付きで落ちていたので解析中です。
TT_IME は、imeの状態監視を行うソフトであり、TSF対応しているようですので、
目的には叶っています。
でも、32bit dll/64bit dll/ 32bit.exe / 64bit exe の4本立てという濃厚さなので
解析するのも一苦労です。
このimehook.dllを AutoHotkey のDllcall で呼び出せば、
もしかしてTSF対応できるかも、などと妄想したりしています。
URLリンク(d.hatena.ne.jp)
URLリンク(blog.goo.ne.jp)

518:名無しさん@お腹いっぱい。
18/11/01 23:21:34.95 2uiyzVkS0.net
URLDownloadToFileでhttpsのドキュメントなどは落とせないのでしょうか?

519:名無しさん@お腹いっぱい。
18/11/02 13:27:50.06 loaTwIIP0.net
メイプルストーリーが矢印キーでしか移動できないので
w:up
a:left
s:down
d:right
とシンプルなスクリプトを作り動作


520:確認できたのですが、ウィンドウモードのメイプルからデスクトップや別ブラウザ(Chromeなど)に一度でも切り替えるとメイプルで最初効いていた動作が利かなくなるのですが、原因分かるかたいますか? リロードスクリプトをすれば、また効くようになるのですが。管理者権限は常時使っています。効いていたのに、別のところに切り替えるとメイプルだけなぜか動作しなくなる…



521:名無しさん@お腹いっぱい。
18/11/02 13:34:59.37 0sE/AXpAa.net
>>496
あ、スクリプトはちゃんとa::leftにしてます。ここに書く際、『:』を1つだけにしてました。

522:名無しさん@お腹いっぱい。
18/11/02 14:05:19.59 hKnah+9H0.net
>>496
ゲーム側の不正対策でそうなっている

523:名無しさん@お腹いっぱい。
18/11/02 18:45:30.70 tDKIogQ70.net
>>498
不正対策ならリロードしても効かないはずでしょ

524:名無しさん@お腹いっぱい。
18/11/02 19:05:14.72 hKnah+9H0.net
>>499
至って単純な対策だけど殆どのユーザーに対してはこれで十分効果がある

525:名無しさん@お腹いっぱい。
18/11/02 19:56:47.25 0sE/AXpAa.net
>>500
質問したものです。なるほど、対策だったんですね。それを知れただけでもよかったですありがとうございました。

526:名無しさん@お腹いっぱい。
18/11/02 20:15:04.89 tDKIogQ70.net
>>500
対策とはどのプログラムが邪魔してんの?根拠あって言ってんの?

527:名無しさん@お腹いっぱい。
18/11/02 23:43:47.18 hKnah+9H0.net
質問してるの?なんで偉そうにしてんの?過去スレみれば?

528:名無しさん@お腹いっぱい。
18/11/03 01:15:56.55 Qi6X1PzN0.net
根拠もなく「対策してる」とか決めつけられてもな

529:名無しさん@お腹いっぱい。
18/11/03 01:18:38.27 Qi6X1PzN0.net
対策ならまず最初に起動した時点で弾くもの
「タスク切り替えた時だけ動かなくなる」という症状は明らかに対策とは違う

530:名無しさん@お腹いっぱい。
18/11/03 01:32:11.75 N87FaTZ40.net
メイプルストーリーのアップデートでそういう対策されたんだから
そういう持論があるなら運営会社に対策とは違うって訴えればいい

531:名無しさん@お腹いっぱい。
18/11/03 01:34:19.56 Qi6X1PzN0.net
いやだから何を根拠に対策だと言ってんだよw

532:名無しさん@お腹いっぱい。
18/11/03 01:37:44.29 N87FaTZ40.net
わかったわかった、俺が悪かった
過去スレすら見ないあんたに構った俺が悪かった
ごめんよ

533:名無しさん@お腹いっぱい。
18/11/03 01:41:08.29 Qi6X1PzN0.net
>>508
過去スレ過去スレ言うだけで根拠は一切示せない
そんなんなら最初から知ったかぶりかますなよ

534:名無しさん@お腹いっぱい。
18/11/03 01:42:27.21 N87FaTZ40.net
突っかかってるくやつになんで丁寧に説明しなきゃいけねーんだよ
馬鹿か?これ以上のレスはもうしない。スレ汚しごめん。

535:名無しさん@お腹いっぱい。
18/11/03 01:44:34.65 Qi6X1PzN0.net
>>510
何も突っかかってなんかないし根拠あるならそれを言えば良いだけのこと
根拠が無いから言えないだけだろ
最初から黙ってりゃいいのにアホくさ
アスペかよ

536:名無しさん@お腹いっぱい。
18/11/03 02:21:35.97 +PWm1krK0.net
>>495
UrlDownloadToVar - Page 7 - Scripts and Functions - AutoHotkey Community
URLリンク(autohotkey.com)
の Preactive氏のスクリプト(関数)使った方が良い、結構融通効くから(ファイルじゃなく変数に格納する)
個人的に関数の引数に「Accept=""」追加して、
関数内に
If (Accept<>"")
 WebRequest.SetRequestHeader("Accept",Accept)
を追加すると使い勝手が良くなる(これを引数にするかしないか使い側が決めるけど)

537:名無しさん@お腹いっぱい。
18/11/05 17:27:07.93 Gn8lX3k40.net
>>496
lolでも最近これになって困ってたけど何か原因があるのかねえ
アクティブになった瞬間一度だけリロードしようとしたけど何故かうまく行かなくて諦めた

538:名無しさん@お腹いっぱい。
18/11/05 18:47:29.75 Zwaz1fsc0.net
Sendモードの種類、間隔
ControlSend
キーボードフック($、#UseHook)
試してダメならタイマー+WinWaitActiveやイベント検知でリロード
URLリンク(sites.google.com)

539:名無しさん@お腹いっぱい。
18/11/06 15:21:03.22 PrbRGNF8a.net
IMEのいわゆる変換前文字列
(例えば「掲示板」と打とうとしている最中に表示される「けいj」とか「けいじb」とか「けいじばん」)という平仮名やアルファベットたち
が現在あるかどうかを調べる方法ってありましたっけ?
どこかで見たような気がしたのですが思い出せず…
どこかに自分で入力文字を保持しておき{Enter}が押されるたびにリフレッシュ…という方法ではだめなんですよね
(Enterを押さずとも、変換→文字を打つ→を繰り返すだけでIMEが次々と勝手に候補を確定させていくため)

540:名無しさん@お腹いっぱい。
18/11/07 12:08:37.04 /FFBm3Qp0.net
URLリンク(ahkwiki.net)
For index, element in Array    ; こちらの方法を推奨
{
    ; Loop では、インデックスは1で始まる連続した数値でなければならない。
    ; Forを利用すると、インデックスは数値である必要はなくなり、
    ; 配列内の要素も配列本体を参照しなくても取得ができるようになる。
    MsgBox % "Element number " . index . " is " . element
}


これで、「indexが最後の要素である場合」という条件はどうやって作るのでしょうか?

541:名無しさん@お腹いっぱい。
18/11/07 12:20:08.33 TKiyaEmf0.net
その参照先リンクに Array.MaxIndex() ってのがありますやん

542:名無しさん@お腹いっぱい。
18/11/07 14:39:24.62 /FFBm3Qp0.net
>>517
ありがとうございますm(_ _)m

543:492
18/11/07 22:41:03.08 nkh+t/Gz0.net
>>515
Text Services Framework を叩かねばならない案件ですね。
しかも、別プロセス(別アプリ)の変換中のIMMハンドルを取らなきゃいかんので、
C++で32bit dll/64bit dll 作成が必須、
autohotkey だけの世界では実行不能という
面倒くささmaxの案件なのです。
でも、いま丁度そこの開発やってるとこなので、期待せずにまったりと
待っててください。
出来たらgithub に流して、qiita に解説を書きます。

544:名無しさん@お腹いっぱい。
18/11/07 23:57:30.56 nS1IayFg0.net
すごい
あれだけの内容で分かるとは!

545:名無しさん@お腹いっぱい。
18/11/08 02:09:54.06 eKHjgnPa0.net
winny以来の神を見た

546:515
18/11/08 02:52:33.93 xc4KfwC1a.net
>>519
おお、ちょうど真っ最中でしたか!それはありがたい…!
そう言われましても期待せずにはいられないですね。

547:名無しさん@お腹いっぱい。
18/11/08 05:04:49.39 pX6K8wVj0.net
IME.ahkで解決する話じゃなかったんだな…
知ったかしてレスしないでよかった(´・ω・`)

548:名無しさん@お腹いっぱい。
18/11/08 06:59:17.77 qcV2Qe/y0.net
>>515
MouseGetPosで変換前文字列の座標のウィンドウハンドルを取得し
それのクラス名を調べたら"MSCTFIME Composition"というのが出てきましたが、こういうことではなく?
ただこれはchromeなどの独自GUIでは取得不能でしたが

549:名無しさん@お腹いっぱい。
18/11/11 02:44:30.60 T/AQQH8p0.net
FileAppend,`r`n(文字列),(テキストファイル)
で任意のテキストファイルの末尾行に↑の(文字列)が追加されると思いますが
先頭行に追加する方法ってあります?
もしくは(テキストファイル)を白紙にして、予め変数に格納しておいて



550:FileAppend,(文字列),(テキストファイル) FileAppend,`r`n(バックアップ変数),(テキストファイル) で実現できると思いますが、白紙にするコマンドってありますかね?



551:名無しさん@お腹いっぱい。
18/11/11 03:16:35.39 OlLBz5Hi0.net
>>525
FileDelete

552:名無しさん@お腹いっぱい。
18/11/11 03:28:01.71 T/AQQH8p0.net
FileDelete だと削除して、FileAppend動作するたびにテキストファイルがゴミ箱に溜まっていきませんか?
なるべくファイルはそのままで中身を空っぽにしたいんですけど

553:名無しさん@お腹いっぱい。
18/11/11 03:31:16.85 OlLBz5Hi0.net
>>527
それはFileRecycle

554:名無しさん@お腹いっぱい。
18/11/11 03:35:01.71 T/AQQH8p0.net
試してみたらそうですね
いずれにしても 完全削除→テキストファイル作成 を都度行うというのを企んでるわけですね?
なるべくそれは避けたいなと思っているのですが・・・

555:名無しさん@お腹いっぱい。
18/11/11 03:43:03.79 OlLBz5Hi0.net
いやならFileオブジェクト
使えないなら諦めて
URLリンク(autohotkey.com)

556:名無しさん@お腹いっぱい。
18/11/11 07:33:20.17 6YMtFLEp0.net
1.1.30.01 - November 11, 2018 ¶
Changed TV_Add/TV_Modify to allow "Bold1" and "Bold0".
Fixed hotkey pairs with non-zero #InputLevel blocking sent events.
Fixed Control Choose to send WM_COMMAND even if the control's ID is 0.
Fixed heap corruption in scripts with keyboard hook but no hotkeys.
Fixed escape sequences in one-line hotstrings with 'X' option.
Fixed `` escape sequence preceding a ; comment flag.
Fixed finally corrupting the value of a pending return.
Fixed MsgBox to detect timeouts even if the thread is interrupted.

557:名無しさん@お腹いっぱい。
18/11/11 18:25:53.09 rfUXoy9701111.net
Finallyのバグ直ったか

558:名無しさん@お腹いっぱい。
18/11/11 23:24:58.10 lzNGT4vm0.net
>>526
ありがとうございました
FileDeleteでやってみることにします

559:名無しさん@お腹いっぱい。
18/11/12 02:57:48.70 rP0YLsND0.net
仮想通貨発掘ワーム
URLリンク(blog.trendmicro.co.jp)
悪用しようと思えばできるだろうなとは思ったけど実際やる奴いるんだね

560:名無しさん@お腹いっぱい。
18/11/12 05:27:15.81 zDLxy1COM.net
pc操作の自動化をさせるにはautohotkeyとuwscならどっちがおすすめですか?
ahkはあくまでホットキーがメインの機能なんでしょうか
あとahkは画像認識にimagesearchがありますがこれより高機能な関数はないですか

561:名無しさん@お腹いっぱい。
18/11/12 10:08:08.27 powZs7vd0.net
やりたい内容による

562:名無しさん@お腹いっぱい。
18/11/13 09:00:40.97 T61T7gv60.net
goto文的なものはないですか?
処理中に条件に合えばスクリプトのここまで遡って再処理みたいな

563:名無しさん@お腹いっぱい。
18/11/13 09:09:25.00 tQ+GTkOu0.net
そのまんまの gotoコマンドがあるけど

564:515
18/11/14 05:02:01.06 X9TFoYFBa.net
>>524
まさにそのChromeとかでやりたいんですよね…

565:名無しさん@お腹いっぱい。
18/11/15 01:33:25.61 fRKfZVuZ0.net
今し方1.1.30.00用にコード修正したのに気づいたら1.1.30.01が来てて草

566:名無しさん@お腹いっぱい。
18/11/15 20:18:44.93 YV5PhiGq0.net
常駐してるスクリプトをリロードしたときに旧プロセスが終了せずに残ることがある
30.01からかどうかは確信ない

567:名無しさん@お腹いっぱい。
18/11/15 20:36:11.13 HctEC7uK0.net
>>541
#SingleInstance force
を書いてても?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch