AutoHotkey スレッド part21at SOFTWARE
AutoHotkey スレッド part21 - 暇つぶし2ch47:名無しさん@お腹いっぱい。
15/08/04 19:09:01.36 LjUF0Btp0.net
>>45
解決したいなら問題のスクリプトと環境を書かなければ分からない
英語配列になるのはAHK無関係
URLリンク(support.microsoft.com)

48:名無しさん@お腹いっぱい。
15/08/04 19:22:26.11 YvqEVU7K0.net
>>45
PS/2接続で英語版になったりするならデバイスマネージャーから
キーボードのドライバを更新を選択して日本語(日本語109など)を指定すれば
勝手に変わらないようになるはず。XPを使っていた時はこれで対処してた。
Vista以降で有効なのか解らない。
USB接続に変えてスリープボタン等が効かないのなら、マザーボードのBios設定に
それらの項目があったような気がする。
電源オプションに「スリープボタンを押したとき」の設定があるけど今回は関係ないと思う。
(設定以前にスリープボタンが認識されていないということなので)

49:名無しさん@お腹いっぱい。
15/08/04 20:53:20.29 2LqZAPqi0.net
>>46 なんで?暇あったら具体的に教えて
>>47 なるほど
>>48 網羅的にありがとう、3つの段落すべて非常に参考になりました
 今パソの電源落とせないので2つ目の効果はすぐには検証できないけど明日やってみる

50:名無しさん@お腹いっぱい。
15/08/04 23:33:08.59 bGwgNVIv0.net
>>49
コマンド使えば困らない程度に同等のことが出来る
→無い環境に慣れる
→→使い方すら忘れる
→→→比較対象が消失することで現状を不便に思わなくなる
まぁあった方がいいんだろうけど。使い方忘れた道具より今使ってる道具だよねって話かな
あと俺が元々キーボード使いだからLinuxのソフト群と相性が良くAHKの補助があまりいらないという話もある

51:名無しさん@お腹いっぱい。
15/08/04 23:40:52.46 oE35GsDs0.net
そんな誰のためにもならんはなしされても正直その、困る。

52:名無しさん@お腹いっぱい。
15/08/04 23:52:07.93 WpJVsnFL0.net
ahkは常駐させてgui操作やファイル整理やweb巡回の自動化に使ってて
肝心のホットキーは外付けテンキーにちょこっと割り当ててみただけであんまり使えてない
ファイル整理なんかはバッチファイルとかでやるものらしいけどパッと見何書いてるか分からなかった
ahkだとなんかわかりやすくてこっち使ってる

53:名無しさん@お腹いっぱい。
15/08/05 00:13:18.71 hhv7THdd0.net
>>51
×誰のためにもならん
○たいていの人のためにならん
白いカラスが存在しないことを証明しろ的な意味で

54:名無しさん@お腹いっぱい。
15/08/05 04:41:01.56 o5HmsZkX0.net
>>52
>ahkは常駐させてgui操作やファイル整理やweb巡回の自動化に使ってて
もし、ホットキー設定と別スレッドで使ってるならAutoItっての使うのも良いかも。
まぁ、AHK使い慣れてるみたいだから、こいういのも有るってことで。。。

55:名無しさん@お腹いっぱい。
15/08/05 04:42:42.85 o5HmsZkX0.net
>>54
こいういのも → こういうのも

56:名無しさん@お腹いっぱい。
15/08/05 06:53:11.34 fWzpjOKi0.net
ネットで拾ったマウスカーソル下の非アクティブなウインドウもスクロールできるようにするWheelScroll.ahkってスクリプト
Windows10のスタートメニューやアプリでスクロールできなくてしょんぼりしながらはずしたけど
10はデフォルトでマウスカーソル下のウインドウのスクロールに対応してたんやね

57:名無しさん@お腹いっぱい。
15/08/05 08:37:34.82 7v/7k9WM0.net
FILCOのMajestouch MINILAって、スペースの両端に
Fnキーあるから、買わないほうがいいよね?
Auto Hot Keyで設定どうしてもできなくない?

58:名無しさん@お腹いっぱい。
15/08/05 09:16:38.61 nqH3d7r30.net
>>57
URLリンク(yoshiko.hatenablog.jp)
無理みたいね

59:名無しさん@お腹いっぱい。
15/08/05 09:51:25.01 7v/7k9WM0.net
>>58
ああ~……。
クソ高いHappy Hacking Keyboardを買うことになるのかオレは。

60:名無しさん@お腹いっぱい。
15/08/05 19:19:28.72 bi6CPWl80.net
>>57
前スレにも同じ質問が
1 → 1
Fn+1 → F1
Fn → 信号なし
フックなしで出ている信号に対してホットキー登録すればいい
※テストしてないので買うなら自己責任
参考
URLリンク(gist.github.com)

61:名無しさん@お腹いっぱい。
15/08/07 09:56:52.90 ry5Cqi630.net
ニコニコ実況SDKというものについてなんですが
これはautohotkeyからでも使えるものなんでしょうか?
ホームページからダウンロードしたvcredist_x86とjknicom_releaseをインストールしたあと
VBScriptによるサンプルというものに
  'JKNiCOMを実体化
  Set JKNiCOM = WScript.CreateObject("jkNiCOM.JKNiCOM")
とあったので試しにautohotkeyで
  JKNiCOM := ComObjCreate("jkNiCOM.JKNiCOM")
とやってみても 0x80040154 - クラスが登録されていません とエラーがでてきます
根本的に使い方を間違ってるのでしょうか?
ニコニコ実況のコメント数をみて盛り上がっていれば通知してテレビを表示するということがしたいです
環境はwin10 64bitです

62:名無しさん@お腹いっぱい。
15/08/07 12:39:12.21 ry5Cqi630.net
普段使ってる64bit版autohotkeyではだめで
32bitのunicode版autohotkeyでなら使えました
exeに変換するときもBaseFile(bin)のところを64bitだと0x80040154 - クラスが登録されていませんと出ますが
32bitにすると動いてくれました

63:名無しさん@お腹いっぱい。
15/08/07 16:44:08.15 040ZZWGA0.net
loop命令で便利な機能作ってみたい
みんなどんなことに使ってる?

64:名無しさん@お腹いっぱい。
15/08/07 17:46:25.15 uW9FUtk70.net
>>62
32bit用DLLを64bitソフトで動かすことはできない(OSは例外)
AHKをインストーラで導入した場合は32/64bit両方インストールされているので
スクリプトで使い分けするように書けばいい

65:名無しさん@お腹いっぱい。
15/08/07 21:09:16.96 Sz6aWKHa0.net
>>59
Happy Hacking Keyboard 買う前に、ちょっと実際触ってキーピッチチェックした
方が良いぞ。個人的に持ってて使ってるけど、他のキーボードと併用してると
くっ狭いなとおもうときがある。

66:名無しさん@お腹いっぱい。
15/08/08 10:52:06.90 ISMb2HQ70.net
>>63
リスト作って突き合わせてフォルダ監視とかインストールされてるのは確定してるけどどこに実行ファイルがあるかわかんない時とか

67:名無しさん@お腹いっぱい。
15/08/10 00:29:21.91 awndHrrB0.net
普段ディスプレイに隙間なくウインドウを設置してるんだけど
win10にするとなんか画面端にセットしてたソフトのウインドウが再起動させると微妙にずれるから
普段使うソフトを全部指定した位置・サイズにセットするもの作った
ついでに作業ごとにウインドウの位置切り替えるようにしたった

68:名無しさん@お腹いっぱい。
15/08/10 01:53:10.09 sYzf9Mx60.net
俺もウインドウの位置大きさ常に固定しておきたい人だから自作して使い続けてるわw

69:名無しさん@お腹いっぱい。
15/08/10 09:20:09.38 LNLE13d70.net
上下左右半分って不便なんだよ。
上3下3の整理が捗る

70:名無しさん@お腹いっぱい。
15/08/10 13:09:26.77 Hy3ClwTj0.net
win10のpc再起動させたら
winactivateしてもタスクバーに最小化したウインドウが出てこなくなった・・・・・

71:名無しさん@お腹いっぱい。
15/08/10 13:38:14.95 1jvW/jNb0.net
detecthiddenwindows,on
winrestore,wintitle
で出てくるようになった
何が原因なのかさっぱり

72:名無しさん@お腹いっぱい。
15/08/10 15:40:30.60 3ij+fdTp0.net
とりあえず
detecthiddenwindows,on
はwikiでしらべときーや

73:名無しさん@お腹いっぱい。
15/08/14 17:23:49.09 Dvpxj0pY0.net
ジョイスティックのボタンに応じて、「Send, ×××」で文字の出力をしたスクリプトを組みました。
windows8.1までは何ごともなく動いていたのが、DG-D09IW(windows10機)上で実行しても何も出力してくれません。
どこを見た方がいいですか。
もちろん、ジョイスティックのボタンがwin10上のプロパティで正しく反応していることを確認しています。
※これまでに試してみたこと
・最新版に移行(Autohotkey1.1)
・その最新版で再コンパイルする
・DG-D09IW 上でコンパイル
・実行ファイルを管理者モードで実行
・   〃   互換モードで実行

74:名無しさん@お腹いっぱい。
15/08/14 18:42:36.72 R4EUU6JC0.net
>>73
問題のスクリプトを最小限にしてここに書く
AHKのログを見る、ここに書く。スクリプトは実行されているか、キー信号は送信されているか

75:73
15/08/14 20:54:17.68 Dvpxj0pY0.net
>>74
ありがとうございます。ボタン1を一度押してから「離した後に」文字が出力されます。
===スクリプト
Joy1::onKeyDown()
onKeyDown(){
SetTimer, WaitForButtonUp_1, 10
return
}
WaitForButtonUp_1:
if GetKeyState("Joy1")
return
SetTimer, WaitForButtonUp_1, off
send, hogehoge
return

76:73
15/08/14 20:56:01.52 Dvpxj0pY0.net
===ログ(windows7機)
001: Return (20.37)
001: onKeyDown()
003: SetTimer,WaitForButtonUp_1,10
004: Return
001: Return (0.01)
007: if GetKeyState("Joy1")
008: Return (0.02)
007: if GetKeyState("Joy1")
008: Return (0.02)
007: if GetKeyState("Joy1")
008: Return (0.01)
007: if GetKeyState("Joy1")
008: Return (0.02)
007: if GetKeyState("Joy1")
008: Return (0.01)
007: if GetKeyState("Joy1")
009: SetTimer,WaitForButtonUp_1,off
010: Send,hogehoge (0.25)
011: Return (1.92)
Press [F5] to refresh.
===ログ(windows10機)
001: Return (876.34)
Press [F5] to refresh.
===
ボタンを押してもonKeyDown()に飛んでくれません。

77:名無しさん@お腹いっぱい。
15/08/14 21:09:28.33 /ysh04Z70.net
接続しているコントローラーが優先デバイスになってないとか?
↓を試してみては
2joy1::msgbox,2_1
3joy1::msgbox,3_1
4joy1::msgbox,4_1
5joy1::msgbox,5_1
2joy5::msgbox,2_5
3joy5::msgbox,3_5
4joy5::msgbox,4_5
5joy5::msgbox,5_5

78:73
15/08/14 22:00:23.96 Dvpxj0pY0.net
>>77
ありがとうございます。ビンゴでした。
どういうわけか、2番目のジョイスティックとして認識していたようでした。
優先デバイスに指定したら、ちゃんと1番目のジョイスティックとして認識して、
要求通りの動作をするようになりました。

79:名無しさん@お腹いっぱい。
15/08/18 02:13:20.13 faf0+ECI0.net
1つのソフトを保存場所を変えて3つ同時に起動させてます
この3つ起動させたソフトを別々に操作したいのですが
WinActivate , title ahk_class ○○○ ahk_exe ○○○
とやっても3つとも同じなので区別して操作が出来ません
exeファイルの場所によって区別したりする方法はないでしょうか

80:名無しさん@お腹いっぱい。
15/08/18 02:43:36.28 Gk29n+ex0.net
>>79
WinGet URLリンク(ahkwiki.net)
List で対象全部探してから ID や ProcessPath

81:名無しさん@お腹いっぱい。
15/08/18 05:27:00.73 HLq89bww0.net
>>79
実行ファイル名を変えても動く場合があるので変更してみては?
例えば abc.exe なら abc1.exe abc2.exe abc3.exe にする

82:名無しさん@お腹いっぱい。
15/08/18 10:33:47.04 IZcp4ksq0.net
ahk_exeにフルパスを指定する

83:名無しさん@お腹いっぱい。
15/08/18 11:00:44.63 Q2V/EF320.net
WingetでListを使いloopでリストを分解してPIDなりタイトルなりを探す。

84:名無しさん@お腹いっぱい。
15/08/18 11:09:07.60 Q2V/EF320.net
もしくは起動時にAHKを介してrunコマンドで起動させ、PIDを記録しておくのが一番手っ取り早くかつわかりやすいと思うな

85:名無しさん@お腹いっぱい。
15/08/18 15:49:57.69 faf0+ECI0.net
WinActivate , ahk_exe C:\○○○.exe
とフルパスをつけることで区別するようにしました
ありがとうございました

86:名無しさん@お腹いっぱい。
15/08/18 16:50:27.11 38BX3gJf0.net
使ってる多ボタンマウス(MMO TE)がWin10に対応せず(8時代からソフトで設定しても出来ない項目は多かったが)全く使い物にならないのでAHKでどうにか出来ないかと調べ始めました。
取りあえずMouseGesture2.ahkを入れてやってみましたがその後MouseGestureL.ahkの方が多機能みたいなので変えました。
ジェスチャーをせずマウスクリックだけで設定を実行する事は出来ないでしょうか?
ジェスチャー認識処理の間隔は20以下にしても20に戻ってしまいますね。
カーソル移動量、通常ストロークは0にしています。
MouseGesture2.ahkのReadmeに書いていたので12ボタンまではX1B~トリガ操作の追加で登録はしました。
Win10だから出来ないのか、マウスクリックだけでは無理なのかどちらでしょうか?
Windows10 Pro 64

87:名無しさん@お腹いっぱい。
15/08/18 17:01:39.32 Y/Ko/Nw60.net
>>85
そんなことできるんだ
知らなかったなー

88:名無しさん@お腹いっぱい。
15/08/18 17:04:41.84 38BX3gJf0.net
別でMouseGestureL.ahkを使わない方法を試そうと
MButton::F5
XButton1::BS
などもしてみましたが無反応。
これも何か他に認識させる設定とかあったでしょうか?
どうかよろしくお願いします。

89:名無しさん@お腹いっぱい。
15/08/18 17:40:00.72 38BX3gJf0.net
あれっ!?
MButton::F5
XButton1::BS
XButton2::!Right
としてたのですが、なぜか左クリックでF5動作になってしまったので1行目を消した所F5では無くなりましたがBS動作になり、それも消しましたが今度は!Right動作になってしまったのでそれも消しました。
どうしてこんな事になったか何かおわかりになりますか?
MouseGestureL.ahkは動かしたままですが、そっちは左クリックには何も設定しておらず「中央ボタン押し下げ」に「;キー操作を発生させる Send{F5}」とはしていましたが無反応です。
何ですかね…

90:名無しさん@お腹いっぱい。
15/08/18 18:29:14.80 Gk29n+ex0.net
>>89
原因を探したいなら他の要因は徹底的に排除してからテスト。
AHKのバージョンは?
マウスの設定は?
フックは? URLリンク(ahkwiki.net)
フックなしの場合はマウスのソフト設定に対してAHK割り当て
フックありは実際のキーに対してAHK割り当て
マウス設定>XButton1>F1 の場合
AHKフックなし>F1::???
AHKフックあり>XButton1::???

91:86
15/08/18 19:31:42.18 38BX3gJf0.net
>>90
レスありがとうございます。
バージョンは最新の1.1.22.03
Hookは未記入のOn
MButtonは第3ボタン(ホイール)なので左(第1)ボタンに影響する事って普通は無いですよね?
XButton1も2も左ボタンには関係無いと思うのですが、他のが何か影響与えてるんでしょうかね…
これらを書いた時以外はおかしな動作をしないので問題無いかと思ったのですが、一度全部他を無しで試してみた所変な動作も望んだ動作も無く無反応でした。
他に色々書いてるどれかが悪さをしていたようです。
こんな事を起こしそうな設定とか何か思い付く物ありますでしょうか?

92:86
15/08/18 19:34:21.94 38BX3gJf0.net
あ、あとマウスの設定は専用ソフトが使えない(起動や設定は出来るが反映はされない)ので起動はしていません。
ですので特に何も無い素の状態?かと思います。

93:名無しさん@お腹いっぱい。
15/08/20 06:31:30.87 A5z4ei1W0.net
>>89
例えばこんな感じになってるんじゃない?
Lbutton::
;(中略)
; Return無しだと↓のF5が発動する。
MButton::F5 ; これを削除すると↓のBSが発動する。
XButton1::BS
XButton2::!Right

94:名無しさん@お腹いっぱい。
15/08/20 06:41:54.59 A5z4ei1W0.net
>>89
もうちょっと分かりやすく書くと
下記スクリプトはA~Eのどれを押しても
メッセージボックス(hoge)が表示される。
a::
b::
c::
d::
e::msgbox, hoge

95:名無しさん@お腹いっぱい。
15/08/20 12:06:35.58 EPuGWAPM0.net
>>93-94
レスありがとうございます。
ああ、そうなってます。
ドラッグで文をコピーする物(~LBotton:: (略) Return } })が直前にあります。
Wikiも見直したんですが終わらせる時にReturnって入れますよね?
;を付けるとそこはコメントアウトされるから終了にならないですよね?
でもこの状況になった理由はそれみたいですので理由がわかって良かったです。

96:名無しさん@お腹いっぱい。
15/08/21 20:08:10.14 JPGBlagg0.net
URLリンク(ux.getuploader.com)
左クリック押しっぱなしで思い思いのラベルの動作をさせるものを作ってみた
keywaitじゃ違和感のあるドラッグにも対応。
MGLに使う場合
#If MGLoff()
とかでくくってな。 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


97:名無しさん@お腹いっぱい。
15/08/22 11:31:57.80 MIdcIMT10.net
>>96
こうするのか。なるほどなー
Whileやる間を1秒とかどうやって計測すればいいんだろう

98:名無しさん@お腹いっぱい。
15/08/22 11:42:43.00 MIdcIMT10.net
自己解決
while前に現在時刻入れて現在時刻+3秒みたいな計算しておいて式に入れておけばいいんだな

99:名無しさん@お腹いっぱい。
15/08/22 15:21:06.55 MIdcIMT10.net
具体的にはCountじゃなくて関数の最初のwhile以前に
waittime := A_TickCount+ミリ単位で数字
Count条件のところを
If (A_TickCount > waittime)
にしてやれば指定した時間待ってくれる

100:名無しさん@お腹いっぱい。
15/08/22 21:24:12.17 IEzJt/SK0.net
URLリンク(ux.getuploader.com)
なるほどと思ったのでちょっと直してみた。元のはパスワード設定していなかったので削除できず放置 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


101:名無しさん@お腹いっぱい。
15/08/24 05:34:45.49 aWJLnuLf0.net
変数内の文字列に全角の英数字があれば半角に置換するにはどうすればいいでしょか

102:名無しさん@お腹いっぱい。
15/08/24 08:49:17.76 XzCBRntl0.net
RegExReplace

103:名無しさん@お腹いっぱい。
15/08/24 12:30:03.53 BBDOPljJ0.net
ググったらいいものがあった
;全角英数字を半角英数字に変換
WideToNarrow( str )
{
buf =
Loop , Parse , str
{
If( RegExMatch( A_LoopField , "[!-~]" ) )
{
code := Asc( A_LoopField ) - 65248
buf := buf . Chr( code )
}Else
{
buf := buf . A_LoopField
}
}
Return buf
}

104:名無しさん@お腹いっぱい。
15/08/24 13:30:20.08 JbvfckjL0.net
WheelLeft チルト左
WheelRight チルト右
チルトつきマウスって使ったことないけどahkに割り当てられるなら欲しくなってきたな
これって誤爆したりせず正確に入力できるんだろうか

105:名無しさん@お腹いっぱい。
15/08/24 13:31:59.43 TDGzbkU50.net
ワイルドカードを使用したフォルダの削除が以下のスクリプトでは出来ませんでした。
お力添えをお願いします。
FileRemoveDir, c:\jpg\*, 1 ;jpgフォルダ内のフォルダを削除

106:名無しさん@お腹いっぱい。
15/08/24 13:48:00.27 snF1k1Ry0.net
>>104
問題なく動くものとそうでないものがある
マウス側でF13やF14を当てれるゲーミングマウスであるならソレにリマップしてからなら使える。
タブ移動、モニタ切り替えとかにとても便利
>>105
msgbox % ErrorLevel
でそもそも成功してるかどうか見てみる

107:名無しさん@お腹いっぱい。
15/08/24 13:56:21.20 fWpSRoYm0.net
Loop , C:\jpg\* , 2 , 0
{
FileRemoveDir , %A_LoopFileLongPath%
}

108:名無しさん@お腹いっぱい。
15/08/24 14:13:17.46 TDGzbkU50.net
>>106
有難うございます。
ErrorLevelは1でした。しかし変化はなかったです。
>>107
無事出来ました!有難うございました。

109:名無しさん@お腹いっぱい。
15/08/24 18:15:24.97 pdTUfM210.net
左クリック長押し関数。調子に乗って選択部分の文字列オートコピー機能をつけてみた。
MGLにも対応したのでプラグインフォルダにポンと入れればそのまま使えます。
多分これで最後。
URLリンク(goo.gl)

110:名無しさん@お腹いっぱい。
15/08/24 19:46:55.67 saPJBpY50.net
>>103
関連で自分用に作ったやつ
つべとかでよくあるタイトルコピると濁点が別文字に分かれてるのを直すもの
DakutenNaoshi(STR) {
While (ICHI := RegExMatch(str, "[カ-トハ-ホ]【※1】")) {
MOJI := SubStr(STR, ICHI, 2)
STR := RegExReplace(STR, MOJI, Chr(Asc(MOJI) + 1))
}
While (ICHI := RegExMatch(STR, "[ハ-ホ]【※2】")) {
MOJI := SubStr(STR, ICHI, 2)
STR := RegExReplace(STR, MOJI, Chr(Asc(MOJI) + 2))
}
Return, STR
}
【※1】の位置はU+3099の濁点、【※2】にはU+309Aの半濁点

111:名無しさん@お腹いっぱい。
15/08/25 13:30:29.37 zVK9XD+N0.net
>>109
あー、まじ便利だコレ
俺の糞マウスホイールクリックしにくかったからマジ助かる

112:名無しさん@お腹いっぱい。
15/08/25 19:23:39.17 HVWI17xf0.net
今まで、1台のパソコンでAutoHotkeyを使っていましたが、パソコンをもう1台買って
2台で作業をするようになりました。マウスとキーボードは1台づつでするために
mouse without bordersというソフトを導入してこれで作業しています
ところが、いままで1台でAutoHotKeyで、マウスを動かしたりダブルクリックさせたりと
いうのをしていたのですが、2台にすると、たまーにですが、パソコンAにしか
AutoHotKeyはインストールもしていないのに、マウスの移動が、パソコンBのモニターの方へ
移って、パソコンBのモニター上で動いてしまう、ということが起こります
特に操作を誤ってマウスをパソコンBの方に動かした、とかはしていません
どういう条件でこのようなことが起こるのか、再現条件を調べているのですがよくわかりません
似たような経験をされた方はいませんか。
ちなみに、AutohotKeyでさせてるのは、ある場所を右クリックすると、パソコンAのモニタ上の
5か所を自動でクリックしながら回る、みたいなものです

113:名無しさん@お腹いっぱい。
15/08/25 21:20:48.14 E0WBYw330.net
どこかのテンプレか何か?

114:112
15/08/26 12:23:10.04 4nXUt1/O0.net
>>112ですが、マルチモニターでやってる方はいても複数パソコンでやってる方は
いらっしゃらないのかな

115:名無しさん@お腹いっぱい。
15/08/26 12:29:38.05 ZcWGXrDu0.net
複数PCは別にマウス別にキーボードだから正直答えようがない
そのmouse without bordersというソフトとの問題ならソレを導入してない人にとっては解決策の提示のしようがない

116:名無しさん@お腹いっぱい。
15/08/26 12:54:30.78 4nXUt1/O0.net
mouse without bordersを使うと便利ですよ
以前はどこドアを使っていました。1セットのマウス、キーボードで複数のパソコンを操作できます
ソフトの種類は違っても使っている方は多いと思っていたのですが。是非お勧めです
mouse without bordersの問題なのかな。なら仕方がないですね

117:名無しさん@お腹いっぱい。
15/08/26 13:00:07.68 4nXUt1/O0.net
問題になってるAutoHotKeyのスクリプトを使うときは、とりあえず
mouse without bordersをオフにすることで対応することにしました

118:名無しさん@お腹いっぱい。
15/08/26 14:27:33.65 X6N1SlBd0.net
mouse without borders使ってたけど
マウスとキーボードのデバイスが微妙に連動しないのが面倒くさいのと
MS特有のお行儀の悪さが気になって使うのやめた
グローバルホットキーで Ctrl+Alt+任意キー を設定できるが
Ctrl+Alt+Shift+任意キー や Ctrl+Alt+Win+任意キー なんかも全部乗っ取られる
AHKのホットキーは勿論Photoshopは普通のアプリのショートカットも全部持ってかれる

119:名無しさん@お腹いっぱい。
15/08/26 14:54:38.29 4nXUt1/O0.net
ありがとうございます。どうもAutoHotKeyとの相性は悪そうですね
どこドア2はXPのときに使っててWin7になって対応してなかったのかな、で使えなくて
やめました。でもXPのときもどこドアですが複数パソコンでやってたのですが
あまりこういう問題は起きてなかったと思います。なんか残念

120:名無しさん@お腹いっぱい。
15/08/26 22:02:14.32 PxOK28lS0.net
わからん。ドラッグスクロールのahkみてもさっぱりわからん。MGLに組み込みたいのに

121:名無しさん@お腹いっぱい。
15/08/26 22:06:14.42 KnOhpy/70.net
MGLの話はスレチになるかもだが
ドラッグスクロールはMGLにデフォで入ってる

122:名無しさん@お腹いっぱい。
15/08/26 22:35:31.87 PxOK28lS0.net
まじか。まじだ。
これか
if (MG_While()) {
MG_DragScroll2(1, 0, 30, 30)
}
それを>>109の長押しクリックで切り替えてスクロールさせたいと思ったけどちゃんと読んでくれない。
何がいけないんだろう
Mdoit:
if (MG_While()) {
MG_DragScroll2(1, 0, 30, 30)
}
return
ではいかんのか

123:名無しさん@お腹いっぱい。
15/08/26 22:37:45.84 PxOK28lS0.net
ああ、そうか、MG_WhileてMG通してないからダメか。こっちから調べていかないとダメか

124:名無しさん@お腹いっぱい。
15/08/26 22:58:18.37 PxOK28lS0.net
あーそうかMG_DragScroll2を分解しなきゃいけないのか

125:名無しさん@お腹いっぱい。
15/08/26 23:49:03.07 /aMJcH2P0.net
Lbuttonの設定するととても怪しい挙動になるのがMGLの欠点

126:名無しさん@お腹いっぱい。
15/08/27 01:31:33.67 TGBhd8a90.net
都合により既存の.ahkを全体にわたって編集しようとしたら遠大すぎてやる気が……

127:名無しさん@お腹いっぱい。
15/08/27 02:11:47.99 5BeDDZgS0.net
そうならないよう機能毎にプラグイン化しとくべき

128:名無しさん@お腹いっぱい。
15/08/27 15:17:02.45 6R7nKD+m0.net
Windows8.1で右クリックでコンパイルしようとすると、Error opening the destination fileが出て出来ない。
フォルダーのアクセス権の問題と考えて、コマンドプロンプトからattrib -Rしたが変化なし。
しょうがないからユーザーフォルダ直下に管理者権限でインスコしなおしたけど、症状変わらず。
本家掲示板にも同じ症状の人がいたんだけど、同じことをしても治らない。
URLリンク(www.autohotkey.com)
結局、Ahk2Exe.exeから直接コンパイル出来たんだけど、右クリックが使えないと不便。
何かご存じの方いらっしゃいますか?

129:名無しさん@お腹いっぱい。
15/08/27 15:49:22.05 A1kVA00s0.net
>>128
>>8 管理者権限は?

130:名無しさん@お腹いっぱい。
15/08/27 15:56:03.66 6R7nKD+m0.net
>>129
コマンドプロンプトも管理者権限で実行しましたがダメでしたね
再インスコのときは注意して管理者権限で実行しましたが、やはりダメでしたね。
attribで表示させるとどのファイルにもRが表示されないのがこれまた不思議なんですよね。
うちのPCだけの問題なのか、他のPCにも同じ現象があるのか知りたいですね。
ちなみに適当なフォルダに新しいフォルダを作成すると、読み取り専用で作成されてしまうことも発見しました。
これは正常な現象なんでしょうか?

131:名無しさん@お腹いっぱい。
15/08/27 18:41:30.79 TGBhd8a90.net
ところでMS Edge周りでなんか問題とかあった?
いや、使う気はないんだけど

132:名無しさん@お腹いっぱい。
15/08/27 18:41:41.52 QrGpaeh50.net
セキュリティー系のアプリが邪魔してるとか?

133:名無しさん@お腹いっぱい。
15/08/27 18:58:41.77 6R7nKD+m0.net
>>131
ググりました。ブラウザなんですね。使用していませんね。
>>132
avira antivirus proを使用してますが、すべての機能を無効にしても症状は変わりません。

134:名無しさん@お腹いっぱい。
15/08/27 20:02:23.90 HDPjNIFE0.net
口調が変な奴はおよそそいつ自身に問題がある

135:名無しさん@お腹いっぱい。
15/08/28 02:05:27.60 kfCF/ZI40.net
コマンドを発動させるために使ったホットキー自体を無効化する設定ってないですかね?
Poserというソフトでショートカット変更をしたいので
こういうスクリプトを書きました
!Rbutton::
Send,{space down}{Ctrl down}{Lbutton down}
Loop
{
sleep, 15
GetKeyState, state, Rbutton , p
if state = u
break
}
Send, {space up}{Ctrl up}{Lbutton up}
return
やりたいことはAlt+Rbuttonを押した時に
space + Ctrl +Lbuttonを押してPoserにあるショートカットを使いたいのですが、
このかき方だとPoserにある別のAlt+Lbuttonで動くショートカットがかなりの確率で
誤爆してしまうので、Altを完全に無効にしたいのです

136:名無しさん@お腹いっぱい。
15/08/29 01:35:19.24 27J7ydmj0.net
>>135
KeyWaitでAlt離してからSend

137:名無しさん@お腹いっぱい。
15/08/29 23:40:15.51 9L1dhnYA0.net
>>120です
だいぶドラッグスクロールできそうな雰囲気になってきた。
んだけどMozillaエンジンやChromeのスクロールメッセージがわからんくてpostmessageで送れない
誰か知らない?

138:名無しさん@お腹いっぱい。
15/08/30 13:15:33.91 XxCQb5ii0.net
>>48
この勝手に英語キーボード問題って実は根深いんだよね
ユーザーができることってPS2かUSBかぐらいしかないんだよね
それでもシステムが常に英語キーボードを使いたがる場合
それを防ぐ手段は無いと思う
レジストリに韓国語キーボード設定が紛れていたりとか
他にも原因はいろいろあるが
キーボードを変えるのは本末転倒だけど
キーボードを分解して物理的に中の配線をつなぎ替えるって手段も通じそうにないし
ってなるとソフト的にキーを入れ替えて
システムからは英語キーボードで認識させておいて
日本語キーボードのように使えるようにマッピングを入れ替えるみたいな
スマートでない手段しか解決はない

139:名無しさん@お腹いっぱい。
15/08/30 17:35:57.25 C8RQoIT90.net
           (ヽ∧__∧
           、ヽ`∀´> <呼ばれて無いのにチョチョチョチョーン
            )   )つ
            >⌒)ノ
            ゝノ/
   パカチョン    ノ~ノ
  /|     ///
  | |    ///
  | |ミ ///.
  |/ ̄    /
   " ̄ ̄ ̄ ̄

140:名無しさん@お腹いっぱい。
15/08/30 17:35:58.77 +8DTYiHZ0.net
>>137
スクロール関連ではTrackWheelがいろんな方法を取り入れてる、難解だけど参考になるよ
URLリンク(sites.google.com)
なおスクリプトは64bit版ahkでは動かない模様

141:名無しさん@お腹いっぱい。
15/08/30 21:22:45.27 jAU9uCOQ0.net
>>136
キーを離してしまうと厳しいですね Alt押しで別の動作もさせるので
Alt+Mbutton、Alt+Lbutton、Alt+Rbuttonと合わせて3パターンで切り替えるのでAltはずっと押していたいんです
どうもでした

142:名無しさん@お腹いっぱい。
15/09/01 19:21:17.34 ATL7zO2X0.net
文字列を入れた配列を結合したいのですが
autohotkeyにjoinのようなものはないのでしょうか?
自分でforで回して文字列を作るのでしょうか?

143:名無しさん@お腹いっぱい。
15/09/01 21:16:44.69 oOn6cjJn0.net
俺も拍子抜けしたんだけどね、文字列の後に文字列入れたら文字列になるんだよ
hoge = %hoge% %hage%

144:名無しさん@お腹いっぱい。
15/09/01 22:35:54.73 ATL7zO2X0.net
出来ました
ありがとうございます

145:名無しさん@お腹いっぱい。
15/09/02 11:34:03.68 27CQDY4v0.net
Everythingで検索した結果のファイルパスを変数に入れたいのですが
以下の関数でやると記号のハートマークが含まれてたりするとその部分が?になってしまいます
RetunのところにStrGetでCP932に変換してみたら一文字目だけ変数に入るだけでした
どこかおかしいところがあるんでしょうか?
es_StdoutToVar( search_word )
{
objShell := ComObjCreate("WScript.Shell")
;コマンドライン版Everything,es.exeのインストール場所
objExec := objShell.Exec( "インストール場所\es.exe" " " search_word )
While , !objExec.StdOut.AtEndOfStream
{
strStdOut := objExec.StdOut.ReadAll()
}
Return strStdOut
;Return StrGet(&strStdOut,"CP932")
}

146:名無しさん@お腹いっぱい。
15/09/02 20:04:32.30 wcJk7beK0.net
あぷろだのコンテキストメニューがモロにそれなんで試してみたら?

147:名無しさん@お腹いっぱい。
15/09/04 02:41:16.97 DGVcxvcT0.net
文字列の選択範囲が存在するか否かを調べる方法はありませんか?
^cをSendしてClipWaitしてErrorLevelを調べる、
とやってみたのですが、
使っているエディタは範囲選択していない場合にCTRL+Cを押すと
カーソルのある行全体をコピーするので、正しく検出できませんでした

148:名無しさん@お腹いっぱい。
15/09/04 03:14:02.68 VDkFX/7X0.net
末尾が改行コードかどうかで判別するとか

149:名無しさん@お腹いっぱい。
15/09/04 04:21:08.46 DGVcxvcT0.net
なるほど
それなら出来そうですね
ありがとうございます

150:名無しさん@お腹いっぱい。
15/09/04 05:00:30.42 0fv3FZza0.net
ウィンドウIDを取得して
そのID名+x、そのID名+yという変数にウィンドウ座標を代入したとして、
その変数から取得した座標を取り出すにはどうしたらいいですかね?
こんなかんじにやってもうまくいかなかったんですが、こういう感じのことがしたいです。
Winget,test,ID,A
WingetPos,%test%_x,%test%_y
msgbox, %%test%_x%, %%test%_y%

151:名無しさん@お腹いっぱい。
15/09/04 05:40:44.53 Mfg9efKS0.net
>>150
Winget , test , ID , A
WingetPos , %test%_x , %test%_y , , , ahk_id %test%
MsgBox , % %test%_x "," %test%_y
こうすると見れたよ
URLリンク(ahkwiki.net)

152:名無しさん@お腹いっぱい。
15/09/04 06:50:50.14 0fv3FZza0.net
>>151
できました ありがとうございました

153:名無しさん@お腹いっぱい。
15/09/04 23:10:57.00 7YsI0USd0.net
Gui, Add, Edit にて複数のテキスト入力欄を作った際に、
エンターキーで次のテキスト入力欄に移動したいのですがどのようにすればいいでしょうか。
また、移動後最初に入力欄に表示されているテキストを選択状態にしたいのですができますでしょうか。

Gui, Add, Edit , Number Limit4 , 1234
Gui, Add, Edit , Number Limit3
上記1234のテキストを選択状態(反転状態)にしたいのです。
1234のままでよければエンターで次のテキスト入力欄に、変更が必要ならそのままテンキーを押して変更を行えるようにしたいのです。
宜しくお願いします。

154:名無しさん@お腹いっぱい。
15/09/04 23:34:35.40 mkbLU6h20.net
>>153
OnMessage()かエンターホットキー+#If
反転状態=全選択 フォーカスあわせてctl+a

155:名無しさん@お腹いっぱい。
15/09/04 23:36:03.54 o3G+4tqy0.net
EnterにTabをSendさせるとか

156:名無しさん@お腹いっぱい。
15/09/04 23:42:55.92 eYYZnR930.net
ルー語みたいだな

157:名無しさん@お腹いっぱい。
15/09/05 01:44:18.45 UXTJ6C/Y0.net
一度Shift押すともう一度Shift押すまで押しっぱなしになるってShift::Send,{Shift Down or UP}でできますか?
トグル状態にする書き方が分かりません

158:名無しさん@お腹いっぱい。
15/09/05 03:19:52.89 76NUCaeT0.net
2点教えて下さい。
IfInString, clipboard, C:
run, explore %Clipboard%
else IfInString, clipboard, D:
run, explore %Clipboard%
①こちらが動作しないのですが、理由が分かりません。
②また、簡素な記述法を教えて頂ければ幸いです。

159:名無しさん@お腹いっぱい。
15/09/05 05:43:01.20 WX1fwC0+0.net
>>157
フラグ管理すればいい
shift::
send, % !shiftflag ? "{shift down}" : "{shift up}"
shiftflag := !shiftflag
return
>>158
俺の環境ではそのままで動いたよ
OSとAutohotkeyのVerは何?

160:157
15/09/05 07:49:16.43 UXTJ6C/Y0.net
>>159
ありがとうございます!
しかしShift押しっぱなしだとその間Shift+なショートカットキーが押せないことに気づきました。あきらめます

161:名無しさん@お腹いっぱい。
15/09/05 10:27:37.59 76NUCaeT0.net
>>159
windows10 build 10525
ahk 112203 x64です。

162:名無しさん@お腹いっぱい。
15/09/05 10:31:42.19 76NUCaeT0.net
あ、失礼しました。
次の行に
;の文があったのですが、それを削除したら動作しました。
なぜかは、、若ってませんw

163:名無しさん@お腹いっぱい。
15/09/05 10:42:30.07 p/CJbrsT0.net
>>158
②こう書くこともできるよ
If( RegExMatch( Clipboard , "C:|D:" ) )
{
Run , explore %Clipboard%
}
Return

164:名無しさん@お腹いっぱい。
15/09/05 13:01:45.41 76NUCaeT0.net
できました。なるほど、正規表現で表現すれば良いのですね。
ありがとうございました。

165:名無しさん@お腹いっぱい。
15/09/05 20:48:50.98 1jU9sHQY0.net
間違って過疎スレの方に書いてしまったので再度質問です
Arr := {}
Arr := [{Key: Value}
, {Key: Value}
, {Key: Value}

, {Key: Value}]
のように一度に代入する内容が多いとエラーが出るのですが、Object.Push等を使い分割して入れていくしかありませんか?

166:名無しさん@お腹いっぱい。
15/09/05 21:13:51.76 2aSk8rw40.net
>>165
こうしたら動くけど、やりたいことと違うんかな?
Arr := {}
Arr := {"Key1": "Value1"
, "Key2": "Value2"
, "Key3": "Value3"
, "Key4": "Value4"}
MsgBox, % Arr["Key1"]

167:名無しさん@お腹いっぱい。
15/09/05 21:25:49.13 1jU9sHQY0.net
>>166
どうもです
内容は実際は異なるものでそれ自体は問題なく代入できてますが
その量が多いとエラーが出るので、仕方なく.Push等で分割して入れてるのです
Arr := {}
Arr.Push := ({Key: Value}
, {Key: Value}
, {Key: Value}

, {Key: Value})
Arr.Push := ({Key: Value}
, {Key: Value}
, {Key: Value}

, {Key: Value})

これらを分割せずに代入したいのです
あと.Pushだと

Arr[Key].Push := ({Key: Value}
, {Key: Value}
, {Key: Value}

, {Key: Value})
のようにキーを指定して追加することができないのがちょっと不便なのです

168:名無しさん@お腹いっぱい。
15/09/06 00:24:12.56 Nw/T60NE0.net
いまモニターを3台つないでるんですが、プライマリ以外のデスクトップ上にマウスカーソルがあるときにF1を押した場合にAHKを動かしたいんですがうまくいきません
二枚目と三枚目のデスクトップ上の固有のClassが#32769
でProcessNameはcsrss.exeみたいですが二枚目と三枚目のデスクトップ上にマウスカーソルがある判定がつくれません
何かいい方法はないでしょうか?

169:名無しさん@お腹いっぱい。
15/09/06 00:40:42.32 Nw/T60NE0.net
>>168ですがなんとかなりました 失礼しました
二枚目三枚目のデスクトッをクリックした時にWindowSpyでもClass名が取得できないので
その時に
WinGetClass, AC, A
if !AC
の判定を使ってスクリプトを動かすようにしたらうまくいきました

170:名無しさん@お腹いっぱい。
15/09/06 00:40:59.01 T4UZ6BTe0.net
単純にモニタの最大をsysgetで持ってきて、そこからプライマリ分を引いたら2枚目、二枚目分を引いたら3枚めになる。
例えば横一列に並べてる1920ワイド3枚なら最大は5760だし、それはsysgetで持ってくるなりできたと思う。
1921からが2枚目となり、3841からが三枚目となる。
あとはMousegetposで場所を判定してやればいい。

171:名無しさん@お腹いっぱい。
15/09/06 00:59:39.93 Nw/T60NE0.net
>>170
Windows7のWin+shift+左右矢印キーで動くウィンドウ移動ショートカットに使うので一枚目二枚目三枚目判定はsysgetで作ってますが
それだと二枚目三枚目のデスクトップ上にマウスカーソルがある判定がつくれなかったのです

172:名無しさん@お腹いっぱい。
15/09/06 09:06:26.68 p3to+8FO0.net

Mousegetposで位置取れなかったん?

173:名無しさん@お腹いっぱい。
15/09/06 09:07:22.25 rl/qzrB40.net
ファイルの種類(例えばmp4が動画か音楽か)の判定をスマートにする方法はありますか?
今のところ真空波動研を使って力業でやってますが少し時間が掛かってしまいます

174:名無しさん@お腹いっぱい。
15/09/06 11:34:13.87 p3to+8FO0.net
SinkuSuperLite.exe /s よりもスマートな方法ってことかな
dllcallで直接sinku.dllと叩くとか?

175:名無しさん@お腹いっぱい。
15/09/06 15:15:03.29 rl/qzrB40.net
>>174
そういう方法(というかVer?)があったのですか。ありがとうございました

176:名無しさん@お腹いっぱい。
15/09/06 16:13:54.63 rl/qzrB40.net
ループを使わずにディレクトリ内にファイルがあるか調べる方法はありますか?

177:名無しさん@お腹いっぱい。
15/09/06 16:21:39.32 T4UZ6BTe0.net
If(FileExist("data.txt"))
ピンポイントならこれ

178:名無しさん@お腹いっぱい。
15/09/06 16:37:38.03 rl/qzrB40.net
>>177
説明が悪かったですね。ディレクトリ内が空っぽであるかをスマートに調べる方法があれば知りたいのです
関数作れば事足りることではありますが

179:名無しさん@お腹いっぱい。
15/09/06 16:39:58.19 T4UZ6BTe0.net
そういう意味ではloopが最もスマートかつ管理しやすいかと。

180:名無しさん@お腹いっぱい。
15/09/06 16:42:36.39 rl/qzrB40.net
>>179
分かりました。ありがとうございました

181:名無しさん@お腹いっぱい。
15/09/06 21:16:42.64 Nw/T60NE0.net
>>172
位置はとれますけどウィンドウハンドルやclassNN情報が拾えませんでした

Autohotkey_Lでinspect_toolbar_ids.ahkって動かないのでしょうか?
このスクリプトの
Progress,%tmp%,%num%/%cnt%
の部分で
Error: Max window number is 10.
というエラーがでていて動かないのですがどういうエラーなのかよくわかりません

182:名無しさん@お腹いっぱい。
15/09/06 23:58:03.69 /ARUILMV0.net
#include Lib\IME.ahk
#If !IME_GET() ; IME がOFFの時だけ有効
;変換キーでIMEオン(IE10で不具合)
;sc079 :: Send,{Blind}{vkF2sc070}
IE10以上だとこれが正常に動作しないんだよな

183:名無しさん@お腹いっぱい。
15/09/07 00:17:19.68 oseNuDgH0.net
MouseGetPos,,,Winid,Ctr
ControlClick,%Ctr%,ahk_id %Winid%,,L
return
おかしーな、なんでコレで動かないんだろう
ただアクティブじゃないウィンドウの上で左クリックしたいだけなのに

184:名無しさん@お腹いっぱい。
15/09/07 14:18:15.90 icUjHksq0.net
win7からwin10にしたらime.ahkのIME_SetConvModeが動作しなくなったのだけど
何か仕様が変わったのかな?

185:名無しさん@お腹いっぱい。
15/09/07 18:37:01.59 0prwMOwD0.net
Win10使ってないからわからんけどついにIMMからTSFに切り替わったってことなのかな
OS側がIMM互換残してくれてないとIME.AHKではどうしようもないと思う

186:名無しさん@お腹いっぱい。
15/09/07 20:59:42.12 icUjHksq0.net
>>185
将来的にはTSFオンリーになるという話は聞いていたような気がするけど
ついにその時が来たってことなのかなぁ

187:名無しさん@お腹いっぱい。
15/09/08 18:25:22.21 DiTxEGzB0.net
スクリプトでテキストデータを貼り付ける時は
クリップボードにテキストを入れてsend ^vで貼り付け
とやってるんですがクリップボードの履歴を利用できるソフトにその内容が入ってしまいます
クリップボードを介さないで^vのようにパッとテキストを貼り付ける方法ってあるんでしょうか?

188:名無しさん@お腹いっぱい。
15/09/08 20:45:46.24 pZfe2zr60.net
ドロップダウンメニューが表示されている時に特定の動作をさせたいんですけど
ドロップダウンメニューの判定ってどうとればいいですかね?

189:名無しさん@お腹いっぱい。
15/09/08 20:56:21.82 8bMO9ZgT0.net
>>14
亀レスだけどWin10にしても問題なく動いたよ
もし、古いWindow Spyを使ってるなら更新してみては

190:名無しさん@お腹いっぱい。
15/09/08 21:15:37.03 8bMO9ZgT0.net
>>187
クリップボードを使う前にクリップボード監視ソフトを停止(終了)、終わったら再開(起動)
>>188
ドロップダウンリストのクラスを取得してWinWaitかWinExist()で判定。
ほとんどは #32769 だけどソフトによって違う場合あり。
F9::
mousegetpos, , , hwnd
wingetclass, WClass, ahk_id %hwnd%
clipboard := WClass
msgbox, %WClass%
return

191:名無しさん@お腹いっぱい。
15/09/08 22:26:42.47 pZfe2zr60.net
>>190
なるほどどうも
さっきまで自分で試してたんですけど
MouseGetPos,,,hwnd,,3
Wingettitle,title,ahk_id %hwnd%
これでタイトルを取得出来ない場合はドロップダウンメニューという判定でもうまくいきました

192:名無しさん@お腹いっぱい。
15/09/09 01:58:13.37 sfIbO/Lh0.net
AHKでMedia Player Classcのフルスクリーン時の最前面化を解除したいんですがどうにもなりません。
誰かここでそういうことをしてる人はいませんか?
Winset, Alwaysontop, , A
で最前面解除しても、プレイヤーがアクティブ状態になるとすぐに最前面化されてしまいます。
何かいい方法はないでしょうか?

193:名無しさん@お腹いっぱい。
15/09/09 02:20:18.82 sfIbO/Lh0.net
>>192ですがこのタイマーでなんとかいけましたがなるべくPCに負荷をかけたくないのでタイマー以外の方法があったら教えて下さい。

SetTimer,MPC_FullScreen,350
MPC_FullScreen:
ifwinexist ahk_group MPC
{
WinGet, MPC_windows, ID, ahk_group MPC
WinGet, ExStyle, ExStyle, ahk_id %MPC_windows%
if (ExStyle & 0x8)
{
Winset, AlwaysOnTop, off, ahk_id %MPC_windows%
return
}
else
{
return
}
}
return

194:名無しさん@お腹いっぱい。
15/09/09 02:26:42.78 qqzz6oSe0.net
>>192
俺の環境じゃ最前面化されないな。
MPCの「表示」→「手前に表示」(または動画部分を右クリック → 表示 → 手前に表示)にチェックが付いてるだけじゃ?

195:名無しさん@お腹いっぱい。
15/09/09 02:48:05.08 sfIbO/Lh0.net
>>194
いい忘れました Media Player Classic BEとHCを使ってるんですが、BEのほうだけフルスクリーン表示の時に
手前表示を切っても最前面かされてしまうのです。いろいろ調べたんですが解決策がみつかりませんでした。

196:名無しさん@お腹いっぱい。
15/09/09 02:55:06.35 qqzz6oSe0.net
それはソフト側のバグなんじゃ

197:名無しさん@お腹いっぱい。
15/09/09 06:03:44.25 sfIbO/Lh0.net
>>196
ソフトの仕様らしいです

198:名無しさん@お腹いっぱい。
15/09/09 10:31:37.09 k1YibYKM0.net
>>193
タイマーを使わないならこれ
URLリンク(sites.google.com)

199:名無しさん@お腹いっぱい。
15/09/09 13:41:54.81 eoTr4N+F0.net
ControlsendってBlindつかえないのん?

200:名無しさん@お腹いっぱい。
15/09/10 05:14:35.69 Ogg7g5iG0.net
>>198
例にあるウィンドウがアクティブになったら何かをさせる、のスクリプトを使って、MPCプレイヤー以外のウィンドウがアクティブになった時に
MPCプレイヤーが最前面なら最前面化をその解除する、というスクリプトを作りましたがそれで動きました。ありがとうございます。
ただEVENT_SYSTEM_~のイベント識別番号に最前面判定がないのですがそんなもんですかね?もしかしてそれもあったりしますか?

201:名無しさん@お腹いっぱい。
15/09/10 14:35:46.46 EJyV3hmS0.net
DELLCALLいみわかんね

202:名無しさん@お腹いっぱい。
15/09/10 16:38:15.18 Lu4JniIi0.net
デルのサポセンか何かか

203:名無しさん@お腹いっぱい。
15/09/10 20:34:29.26 T57FNj1S0.net
タッチパッドT650の三本指スワイプに別のアクションを割り当てたいのですが
三本指スワイプのコードが分かりません

204:名無しさん@お腹いっぱい。
15/09/10 21:52:24.11 En8CayDb0.net
ここはお前らのつぶやき場じゃねえ
いみわかんねとか分かりませんとか言われてもそうですかとしか

205:名無しさん@お腹いっぱい。
15/09/11 02:44:50.22 KgQY+xdZ0.net
そうですね

206:名無しさん@お腹いっぱい。
15/09/11 17:29:40.35 oJhYNlfM0.net
タスクバーにあるウィンドウだけピックアップしてリストにするのどうすればいいの
wingetリストじゃ今ないウィンドウも拾っちゃう

207:名無しさん@お腹いっぱい。
15/09/11 17:55:31.33 BoB/uXR80.net
ExStyleに0x00000080を持つかどうかで分岐させるとか

208:名無しさん@お腹いっぱい。
15/09/13 04:16:53.85 tppm85mx0.net
Internet Explorerの保護モードとは?
Internet Explorerの保護モードを有効にしておくと、悪意のあるプログラムやスクリプトなどがシステムの重要な情報を窃取したり、
システムを変更したりするのを可能な限り防ぐことができる。その設定方法や現在の状態の確認方法などを解説する。
これが代表的だけど,ストアアプリに関してもキーボード・マウスフック系ツールは全滅だな

209:名無しさん@お腹いっぱい。
15/09/13 05:18:38.41 tppm85mx0.net
IME_GET(WinTitle="")
;-----------------------------------------------------------
; IMEの状態の取得
; 対象: AHK v1.0.34以降
; WinTitle : 対象Window (省略時:アクティブウィンドウ)
; 戻り値 1:ON 0:OFF
;-----------------------------------------------------------
{
ifEqual WinTitle,, SetEnv,WinTitle,A
WinGet,hWnd,ID,%WinTitle%
DefaultIMEWnd := DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint)
;Message : WM_IME_CONTROL wParam:IMC_GETOPENSTATUS
DetectSave := A_DetectHiddenWindows
DetectHiddenWindows,ON
SendMessage 0x283, 0x005,0,,ahk_id %DefaultIMEWnd%
DetectHiddenWindows,%DetectSave%
Return ErrorLevel
}
これが機能しないんだよな

210:名無しさん@お腹いっぱい。
15/09/13 10:12:25.20 JTOkkRYB0.net
この辺が参考になるかも
URLリンク(d.hatena.ne.jp)
URLリンク(d.hatena.ne.jp)
URLリンク(d.hatena.ne.jp)

211:名無しさん@お腹いっぱい。
15/09/13 12:55:50.14 tppm85mx0.net
意図通り動作するマシンとしないマシンがあって混乱中
ほぼ同じ環境なのに

212:名無しさん@お腹いっぱい。
15/09/13 15:54:22.92 0IksCrEg0.net
あるスクリプトから既に常駐状態の別のスクリプト内にある
aaa:
というラベルを実行するにはどうすればいいでしょうか

213:名無しさん@お腹いっぱい。
15/09/13 18:51:04.35 ZFeoAT7n0.net
あるスクリプトからPostMessage
別スクリプトでOnMessage()→GoTo, aaa

214:名無しさん@お腹いっぱい。
15/09/13 20:01:20.58 0IksCrEg0.net
>>213
ありがとうございます
下のようにやることでできるようになりました
送られる側
MsgNumber := 2457 ;数値はてきとう
OnMessage( MsgNumber , "FunctionName" )
FunctionName( wParam , lParam , msg , hwnd )
{
MsgBox , ウインドウメッセージが送られました`n`nwParam:%wParam%`nlParam:%lParam%`nmsg:%msg%`nhwnd:%hwnd%
If( wParam = 1 )
{
MsgBox , 1を実行
}
}
送る側
DetectHiddenWindows, On
Msg := 2457 ;メッセージ番号
wParam := 1 ;メッセージの第1引数
PostMessage , Msg , wParam , , , 送られる側のスクリプトのパス ahk_class AutoHotkey

215:名無しさん@お腹いっぱい。
15/09/13 20:53:44.44 lBJNhxx/0.net
>>214
横からだけど使わせてもらうサンクス。

216:名無しさん@お腹いっぱい。
15/09/14 01:31:47.47 OiVrGh/t0.net
OnMessageってのはautoexecutionとかで1回起動させてしまえば
timerイベントで常に実行させておく、みたいなことをする必要無いですかね?

217:名無しさん@お腹いっぱい。
15/09/14 01:49:16.10 mUgBafdp0.net
ないよん
定期監視じゃなくイベントが発生したタイミングで起動するためのものだし

218:名無しさん@お腹いっぱい。
15/09/14 02:42:19.29 OiVrGh/t0.net
>>217
どうもです

219:名無しさん@お腹いっぱい。
15/09/14 22:58:53.08 u4kScnm60.net
If (○○)
Return
みたいなのって一行で書けないものかな?

220:名無しさん@お腹いっぱい。
15/09/14 23:38:37.10 mUgBafdp0.net
IfEqual

221:名無しさん@お腹いっぱい。
15/09/14 23:46:07.93 efpHlwrD0.net
三項演算子
でも視認性メンテナンス性を考えたらちゃんと綺麗にパターンにそってスクリプトは書いとくほうがいいぞ
後で何してんだこれとか自分で書いてるものを読み解くのに時間食われたらそれこそ時間の無駄だし

222:名無しさん@お腹いっぱい。
15/09/15 01:02:26.04 hsiwELNn0.net
三項演算子は基本変数への代入系しかできないじゃね
return frag ? true : false などの関数の戻り値指定は有効だが
frag が有効なときだけreturnする、は無理かと
1行でルーチン抜けたいならこっち
IfEqual frag,1, return
URLリンク(ahkwiki.net)
>IfEqualのようなコマンド名の形式の場合、更にカンマで区切って条件に一致した場合に実行するコマンドを記述できる。

223:名無しさん@お腹いっぱい。
15/09/15 03:20:04.42 /YUs9+C50.net
>>220-222
どうもです。IfEqualというコマンドがあったのかーと思ったらv2では排除されてたようです…
三項演算子みたいな省略的な書き方が他にもあるのかと気になってたのでVerまでは考慮しておりませんでした。すんません

224:名無しさん@お腹いっぱい。
15/09/15 03:51:15.34 A4RzQ5uM0.net
行を減らしさえすれば美しいという幻想はいつまで続くのか

225:名無しさん@お腹いっぱい。
15/09/15 06:17:48.39 /YUs9+C50.net
単に使い分けたいだけなんだがなぁ
視認性優先して改行入れて行数増やすこともあるよ

226:名無しさん@お腹いっぱい。
15/09/15 07:12:09.96 UsCwcKFK0.net
v2なら if true, MsgBox ってな感じでいけるみたいやで
ドキュメント見ただけだけど

227:名無しさん@お腹いっぱい。
15/09/15 07:24:15.25 /YUs9+C50.net
>>226
ほんとだ。ありがとう

228:名無しさん@お腹いっぱい。
15/09/15 10:02:28.32 hsiwELNn0.net
v2て、そんな特殊なもの使うのにver指定もなしで普通に質問されてもさあ
特にif回りはバグ元になるから旧コマンド一掃するよって謳ってるverなのに

229:名無しさん@お腹いっぱい。
15/09/15 14:37:46.05 mWkYRkN50.net
マウスを動かした方向とは別の出力をさせるみたいなことってできますかね?
たとえば、
AAAAAAAAAAAAAAAAAA
という文字列があったとして、この文字列の中央で左クリックしながら右にマウスを動かして文字を選択した場合に、
中央から右側にマウスカーソルは動くけれど、ドラッグ選択される文字は中央から左側になる、みたいな感じのことがしたいです

230:名無しさん@お腹いっぱい。
15/09/15 15:46:53.97 3CHmYEvD0.net
できるよ。現座標Xに対して+かーでmousegetposで調べればいい。

231:名無しさん@お腹いっぱい。
15/09/15 15:48:21.63 3CHmYEvD0.net
あ、でも多分カーソルの反対にドラッグとか言うのは無理かも。
shiftとLeft送ることになると思う。

232:名無しさん@お腹いっぱい。
15/09/15 16:31:57.16 /YUs9+C50.net
>>228
三項演算子のような他言語でも用いられる事がある書き方で解決できるのか疑問に思ってたので
AHK特有のコマンド(または仕様)にまで及ぶ内容だとは想定できませんでした。すんません

233:名無しさん@お腹いっぱい。
15/09/15 16:42:38.32 3CHmYEvD0.net
思いついたのは
mousegetpos,X,Y
while getkeystate("Lbutton","P"){
mousegetpos,X2,Y2
idouX = X-X2
If (idouX > 20)
send,+{left}
}
みたいな感じ。動かしても居ないから結果は知らんけど。
要するに押してる間中pos監視してうごいた分でsendを送る

234:名無しさん@お腹いっぱい。
15/09/15 19:46:05.35 5o1yy9Si0.net
自分にぴったりなサイトがあった
日本語で書いた変数名を英語にしてくれるサイト
URLリンク(codic.jp)
素人かつ英語苦手だとまず変数名や関数名をどうするかで悩むんだよね
まぁahkは日本語で変数名かけるけども

235:名無しさん@お腹いっぱい。
15/09/15 19:52:35.84 Eux4ANEd0.net
>>234
真っ白だと思ったらgoogle-analytics.comをブロックしてるせいだった

236:名無しさん@お腹いっぱい。
15/09/15 20:01:13.60 tUDP7N170.net
解析ブロックしたら表示されないってひどい作りだなw

237:名無しさん@お腹いっぱい。
15/09/15 20:09:23.81 Eux4ANEd0.net
まあ、サービス改善にもなるかもしれないし別にいいけどw

238:名無しさん@お腹いっぱい。
15/09/15 22:47:08.77 zhVi9RCM0.net
USBキーボードとPS/2キーボードで挙動が異なる現象に遭遇
F1 & H::send,{Blind}{Left}
でShiftも押した場合に
USBキーボードだとShift+←と同じ挙動
PS/2キーボードだと1文字だけShift+←,その後はShift+Hと同じ挙動です.
この現象は既知なのでしょうか?
VerはWin8.1が1.1.22.04でWin7 32bitが.1.22.06です.2台のPCで同じ現象が見られています.

239:名無しさん@お腹いっぱい。
15/09/16 00:52:28.10 tU5xmvOn0.net
>>233
文字選択のほうがわかりやすいかとおもってそちらを例えに出しましたが
例えがまずかったですね +{Left}だとまずいです すいません
前にここでPoserの質問をしていたのは自分ですが
今回やりたいことは、Poserのビューポート上で、左クリック+ドラッグ操作をする時にマウスの動きをいじりたかったのです
具体的にはマウスを左クリックしながら右にドラッグすると上方向にドラッグしたことになり、
左にドラッグすると下にドラッグしたことになることにしたかったのです
Poserのビューポート操作を自分がよく使う3Dアプリと同じように操作できるように設定したいのですがうまくいきません
その3Dアプリだと左右ドラッグ操作で発動するショートカットがあるのですがPoserではこれが上下ドラッグになっているのです

240:名無しさん@お腹いっぱい。
15/09/16 01:23:31.20 TmYsYnFU0.net
強制的にそういう操作するならやっぱりwhileだな。mousemoveの合わせ技だ。
要するに指定方向に差分だけ進むようにすればいいんだけど、その分While監視だと処理は重くなる

241:名無しさん@お腹いっぱい。
15/09/16 05:13:15.83 H3wp36km0.net
UserAgentを変更してURLからHTMLを取得して変数に格納する方法を教えて下さい。
使ってるのは AutoHotkeyU32 (v1.1.22.06) です。
二つのモジュールを使って試みたもののやり方が悪いのか成功せず。
#Include %A_ScriptDir%/httpQuery.ahk
; URLリンク(www.autohotkey.com)
#Include %A_ScriptDir%/UrlDownloadToVar.ahk
; URLリンク(www.autohotkey.com)
URL = URLリンク(www.ugtop.com)
UserAgent = Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
# httpQuery
html := ""
httpAgent := UserAgent
httpQuery(html, URL)
file := FileOpen("output-A.html", "w")
file.Write(html) ; 空になる
file.Close()
# UrlDownloadToVar
html := UrlDownloadToVar(URL, "20932", "", "", "", "", "", UserAgent) ; 20932 == euc-jp
httpAgent := UserAgent
httpQuery(html, URL)
file := FileOpen("output-B.html", "w")
file.Write(html) ; 文字化けする
file.Close()

242:名無しさん@お腹いっぱい。
15/09/16 05:15:54.43 H3wp36km0.net
すいません。二番目のソースに一番目のソースが混ざりました
# UrlDownloadToVar
html := UrlDownloadToVar(URL, "20932", "", "", "", "", "", UserAgent) ; 20932 == euc-jp
file := FileOpen("output-B.html", "w")
file.Write(html) ; 文字化けする
file.Close()

243:名無しさん@お腹いっぱい。
15/09/16 12:34:50.08 5kMnRgYx0.net
>>241-242
"20932" → "euc-jp"
これで文字化けは直ると思ったが、不完全だった。(何でだろ?)
ちなみに、このスレのURLで実験したが、問題なかった。
文字化けする
UrlDownloadToVar("スレリンク(software板)l50", "")
文字化けしない
UrlDownloadToVar("スレリンク(software板)l50", "shift_jis")
回答にならなくてスマン

244:名無しさん@お腹いっぱい。
15/09/16 17:55:15.94 H3wp36km0.net
>>243
今しがた、同じ条件で試してみたんですが、今度は文字化けなく成功しました。
初めに"euc-jp"と指定したときは確かに文字化けしたような気がするんですが……。
(そういえばその後にバージョン情報を調べるついでにAHKを最新版にしたので、
もしかしたらそのことが関わっているのかもしれません)
一応エディタをアンドゥしまくって失敗時のソースを復元し、再度実行してみても成功しました。
ともかく、解決できてよかったです。ありがとうございました。

245:名無しさん@お腹いっぱい。
15/09/16 18:31:53.58 5kMnRgYx0.net
>>244
今気付いて>>243を再確認してみた。
html := UrlDownloadToVar(URL, "euc-jp", "", "", "", "", "", UserAgent) ; 20932 == euc-jp
MsgBox, % html
ファイルに出力しないで直接MsgBoxで見たら文字化けは無かった。

246:名無しさん@お腹いっぱい。
15/09/17 00:08:29.44 0GNCebUh0.net
>>245
こちらで再試行したときはファイル出力も成功しました。
一応、バージョン情報も確認してみてください。
いつの間にか2chのdatが取得できなくなってたので、
早速UrlDownloadToVarを利用したスクレイパーを書いてみました。
URLリンク(pastebin.com)
>m ^と$が各行の行頭・行末にマッチするようになる。
作る途中で気付いたんですが、これ m) 働いてなくないっすか
RegExMatch("
(
aaa
bbb
ccc
)", "m)^(bbb)", $)
MsgBox % $1 ; 空文字

247:名無しさん@お腹いっぱい。
15/09/17 00:13:06.45 0GNCebUh0.net
あとこれも初めて知った。トラップが多い!
/* 複数行コメントの終わりが単独だと
*/
ToolTip, 実行される
Sleep, 2000
/* 複数行コメントの終わりが単独でないと */
ToolTip, 実行されない
Sleep, 2000

248:名無しさん@お腹いっぱい。
15/09/17 01:13:17.18 WqwVZrqD0.net
>>240
そうですか ちょっとためしてみます どうもです
>>247
これが原因だったんだ たまにスクリプトが動かないことがあったけど ためになった

249:名無しさん@お腹いっぱい。
15/09/17 03:54:06.32 3HuGyT6d0.net
初心者向けのページ教えて

250:名無しさん@お腹いっぱい。
15/09/17 08:01:13.31 qHToz6EC0.net
>>1

251:名無しさん@お腹いっぱい。
15/09/17 08:08:55.12 kM3ONwaq0.net
>>246
mオプションでのデフォルトの「行末」は\r\n
ヒアドキュメントの改行コードは\nなのでマッチしてない
RegExMatch("aaa`r`nbbb`r`nccc", "m)^(bbb)", $)
or
RegExMatch("
(
aaa
bbb
ccc
)", "m`n)^(bbb)", $)

252:名無しさん@お腹いっぱい。
15/09/17 08:10:11.30 kM3ONwaq0.net
×「行末」 ○「改行」

253:名無しさん@お腹いっぱい。
15/09/17 10:41:54.18 ji2+y1tj0.net
ウィンドウの右上の閉じるボタンの位置情報取得ってどうすればできます?

254:名無しさん@お腹いっぱい。
15/09/17 11:09:40.82 wVWznDfL0.net
SysGetで
SM_CXSIZE (30)
SM_CYSIZE(31)
SM_CYFRAME(33)
SM_CXFRAME(32)
あたりの値を求め、ウィンドウサイズ左端から逆算して割り出す
尚、最大最小?等のアイコンがあるかどうかはWinGet, Styleで調べられる

255:名無しさん@お腹いっぱい。
15/09/17 11:10:43.33 wVWznDfL0.net
×左端から
○右上端から
寝ぼけたすまん

256:名無しさん@お腹いっぱい。
15/09/17 11:37:01.52 +U+k5cUm0.net
width-30,10あたりを適当に押してるけどw

257:名無しさん@お腹いっぱい。
15/09/17 12:22:08.24 A/7kw9Bt0.net
>>253
その情報を取得して何がしたいか分からないけど、
例えば、「閉じる」ボタンを押したらウインドウを閉じるんじゃなく最小化したいとかなら、
以下の関数使えばマウスポインタの位置が「閉じる」ボタンの上か調べられる
>【 名 称 】 Autohotkey マウス関数群 (コピペ/組込用)(MUS.ahk)
>【製作言語】 AutoHotkey Scripts (URLリンク(www.autohotkey.com))
>【 更新日 】 2012.11.11
>【 製作者 】 eamat.
>【 URL 】 URLリンク(www6.atwiki.jp)
の、MUS_GetTitleBarPos()関数で「20」が返って来るかどうか。
↑何か質問の答になってないようなので、別な答を。
力技だけど、閉じるボタンの画像を用意して「ImageSearch」で位置を取得する。

258:名無しさん@お腹いっぱい。
15/09/17 16:27:55.00 4LAmt04I0.net
Firefoxのキーボードショートカット
URLリンク(support.mozilla.org)
Firefoxというブラウザのキーボードショートカット
「次のタブグループ」:Ctrl+`
をAutohotkeyからFirefoxへ入力させたいんですが
Send , ^`
とやっても無反応で
Send , ^+@
とやるとどうも「前のタブグループ」:Ctrl+Shift+`
が発動します
意図したとおり、「次のタブグループ」、「前のタブグループ」のキーを入力させるにはどうすればいいでしょうか

259:名無しさん@お腹いっぱい。
15/09/17 16:57:47.86 F1JlH5P90.net
>>258
手動で試してみたが次のタブグループは日本語キーボードだと反応しない?
> 補足: Customizable Shortcuts 拡張機能を用いて、キーボードショートカットをカスタマイズすることができます。
変えたらできるかも未確認
×次のタブグループ Ctrl + `   一部のキーボードレイアウトでのみ使用可
○前のタブグループ Ctrl + Shift + `  一部のキーボードレイアウトでのみ使用可
前のタブグループ
×Send ^`
○Send ^`` ; エスケープ
○Send ^+@ ; 上と同じ意味

260:名無しさん@お腹いっぱい。
15/09/17 17:03:19.64 F1JlH5P90.net
補足
A → Shift + a
` → Shift + @
同じ意味になる
Ctrl + ` → Ctrl + Shift + @
Ctrl + Shift + ` → Ctrl + Shift + @

261:名無しさん@お腹いっぱい。
15/09/17 17:23:23.84 0GNCebUh0.net
>>251
なるほど、そういうことでしたか。ありがとうございます。

262:名無しさん@お腹いっぱい。
15/09/18 16:38:39.51 MADHZaul0.net
>>254
やってみたけどうまくいかない。実測では50くらいあるのにフレームとサイズ合わせても50に届かない。なんでだろう

263:名無しさん@お腹いっぱい。
15/09/18 18:00:02.89 9G09CoR10.net
環境書いてないからわからんが
エアロ(非クラシック)だと閉じるボタンだけ他より横に長い
あと解像度の高いモニタでDPI 100%超の設定で使ってると取得値が変わるのかも
うちは最小ボタン横にツールチップ表示させてるが
厳密なサイズ割り出しまでは必要ないので適当なオフセット値入れてごまかしてる

264:名無しさん@お腹いっぱい。
15/09/18 18:14:57.18 z07x5dup0.net
エアロは取得できないのか。知らんかった

265:名無しさん@お腹いっぱい。
15/09/18 18:23:03.13 9G09CoR10.net
いや取得できないわけじゃないけど最大&最小と閉じるボタンとでボタンのサイズ違うでしょ
エアロがどうかっていうよりXP以降の仕様かな、詳しくはわかんない
ちなみにエアロかどうかは
DllCall("dwmapi\DwmIsCompositionEnabled","IntP",_ISENABLED)
で取得できる

266:名無しさん@お腹いっぱい。
15/09/19 02:09:26.93 AqLWnhbc0.net
戻り値を見る限り成功してるっぽいんですが、キャプチャが空なのは何故でしょうか?
ret := RegExMatch("test", ".+", "$")
msgbox,
(
ret: %ret%
$: %$%
)

267:名無しさん@お腹いっぱい。
15/09/19 02:22:22.86 y9C3jt2l0.net
"$" → $

268:名無しさん@お腹いっぱい。
15/09/19 02:38:47.25 AqLWnhbc0.net
おお……ありがとうございます

269:名無しさん@お腹いっぱい。
15/09/19 02:40:53.93 zNQEN6xY0.net
>>266
たぶん勘違いしてるのだと思うけど
>RegExMatch(Target, Pattern [, OutputVar = "", StartingPos = 1])
これはOutputVar引数に何も書かなかった場合に「""」(つまり空)と指定したことになりますよって意味ね
ダブルクォーテーションで括って下さいって意味ではない

270:名無しさん@お腹いっぱい。
15/09/19 02:46:55.06 AqLWnhbc0.net
>>269
まさにその通りの勘違いです
ご解説ありがとうございます

271:名無しさん@お腹いっぱい。
15/09/20 08:15:12.82 ZeFnM2lq0.net
Guiのウィンドウ番号からウィンドウタイトルを取得する方法はありますか?

272:名無しさん@お腹いっぱい。
15/09/20 09:10:41.16 Q0X8RffF0.net
任意のキー入力、任意のマウスボタンやマウスの動きを待機することって出来ますか?
たとえば、スクリーンセーバーから復帰する時は、キーポードやマウスの任意の動きで反応しますよね?
それと同様に、
いかなる操作にも反応できる状態で待機して、検出した瞬間に次の処理へ進むようにしたいのです。

273:名無しさん@お腹いっぱい。
15/09/20 09:35:44.10 8fr300CT0.net
任意っつーとユーザーが決めた特定のキーや操作(optional) って思ってしまうけど
スクリーンセーバー解除はどんな操作でもOK (any)って意味だよね
OnMessageでフックかければ大抵の挙動は拾えるんじゃない?

274:名無しさん@お腹いっぱい。
15/09/20 18:47:43.66 cLEyLRXR0.net
>>271
作成するときにウィンドウハンドル保存すれば?
Gui, 2:New, HwndVar2, BBB
Gui, Add, Text,, BBB
Gui, Show
Gui, New, HwndVar1, AAA
Gui, Add, Text,, AAA
Gui, Show
WinGetTitle, Title1, ahk_id %Var1%
WinGetTitle, Title2, ahk_id %Var2%
MsgBox % Var1 "`n" Var2 "`n`n" Title1 "`n" Title2
Return

275:名無しさん@お腹いっぱい。
15/09/20 19:17:11.44 ZeFnM2lq0.net
>>274
ああ無理っぽいですかまぁでもそれで事足りますセンキューベリマッチ

276:名無しさん@お腹いっぱい。
15/09/20 22:07:18.39 EytMjWIu0.net
words := [3,1,8]
Sort,words
res =
for i, word in words
{
res := res i word "`r`n"
}
MsgBox % res
こうしても、ソートされていません
文字列をソートしたかったのですが出来なかったので
数字にしてみたのですが、やはりされていませんでした
どこが間違ってるのでしょうか?

277:名無しさん@お腹いっぱい。
15/09/20 22:28:55.68 AtBTsPzi0.net
>>276
Sortコマンドはオプションを省略すると区切り文字が改行になる
と表の中に紛れて分かりにくいけどwikiに書いてある
words := "bbb`nccc`naaa"
Sort, words
MsgBox, % words
カンマ区切り時文字列をソートするならこんな感じ
words := "bbb,ccc,aaa"
Sort, words, D`,
MsgBox, % words

278:名無しさん@お腹いっぱい。
15/09/21 05:30:20.29 FQ68Fwod0.net
他の言語からの類推から
配列にしてからソートするのだと思いこんでいたのですが
そもそも配列にする必要もなかったのですね
ありがとうございました

279:名無しさん@お腹いっぱい。
15/09/21 08:57:43.49 gz/D8cNZ0.net
逆にAHKってSortコマンドで配列内のソート出来るの?

280:名無しさん@お腹いっぱい。
15/09/21 09:05:50.26 FX6AvoOw0.net
ていうかahkって配列あったのかw
今まで一度も必要としたことがない

281:名無しさん@お腹いっぱい。
15/09/21 12:57:01.93 I8YrMLMK0.net
IME_GET()がまともにIMEのモードを取得できてないとずっと悩んでいたけど
単にIME.ahkのバージョンが古いだけだったわ

282:名無しさん@お腹いっぱい。
15/09/21 18:51:14.14 xY99p/h30.net
>>281
>単にIME.ahkのバージョンが古いだけだったわ
なぬっ!?っと思ってすぐさま確認したら「IME20121110.zip」のままじゃねーかよ。
でも、WheelScroll.ahkの新しいヤツ、「WheelScroll20150711.zip」がゲットできたから良かった。
さmくす。

283:名無しさん@お腹いっぱい。
15/09/22 20:15:53.44 IXkpDD1f0.net
>>273
ちょっと忙しくてまだ検証できてない。
しばらく先になるけど必ず調べるから。
情報ありがとう!

284:名無しさん@お腹いっぱい。
15/09/23 22:17:09.28 JYxXadw30.net
AutoHotkey v1.1.22.06をモバイルキーボードで使っているのですが
本体の小ささからファンクションキーが存在しないため、
*1::keyWait, 1, T0.25
 if ErrorLevel
  send,{Blind}{F1}
 else
  send,{Blind}1
 keyWait, 1
 return
こんな感じで長押しするとファンクションキーを呼び出せるようにしてみました
しかし高速で数字キーを1,2,3と入力した場合3,2,1と出力されてしまいます
調べたところkeyWaitはマルチスレッド処理がなされず
割り込んだ順で処理されるのが理由だとわかりましたが、何か他に方法はないものでしょうか?
テンプレにあるAutoHotkey_Hでexampleを元にマルチスレッドを試してみましたが
こちらでも同じ結果になりました(自分の理解が足りないせいかもしれませんが)

285:名無しさん@お腹いっぱい。
15/09/24 02:03:16.94 ylp5wp8j0.net
>>284
SetTimer使えばいけそうな気がしたけど
やってみたら同じキーを連打したときうまくいかなかった
URLリンク(pastebin.ca)

286:名無しさん@お腹いっぱい。
15/09/24 04:35:19.63 Rx/njl7o0.net
キーを押しっぱなしにすると少しの遅延のあと連打されるじゃないですか
あの遅延を短くするにはどうすればいいんですか?

287:名無しさん@お腹いっぱい。
15/09/24 04:44:04.09 Rx/njl7o0.net
ああこれAHKで書かなくてもWindowsで設定できるんですね
失礼しました

288:名無しさん@お腹いっぱい。
15/09/24 08:51:02.84 npkfS45d0.net
>>284
先頭にCriticalを追加でどう?

289:名無しさん@お腹いっぱい。
15/09/24 13:31:29.29 5yaO6Szn0.net
対象のファイル・フォルダが移動中でないか調べる方法はある?(移動はAHKのコマンド経由だとは限らない)

290:名無しさん@お腹いっぱい。
15/09/24 14:30:15.85 5yaO6Szn0.net
↑が無理でしたら、FileMove等の移動・コピーが完了するまで待たせる方法はありますか?v2

291:名無しさん@お腹いっぱい。
15/09/24 14:41:45.63 VW4hw6oq0.net
移動やコピーのコマンドって移動が終わるまで次の行には行かないんじゃない
Fastcopyみたいなソフト使ってコピーするならRunwaitで終わるまで待つとか

292:名無しさん@お腹いっぱい。
15/09/24 15:06:56.03 Q+MPQBZ30.net
フォルダのファイルをloopでリストアップして変数に入れて突き合わせとか。
Dropbox完了まで待つってのがアッブローダーにあるからそれみて参考にすれば?

293:名無しさん@お腹いっぱい。
15/09/24 16:26:55.60 5yaO6Szn0.net
>>291-292
参考にしますセンキューベリマッチ
>移動やコピーのコマンドって移動が終わるまで次の行には行かないんじゃない
についてですがこれは本当ですか?
何故か一度に大量のファイルをリネームすると失敗してるファイルがあります
例えば"D:\image\"というフォルダに900kb程度のpngファイルを複数入れたとします
ファイルは連番で先頭には"黒"が付いてたとして、"黒"を"白"にしてまた"黒"に戻すスクリプトを書きました
(フォルダの中身 黒001.png, 黒002.png…)
Loop, 1000
{
Var := A_Index
LoopFiles, D:\image\黒*.png ; 黒を白に変える
FileMove, % A_LoopFileFullPath, % StrReplace(A_LoopFileFullPath, "黒", "白")
LoopFiles, D:\image\白*.png ; 白を黒に戻す
FileMove, % A_LoopFileFullPath, % StrReplace(A_LoopFileFullPath, "白", "黒")
LoopFiles, D:\image\*.png ; 白が残ってたらエラー
{
If InStr(A_LoopFileFullPath, "白")
{
MsgBox, % "Index" Var " Error"
Break 2
}
}
}
MsgBox, End
フォルダ内のファイルが少ないと何回やってもエラーが出ないのですが、200枚くらいだと頻繁にエラーが出ます

294:名無しさん@お腹いっぱい。
15/09/24 16:30:18.04 88R9gtA70.net
次に行かないってことはないと思う。大量に処理するとおそらく処理漏れがある。
だから正確性ならLoopで付きあわせってことになると思う。

295:名無しさん@お腹いっぱい。
15/09/24 19:13:11.45 5yaO6Szn0.net
>>292
DropBoxさっき入れたので何となくの解釈ですが最後にSleep長めに入れて対策してますね。結局はそれしかないんでしょうか
>>294
リネーム自体はFileMoveの戻り値を利用して失敗したらループさせる方法で解決できるんですが
移動後に他のコマンドを実行したい場合でも確実に移動・コピーの完了を待たせる手段はないものでしょうか?

296:名無しさん@お腹いっぱい。
15/09/24 20:09:35.39 6lvDUJJX0.net
URLリンク(ux.getuploader.com)
左長押しクリックに機能追加。長押しで分岐以外にも選択文字のオートコピー、ドラッグスクロールとダブルクリック置き換えをつけてみたよ 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


297:名無しさん@お腹いっぱい。
15/09/24 21:19:30.68 xGWYHInQ0.net
>>295
動作確認してないのでいい加減なこと言うようだけど、
コピー(移動)前に元ファイルのファイル容量を覚えといて
コピー先で該当ファイルがそのファイル容量になったかを監視するとか?

298:名無しさん@お腹いっぱい。
15/09/24 21:23:22.95 6lvDUJJX0.net
容量もだけど更新日時や作成日時も見ておくほうがより正確。バイト数だけだと偶然一致があり得るんだよね

299:名無しさん@お腹いっぱい。
15/09/24 22:04:43.33 crjp70zC0.net
>285,288
Criticalコマンドで解決したかに見えたのですが
入力順を保持するためのバッファ処理が
キー長押し時にもキーリピート分で走ってしまうため、長押しして離すと
短押しキーが溜まったバッファ分だけ出力されてしまいますね…
命令の記述位置を変えたりコマンド一覧を眺めたりと色々と試していますが
思いのほか簡単にはいかない感じです
何にしてもお二人ともレスありがとうございます
上手く書けたら報告に来ますw

300:名無しさん@お腹いっぱい。
15/09/24 22:42:45.95 5yaO6Szn0.net
>>297-299
センキューベリマッチ

301:名無しさん@お腹いっぱい。
15/09/24 23:29:11.19 UKQc37JF0.net
>>299
うちではうまく行ってるけどどうじゃろか
*1::
*2::
*3::
 tim .= tim ? "" : A_TickCount
return
*1 up::
*2 up::
*3 up::
 key := (A_TickCount-tim>250 ? "F" : "") . SubStr(A_ThisHotkey,2,1)
 send,{Blind}{%key%}
 tim := ""
return

302:名無しさん@お腹いっぱい。
15/09/25 09:11:26.74 6ghJoy8F0.net
>>296
グッジョブ

303:301
15/09/25 10:42:39.09 ly3ZkqvY0.net
ファンクションはキーUP待たないで発射したいのか、ちょい修正
*1::
*2::
*3::
  tim .= tim ? "" : A_TickCount
  if (A_TickCount-tim>250 && !flg){
    key := "F" . SubStr(A_ThisHotkey,2,1)
    send,{Blind}{%key%}
    flg := 1
  }
return
*1 up::
*2 up::
*3 up::
  if (!flg) {
    key := SubStr(A_ThisHotkey,2,1)
    send,{Blind}{%key%}
  }
  tim := ""
  flg := ""
return

304:名無しさん@お腹いっぱい。
15/09/25 17:42:07.83 rFOJjuhL0.net
文字列をeuc-jpに変換するにはどうすればいいでしょうか?
普通はStrPutを使うようですが
URLリンク(ahkwiki.net)
ここを見るとeuc-jpを指定しても無効とあり、実際に出来ません

305:名無しさん@お腹いっぱい。
15/09/25 18:46:10.95 s6SkcoIu0.net
そこのページからリンク貼られてる
日本語EUCに関する制限事項
URLリンク(ahkwiki.net)
の方法でもダメなん?

306:名無しさん@お腹いっぱい。
15/09/25 20:08:40.09 rFOJjuhL0.net
ありがとうございます。リンク先があったんですね
euc-jpにする前にsjisにする必要があるので
変換しようと思ったのですが、うまくできません
str := "あいうえお"
str := StrPut(str,"CP932")
MsgBox % str
のようにやっても、14とか出ます
どうしたらUTF8をSJISに出来るのでしょう?

307:名無しさん@お腹いっぱい。
15/09/25 20:28:49.20 142k8d7b0.net
特定のサイトでOn/Offの連射をしたいのですが、連射はできるのですが、Onの状態で非アクティブまたはブラウザを閉じた場合ONのまま制御ができなくなります。
非アクティブ・ブラウザを閉じた場合Offにしたいのですが、下記では出来ませんでした。宜しくお願いします。
#IfWinActive, ;サイト名
q::
Toggle:=!Toggle
if(Toggle){
SetTimer, z, 500
}else{
SetTimer, z, off
}
IfWinNotActive, ;サイト名
SetTimer, z, off
return
#IfWinActive

308:名無しさん@お腹いっぱい。
15/09/25 20:40:40.11 xYWWmgj10.net
SetTimer, z, 500
で使ってるz:ラベルの最初の方に
IfWinNotActive, ;サイト名
{
SetTimer, z, off
Return
}
を入れとけばいいんじゃない

309:名無しさん@お腹いっぱい。
15/09/25 21:14:42.13 rFOJjuhL0.net
StrPutの返り値は文字列じゃなくてバイト数のようです
ですが説明を読んでも、今ひとつ分かりません
StrPut autohotkey sjis
で検索しても17件しか出てきません
ごく単純に、文字列のエンコーディングを変換するには
どうすればいいのでしょうか?

310:名無しさん@お腹いっぱい。
15/09/25 21:31:03.19 xYWWmgj10.net
>>307
もしくはAuto-executeセクションにアクティブになったウインドウを監視するものをいれるとか
URLリンク(pastebin.ca)

311:名無しさん@お腹いっぱい。
15/09/25 21:58:05.04 KV4jiEIL0.net
>>303
ワーオ、最高!イエース!グレート!
望み通りの動作ですし、keyWaitで試行するより
入力のレスポンスがかなり良くなってます
応用すれば他のキーでも自由に設定できそうですね
これを元にして更に色々チャレンジしてみます
本当に助かりました。ありがとうございます

312:名無しさん@お腹いっぱい。
15/09/25 22:15:33.21 rFOJjuhL0.net
エンコーディング変換という、
ごく当たり前の処理の情報が何故こんなに少ないのでしょうか?

313:名無しさん@お腹いっぱい。
15/09/25 23:23:39.30 T68s/oJQ0.net
>>1スレ立て乙

314:名無しさん@お腹いっぱい。
15/09/25 23:43:31.50 TnffJdgb0.net
>>307
頭に中で考えただけなんで、動くか分かんないけど。
#IfWinActive, ;サイト名
q::
Toggle:=!Toggle
if(Toggle){
SetTimer, z, 500
}else{
SetTimer, z, off
}
return
#IfWinNotActive, ;サイト名
q::
Toggle:=false
SetTimer, z, off
return

315:名無しさん@お腹いっぱい。
15/09/26 00:30:30.54 djAj203U0.net
非アクティブ化で切りたい仕様のようだから
zの中で非アクティブチェックするのがいいと思うよ

316:名無しさん@お腹いっぱい。
15/09/26 01:30:54.81 iUEIDkcX0.net
>>314だす
酔っぱらった頭で考えただけあって滅茶苦茶なコードですた・・・ハジカシイorz
もうちょっと飲も

317:名無しさん@お腹いっぱい。
15/09/26 01:51:27.08 xmb8Y91P0.net
酔っぱらいはバグ人間。人間に非ず

318:名無しさん@お腹いっぱい。
15/09/26 01:51:59.22 pjw6RnBc0.net
>>309
StrPutってこのExampleにあるStrPutVar使えばいいんじゃないの
URLリンク(ahkwiki.net)

319:名無しさん@お腹いっぱい。
15/09/26 02:09:22.78 JeI01QvY0.net
返信遅くなりました
>>308
>>310
丁寧にありがとうございます。無事思い通りの動作ができました
上記でどうにかする事ばかり考えてました・・・
>>314
私は酔っ払っていませんでしたが、助力を頂く前にそのコードを試してました・・・

320:名無しさん@お腹いっぱい。
15/09/26 03:22:33.25 djAj203U0.net
文字列の中でオブジェクトも展開できたらいいのに

321:名無しさん@お腹いっぱい。
15/09/26 09:03:26.15 LL2F5NZg0.net
>>318
ありがとうございます
StrPutVarは第二引数に変換後の文字列を入れるようなので、
StrPutVar(string, ByRef var, encoding)
{
; Ensure capacity.
VarSetCapacity( var, StrPut(string, encoding)
; StrPut returns char count, but VarSetCapacity needs bytes.
* ((encoding="utf-16"||encoding="cp1200") ? 2 : 1) )
; Copy or convert the string.
return StrPut(string, &var, encoding)
}
str := "あいうえお"
out := ""
StrPutVar(str,&out,"CP932")
MsgBox % out
とやってみましたが、何故か何も表示されません
変換元エンコーディングを指定する場所がないのが気になりますが。
コードはUTF-8で記述しています

322:名無しさん@お腹いっぱい。
15/09/26 09:38:13.56 LL2F5NZg0.net
URLリンク(www.autohotkey.com)
このページの
StrPutVar(string, ByRef var, encoding)
{
VarSetCapacity( var, StrPut(string, encoding)
* ((encoding="utf-16"||encoding="cp1200") ? 2 : 1) )
return StrPut(string, &var, encoding)[color=red],VarSetCapacity(var,-1)[/color]
}
を使ったら、何かに変換されました
何故エンコーディング変換にcolorなどが出てくるのか、よく分かりませんが。
表示させても文字化けしてるので、
正しく変換されているのかはまだ分かりません

323:名無しさん@お腹いっぱい。
15/09/26 11:05:39.96 rhXvYJM20.net
nkf32.dll辺りと連携した方がいいと思う>文字コード変換
過去ログにahkから呼び出すためのスクリプトがあったはず

324:名無しさん@お腹いっぱい。
15/09/29 03:04:48.46 q4T3gI780.net
クリップボードにファイルがあるときにその総数が知りたいんですが
どうにも上手く取れないので助言をください
DllCall("OpenClipboard", Ptr, 0)
hDrop := DllCall("GetClipboardData", Int, 0xF) ; CF_HDROP
cnt := DllCall("DragQueryFileW", Ptr, hDrop, Int, -1, WStr, 0, Int, 0)
tooltip hDrop:%hDrop%`ncnt:%cnt%

325:名無しさん@お腹いっぱい。
15/09/29 03:36:36.43 Rdhq11FG0.net
エクスプローラなどででコピーしたものなら
Loop,Parse,Clipboard,`r,`n
{
MsgBox,%A_LoopField%
}
こういうので数えられるけど、そういう話ではないのかな

326:名無しさん@お腹いっぱい。
15/09/29 04:50:48.76 q4T3gI780.net
いや、そういう話です。そんなに簡単に書けたとは……
昔、ファイルをコピーするとクリップボードに改行区切りのパスが入ると聞いて
メモ帳でCtrl+Vしても駄目だったので環境依存の仕様か何かだと思っていたんですが、
AHKのClipboardが動的に取り計らってくれるという意味だったんですね
今知れて良かったです。ありがとうございました

327:名無しさん@お腹いっぱい。
15/10/01 09:12:35.25 dHOVCF+u0.net
WinGet, hwnd, ID, ahk_exe firefox.exe
Acc := Acc_ObjectFromWindow(hwnd)
Acc := Acc_Child(Acc, 4) ; Acc Info Viewerで取得したアドレスバーのパス
Acc := Acc_Child(Acc, 20)
Acc := Acc_Child(Acc, 4)
Acc := Acc_Child(Acc, 2)
MsgBox % Acc.accName
このようにしてACCでFirefoxからURLを取得しようとしたのですが子の取得で失敗するので正解を教えて下さい
本来は再帰的に目的のオブジェクトを探したり変更したりしたいのですが

328:名無しさん@お腹いっぱい。
15/10/01 17:22:21.33 Ukp2Mk/E0.net
教えて下さい。
AHK v1.1.22.02 Unicode 64bit / Win7 64bit Home
マウス左クリックを何かのキーに置き換えます。

F9::LButton
又は
F9::Send,{LButton}
ところが、タスクトレイの自身のAHKアイコンの右クリックメニューの中では動作しません。
しかし、同時実行中の自分以外のAHKアイコンに対しては動きます。
何故このような挙動になるのでしょうか?

329:名無しさん@お腹いっぱい。
15/10/01 17:46:44.28 ORi0pFmB0.net
仕様
自メニュー表示中は他のスレッド処理止まってる
他者(他の多重起動中の他のahkスクリプト)は別タスクで動いてるので関与可能

330:名無しさん@お腹いっぱい。
15/10/01 17:47:57.52 9/SxiS2N0.net
文字化けをどうにか修正出来ませんでしょうか?。
よろしくお願いします。
FileAppend,
(
ダメ文字「~~~」
)
, .\ダメ文字.txt, CP932

331:名無しさん@お腹いっぱい。
15/10/01 17:56:12.55 9/SxiS2N0.net
すみません、エスケープ文字なしでの修正法です。
ダメ文字「~`~`~`」

332:名無しさん@お腹いっぱい。
15/10/01 19:33:38.34 Ukp2Mk/E0.net
>>329
自分の環境の問題じゃないと知って安心したよ。ありがとう!

333:名無しさん@お腹いっぱい。
15/10/02 01:17:10.85 JUesQH/70.net
>>330
旧版(Autohotkeyで検索するとTopにくる)を使ってるなら
>>1 のリンク先から最新版をDLしてみては?
どうしても旧版じゃないといけないならダメ文字対策版があったはず。
もしくはダメ文字対策の関数が過去ログにあるはず。

334:名無しさん@お腹いっぱい。
15/10/02 01:25:54.88 JUesQH/70.net
>>333 は関係なかったので無視して。

335:名無しさん@お腹いっぱい。
15/10/02 03:04:43.07 JUesQH/70.net
>>330
スクリプトを強制的にShift-jisで読み込むようにする。
スレリンク(software板:503番)
互換性
URLリンク(sites.google.com)

もしくは駄目文字関数(以前、ここで拾った関数)を通す。
エスケープ文字なしって条件なら意味ないけど
hoge = ダメ文字「~~~」
FileAppend, % RegEscape(hoge), .\ダメ文字.txt, CP932
return
RegEscape(pattern) {
Return RegExReplace(RegExReplace(pattern, "\s", "\s")
, "(?P<pre>(?:^|[^\x80-\x9F\xE0-\xFC])[\x80-\x9F\xE0-\xFC])"
. "(?P<esc>[\[\]\{\}\|\^\\])"
, "${pre}\${esc}")
}

336:名無しさん@お腹いっぱい。
15/10/02 13:05:39.25 Y7lmOL750.net
>>335
ありがとうございます。
試行錯誤してみます。

337:名無しさん@お腹いっぱい。
15/10/03 01:15:25.13 4vFDVsLh0.net
AHK v1.1.22.07 Unicode 32bit / Win7 32bit Home
アドバイスお願いします。
LAlt::display("Down")
LAlt Up::display("")
display(str) {
tooltip,%str%
}
[LAlt]を押すと、Down表示以外に{LAlt Up}イベントが出力されます。
それを回避したいです。

338:名無しさん@お腹いっぱい。
15/10/03 04:43:36.82 hVgXFCGi0.net
>>337
何を言いたいのかよく分からんけど、LAlt Upを無効にしたいなら
LAlt Up::return

339:名無しさん@お腹いっぱい。
15/10/03 10:06:20.40 4vFDVsLh0.net
>>338
アドバイスありがとうございます。
KeyHisotryが
A4 038 h  d  1.83  LAlt
A4 038 i  u  0.00  LAlt
A4 038 h  u  0.48  LAlt
となるので、2行めの i u 0.00 LAlt を出ないようにしたいです。

当初、
flag==1のとき LAltを1回押すごとにDown/Upのトグル動作
flag==0のとき、通常動作
を意図してスクリプトを作ったのですが、flag==1のときにLAltを押しても
Down/Upがトグルしなかったので調べたところ、
LAltを送る記述をしなくても、KeyHistory に LAlt Upが出ていました。

340:名無しさん@お腹いっぱい。
15/10/03 10:58:49.22 hVgXFCGi0.net
>>339
key historyは入力を記録しているだけなのでScriptに影響しない。
スクリプトの記述ミス、またはフラグ管理を失敗していると思われる。
f9:: ; f9でフラグ変更
!f9::
if flag = 2
send, {alt up}
flag := !flag
tooltip, %flag%
return
LAlt:: ; ※AutohotkeyのKey Historyでは動作しない。
if !flag {
send,{alt}
} else if (flag = 1) {
send,{alt down}
flag = 2
tooltip, %flag%
} else if (flag = 2) {
send,{alt up}
flag = 1
tooltip, %flag%
}
return

341:名無しさん@お腹いっぱい。
15/10/03 20:02:27.44 4vFDVsLh0.net
>>339
スクリプトまでありがとうございます。
Key Historyは入力記録だけで出力判定には使えないのですね。
勘違いしていたので助かりました。
>>339を実行し、[LAlt]を押しっぱなしで KeyMillというツールで
キーイベントを見たところ、LAlt Downが1~4回(回数は毎回違う)、LAlt Up 1回を
繰り返す状態になっていました。
環境依存の可能性が高そうなので、そちらから調査してみます。
アドバイスありがとうございます。

342:名無しさん@お腹いっぱい。
15/10/03 20:04:22.86 4vFDVsLh0.net
>>341中の ">>339"は、">>340"の間違いです。失礼しました。

343:名無しさん@お腹いっぱい。
15/10/03 21:49:15.86 3qI8Ooii0.net
すいません。
最近使い始めてあまりわかってないのですが、スクリーンロックがかかった状態だとこのソフトは効かないものですか?

344:名無しさん@お腹いっぱい。
15/10/05 05:04:08.47 SOr6oONc0.net
KeyMillというツールで表示されるVK_OEM_3とはAHKではどのキーに相当するんですか?
IMEをJPからENに変えた状態で半角全角を押すとこれが押された状態になるんですが

345:名無しさん@お腹いっぱい。
15/10/05 07:57:12.97 J07/GDAU0.net
この表によると VK_OEM_3は@ (0xC0) のようだが
URLリンク(homepage3.nifty.com)
Keymill Ver.1.4落としてきてIME ONで全半押したがVK_OEM_ENLWとVK_OEM_AUTOしか出ない
@押すとVK_OEM_3(0xC0 0x1A)が出る
何らかの理由でVK_CONVERT(0x1C 0x079)をC0と読み違えるバグでも発生してるんじゃない?
数値表記を16進数にして確認してみ
win8.1 x64 JPキーボード

346:名無しさん@お腹いっぱい。
15/10/06 09:24:39.81 5sMIM/XR0.net
常駐スクリプトを多重起動しようとしたときに
#SingleInstance forceでもignoreでもなくて
起動中のスクリプトを終了だけして終わりってできないですか?

347:名無しさん@お腹いっぱい。
15/10/06 10:28:50.48 DiXvuaHq0.net
#SingleInstance off で多重起動許可
Autoexecuteセクション内で自力で多重起動チェックして自分以外にも起動してたら
既存スクリプトをKILLして自分もExitApp
多重起動チェックはDetectHiddenWindows,ONにして
A_ScriptHwndと同titleのahkスクリプトを
WinGet IDLastかListで探してやればいい
URLリンク(ahkwiki.net)

348:名無しさん@お腹いっぱい。
15/10/06 12:51:41.03 5sMIM/XR0.net
>>347
ありがとう
がんばって書いてみます

349:名無しさん@お腹いっぱい。
15/10/07 05:53:11.49 Z18ZPhqc0.net
>>348
>>214の方法も考慮してみては?

350:名無しさん@お腹いっぱい。
15/10/07 09:07:42.39 j68mUFxR0.net
>>349
横だが軽く試した感じ 同一スクリプト内でやるのは結構面倒そうだわ
OnMessage()→SendMessageの順だと自身が受け取ってしまう
SendMessage→OnMessage()の順でも先に起動してるスクリプトには届かないっぽい

351:名無しさん@お腹いっぱい。
15/10/07 23:15:12.19 UC2M851Z0.net
MouseIsOver(WinTitle) {
MouseGetPos,,, Win
return WinExist(WinTitle . " ahk_id " . Win)
}
これ時々下のウィンドウがアクティブになってないと動かないんですが一発で動かすにはどうしたらいいんでしょう

352:名無しさん@お腹いっぱい。
15/10/08 06:23:31.59 lCrLMnbM0.net
こんな感じでアクティブウィンドウに対応するメモファイルを開くスクリプト書いたら結構便利だ
vk1Dsc07B & MButton:: muhen_help()
vk1Dsc07B & F1:: muhen_help()
muhen_help(docname=0)
{
  docfolder=%A_ScriptDir%
  docext=.xmind
  doctemplate=_template_
  
  if docname
  {
    fn=%docfolder%\%docname%%docext%
    if !FileExist(fn)
      FileCopy,%docfolder%\%doctemplate%%docext%,%fn%
    run,%fn%
    return
  }

353:名無しさん@お腹いっぱい。
15/10/08 06:24:09.10 lCrLMnbM0.net
  ; プログラミング言語、タイトルだけで引っ掛けるもの  
  IfWinActive,AutoHotKey
    return muhen_help("AutoHotKey")    
  IfWinActive,Ruby
    return muhen_help("Ruby")    
  IfWinActive,Python
    return muhen_help("Python")    
  IfWinActive,TiddlyWiki
    return muhen_help("TiddlyWiki")
  IfWinActive,Dialy
    return muhen_help("TiddlyWiki")
    
  ; その他のアプリケーション
  IfWinActive,ahk_class CabinetWClass
    return muhen_help("Explorer")
  IfWinActive,Mozilla Firefox ahk_class MozillaWindowClass
    return muhen_help("Firefox")
  IfWinActive,Civ IV: Beyond The Sword ahk_class GFC_StdWindowClass
    return muhen_help("Civilization4")
  ; 対応するIfWinActiveがなかったらテンプレートをクリップボードにコピーして
  ; このスクリプトを開いて編集させる
  WinGetActiveTitle,title
  WinGetClass, class, A
  clipboard=`tIfWinActive,%title% ahk_class %class%`n`t`treturn muhen_help("%title%")
  run,edit %A_LineFile%
  run,%docfolder%
  return
}


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