[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 01/22 01:40 / Filesize : 157 KB / Number-of Response : 443
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

AutoHotkey スレッド part17



1 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/11/02(土) 18:27:44.86 ID:h5sjW8CN0]
■配布元
www.autohotkey.com/
本家Autohotkeyは事実上開発停止で、派生のAutoHotkey_L(AHKL)が主流。
新規利用者には日本語の扱いで不具合の無いAHKLのユニコード版の利用を推奨。

■前スレ
AutoHotkey スレッド part16
anago.2ch.net/test/read.cgi/software/1367725658/

■日本語解説等
AutoHotkey Wik
ahkwiki.net
AutoHotkeyを流行らせるページ(ミラー)
ahk.xrea.jp/ (不調時は hdd.s300.xrea.com/ahk/ )
AutoHotkeyJp(過去ログdatあり)
sites.google.com/site/autohotkeyjp/
Autohotkey日本語ヘルプ(chmファイル)
www6.atwiki.jp/eamat/
Autohotkey専用うpろだ
ux.getuploader.com/autohotkeyl/
簡易スクリプト掲示板
pastebin.com/

■派生版
IronAhk (.NET製、クロスプラットフォーム)
www.ironahk.net/
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
www.autohotkey.com/board/topic/39588-autohotkeydll/

テンプレ>>2-10

263 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/05(木) 18:40:18.50 ID:92FJxjTK0]
>>262
エラーは起こっていないのでコンパイルエラーとは言わない
初回意図しない動作になるのは count の中身が指定されていないから
Hoge := A_TickCount - count → Hoge := 1234 - (空)
式として成り立っていないので (空) が返される。

スクリプト起動時に実行されるAuto-executeセクションで
count = 0 を指定すればいい。

15 スクリプトの起動とAuto-executeセクション
ttp://ahkwiki.net/Scripts
--------------------------------------
count = 0
F1::
  Hoge := A_TickCount - count
  tooltip, A_TickCount=%A_TickCount% count=%count% Hoge=%Hoge%
  count := A_TickCount
  return

264 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/05(木) 19:06:11.77 ID:hVYR+JZI0]
>>263
ありがとうございますm(_ _ )m
なるほどAuto-executeセクションに書けばいいんですね

ちなみに
static count=0を書くと私の環境ではコンパイルできないのですがどうしてでしょうか・・・?
[スクリプト仕様]のページを見ると スタティック変数の例↓のように書かれています
AAA(){
 static CalledTimes
 CalledTimes++
 MsgBox,%CalledTimes%回目
}

265 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/05(木) 19:10:53.29 ID:S42OhYbw0]
関数内じゃないから

266 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/05(木) 19:18:06.88 ID:hVYR+JZI0]
よく分かりましたm(_ _ )m

267 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/08(日) 00:09:08.12 ID:HwtBWHvTP]
..

268 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/11(水) 23:18:15.76 ID:VBfa8aHJ0]
GUIのEditコントロールにテキストを追記したいのですが質問があります。
アドバイスもらえませんか。  Windows7 64bit, AHK_L v1.1.13.01 64bit

Q1. GuiControlとControlSetTextの違いは?
 ControlSetText, Edit1, %text%, ahk_class AutoHotkeyGUI
 GuiControl, , Edit1, %text%

Q2. 全部Getしてテキストつなげて再Setだと効率悪そうだけど直接追記の方法ある?
 ControlGetText, oldtext, Edit1, ahk_class AutoHotkeyGUI
 ControlSetText, Edit1, %oldtext%%addtext%, ahk_class AutoHotkeyGUI

すんませんがお願いします。

269 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/12(木) 00:32:26.55 ID:jKLh4qEi0]
>>268
>Q1. GuiControlとControlSetTextの違いは?
 Guiコマンドで作成したGUIに対しては細かい指定ができる GuiControl[Get] を使うのが普通。
 ControlSetText > 指定したコントロール (GUI、メモ帳なのでもいい)
 GuiControl > Guiコマンドで作成したウィンドウ (細かい指定が可能)

>Q2. 全部Getしてテキストつなげて再Setだと効率悪そうだけど直接追記の方法ある?
 GuiControlGet,Var,,ControlID
 GuiControl,,ControlID,%Var%追加テキスト

270 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/12(木) 00:57:34.13 ID:okQADZym0]
>>269
ありがとう。助かった。明日試してみる

271 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/13(金) 04:18:22.59 ID:8uCBpJDm0]
処理Aを無限ループさせるスクリプトをGuiで制御させようとしているのですが
Pauseが上手く動作しません

Gui,Add,Button,,Pause
Gui,show

Label1:
 処理A
 Gosub,Label1
return

ButtonPause:
 Pause,,Label1
return

と言った感じに書いてるのですがGuiのPauseで停止は出来るのですが再開することが出来ません
Gui側で停止と再開を制御するにはどのように記述したらいいのでしょうか



272 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/13(金) 06:07:46.79 ID:HWNZLtYL0]
>>271
Wiki等説明に書いてあるが Pause はホットキーやホットストリング以外が停止する。
つまりGuiも一時停止しているのでボタンは反応しない、たまたま動いているが Pause 第2引数も間違っている。
ttp://ahkwiki.net/Pause

ループ処理は Loop SetTimer を使うべき。

Gui,Add,Button,,Pause
Gui,Show
Var = 1
TEST = 1
SetTimer,Label1,100
Return

Label1:
 ToolTip,% TEST++
 Return

ButtonPause:
 If Var = 1
 {
  SetTimer,Label1,OFF
  Var = 0
 }Else{
  SetTimer,Label1,ON
  Var = 1
 }
 Return

273 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/13(金) 07:20:03.85 ID:8uCBpJDm0]
なるほど!いろいろと勘違いしてたようです。ありがとう

274 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/15(日) 11:46:18.17 ID:Sdf3K9wN0]
【AutoHotkey スレッド part16】のレス164
>IMEの状態を間違えて打った時に、入力文字の削除、IMEの切り替え、再入力をキー一発で行う
というスクリプトを参考にしたAスクリプトと、
「文字入力操作に入ったらマウスアイコンを非表示/動かしたら表示する」、
というBスクリプトが有ります。
そのどちらでもコマンド「settimer」と「input」を使用してます。

これらをCというメインスクリプトで#Includeすると、Bスクリプトが動かなくなります。
原因はどちらでも「input」を使用してるせいだとは思いますが、
「input」以外に文字入力を感知するコマンドを見つけられませんでした。

「input」を代替するようなコマンドとか関数ありませんか?

275 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/15(日) 17:53:03.42 ID:oGoZjFg+0]
>>274
ない 作れ。
原因が分かっているなら#Includeせずに競合しないように書き直せ。

276 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/16(月) 07:52:55.08 ID:+skMhsJJ0]
アプリのスクリプト言語として組み込むような仕組みありますか?

277 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/16(月) 23:27:27.99 ID:k/O+MCiL0]
>>276
意味わからなす

278 名前:名無しさん@お腹いっぱい。 [2013/12/16(月) 23:41:25.41 ID:g9ztIiRs0]
>>276
アプリからAutohotkey呼び出せばいいだけじゃね?

279 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/17(火) 12:35:56.56 ID:HF79/rMZ0]
今プログラム起動の関数作ってるんですけど、引数受付けてくれないんで困ってます

;プログラム起動処理関数
;存在するならウィンドウアクティブ
ProcessRun(pass,option="",active =""){
SplitPath,pass,exe ;パスを分解してファイル名を取り出す
IfExist,%pass% ;exeが存在するかチェック
{
Process,Exist,%exe% ;プロセスが存在するかチェック。
if (ErrorLevel <> 0){
if(active = 1)
WinActivate,ahk_pid %ErrorLevel%
}else{
Run,%pass%,,%option%
}
}
}

これに”A.exe Bファイル”をいれても動きません
半角スペースから後ろをトリムで切り取るとか出来ませんか?

280 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/17(火) 13:12:16.51 ID:kP0TsYoU0]
>>279
RegExReplace() ttp://ahkwiki.net/RegExReplace
正規表現で出来るが、これでいいんじゃない?

ProcessRun(pass,pass2="",option="",active="")
 〜略〜
Run,%pass% %pass2%,,%option%

281 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 11:18:48.94 ID:s1lQxVjC0]
#If hoge1 := WinExist("ahk_class MozillaWindowClass") or hoge2 := WinExist("ahk_class Chrome_WidgetWin_1")
F1::
Tooltip hoge1=%hoge1% hoge2=%hoge2%
return

どちらのウィンドウも起動している状態でF1を押すと
hoge1が常に1
hoge2が常にカラになってしまうのはどうしてでしょうか?



282 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 12:28:18.59 ID:PbPhfpuw0]
論理和は式のどれかが真になった段階で真が確定する
→どれかが真になった段階で式の評価をやめるから

283 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 12:29:25.19 ID:jy55PCzK0]
if文の or だの Andだのでつなげた条件は全部実行してから判定してるとは限らんよ
速度優先でTrueを見つけた時点で次の処理に行っちゃう場合が多いと思うけど
(コンパイラによって判定順がお尻からだったり頭からだったりもする)
必ず通る前提で複数の変数に格納するのは非常に危険なのでやめたほうがいい

284 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 12:36:30.17 ID:s1lQxVjC0]
>>282
本当にありがとうございます
条件を#If hoge1 := WinExist("ahk_class MozillaWindowClass")だけにすると
hoge1がウィンドウハンドルになるのですが
2つ条件を指定するとhoge1が0か1になってしまう理由が分からないです・・・何故ですか?

285 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 15:09:03.48 ID:jy55PCzK0]
>→どれかが真になった段階で式の評価をやめるから

理由書いてあるのに何故ですかって言われても

286 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 15:17:43.51 ID:evB3MxNe0]
#If hoge1 or hoge2
になると思ってるんだろうけど
hoge1 := (WinExist() or hoge2)
になってるんじゃないの

287 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 15:18:37.09 ID:ExaGxbuH0]
>>284
#If (hoge1 := WinExist("ahk_class MozillaWindowClass")) or (hoge2 := WinExist("ahk_class Chrome_WidgetWin_1"))

288 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 15:19:09.34 ID:ExaGxbuH0]
おう、かぶった

289 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 17:38:30.18 ID:G/sv6NM00]
AHKで
「”指定した特定のウインドウのみ”、マウスオーバーでアクティブにする」
というような設定はできないでしょうか?

290 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 17:43:51.70 ID:XPNnQ2CE0]
>>289
できます。

291 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 19:31:27.95 ID:s1lQxVjC0]
>>286 287
ありがとうございます!
なるほど()が足りなかったんですね
たとえ式が1個でも()カッコつけたほうがいいかもですね



292 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 22:05:54.36 ID:R1JvPCpk0]
>>290
>>289はコードくれくれって言ってんだからさ

293 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/18(水) 23:20:31.47 ID:CCaGETPl0]
便乗したいんですねわかります

294 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/19(木) 08:03:06.37 ID:zJOFP78X0]
>>292
なら書いてやれば?

295 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/20(金) 11:47:26.18 ID:mlxG5Hkg0]
>>279です>>280ありがとうざいました。とりあえず、ファイル起動関数でウィンドウ即閉じ、再起動、アクティブ化できるようにしましたので拙いですがはっておきます

;プログラム起動処理関数
;pass2には引数を指定
;optionにはMIN、MAX、HIDE、active、close、reloadを指定できる
ProcessRun(pass,pass2="",option=""){
SplitPath,pass,exe
IfExist,%pass%
{
Process,Exist,%exe%
if (ErrorLevel <> 0){
if(option = "active"){
WinActivate,ahk_pid %ErrorLevel%
}else if(option = "reload"){
Process,Close,%exe%
Process,WaitClose,%exe%
Run,%pass% %pass2%
}
}else{
If (option = "close"){
Run,%pass% %pass2%,,,pid
Process,Wait,%exe%
WinWaitActive,ahk_pid %pid%
WinClose,ahk_pid %pid%
}else{
Run,%pass% %pass2%,,%option%
Process,Wait,%exe%
}
}
}
}

296 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/21(土) 07:25:07.10 ID:58vBPubX0]
windowの表示を並べたり重ねたりするショートカットが欲しいんですが、
どうすれば良いでしょうか??

win+b→win→win→AppsKeyの後に、
d・t・i・uのどれかと言う感じのsendはスマートじゃない気がするのですが、
別の方法で「元に戻す」が使える状態での操作って出来ますか?

297 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/21(土) 07:51:08.00 ID:xmhgxw/C0]
objShell := ComObjCreate("Shell.Application")
Return

F1::objShell.CascadeWindows
F2::objShell.TileHorizontally
F3::objShell.TileVertically
F4::objShell.UndoMinimizeALL

298 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/21(土) 16:21:15.45 ID:Hds2OfjC0]
>>295
ちょっと読みづらいから書きなおしてahkファイルにしてみる
ux.getuploader.com/autohotkeyl/download/34/Processrun.ahk

299 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/22(日) 15:48:50.81 ID:GnUolT8w0]
>>297
簡潔な回答をありがとうございます。
comに付いての知識があまりなく、使用した事も無かったので勉強になりました。

dllとcomの関係、バイナリ互換とwindows・linuxの違い、comの情報を得るのが若干ハードルが高く、
oleviewがVisual Studioで見当たらなくて、Windows Server 2003 Resource Kit Toolsを知ったり・・・
comとレジストリの関係も結構驚きました。

300 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/25(水) 21:38:33.77 ID:HVB25HKc0]
USBTVチューナーに付属の視聴ソフトを起動すると、autohotkeyのホットキー設定がほとんど無効になってしまいます。
ふたたびautohotkeyのホットキー(スクリプト)を有効にするためには、
TV視聴ソフトを終了させるかもう一度autohotkey.ahkを読み込ませないといけません。
どのようにすればこのような不具合を回避できるでしょうか?おしえてください。

TV視聴ソフトは、DigiBestTVというソフトです。windows7 x64 です。autohotkey_Lはx84版のものです。
スクリプト内容が悪いのかと思い、中身を10行ぐらいのものに変えてみましたが結果は一緒でした。
DigiBestTVの設定項目も見ましたがキーバインドを操作するような項目はありませんでした。

301 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/25(水) 22:23:29.53 ID:K9GCSInG0]
>>300
キーボードフック使ってる?
何がどう反応しないのか書いてないし
スクリプト内容見なきゃ分からん。



302 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/25(水) 23:55:37.42 ID:SqymqE420]
多分管理者権限の問題だと思うけど。
そのソフトを起動中でもフォーカスを他の適当なウィンドウに当てたら
ホットキー利いたりしない?
その場合はahkを管理者権限で実行すれば解決。
管理者権限で起動するのがセキュリティ的に好ましくないahkファイルの場合は無理

303 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/26(木) 01:28:33.93 ID:zx6ulNJx0]
>>301
ちょっとわかりませんが、
#InstallKeybdHookっていうのかな。使ってないです。

>>302
autohotkey.exeを右クリして管理者として実行をしてみましたが、変わりありませんでした。
フォーカスを他のウインドウにしても効果ありません。digibestTVが起動してるとahkのホットキーが無効化されます。

反応しないというのは、無変換+J や無変換+G にカーソルやbackspaceを割り当ててるのですが、
そのままJやGを入力してしまいます。しかし一方無変換+Kanaにランチャーを割り当ててるのですが
そちらはちゃんと起動します。.ahkの内容を最小限にしても同じでした。

304 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/26(木) 01:46:39.67 ID:lsxYMpIS0]
.ahkファイル上げれば優しいお兄さんたちがいたずら……じゃなかった手取り足取り教えてくれるよ

305 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/26(木) 02:14:19.72 ID:6ztpcYyA0]
>>303
とりあえず >>301-302 で言われたこと試そう。

#UseHook または #InstallKeybdHook をAuto-executeセクションに書く
OSの機能UAC(ユーザーアカウント制御)を無効にしてみる

306 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/26(木) 07:40:42.88 ID:D0aKtmKJ0]
>>303
Dirt2というゲームをフルスクリーンにしたら
同じようになるので以前このスレを覗いたら
hookは後から実行したほうが有効になるってここで見たので
SettimerでDirt2のウィンドウ状態を監視し、
フルスクリーンになったらahkを再起起動するようにしてた。

恐らく、>>305の方法で解決出来そうな気はするけど

307 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/27(金) 19:54:53.43 ID:jkW/sj760]
winxp sp3 autohotkey_L 32bit バージョン: 1.1.13.01です。

以下のようなWM_COMMAND使う関数作ったのですが、
メモ帳のようにデスクトップにウインドウ開くものは操作できるのに
タスクトレイに常駐してるものが操作できません。
どうしてでしょうか?

ahk_WM_COMMAND(ahk_win_title, ahk_win_class, ahk_cmd){
    SetTitleMatchMode,3
    WM_COMMAND = 0x111
    WinGet, ahk_hwnd, ID, %ahk_win_title% ahk_class %ahk_win_class%
    detecthiddenwindows,ON
    postmessage, WM_COMMAND, ahk_cmd, 0, , ahk_id %ahk_hwnd%
}

※インデントは全角空白です

ちなみに、AutoIt3で作った同じ関数だと問題なくタスクトレイ常駐のものを操作できます。

308 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/27(金) 22:32:25.31 ID:Tm3zwQ4c0]
detecthiddenwindows,ONを関数の外に出したらどうなる?

309 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 00:05:07.06 ID:07ed4QJF0]
303です。
#UseHook または #InstallKeybdHookをスクリプトの一番上においてみましたが変化ありませんでした。
UACは無効です。

スクリプトのautohotkey.ahkは
#InstallKeybdHook
sc07B & H:: Send,{Blind}{BS}
sc07B & i:: Send,{Blind}{Up}
sc07B & l:: Send,{Blind}{Right}
sc07B & k:: Send,{Blind}{Down}
sc07B & j::send,{left}
これだけにしてもdigibestTVを起動するとうごきません。
4回に一回ぐらいちゃんとこのホットキーが動くという感じです。

310 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 00:47:08.71 ID:W6cSodtT0]
>>309
>動かないでも4回に一回ぐらい動く
どっちなんだよ・・・。

#InstallKeybdHook
sc07B & H::MsgBox

これで確実に動くなら Send の問題だろうな
押し下げ間隔変更してみよう。
SetKeyDelay,,100 ttp://ahkwiki.net/SetKeyDelay
一部のゲームやアプリケーションでは押下と押下解除までの間に一定時間が必要

311 名前:307 mailto:sage [2013/12/28(土) 01:13:27.92 ID:0Y0bNe0b0]
>>308
アドバイスありがとう。
ご指摘の通りやってみましたが、タスクトレイのものは操作できませんでした。

また、
ahk_WM_COMMAND(ahk_win_title, ahk_win_class, ahk_cmd){
    WM_COMMAND = 0x111
    WinGet, ahk_hwnd, ID, %ahk_win_title% ahk_class %ahk_win_class%
    postmessage, WM_COMMAND, ahk_cmd, 0, , ahk_id %ahk_hwnd%
}
としてみたり、
postmessageをSendMessageに変えてみたりしても同じく駄目でした。

今のところ、AutoIt3で作ったWM_COMMANDスクリプトをRunする方法で補ってるので
早急に解決する必要はないのですが、何かスッキリしない…



312 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 02:50:53.27 ID:AUGVJyBJ0]
>>311
APIのPostMessageをDllCallで呼んでみては?

313 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 03:46:11.48 ID:07ed4QJF0]
>>310
それやってみました。確実に動きました。ミスはなかった。
SENDに問題あるのかな。
SetKeyDelay,,100 やってみたけど、効果なし。レスありがと。

>動かない。でも4回に一回ぐらい動く

ってのはたとえば、sc07B & i:: Send,{Blind}{Up} あるじゃないですか?
sc07B & i をそこそこのテンポで押し続けていくと、
3回 i ってのが入力されたあと一回だけ↑の方向キー入力があって、そのあとまたiだけが入力されるっていうかんじ。
ランダム。

314 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 04:12:42.21 ID:W6cSodtT0]
>>313
押し下げ、押し上げを明示的に
押し下げ、押し上げ間隔変更
SendModeの種類変更 ttp://ahkwiki.net/SendMode

#InstallMouseHook
SetKeyDelay,100,100
sc07B & i::Send,{Up Down}{Up Up}

315 名前:名無しさん@お腹いっぱい。 [2013/12/28(土) 11:25:07.82 ID:Ppn9Obyz0]
面倒だけど、DOWNとUPの両方をフックして
別々にキー発行した方が確実だよ

316 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 13:16:32.74 ID:0Y0bNe0b0]
>>312
貴重な意見ありがとう。
DllCallですか?自分にはハードル高過ぎです…第一、数ある"引数"に何を入れるのかが分からない。

PostMessage系は、「VBS+dynwrap.dll」の組み合わせ以来、
「postmessage, WM_COMMAND, ahk_cmd, 0, , ahk_id %ahk_hwnd%」
の形式しか知りません…しかも「WM_COMMAND」以外使ったことないし。

317 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 13:53:08.02 ID:AUGVJyBJ0]
簡単だよ、AHKのPostMessage使うのとほぼ同じ
>>311の例を置き換えるなら↓
DllCall("PostMessage", Ptr,ahk_hwnd, Ptr,0x111, Ptr,ahk_cmd, Ptr,0)

ただしwParamには上位ワードにWM_COMMANDの詳細コード、下位ワードに
コントロールのIDを、lParamにはコントロールのウィンドウハンドルを指定する
のが本来の使い方なので、あなた関数はメニューのコマンド実行にしか使え
ないと思う

あとタスクトレイのアイコンからは通常WM_NOTIFYで通知を受けるので、いき
なりWM_COMMANDを送っても無視するアプリは当然いると思う
Spy++を使えるなら非表示化されている本体ウィンドウのメッセージを見ながら
トレイアイコンを操作すれば分かると思うけど

318 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 15:04:01.24 ID:0Y0bNe0b0]
>>317
分かりやすい説明をありがとう。
具体例を挙げてくれたお陰で、これとwikiの説明も合わせて読むことで
限定的ではありますが、何となく分かったような気がします。
(PostMessage + WM_COMMANDが使えれば満足なので)

で、DllCall()でPostMessageした結果もこれまでと同じで
タスクトレイにあるものは操作できませんでした。

あと今回は返値とErrorLevel確認してみましたが、何れも正常動作してる値でした。
気休め程度にセキュリティ系を監視無効にしてみましたが、結果は変わらず。

なかなか先が見えません…

319 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 15:06:38.39 ID:ZMFX8XS+0]
ウインドウ指定間違ってるというオチ

320 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/28(土) 16:24:12.29 ID:0Y0bNe0b0]
>>319
ありがとう。再確認したけど、流石にそれはないです。
同じタイトル、クラスならウインドウが表示されてれば操作可能なのです。(Process Explorerで確認)

ちなみに、WM_COMMAND使うにあたって「タイトル」「クラス」「コマンド」は
UWSC.exe + ChkCtlID.dllでChkCtlID.uwsというスクリプトを動かして取得しています。
(実際に操作して必要なデータが取得できるので、これだけの為にUWSC使ってます)

321 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/29(日) 19:22:03.91 ID:y3TxPQeB0]
イロハのイみたいな質問で恐縮ですが…
ScrollLockがONの時だけキーリマップされるというスクリプトを作るにはどうすればいいでしょうか?
ONでリマップ、OFFの時は本来のキーの機能が働く形にしたくて、リファレンス等を見よう見まねで
やってる段階なのですが、こんな形になりました

if GetKeyState("ScrollLock","P"){
a::b
}else{
Sleep,100
}
Return



322 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/29(日) 19:24:46.34 ID:y3TxPQeB0]
すみません。長いと怒られたので連投という形に成りますがご容赦を…
上の形で動かすと、ScrollLockがONでもOFFでもAキーがBにリマップされてしまいます
それと、Sleepを充てたのもちょっと違うような気が…
そもそも、根本的に発想が間違っているのかもしれませんが、いいやり方をご教示下さい

323 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/29(日) 19:26:28.92 ID:PgaLHOAR0]
#If GetKeyState("ScrollLock","T")
a::b

324 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/29(日) 19:28:09.75 ID:o+jg+Krd0]
If(GetKeyState("NumLock","T") == 0)

たぶんトグル使えたと思うからそれを使ってみては?
Numlock状態をタスクトレイに表示できるスクリプト組んでたからタイムリー

325 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/29(日) 19:52:06.71 ID:y3TxPQeB0]
>>323-324
こんなに早く感謝!教えて頂いた方法で、希望の動作ができました
ModeをTにしないといけなかったんですね
#Ifの使い方も勉強になりました
ありがとうございました

326 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/29(日) 20:58:57.82 ID:o+jg+Krd0]
ウヒョースゲーpostmessageこれスゲー

327 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/30(月) 10:14:47.38 ID:Ut/Si46b0]
>>326
ヤベーよな
使い出したら止められねえわ

328 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/12/31(火) 21:32:02.68 ID:CNKTZK//0]
ちょっとスレ違いかもしれないんだけれど、
TillaGoto.ahk持ってる人誰かうpしてくれませんか?
公式とか他回ったけど出てこない…

329 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/01(水) 00:34:04.55 ID:BejZgA1u0]
SciTE4AutoHotkey

330 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/02(木) 22:16:05.97 ID:B/Qu2U8M0]
どなたかMacbookのBootcamp環境上でAHKを運用してるって方おりますでしょうか?

数年前から、Win機に変換・無変換・多ボタンマウスを修飾キーにしたワンショットモディファイア
を組み込んだりRoundMenuを使ったりしています。今回、気が向いてMacbook Air+Bootcamp
で同様の環境を作ろうとした所、「かな」キーがレジストリでリマップしようがAHKでリマップしようが
必ずトグル動作になってしまい扱いきれず困っています。「かな」キーを普通にモディファイアの修飾キー
に出来ている方がいらっしゃったら対処法を教示頂けませんでしょうか?

331 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/03(金) 04:24:05.90 ID:qbDUwg9/P]
ポンコツOS積んでるMacとか使うもんじゃないよ



332 名前:330 mailto:sage [2014/01/03(金) 15:31:57.17 ID:wDBjnsKG0]
もぅ挫折しそう… つかAHKだけじゃ100%無理っぽいです

333 名前:名無しさん@お腹いっぱい。 [2014/01/03(金) 16:17:42.99 ID:uHGrc1HW0]
というかキーボード規格の問題じゃねーのソレ
Fnキーとおなじようなもんで

334 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/03(金) 16:23:41.97 ID:uHGrc1HW0]
あ、俺からも質問
postmessageでX-finder終了メッセージ送って常駐の一斉終了に組み込みたいんだけど、リソースハッカーで調べても見つからないんだよね
プロセス強制終了だとiniに書き込まないから変更状態保存されないし
どっかに情報ないかな

335 名前:330 mailto:sage [2014/01/03(金) 16:45:32.03 ID:wDBjnsKG0]
うまくいった〜。
レジストリいじるのにChnageKey使ってたんだけど、SharpKeysに変えてみた。
変更元のキーもスキャンコードベースで指定出来るのが決め手だろうなと。
結局元コード弄る必要すらなかったです。
低レベルな悩みでお騒がせしました。

336 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/03(金) 16:45:54.69 ID:gA08nXNr0]
>>334
その書き方だと何を終了させたいのかよく分かんないけど
postmessage使う必要ある?

337 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/03(金) 17:38:53.12 ID:aSWb0+zd0]
>>334
WinCloseするだけじゃないのか? ttp://ahkwiki.net/WinClose
駄目なら↓
PostMessage, 0x112, 0xF060,,, WinTitle, WinText ; 0x112 = WM_SYSCOMMAND, 0xF060 = SC_CLOSE

338 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/03(金) 18:05:43.12 ID:uHGrc1HW0]
あ、wincloseでいいか
ありがとう

339 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/03(金) 23:43:42.30 ID:6mi/YYM20]
なんかプログラマー気取りのレスがおおいよなあ
お前らが使ってるのは言語じゃなくてスクリプトエンジンだから
RPGツクールと一緒。

340 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 00:59:23.80 ID:PYXLNTj80]
どうした、どこかトラウマを刺激するスイッチでも入ったのか?

341 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 02:07:25.03 ID:mtwYn+fq0]
クレクレの教えて君の逆恨みかな?

元マーだけど、ここにはおそらく現職のマーや多言語扱える人間が複数常駐してるなと感じることはある
だがマー気取りの痛い人というのは別段見たことがない



342 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 02:23:33.43 ID:AUsHohtA0]
プログラマーの一人称って安定しないな
マーって……

343 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 10:43:33.81 ID:N66thuPZ0]
いや一人称では無いだろ

344 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 11:08:43.98 ID:mtwYn+fq0]
さすがに現役時代でも自分のことをマーと呼ぶ人には出会ったことないわw

345 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 17:30:38.37 ID:5QWAv4qg0]
むしろム板とマ板がある2chだからじゃない?

346 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 19:56:46.04 ID:oRzkyRNu0]
スクリプトを編集してreloadした時にでるエラーメッセージをぐぐったりして調べたいんですけど
クリップボードにコピーするかテキストに出す方法ってありますか?

347 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 20:14:17.76 ID:w5g57NbE0]
>>346
WinGetTextを使った別のスクリプト呼び出すかWindow Spy使えば?

348 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 20:58:34.93 ID:iZ9IYWWx0]
単純に、crtl+cじゃ駄目なんだっけ?

349 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 21:10:03.42 ID:w5g57NbE0]
>>348
こんな機能あったのかwサンクス

350 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/04(土) 21:29:26.58 ID:AjuKralY0]
Windows標準の機能だけど意外と知ってる人いないよね

351 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/05(日) 01:54:21.50 ID:SqERt/fB0]
いやそこは「レベル低すぎだろ」って突っ込んであげたほうがいい希ガス
こんなもんも知らないんじゃAHKなんて活かし様ないだろ



352 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/05(日) 03:01:54.64 ID:KGEDNDUc0]
>>351
ハイハイ、よかったね。

353 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/05(日) 15:08:46.89 ID:b/yWfANK0]
Ctrl+CでコピーしたらCtrl+Vでパスを貼り付けられるようにしてほしかった

354 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/05(日) 16:25:36.08 ID:tFFNLJlE0]
>>353
出来るだろ?

355 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/05(日) 18:41:09.85 ID:b/yWfANK0]
>>354
エクスプローラではできんかった
VistaHomeBasic32bit

356 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/05(日) 18:59:56.66 ID:sZA4GYag0]
AHK関係ないだろ
AHKを使ってってことなら余裕で実現可能だし

357 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/05(日) 19:02:03.05 ID:b/yWfANK0]
そりゃそうだw

358 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/06(月) 02:57:17.10 ID:6M7KTWEQ0]
Send,^{Home}
Send,{Ctrl down}{Home}{Ctrl up}

この2行って違いあります?
前者だと誤動作することがあって後者に書き換えるとうまくいくことが度々あるんですが

359 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/06(月) 03:00:38.51 ID:sxo5qzGk0]
多分差はない。下ほうがうごくならそっちのほうがいいかも
ただもし他の処理とかち合ったらctrlが押しっぱなしになるかも・・・?

360 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/06(月) 03:29:08.93 ID:6M7KTWEQ0]
>ただもし他の処理とかち合ったらctrlが押しっぱなしになるかも・・・?

試しに
Sleep,1000
Send,^{Home}
としてみたら安定動作しているみたいなので
もしかしたら他のキーが一瞬押されているのかもしれません
処理に入る前にCtrl,Alt,Shift,Winあたりの押下状態を調べてUpされるのを待つなり警告出すなりしてみます
ありがとうございます

361 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/06(月) 12:29:28.31 ID:0G6McRFW0]
文字コード関係で困って自己解決したので報告です

AutoHotKeys_L unicode 64bit

特殊文字を指定するためのコマンド ASC{ nnnn } について。
解説だとnnnnをユニコードで指定できるとなっていますが、実際はキーボード(IME)の言語に依存します。
日本語キーボードならShift_Jis番号として解釈されるます。

Send {ASC 220} は
日本語キーボード だと 「ワ」
USキーボード だと 「ウムラウトの大文字U」

ユニコード番号で指定するためにはこのスタイルで書けばいいみたいです
Send {U+nnnn} * nは16進数のユニコード番号



362 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/07(火) 14:57:06.16 ID:HnLr3QxO0]
文字列「{a { b } c}」から先頭の「{」と末尾の「}」を取り除き、
「a { b } c」にしようと以下のようにしたのですが、
ret2で末尾の「}」が取り除けません。
Pattern指定のどこが間違っているのでしょうか。

Target := "{a { b } c}"
Pattern := "^\{"

ret1 := RegExReplace(Target, Pattern)
msgbox, % ret1

Pattern := "$}"
ret2 := RegExReplace(ret1, Pattern)
msgbox, % ret2

363 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/07(火) 15:08:35.62 ID:LQVBB70R0]
Pattern := "}$"

364 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/07(火) 15:42:37.93 ID:HnLr3QxO0]
>>363
ありがとうございました。

365 名前:名無しさん@お腹いっぱい。 [2014/01/08(水) 22:14:01.50 ID:kARE6RtX0]
エレコムのM-XG3Gを買ったんですが、専用ドライバーをインストールするとWheelLeftとWheelRightがAHKで拾えなくなります。
ドライバーをインストールしなければ拾えるんですけど、こういう場合、
ドライバーをインストールしたままチルト入力を拾うことってできないもんなんでしょうか?
チルト系のスクリプト全部書き直しになると地獄です。

366 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/08(水) 22:37:43.84 ID:NA8co93/0]
>>365
2.3 マウスにホットキーの割り当てをしても反応しない。 ttp://ahkwiki.net/Faqs
専用ドライバーの設定に対してAutoHotkeyで割り当て

ドライバー(WheelLeft→他のキーに変更)

対象のキーにAutoHotkeyで割り当て

367 名前:名無しさん@お腹いっぱい。 [2014/01/08(水) 22:52:22.20 ID:kARE6RtX0]
>>366
それしかないですかね?
あいにくここのドライバF13以降の割り当てができないので
なにがしかのキーボードのキー(or プラス修飾キー)を使うことになってしまうんですが。
エレコムのドライバが制御してるキー入力判定を読み取ることとtか無理ですかね?

368 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/08(水) 23:18:29.84 ID:NA8co93/0]
>>367
ドライバツールの段階でAutoHotkeyで拾えない独自のWheel***になってるのでドライバをどうにかするしかない。
もしかしたらドライバの設定ファイルを直接いじればF13以降も出来るかもしれない。

369 名前:名無しさん@お腹いっぱい。 [2014/01/08(水) 23:43:56.71 ID:kARE6RtX0]
>>368
そうですか。難しそうですね。
ドライバーのインストールフォルダの中にあったkeyboard.iniの中に
マウスボタンに割り当てるキーボードのキー情報がありました。中にあったF12キーのスキャンコードをF13のスキャンコードに置き換えて
マウスのチルトにF13を割り当ててAHKでF13を制御してみましたがいけました。どうもです。
しょうがないんでWheelleftとWheelrightは全部これで置き換えます。

370 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 12:38:55.17 ID:5Gf14WnP0]
今現在、SetTimerとWinActiveをループさせながら複数ウインドウの監視してるのですが、
この方法よりも「イベントフック専用APIを利用する」方が無駄のない方法だと知り
https://sites.google.com/site/agkh6mze/howto/winevent
此処にあるサンプルを元にウインドウ出現の監視をしようと思っています。

しかし、今動かしてるスクリプトは当該ウインドウの終了(WinNotExist)も監視してるため
WinNotExistに当たるイベントも取得したいのですがそれらしいのが見あたりません。
WinNotExistに当たる定数は何なんでしょうか?

EVENT_OBJECT_DESTROY = 0x00008001
かな?と思い、
EVENT_SYSTEM_FOREGROUND = 0x00000003
の代わりに指定してみましたが、何か違うような…

371 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 18:56:09.10 ID:1hwoDp2F0]
ウィンドウを最善面にしたらウィンドウタイトルバーの色を変える(ようは目立たせる)
というようなことをしたいです

特定のウィンドウタイトルバーの色を変えることはできますか?



372 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 19:18:49.36 ID:5Gf14WnP0]
370です。前の疑問がまだ解決してないんですけど、もう一つ質問させて下さい。(欲張ってすいません)
SetTimerの第3引数に優先度を指定できますが、特に指定しなければデフォルトの0になると思うんですけど、
その場合のスレッド起動の順番はどういう順番になるのでしょうか?

メイン.ahk
  ┃
  ┣━ サブ_1.ahk(メイン.ahkにインクルード)
  ┃
  ┗━ サブ_2.ahk(メイン.ahkにインクルード)

スレッド起動の順番は、[メイン.ahk]→[サブ_1.ahk]→[サブ_2.ahk]ですか?

また、任意に優先順位を決める場合、数字か大きい順に高いと判断して良いのですか?

メイン.ahk(SetTimer, hage, 1000, 3)
  ┃
  ┣━ サブ_1.ahk(メイン.ahkにインクルード SetTimer, turu, 1000, 1)
  ┃
  ┗━ サブ_2.ahk(メイン.ahkにインクルード SetTimer, bozu, 500, 2)

優先順位高い順に(スレッド起動の順番)、[メイン.ahk]→[サブ_2.ahk]→[サブ_1.ahk]と思っていいのでしょうか?

373 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 19:25:24.39 ID:5Gf14WnP0]
>>371
ux.getuploader.com/autohotkeyl/download/33/AltKGM12.zip
これは枠を強調表示するみたい・・・試してないので詳細不明なんです。

374 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 19:30:37.83 ID:CVWfPYOb0]
>>371
AutoHotkeyウィンドウなら Gui,Flash
それ以外はOSのAPI関数 FlashWindowEx

目的のコマンドが無い場合はAPI関数を調べる癖付けるとイイよ。
ttp://www.autohotkey.com/board/topic/92043-problems-with-flashwindowex/

375 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 20:23:13.35 ID:CVWfPYOb0]
>>370
無いものはないんじゃない?

>>372
例えがおかしい、スレッドはインクルードや.ahkは関係ないスクリプトは上の行から順に開始される。
現在のスレッドより優先度が低い場合、割り込みは行われず、操作は無視される。
ttp://ahkwiki.net/Threads

■通常(優0)
> → 実行中、 …:割り込み終了待ち
> 元スレッド   →→→→→→……………………………………→→→→
>                  ★割込                ↑再開
> 割り込みスレ          →→→→…………→→→→→→END
>                        ◆割込 ↑再開
> 更に割り込み                →→→END

■元スレッドの優先順位が高い場合割込無視される待機もしない
> 元スレッド(優2)   →→→→→→→→→→→→→→→→→→→→END
>                  ★割込無視
> 割り込みスレ(優1)      ×待機もしない
>                        ◆割込無視
> 更に割り込み(優1)            ×待機もしない

376 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 21:16:51.01 ID:5Gf14WnP0]
>>375
レスどうもです。

>>370の件は、地道にSetTimerとWinActiveをループさせときます。

あと、よく見たら、>>372の上の図で抜けがありました(すみません)
正確には、それぞれのahkでSetTimerでループ(?)しています。

メイン.ahk(SetTimer, hage, 1000)
  ┃
  ┣━ サブ_1.ahk(メイン.ahkにインクルード SetTimer, turu, 1000)
  ┃
  ┗━ サブ_2.ahk(メイン.ahkにインクルード SetTimer, bozu, 500)

この場合、どの順序でSetTimerが働くかは読み込まれた順
(メイン.ahkでインクルードを記述した順)で決まるってことなんですね。

また、下の図の優先度云々の件は、割り込みに関係するのであって順番ではないんですね。

お手数お掛けしました。ありがとうございました。

377 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 21:19:34.41 ID:1hwoDp2F0]
>>373-374
本当にありがとうございます
試してみます

378 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/09(木) 21:21:07.33 ID:5Gf14WnP0]
>>376訂正

X >>370の件は、地道にSetTimerとWinActiveをループさせときます。
○ >>370の件は、地道にSetTimerとWinActive及びWinNotExistをループさせときます。

379 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/10(金) 07:00:36.49 ID:NhKU6AoL0]
こんなメモリーから読み取るBOT作られりゃ、そりゃゲーム会社も対策するわ。

Bot made in Autohotkey beats SSFIV AE 2012 on hardest difficulty
www.youtube.com/watch?v=daqBboLaMKk

Autohotkey自体の寿命が縮まらなければいいのだが。

380 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/10(金) 21:29:28.71 ID:5Jklg+MO0]
AHKからVBS(WSH)使う時はScriptControlで出きるけんど、VBSからAHK使う方法手有るのん?
試してないけんど、AutoHotkey.dllっちゅうのでできるんかいの?

それから、下のスクリプトのコメントで書いてるように
AHK側→VBS側へ変数の中身を渡せないんだけんど、何か方法ないっすか?
VBS側でAutoItX3.dllなんか使ってクリップボード介すしかない?

obj := ComObjCreate("ScriptControl")
obj.Language := "VBScript"
;~ moji := "12345" ;←AHK側で指定してVBS側へ変数の中身を渡す事ができない

script =
(
moji = "あいうえお" '←ここで直接書く他無い?
MsgBox moji
)

obj.ExecuteStatement(script)

381 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 11:06:35.83 ID:0NPVogb40]
これホントだとしたら日本ってつくづくガラパコスだよね

img104.imageshack.us/img104/3740/stolevf2.jpg

日本国内だと UWSC > AHK >> AutoIt っぽいけど…



382 名前:380 mailto:sage [2014/01/11(土) 12:14:03.24 ID:L93ysrB90]
結局こんな感じで・・・・・ちょっとだけスッキリしますた(´・ω・`)
AHKにも文字列を入れた変数を展開先で実行してくれる機能有れば良いのにぃぃぃぃぃ

script_before =
(
moji = "あいうえお"
title_string = "VBSを動かす - WshShell.Popup"
)
script_VBS := Exec_VBS(script_before, "d")
Exec_VBS(script_VBS)

次レスへ...

383 名前:380 mailto:sage [2014/01/11(土) 12:15:03.39 ID:L93ysrB90]
>>382のつづき

;"d":「データ取得モード」でVBSが動くように完全な文字列を取得(戻り値有り)
;モード無指定(実質"c"指定):「実行モード」となり、上で取得した文字列を実行する(戻り値無し)
Exec_VBS(tmp_script, mode = "c") {
    if (mode == "c") {
        obj := ComObjCreate("ScriptControl")
        obj.Language := "VBScript"
        obj.ExecuteStatement(tmp_script)
        return
    }

    script =
    (

    '↑ ここの空白行は、引数の文字列と結合する時の「改行」代わりになるので【必須】
    MsgBox moji, 3+32, "VBSを動かす - MsgBox"

    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Popup "12345", , title_string, 4+64
    )

    if (mode == "d") {
        return (tmp_script . script)
    }
}

384 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 13:11:55.87 ID:L93ysrB90]
>>381
オレの場合、実用scriptの数で言うと

VBS(WSH) + AutoItX3.dll > AutoIt > AutoHotKey > UWSC

ファイル/フォルダ扱う処理ならVBS(WSH)がこん中で一番扱いな、個人的に
UWSCはほぼ使わんから知らん

385 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 13:18:25.44 ID:DkUM7X060]
海外ではAHK出る前からある程度AutoItが普及してたんじゃない?
日本内でのAHKの認知度が上がったのはリファレンス訳して流行らせようとした人の功績だし
日本の場合ジワジワ浸透よりマニア推しの働きかけのほうが影響出てるように思う

386 名前:名無しさん@お腹いっぱい。 [2014/01/11(土) 13:31:33.31 ID:ezMuEju20]
基本的に日本語のリファレンスが充実してる言語しか日本じゃ流行らんし

387 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 17:49:30.45 ID:RzNhSytD0]
>>381
gazo.shitao.info/r/i/20140111174750_000.png
ぐるぐrトレンドですまんが、AutoitがじわじわAutoHotkeyに迫られてる気がするぞ。

お国で違うようなので、突っ込んで調査したい人は各自でグリグリやってくれ。

388 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 18:09:22.23 ID:xrpAHSIh0]
さきほどここでAutoItを知って、いまAutoIt調べまくってた
キーリマップはAHKが強いみたいだからUWSCの代替になるのかと勘案してるんだが
専用スレは落ちて久しいみたいだな

389 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 19:26:16.84 ID:eIcYw4Wm0]
Chromeバージョンアップでマウスホイールでタブ切り替え
ControlSend,,^{PgDn}, ahk_id %Win%
ControlSend,,^{Tab}, ahk_id %Win%
が効かなくなったんですか代替策ないですかね?

390 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 19:43:25.75 ID:ZCvYVkOb0]
>>389
最新版(バージョン 31.0.1650.63 m)で普通に反応するが・・・。
環境と問題のスクリプトぐらい書こう。

391 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 20:26:07.39 ID:eIcYw4Wm0]
すみません
Win7 x64とAHKL x64 最新です
WheelDown::
MouseGetPos,,,Win
ControlSend, , +^{Tab}, ahk_id %Win%

ちゃんと非アクティブ時にも動きますか?
こちらもアクティブ時は動きますが非アクティブ時に機能しなくなりました



392 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 21:20:41.28 ID:ZCvYVkOb0]
+^{Tab} → ^{Tab} → {Ctrl Down}{Tab}{Ctrl Up}
Return がないのでSend以降の行までいっている可能性あり

---------------------------------------------
; SetKeyDelay,,100 ;反応しない場合

WheelDown::
MouseGetPos,,,Win
ControlSend, , {Ctrl Down}{Tab}{Ctrl Up}, ahk_id %Win%
; ControlSend, ahk_parent, {Ctrl Down}{Tab}{Ctrl Up}, ahk_id %Win% ;FireFox用
Sleep 90
Return

393 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 21:47:05.49 ID:ElkyttuT0]
つまりautoitの日本語訳作れば大逆転なの

394 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 21:50:17.80 ID:eIcYw4Wm0]
>>392
サンクスです!
試したんですがそれだと非アクティブ時もアクティブ時も両方機能しなくなりました・・・
SoundBeepを入れてちゃんとスレッドが実行されていることは確認済みです


ですが
ControlSend, ahk_parent,, {Ctrl Down}{Tab}{Ctrl Up}, ahk_id %Win%
にするとアクティブ時のみ機能します
しかし相変わらず非アクティブ時に動きません

395 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 22:03:44.75 ID:ZCvYVkOb0]
>>394
ユーザーアカウント制御 (UAC)をOFF
フック使う #UseHook
間隔調整 SetKeyDelay,***,***
ahk_parent 有り無しで試す

396 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 22:25:56.03 ID:L93ysrB90]
>>393
AutoItのリファレンス(chmヘルプ)の中見れば分かると思うが
膨大な項目数の割りに一つ一つの説明が簡潔だから
英語が不得意でも全然分かりやすいと思うぞ

それに、ボタン一発でサンプルの動作確認もできる親切設計だ

もし日本語訳リファレンス有るんならオレも欲しい

397 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 23:03:50.10 ID:Rzl8ngLT0]
>>396
blog.livedoor.jp/blackcode/archives/1224220.html
で日本語訳chmファイル配布してるけどver.3.3.6.1のままなのが少し残念

398 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/11(土) 23:07:18.92 ID:benG0tTg0]
スレ立ててそっちでやれよ

399 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/12(日) 02:13:21.88 ID:HTX3Hu0i0]
>>395
サンクスです
ですが何故か非アクティブ時だけどうしても効きません

400 名前:名無しさん@お腹いっぱい。 [2014/01/12(日) 04:20:51.54 ID:N0XLrLft0]
はじめまして。
NumLockキーを押し間違えるので
NumLock::return
と書いたのですが、そのあと、本当に必要な時のために
#NumLock::Send {NumLock}
と書いても動作しません。

どこをどう間違えているのでしょうか?

401 名前:名無しさん@お腹いっぱい。 [2014/01/12(日) 04:23:19.43 ID:N0XLrLft0]
追記。Windows XP 32bitです。



402 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/12(日) 05:44:25.72 ID:7kMoVYjO0]
>>400
Lock系のキーへのキー割り当ては上手く行かない。
ttp://ahkwiki.net/Trouble#LockTrouble

---------以下代案--------
#If !(GetKeyState("LWin","P") or GetKeyState("RWin","P"))
*NumLock::Return
#If

403 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/12(日) 21:44:58.99 ID:eJUQGLfo0]
Execute string in AHK - Support - AutoHotkey Community
www.autohotkey.com/board/topic/51532-execute-string-in-ahk/

ここ↑をヒントに文字列を実行する関数作ってみた
所詮素人が作ったものなんで突っ込み所有ると思うので、手直し必要なら教えてちょ(´・ω・`)

Exec_Strings("MsgBox,2,title_test,test test test")
Exec_Strings("WinClose,無題 - メモ帳 ahk_class Notepad")
Exec_Strings("gosub,label_sub")

Exec_Strings(cmd_strings){
    Array := StrSplit(cmd_strings, ",")

    call_func := % "func_" Array[1]
    cmd_strings := RegExReplace(cmd_strings, Array[1]",")

    if (InStr(Array[1], "MsgBox")) {
        %call_func%(Array[2], Array[3], Array[4], Array[5])
    }else if (InStr(Array[1], "WinClose")) {
        %call_func%(Array[2], Array[3], Array[4], Array[5], Array[6])
    }else if (InStr(Array[1], "gosub")) {
        %call_func%(Array[2])
    }
}

次レスへ続く

404 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/12(日) 21:45:38.86 ID:eJUQGLfo0]
>>403の続き

func_MsgBox(a, b, c, d) {
    MsgBox, % a, %b%, %c%, %d%
}

func_WinClose(a, b, c, d, e) {
    WinClose, % a, %b%, %c%, %d%, %e%
}

func_gosub(a) {
    gosub, % a
}

label_sub:
    MsgBox, sub_sub_sub
return

405 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/12(日) 21:54:15.08 ID:eJUQGLfo0]
>>403
Exec_Strings()関数内の「cmd_strings := 〜」の行は不要ですた

406 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 13:13:27.29 ID:oE7uW8Qb0]
関数も文字列として送れるようにした
とりあえずこんな感じだけど個人的には満足しとります(リマップ用スクリプトが見た目スッキリした)

Exec_Strings("kansu_1(""hoge hage"")", "f")
Exec_Strings("kansu_2(""Auto"",""HotKey"")", "f")

Exec_Strings(cmd_strings, function = ""){
    if (function = "f") { ;引数functionが「f」なら、cmd_stringsは関数と判断する
        Array := StrSplit(cmd_strings, "(")
        Pattern := "^""|""|\)$"
        tmp_Arg := RegExReplace(Array[2], Pattern)
    }else{
        Array := StrSplit(cmd_strings, ",")
        call_func := % "func_" Array[1]
    }
    if (InStr(Array[1], "kansu_1")) {
        kansu_1(tmp_Arg)
    }else if (InStr(Array[1], "kansu_2")) {
        arg := StrSplit(tmp_Arg, ",")
        kansu_2(arg[1], arg[2])
    }
}
kansu_1(hikisu){
    MsgBox, % hikisu
}
kansu_2(hikisu_1, hikisu_2){
    MsgBox, % hikisu_1 hikisu_2
}

スレ汚しスマンかった(´・ω・`)

407 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 15:32:09.11 ID:ExwEl34b0]
>>406
関数を追加するたびに else if を増やしていくのは面倒くさそう
InStr() で1つずつ調べるより IsFunc() で関数の存在と引数の個数を調べて
分岐するほうが楽じゃないかな

後、MsgBox や WinClose みたいに単体で動作するやつは新規スクリプトに
書き出してそれを実行するほうが好み
引数の個数で分岐する必要が無いし、エラーが発生しても元のスクリプトが
止まらなくてすむ

408 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 15:38:03.02 ID:qvRdmS//0]
関数とラベルチェック作るとするじゃん?

if (islabel(check))
gosub % check
else if(isfunc(check))
    この行どうしよう?
else
    Send % check
return

409 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 16:03:58.58 ID:ExwEl34b0]
やるとしたらこんな感じかな
arg1, arg2, ... は適切に設定されているとして

n := IsFunc(check)
if(n)
{
 if(n==1)
  %check%()
 else if(n==2)
  %check%(arg1)
 else if(n==3)
  %check%(arg1, arg2)
 else if(n==4)
  %check%(arg1, arg2, arg3)
  以下、予想される最大数の n まで
}

410 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 19:57:19.56 ID:oE7uW8Qb0]
>>407,>>408
アドバイスありがとう。お陰でかなり洗練されたけど、突っ込み所有れば容赦なく言ってちょ

Exec_Strings(cmd_strings, function = ""){
    if (function = "f") { ;引数functionが「f」なら、cmd_stringsは関数と判断する
        Array := StrSplit(cmd_strings, "(")
        Pattern := "^""|""|\)$"
        call_func := % Array[1]
        tmp_Arg := RegExReplace(Array[2], Pattern)

        n := IsFunc(call_func)
        if (n) {
            arg := StrSplit(tmp_Arg, ",")
            if (n = 1) {
                %call_func%()
            }else if (n = 2) {
                %call_func%(tmp_Arg)
            }else if (n = 3) {
                %call_func%(arg[1], arg[2])

            ;中略

            }else if (n = 9) {
                %call_func%(arg[1], 〜, arg[8])
            }
        }
;---------------------------------------------------------------------

次レスへ続く

411 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 19:59:10.16 ID:oE7uW8Qb0]
>>410の続き
;---------------------------------------------------------------------
    }else{
        Array := StrSplit(cmd_strings, ",")
        call_func := % "func_" Array[1]

        if (islabel(Array[2])) {
            gosub, % Array[2]
        }else{
            %call_func%(Array[2], 〜, Array[9])
        }
    }
}

またまた、スレ汚しスマンです(´・ω・`)



412 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 20:15:02.55 ID:oE7uW8Qb0]
突っ込まれる前に一つ分かってることを言っとくと、

Exec_Strings("MsgBox,2,title_test,test")
Exec_Strings("MsgBox,test")

上のは問題ないけど、下のだと表示が空になるのでまだまだですわ(´・ω・`)
後はコツコツと時間かけて手直ししていきますです

では、おやすみなさい・・・・・(´・ω・`)

413 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/13(月) 23:19:06.64 ID:z3Qnnmrd0]
可変長引数使ったほうがシンプルだよ

414 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/15(水) 23:32:21.59 ID:V21fvvgZ0]
ID:oE7uW8Qb0です
>>413
可変長引数の件はかなり役に立ったよ、ありがとう

>>412の件は、func_MsgBox()関数内で第2引数以下に値が有るか無いかで
どっちのMsgBox使うか判断するようにしますた

他にも手直しが必要なところを見つけたよ・・・まだまだ先が長いな(´・ω・`)

415 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/16(木) 00:15:37.30 ID:stEVobho0]
似たようなのでini に記述されたコマンドを実行するようなマクロスクリプト作ってたわ
ahkそのものがテキストベーススクリプタだから激しく車輪の再開発なんだけどね

416 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/16(木) 00:59:56.08 ID:GI4VDAks0]
autohotkeyにreplがあればいいのに

417 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/17(金) 14:26:10.08 ID:zcQzHuv90]
Tてアスキーコードじゃ84じゃん。
そんで小文字のtは116。

でも、どっかのブログの記事だと
Send,^+tと
Send,^Tは同じになっちゃうとか??受けるアプリによるの??

おかしくね?

^+t はコントロールとシフトを押しながらt(116)となることを通常、
想定するよな?

^+tは内部でコントロール押しながらT(84)となっているの?
初心者な意見ですみません。

418 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/18(土) 17:05:43.11 ID:nVmuDu3q0]
文字コードだけでなく、スキャンコード, VKey とか色々とあるんよ
とりあえずSendやその周辺のマニュアル読むべし

419 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/19(日) 13:05:34.00 ID:dvav9W940]
降順にループしたいんだけど、こんな方法しかない?

array := Object()
array[1] := "one"
array[2] := "two"
array[3] := "three"

c := 0, n := 0
for Value in array {
  c := array.Maxindex() - n
  n ++
  MsgBox, % array[c]
}

とか

Loop, % array.Maxindex() {
  c := array.Maxindex() - n
  n ++
  MsgBox, % array[c]
}

420 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/19(日) 13:19:11.21 ID:dvav9W940]
>>419
訂正です。
実際はforループでValueの値も使いたいので、こっちので良い(スマートな)方法有ったら教えて下さい。

421 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/19(日) 13:59:26.29 ID:dvav9W940]
連投すいません・・・>>420の「Valueの値も使いたいので・・・」件は取り消します。
Valueは昇順で処理する場合必要なのであって、降順には不要でした。



422 名前:419 mailto:sage [2014/01/19(日) 18:14:49.09 ID:dvav9W940]
結局以下のようにして落ち着きました。
降順ループの場合、forだと変数Valueが無駄になるので
loopの方がメモリーを無駄遣いしなくて良いのかな・・・なんて思いました。

Loop, % array.Maxindex() {
  c := array.Maxindex() - (A_Index - 1)
  MsgBox, % array[c]
}

423 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/20(月) 00:24:14.42 ID:hAigsbcH0]
オブジェクト内の要素カウントするのはコストかかるんで、
ループ前にローカル変数増やして対処するのが常套手段だけど、
AHKはどうかなぁ

424 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/20(月) 04:48:58.02 ID:qibQGH8z0]
i := array.Maxindex() + 1
while --i
 MsgBox, % array[i]

とか

i := array.Maxindex()
Loop {
 MsgBox, % array[i]
} until !--i

とかは?

425 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/20(月) 20:53:51.90 ID:k+hq/v/Y0]
>>423-424
ありがd
知らなかったこと色々勉強した・・・
レスが長くなるとアレなんで簡単に書くと
先ずは、「--i」は(記述されたその行で?)演算後の値になること。(「i--」は次に「i」が使われる時点で演算後の値になる)
上段・・・「while 式」は、式「--i」の評価結果が 0 の時点でループ終了すること。
下段・・・「until 式」は、式「!--i」の評価結果が真(true、つまり 0 以外)になるまでループが続行されること。(この場合、「!」が肝)

今回は、後々のメンテナンスで分かりやすい「while」ループを使うことにしました。

426 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/20(月) 20:55:45.08 ID:k+hq/v/Y0]
連続だけど、質問。

今まさにWindowsがシャットダウンされようとしてるのは以下の方法で検知できるんだけど、
If A_ExitReason = ShutDown

サスペンドやハイバネートを検知するにはどうしたらいいんでしょうか?

AHKからサスペンドやハイバネートさせれば、検知など不要なんだけど、
方法如何に関わらず、検知させたいんです。

427 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/20(月) 20:59:22.22 ID:k+hq/v/Y0]
あ、windowsXP 32bitでAHK_L(1.1.13.01)です。

428 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/20(月) 21:31:05.63 ID:hAigsbcH0]
>>426
WM_POWERBROADCAST

AutoHotkey スレッド part6
pc11.2ch.net/test/read.cgi/software/1219130051/971
AutoHotkey スレッド part7
pc12.2ch.net/test/read.cgi/software/1230694774/817,822,898,899,902-904

429 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/20(月) 22:07:16.10 ID:k+hq/v/Y0]
>>428
ありがd
よく読んで活用します。

しかし、過去スレのpart6と7に有ったのか・・・
一応過去スレ読んどかないと、と思ってpart16・15・・・と遡りながら時間かけて読んできたけど、まだpart11の途中だったよ。

430 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 05:43:22.73 ID:VqxOnmgt0]
専ブラのJaneStyleで動画が見つからなかった時に
ダイアログを自動で閉じるようにしたいんだけど無反応でうまくいきません
どこか間違ってますか?

SetTitleMatchMode,2
#Persistent
SetTimer AutoClose,500
return

AutoClose:
IfWinExist, StreamingPlayer3 ahk_class #32770
{
ControlClick OK, StreamingPlayer3 ahk_class #32770
}
return

431 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 15:08:07.41 ID:aYUiPLva0]
AutohotkeyL x64 unicode版で動くeucへのURIエンコードスクリプトってありますでしょうか。
UTFへの変換やShiftJIS版でのものなら見つかるのですが、上記の条件だと見当たりません。



432 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 15:36:30.37 ID:oaSK6Z880]
マウスカーソルがリンク、入力モード、矢印のどれかであるかを判断する方法はあるでしょうか?

433 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 16:00:45.35 ID:KTV70fcA0]
>>432
MouseGestureLの関数丸パクリでこんなのは?

Loop
{
If MG_GetCursor() = 65567
Tooltip, リンク
Else If MG_GetCursor() = 65541
Tooltip, 入力モード
Else If MG_GetCursor() = 65539
Tooltip, 矢印
Else
Tooltip, その他
Sleep,500
}
Return

MG_GetCursor()
{
VarSetCapacity(infCur, 16+A_PtrSize, 0)
NumPut(16+A_PtrSize, infCur, 0, "UInt")
DllCall("GetCursorInfo", "Ptr",&infCur)
hCursor := NumGet(infCur, 8, "Ptr")
return hCursor
}

434 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 18:45:16.66 ID:MOe0YTzR0]
リマップ/ホットキー用スクリプト書くとき、
キー毎にまとめて書くのとアプリ毎にまとめて書くのと
どっちの方が見やすく、管理しやすいでしょうか。

…というか、どっちがオススメですか。ご意見お聞かせ下さい。

435 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 18:54:25.99 ID:OEZwiZLo0]
>>430
問題が起きたなら単純に機能をばらして確認すればいい、この場合、監視 + ダイアログをクリック
ダイアログをクリックするスクリプトを先に完成させよう。

>>432
A_Cursor
Wiki等情報サイトでまずは検索 ttp://ahkwiki.net/Variables#A_Cursor

436 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 19:49:21.45 ID:sJJjom+00]
うーん、地味に組み込み変数に今押してる修飾キーを除いた物理キーってのがないんだのう

A_thishotkeyだと#とか^とか*とか downとか upとか余計なのついてくるし、トリムコマンドで整形するしかないのん?

437 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 20:51:49.47 ID:W82wCj4o0]
かなキーに変換キーを割り当てたいだけなのに、
うまいこと設定できない。
日本語キー周りはレジストリ書き換えするしかないのか。

438 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 21:02:49.49 ID:5mH6o05+0]
やったことないが、Wikiでは半角/全角・CapsLock・かなは動作不定となっている以上、
AHKで弄るのはよろしくないんじゃね

439 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 21:32:37.32 ID:+JdT8cDl0]
>>434
俺はアプリ毎
アプリを使わなくなった時にまとめて消せるのが楽

>>437
vkF2sc070::
Send, {vk1Csc079}
return
で動かね?

440 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 21:45:03.49 ID:OEZwiZLo0]
>>434
こんな感じで管理するといいかも。

;---共通設定----
F1::
ToolTip 通常
Return

;--アプリ別設定--
#If WinActive("電卓")
F1::
ToolTip 電卓
Return
#If

#If WinActive("無題 - メモ帳")
F1::
ToolTip メモ帳
Return
#If

441 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 22:57:09.64 ID:MOe0YTzR0]
>>439-440
なるほどーアプリ毎にまとめた方が良いみたいですね。
自分もその方向で行きたいと思います。
ありがとうございました、。



442 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/01/21(火) 22:58:28.83 ID:kPbnp8kO0]
もし良いアイディアがあれば教えてもらいたいのですが、
Windows8のタッチキーボードをトリガーに、AHKを使えたりしますか?

最近DELL Venue8を購入、Win8使ったことある人ならわかるだろうけど、タッチキーボードに左側にテンキー右側に日本語フリックのキーボードがあって、
それをテンキーよろしく8,2,4,6を上下左右のカーソル化や、「あ」をタッチしたら○○する というアクションを起こさせたいんです。
(イメージはゲームボーイのように縦に持って、両手親指で操作)






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<157KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef