AutoHotkey スレッド ..
[2ch|▼Menu]
340:名無しさん@お腹いっぱい。
09/02/24 16:20:53 10tP/ti50
>>339
どうもありがとうございます。とても助かりました。
(A_TimeSincePriorHotkey < 200 ? " " : "")
てあたりが気がきいていると思いました。

341:名無しさん@お腹いっぱい。
09/02/26 14:47:02 qGUJzHwS0
最長マッチのHotstringを作りたいのですが
どうすればよいのでしょうか




342:名無しさん@お腹いっぱい。
09/02/26 17:32:35 zx85xhcp0
Feb 25, 2009
Version 1.0.48 is released.

343:名無しさん@お腹いっぱい。
09/02/26 18:09:02 N/JDSNBe0
パッチ等を当てずに安心して2バイトコードを使える日は、いつになるのだろうか・・・

344:名無しさん@お腹いっぱい。
09/02/26 21:06:58 eljuCyAE0
URLリンク(www.autohotkey.com) の適当な訳

1.0.48 - February 25, 2009

■互換性
後方互換性に影響するであろう変更は、今回より、変数に格納された浮動小数点値が高精度なったこと。
数値精度の差に依存するスクリプトは精査して、更新する必要があるかも。
"SetFormat Float" (例: SetFormat, Float, 0.6) を *各所* で利用することで互換性が維持できるはず。
「SetFormatフロート」は高精度値を不活化するけど、新しい速い浮動小数点演算のうちのいくらかを使わない。

■パフォーマンス
このリリースの主なテーマはよりより速い実行。
スクリプトはほとんどすべてより速く実行できるはず- 特に式とか整数の評価の多用では(場合によっちゃ通常の3倍!)。
完全なる恩恵を得るには、スクリプトは、SetFormatを使用しないようにするべきか、あるいはSetFormatの速いモードを使用するべき。

345:名無しさん@お腹いっぱい。
09/02/26 21:07:22 eljuCyAE0
■性能改善
- 式と関数のコンパイルをコッテリとさせて、より速くなった(とくに複雑な製数式で、カンマも含む)
- 変数に格納されたバイナリ数値をキャッシュさせて文字列(から/へ)変換するのをやめるようにした。これで変数の算術演算が速くなった。
- 式やマッチ/比較コマンド内でのリテラルの数値をバイナリ数値とするようにしたことにより速くなった。例) X+5 とか "if x > 5"
- ブロックを持つループやIFやELSEを "{" をスキップすることで速く実行できるようになった。この結果、"{" が ListLinesで省略されるようになった。
- スレッド作成のパフォーマンスの改善、OnMessage(), RegisterCallback(), GUIイベントの rapid-fireスレッドを補佐する。(註:よくわからん)
■既存スクリプトに影響するかもしれない変更点(トップで記述されているより高精度な浮動小数点以外のもの)

- "SetFormat, Integer, Hex" が有効な場合、リテラルの10進値を変数に格納するときに16進数に変換する。これは普通表示用途なはず。
- OnMessage()パフォーマンスについて、メッセージ番号とHWNDは無条件で16進数でなく通常の数値としてやってくる。これは通常表示用となはず。
- パフォーマンスにおける様々な改良を達成するために、スクリプトは今よりちょっと多くのメモリを使用する。(変数と式の数に比例している)
- if var is time" と "YYYYMMDDHHMISS"形式のタイムスタンプを変更・修正し、月の範囲が1-12内に無い場合不正なものとして認識するようにした。[ニックありがと]
- Dynamic関数呼び出しを変更・改善し、関数に定義されたパラメタ数よりも多いものも許容するようにした。このときパラメタは評価はされるが破棄される。[Lexikosが開発(註:Autohotkey_Lの人)]

■その他の変更点
- Autohotkey_Lより追加 → IsFunc() / while-loop / assume-static / A_IsPaused / A_IsCritical / WheelLeft と WheelRight
- NumPutで UInt64をサポート
- UPXを変えた

346:名無しさん@お腹いっぱい。
09/02/26 21:11:50 eljuCyAE0
バグフィックスは面倒なので割愛w


#if は取り入れなかったのかぁ・・・残念

347:名無しさん@お腹いっぱい。
09/02/27 00:57:18 aRIZ1QSP0
複数のウインドウを高速に一度に前面にもってくることってできないでしょうか?
今は、10枚くらいあるウインドウをWinActivateとLoopで前面化を行っていますが、
かなりまったりと順番に前面にでてきてしまいます。
もとパッっと出すことはできないものかなあと思いまして。

今はこんな感じでやってます。(指定のexeのウインドウを全部前に出す例)

+^!e::
Process, Exist, MageMogeChart.exe
if ErrorLevel = 0
 return
WinGet, id, list, ahk_pid %ErrorLevel%
Loop, %id%
{
  StringTrimRight, this_id, id%a_index%, 0
  WinGetTitle, this_title, ahk_id %this_id%
  WinActivate, ahk_id %this_id%
}
return

348:名無しさん@お腹いっぱい。
09/02/27 01:25:30 c+2Jobtp0
SetWinDelayでコマンド発行後のウェイトを指定してやる。
ウィンドウの重なりが逆順になると思うけど。

v1.0.48用で書いてみた

SetWinDelay, 10
Process, Exist, (ここにExe名)
WinGet, list, LIST, ahk_pid %ErrorLevel%
while list>0 {
 WinActivate, % "ahk_id " list%list%
 list--
}


349:名無しさん@お腹いっぱい。
09/02/27 20:30:19 uqsx4u4h0
DELL LATITUDE E6400でTrackWheel(VER. 20081206)を使ってたんだけど
しばらくぶりにバージョンアップしようと最新版/RC版に変えてみたら中ボタンに反応しない。
なんてこった。

350:名無しさん@お腹いっぱい。
09/02/28 00:25:24 X+HJqC5y0
ショートカットキーが付いてないソフトのボタンにahkでキーを割り当てたいんですけど各ボタンを指定するにはどうすればいいですか?

351:名無しさん@お腹いっぱい。
09/02/28 00:39:59 imLzKJgB0
ものすごい放置してた。久しぶりにソース見た。思い出すのに時間がかかった。

>>349
AHK v1.0.48 だと DllCall の Return Type を指定するとうまくいかないところがある。
983行目の最後の
  ,"Int"
を外すと動くかもしれない。

というか、反応しないって事はホットキーのアサインがうまくいってないかも。
全く構造が違うので、Iniは去年のものは流用できないっす。

>>350
1) ControlClick を使う
WindowSpyで独自のボタン情報がとれるなら 直接指定モードでいいはず。
情報がとれないなら、座標指定モードで(ツールバーならこっち)。

2) ツールバーのコマンドを調べてウィンドウメッセージを送る(玄人向け)
URLリンク(lukewarm.s101.xrea.com) の "Inspecting Toolbar IDs" を使って
PostMessage を使って WM_COMMAND を送る

352:349
09/02/28 07:36:34 ZNlNraZX0
>>351
どうも
・1.0.47でも1.0.48でもダメ
・1.0.48で983行目の最後の,"Int"外してもダメ
・iniは流用していない
で、iniのButton=MButtonを=RButtonにしてみると反応する。スクロールもできる。
けどボタンを離してもスクロールのモードから戻ってこない。

てな状況です。

353:名無しさん@お腹いっぱい。
09/02/28 20:06:00 imLzKJgB0
>>352
中ボタンで反応しないのと、右ボタンで暴走したままなのは別事象っす

中ボタンの方だけど、メイン画面開いて Ctrl+H かメニューから View→Hotkeys... でホットキー一覧出して
 m-hook  *MButton
って出てたら、ホットキー登録は問題ないはず。なってないなら大問題・・・。
そうなっているのに動かないなら他のユーティリティが影響していると思われる
確認をお願い

> RButtonにしてみると・・・モードから戻ってこない
こっちはバグですな・・・
間違えた記述のあるサイトのソースを丸々パクっていたため。考えもせず置換して使ってたorz

誤: TW_RBUTTONDOWN:=0x205 , TW_RBUTTONUP:=0x206
正: TW_RBUTTONDOWN:=0x204 , TW_RBUTTONUP:=0x205

650行目あたりから,、それぞれ2カ所あるっす


# 色々直したら zip で置き直す予定

354:349
09/02/28 22:00:14 ZNlNraZX0
>>353
> m-hook  *MButton
出てます。
他のユーティリティか、うーん。旧バージョンは動くのになー。
とりあえずmsconfigで診断スタートアップにしてみたけどダメでした。

RButtonではちゃんと動くようになりました。

355:名無しさん@お腹いっぱい。
09/02/28 23:58:39 imLzKJgB0
旧verで動かしてたんだからそこに問題はないとは分かるんだけど、一応って事で
・・・そうなると機序的に何処に問題があるかは、今はちょっと分からないっす
一応、ソースもう一度読み直ししてみるっす

356:350
09/03/01 03:43:58 Rc2HQ5QJ0
>>351
ありがとうございました
ControlClickでいけました

357:349
09/03/01 20:30:20 GJkhTa1h0
>>355
お手数かけてすまそ。
中ボタンに反応しないって書いたけど、
TWを起動している状態ではアプリケーションでの中クリックも効かなくなってるので
TW自体は一応反応してる気がします。

358:名無しさん@お腹いっぱい。
09/03/02 10:53:15 3PFCvLeG0
>>348
SetWinDelay で指定してみたら、瞬時にとはいきませんがかなり早くなりました。

最新のはwhile使えるようになったんですね

ありがとうございました。

359:名無しさん@お腹いっぱい。
09/03/02 15:03:15 4Ix+9L8p0
AutoHotkeyでmacのDashbordみたいなの作れないかな
と自分で無理なことを言ってみる

360:名無しさん@お腹いっぱい。
09/03/02 22:51:10 zVxOqqcX0
ダブルクリックとドラッグの挙動をカスタムしたいんですが、見つかりません
コマンド教えてください

361:名無しさん@お腹いっぱい。
09/03/04 05:08:22 ZvTbo6At0
+WheelDown::WheelUp

このスクリプトでしばらくは正常に動作するのですが
71 hotkeys have been received in the last 577ms.
というメッセージが出てきます。
どういうことでしょうか?

362:名無しさん@お腹いっぱい。
09/03/04 05:10:50 pYSwiV1N0
スクリプトの冒頭で

#MaxHotkeysPerInterval 200

と書くと良い

363:名無しさん@お腹いっぱい。
09/03/04 05:22:01 ZvTbo6At0
#MaxHotkeysPerInterval 300でいけました
ありがとうございます。

364:名無しさん@お腹いっぱい。
09/03/04 15:08:04 VwNNjCy00
Dllcallを使いたいのですが、構造体というものがわからないのでちょっと質問させてください。
AHKで構造体を使うというのは、

メタボかどうかを判断したいので、健康診断の記録から
・体重と腹回りの項目を見ろ(構造体)
・上から3行目の数字と、上から7行目の数字を見ろ(AHKの強引な手段)

といった感じで、メモリの位置を直接指定しているといった認識でおkでしょうか。

365:名無しさん@お腹いっぱい。
09/03/04 15:52:18 rkwP19PJ0
Cも何も分からんけどAHKでゴリゴリDllCall使っている漏れの私的な見解

> メモリの位置を直接指定しているといった認識でおk
たぶんそう

構造体って言語仕様でも何でもなく、
「ある番地を起点に確保したメモリの使い方はこうするんだぜ」
って決め方だと思ってる。(言語でサポートされているのは使うのは楽らしいけど。)
だからVarSetCapacityとかでメモリ領域確保してアドレス渡しすれば結構使えちまう。

366:名無しさん@お腹いっぱい。
09/03/04 23:33:02 oTTwde4w0
suspend 時のアイコンを変更できない物でしょうか?

367:名無しさん@お腹いっぱい。
09/03/05 08:18:57 7I9asjSe0
URLリンク(www.autohotkey.com)

368:名無しさん@お腹いっぱい。
09/03/05 09:07:32 DThF++lC0
>>367
いやコンパイルせずにソースを実行するときに
アイコンを変更することができない物かと
試行錯誤をしていました
無理っぽいですね
ありがとうございます

369:名無しさん@お腹いっぱい。
09/03/05 09:32:36 UhjQBASr0
会社でahkを使ってたら、Hなダイヤルアッププログラムと誤解された

370:名無しさん@お腹いっぱい。
09/03/05 11:37:52 rcFfvT/S0
A(在り得ないほど) H(えっちな) K(娘通信) ?

371:名無しさん@お腹いっぱい。
09/03/05 11:47:21 lgTNReVh0
>>366
メニューは作り直すしか無さそう。

menu, tray, NoStandard
menu, tray, icon, shdoclc.dll, 1, 1
menu, tray, add, Suspend Hotkeys, suspend_hotkeys
menu, tray, add, Exit, ExitSub
return

suspend_hotkeys:
suspend
menu, tray, icon, shdoclc.dll, % A_IsSuspended+1 ", 1"
menu, tray, togglecheck, Suspend Hotkeys
msgbox, suspend
return

#s::
suspend, permit
gosub, suspend_hotkeys
return

ExitSub:
ExitApp

372:名無しさん@お腹いっぱい。
09/03/05 12:01:41 lgTNReVh0
あ、俺勝手にトレイアイコンの事だと判断しちゃったな・・
違ってたらスマン

373:名無しさん@お腹いっぱい。
09/03/05 12:28:12 GNmqhAQE0
>>371-372
おお、これで十分です
トレイアイコンの変更を意図していました
ありがとうございます。

374:名無しさん@お腹いっぱい。
09/03/05 20:15:15 xz90t0puP
会社ではトレイアイコンは常に非表示に設定してる

375:名無しさん@お腹いっぱい。
09/03/06 00:46:39 Y32mGPTe0
だからどうした。

376:名無しさん@お腹いっぱい。
09/03/06 02:31:08 6lo5rU0D0
ctrl と j でエンターキーを押した動作をさせたいのですが


^j::enter

と書くと、ctrlとjが押し下げられているままとなっているようで、
実際には ctrl とjを押しながらエンターキーを押す動作となってしまいました

^j::Send,{enter}

と書いても、ctrlが押し下げられているままとなっているようでした

そこで

^j::Send,{Blind}{Ctrl Up}{enter}

と書いたら一回目の入力は成功するものの、
{Ctrl Up}のせいで次回以降 ^j にヒットしなくなってしまいました

ctrl と j でエンターキーを押し、かつそれを連続して入力する設定は可能でしょうか?

377:名無しさん@お腹いっぱい。
09/03/06 02:52:01 EIumwJQn0
>>376
^j::Send,{enter}
で何の問題もなくエンター打てるけど?

378:名無しさん@お腹いっぱい。
09/03/06 05:33:37 6lo5rU0D0
>>377
キーの動作を見てみると、コントロールキーも一緒に送信しているようなのです。
fenrir 経由でx-finderを起動するときに
コントロールキーも一緒に送信されると
多重起動されてしまいます
これを防止したいと思いました。

通常のアプリケーションでは何ら問題ないようだとは
うすうす感じていますが……

379:名無しさん@お腹いっぱい。
09/03/06 06:53:07 atFpTk3M0
さらに
^j::Send,{Blind}{Ctrl Up}{enter}{Ctrl Down}
としたらどうなの

380:名無しさん@お腹いっぱい。
09/03/06 12:05:24 sR26OTSx0
>>379
それなら大丈夫そうです
ありがとうございます。

381:名無しさん@お腹いっぱい。
09/03/06 15:01:28 dtsNACZp0
>>359
俺は逆だな。macでAutoHotkeyが欲しい。

382:名無しさん@お腹いっぱい。
09/03/06 22:52:29 gMTAf0z20
タスクトレイのアイコンをダブルクリックしたら
hello!と表示させたいのですが、できますか?
Gui の Menu の項目を読んでもわかりません
Click, ClickCount あたりを使えばよいのでしょうか?

383:名無しさん@お腹いっぱい。
09/03/07 00:30:41 GNhe+RZO0
>>382
できる。
トレイにメニュー項目を追加してデフォルトにする

384:名無しさん@お腹いっぱい。
09/03/07 04:04:12 41mSVwUw0
>>383
ありがとうございます。
できました

385:名無しさん@お腹いっぱい。
09/03/07 08:14:05 HkiIUUNz0
AHKのGUIが便利すぎるので、フロントエンドにAHKを使い、パラレルポートの制御をしたいです。

用途は機械制御(赤外線の人センサーによる出入り回数の把握)で、数個のLEDの点灯制御と、
10bps(10kじゃないです)の双方向シリアル通信で、制御の確実性(信頼性)は低くてOKです。

本家を検索し、シリアルポートをGUIで制御するサンプルはありました。
URLリンク(www.autohotkey.com)

これのパラレルポート版に相当するサンプルがあると最高なのですが、探せませんでした。
ジョイスティック制御のdppの技術が使えそうですが、本家をdppで検索してもヒットせず。

ポート制御の達人がいらっしゃいましたら、なにかヒントをいただけると嬉しいです。

386:名無しさん@お腹いっぱい。
09/03/07 08:57:54 EX6aOmt+0
>>385
そういうのは VBとかDelphiとかのフォーラムとか過去ログ覗いたらいいと思う。
前にDelphi使ってたけど、シリアルポート制御のコンポーネントとかいくつかあったはず。
VBにもあるだろうと思う。それを移植するか、DLL化して使うか。
多分、需要がなくなっていない分野なら、C#やVB.netのものも見つかると思う。

VB、Delphi、C#、VB.net はVB以外は無料バージョンあるから、
ポトペタでGUI作れるからAHKよりよほど楽なんで、いっそそっちの言語でつくってもいいし

387:名無しさん@お腹いっぱい。
09/03/07 09:00:02 EX6aOmt+0
ごめん、パラレルポートだったか。どちらにせよ、検索してみてほしい。

Delphiだとこの辺。

Delphi-ML過去ログ検索
URLリンク(leed.t.u-tokyo.ac.jp)
Delphi ML archive | Google グループ
URLリンク(groups.google.co.jp)
Delphi Q & A掲示板
URLリンク(hpcgi1.nifty.com)


388:名無しさん@お腹いっぱい。
09/03/07 09:43:07 EX6aOmt+0
> 【1 OSの種類         .】 Windows Vista SP1
> 【2 Excelのバージョン   】 Excel 2007
> 【3 VBAが使えるか    .】 はい
> 【4 VBAでの回答の可否】 否
> 【5 検索キーワード     】 Excel 補完 タブ Tab エンター ENTER など
>
> すごく、無茶な質問を承知でお聞きいたします。
>
> Excel上やVBAエディタ上では、補完候補の決定がタブになっているのですが、
> 他の開発環境のクセでエンターを間違えておして毎回イライラしてしまいます。
> 間違えないようにする方法、もしくは、タブではなくエンターで決定する方法はありませんでしょうか?

誘導されてきました。
こういうのってAutoHotKeyで可能なんでしょうか?

候補ウインドウが出ている時だけ、ENTERをTABに置換?
うーん考えただけで・・・

389:名無しさん@お腹いっぱい。
09/03/07 12:24:08 umaUJV8o0
英語版のキーボードと日本語版のキーボードを
それぞれ場合分けして処理することはできないでしょうか

390:名無しさん@お腹いっぱい。
09/03/07 12:45:36 GNhe+RZO0
>>388
出来ると思う。

>.>389
無理。

391:名無しさん@お腹いっぱい。
09/03/07 13:43:56 umaUJV8o0
>>390
そうですかわかりました

392:名無しさん@お腹いっぱい。
09/03/07 20:19:46 9fbJ8ZNJ0
メニューバーの編集(E)とかワードパットのフォントカラーとかを
操作できる命令はありますか?

393:名無しさん@お腹いっぱい。
09/03/07 20:38:41 MDzSZOKi0
あるよ

394:名無しさん@お腹いっぱい。
09/03/07 22:23:07 uKtAZx+C0
gui で作成したウィンドウにデフォルトでついている
右上の最小化ボタン(_)がありますよね?
これをクリックしたらタスクバーに表示せず
タスクトレイに格納したいのですが
どうすればよいのかわかりません

言い換えると、gui の操作で minimize のコマンドを送るようにできればいいのですが


395:名無しさん@お腹いっぱい。
09/03/08 00:00:01 tr/g5E240
>>386
情報どうもです。別方面からも検討してみます。

396:名無しさん@お腹いっぱい。
09/03/08 10:26:24 U6oXO4Qm0
Escキーを2回、トントンって入力するとウィンドウが最小化するスクリプトを
書きたいんだけど、どこが間違っているか教えて欲しい

Inputコマンド
URLリンク(lukewarm.s101.xrea.com)

↓ソース
Esc::
Input,InputChar,C I L1 T2,endkey,{Esc},z,x
if ErrorLevel=Match
{
if InputChar={Esc}
WinMinimize, A
if InputChar=z
if InputChar=x
}
return


397:名無しさん@お腹いっぱい。
09/03/08 10:34:55 esDbqi200
キーのダブルタップはサンプルあるだろ

398:394
09/03/08 12:41:19 Zm/1oWz60
自己レスですが
gui close で何とかなりそうですね
スレ汚し失礼しました

399:394
09/03/08 12:59:56 Zm/1oWz60
たびたびすみません
やっぱりできません

400:名無しさん@お腹いっぱい。
09/03/08 15:01:14 INaMOjyr0
>>399
右クリフックしてWM_NCHITTESTでマウス位置調べたらいいんじゃね
HTMINBUTTON だったらGUIを Hideにする。
タスクトレイからの復旧はMenuを書き替えればできるべ

401:名無しさん@お腹いっぱい。
09/03/08 20:24:31 CbAikyhi0
>>400
ふむ、その手が使えそうですね
ありがとうございました

402:名無しさん@お腹いっぱい。
09/03/08 20:39:34 W44aSFYp0
まっとうにやるなら>>400だけど。別の方法

Menu, Tray, Add, ShowGui
Gui, Add, Text,, This is Test
ShowGui:
 Gui, Show
return
GuiSize:
 if A_GuiWidth<1
  Gui, Hide
 return

403:名無しさん@お腹いっぱい。
09/03/08 22:31:03 OvInxdiZ0
テキストファイルを読み込むときに
最終行を検出する方法はありますか?


404:名無しさん@お腹いっぱい。
09/03/08 23:41:33 W44aSFYp0
ないんじゃないかな。

Loop, PARSE, ファイル名, `n
 hoge := A_LoopReadLine

とすればループが終わったときに hoge には最終行の内容が入っているけど

405:名無しさん@お腹いっぱい。
09/03/08 23:46:14 ABSLuhUi0
>>404
そうできるのであれば十分です
どうもありがとうございます!

406:名無しさん@お腹いっぱい。
09/03/09 18:31:39 3Pb9nLSu0
ワードパッドの書式バーのフォントの色の変更や
太字化をahkでやりたいんですが座標指定でやるしかないんでしょうか?
WinMenuSelectでは反応しないし、
ボタンのハンドルをMouseGetPosで調べることもできません。
青とか赤の個別の色のボタンは調べられるんですが、値が毎回違うので
行き詰っています。

407:406こういう感じでやりました
09/03/09 18:48:21 3Pb9nLSu0
#F::
MouseGetPos, X , Y, W, OVC,2 ;これでハンドルを調べました
MsgBox %W% <--> %OVC%
clipboard = %OVC%
return

#G::
SetTitleMatchMode,2
DetectHiddenText, On

WinMenuSelectItem,ahk_id 0x50370,,7& ;ウインドウのハンドルからメニューバーとして操作しようとしましたが
WinMenuSelectItem,ahk_id 0x50370,,8& ;反応しません
WinMenuSelectItem,ahk_id 0x50370,,9&
WinMenuSelectItem,ahk_id 0x50370,,10&
WinMenuSelectItem,ahk_id 0x50370,,11&
WinMenuSelectItem,ahk_id 0x50370,,12&
;WinMenuSelectItem,ahk_id 0x50370,,1&,1& ;ファイル→新規、これは動きます


408:406こういう感じでやりました
09/03/09 18:50:43 3Pb9nLSu0
WinMenuSelectItem,ahk_id 0xd40372,,1& ;バー自体のアドレスからメニューバーとして操作しようとして
WinMenuSelectItem,ahk_id 0xd40372,,2& ;動きません
WinMenuSelectItem,ahk_id 0xd40372,,3&
WinMenuSelectItem,ahk_id 0xd40372,,4&
WinMenuSelectItem,ahk_id 0xd40372,,5&

WinMenuSelectItem,ahk_id 0xd60376,,1& ;反応しません
WinMenuSelectItem,ahk_id 0xd60376,,2&
WinMenuSelectItem,ahk_id 0xd60376,,3&
WinMenuSelectItem,ahk_id 0xd60376,,4&
WinMenuSelectItem,ahk_id 0xd60376,,5&

WinMenuSelectItem,ahk_id 0x9d01b2,,1& 
WinMenuSelectItem,ahk_id 0x9d01b2,,2& 
WinMenuSelectItem,ahk_id 0x9d01b2,,3& 
WinMenuSelectItem,ahk_id 0x9d01b2,,4&
WinMenuSelectItem,ahk_id 0x9d01b2,,5& 

ControlClick,,ahk_id 0xfb0194,,LEFT ;ハンドルが特定できません
MsgBox done
return

409:nCIjdtNZgMN
09/03/09 18:51:33 1ok/Ifbl0
comment5, URLリンク(kim-kardashian-video.limitedliability.us) kim kardashian nude video, %-PP,

410:406こういう感じでやりました
09/03/09 19:17:25 3Pb9nLSu0
やり直したらinspect_toolbarがなぜか今回は動いたので
それでやってみます

411:406こういう感じでやりました
09/03/09 23:05:06 3Pb9nLSu0
連投すみません
ワードパッドの書式バーの位置をずらした後
(メニューバー・ファイル(ファイル...
    ツールーバー
     書式バー(MSゴシック...
のように


inspect_tool_ids で書式バーのコマンドIDを調べて(32801)

#G::
PostMessage,0x111,32801,0,,A
return

でフォントの色を選ぶボタンをahk経由で押させることは出来たのですが、
赤とか青とかの個別の色を押させることが出来ません。
方法はありますか?

412:406-411(除409)
09/03/10 00:39:25 VYBxlQGq0
すいません、出来ました。Resource HackerでIDが調べられて
無事できました。ありがとうございました。長すぎる連投してしまい
本当に申し訳ないです。

413:名無しさん@お腹いっぱい。
09/03/10 15:05:28 rmSmGeHP0
起動してるプロセスを取得してその中から選択したプロセスを監視して任意の条件でいろいろする
ってのをやってみてるんだけど
IrvineとかJaneとかプロセスが二重に取得されてどっちを選べばいいかわからない

414:名無しさん@お腹いっぱい。
09/03/10 15:11:02 D/8zxGdl0
多重で起動してるの?すごい使い方だな。

415:名無しさん@お腹いっぱい。
09/03/10 15:47:04 rmSmGeHP0
一つしか起動してないけど取得されるのは二つになってるってこと

416:名無しさん@お腹いっぱい。
09/03/10 16:27:55 4NcKH5rc0
AHKでプロセスいじるのって Process コマンドでの
 存在チェック(PID取得)、  強制終了、  優先度変更、 終了/存在待ち
だけど、二重に取得されるってどういうことだろ

Process, Exist, Jane2ch.exe
pid := ErrorLevel
WinGet, list, LIST, ahk_pid %pid%
MsgBox, %list%
ってすると2個窓がとれるけど
これのことだったら >>144,147,153 あたりと同じなんだが・・・

417:名無しさん@お腹いっぱい。
09/03/10 21:21:52 gm+lfOz80
Delphi製のアレなら、既に解決方法は確立されているので検索してこい

418:名無しさん@お腹いっぱい。
09/03/11 03:02:36 pYoGuoaj0
WM_COMMANDでメニューバーをクリックしたときにでてくる新しいウインドウ
の中のコマンドに対するコマンドIDをしらべたいんですが、
何かいい方法はありますか?

窓コンもinspect_toolbarも反応しなくて、resource hacker
でも調べられません。

ddwinとかpdicビューワーに使いたいんですけど。

419:名無しさん@お腹いっぱい。
09/03/11 07:16:24 1ccOe8xw0
WheelScroll.ahk の改造版をうpしますた。ホイール加速を滑らかにしたつもり。
URLリンク(lukewarm.s101.xrea.com) の 104.zip

420:名無しさん@お腹いっぱい。
09/03/11 08:59:21 12ef3abb0
AutoHotKeyのPython版みたいなのみつけた。
AutoHotKeyのスクリプトの記述性の低さが嫌な人にはいいのかも。

keyhac ?(craftware)?
URLリンク(sites.google.com)

まあ、AutoHotKeyはDSL(ドメイン特化言語)で手軽さがあってそれでいてGUI持つくれるというのがいいけどね。
(まあ、PythonもGUIいけるけど)

421:名無しさん@お腹いっぱい。
09/03/11 10:22:40 12ef3abb0
ちょっと質問です。OpenJaneで「お気に入り」に入れてあるスレを
お気に入りからはずして「印」のみつける(お気に入りからはずすと何故か「印」がはずれてしまうため)
というのを一発でやりたいと考えています。

メニューのコマンドを送ろうとしているのですが、ControlSendを使ってもキーが送られないようです。
以下のように単なるSendだと上手くいっているようなのですが、
ControlSendとSendの違いってなんなんでしょうか?

; OpenJane
#IfWinActive, Jane ahk_class TMainWnd
; Ctrl+D to delete favorite without deleting SIRUSI
^d::
 WinWait,Jane ahk_class TMainWnd
 Send, !tv
 Sleep, 100
 Send, !tm
; ControlSend,,!tv!tm ; damepo
return
#IfWinActive

422:名無しさん@お腹いっぱい。
09/03/11 11:45:04 iQp8Awzp0
Sendはフォーカスのあるところに送る
ControlSendはフォーカスが無くても、というか対象を指定してキーを送る

ウィンドウ指定+コントロールの指定なし、でいけるんじゃないの
Styleだけど↓で動くよ
ControlSend,, !tv!tm, ahk_class TMainWnd

423:名無しさん@お腹いっぱい。
09/03/11 11:48:35 iQp8Awzp0
というか、非アクティブ窓に送るのがControlSendの主目的だし
#IfWinactiveつかってるんだし、>>421でうごくならそれでいいと思う

keyhacはkeymapがあるし繭の代替みたいなかんじだぬ

424:名無しさん@お腹いっぱい。
09/03/11 12:50:26 12ef3abb0
>>422-423
サンクス。
なるほど、アクティブのときに使うなら必要ないですね。
むしろ、フォーカスないときに送るAPIもあるのかと感心したw

425:名無しさん@お腹いっぱい。
09/03/11 16:10:47 7PTN87iF0

どうしてもスマートな書き方が分からず困ってしまったので質問します。

Photoshop7.0を使っているのですが、そのPhotoshopでの作業で
ズームイン・アウトの動作は、alt+マウスのホイールで行うんですけど
それをホイールのみで行いたいんですが、いまいちうまく動作しません。

; Photoshop
#IfWinActive, ahk_class Photoshop
    wheelup::Send, {ALTDOWN}{wheelup}
    wheeldown::Send, {ALTDOWN}{wheeldown}
#IfWinActive

とりあえずこれで動くことは動くんですが、これだとaltキーが押されっぱなしで
いったんaltキーを押さないと開放されないんです。
ホイールの動作を止めてから、0.5秒くらいでaltキーが都度開放されるようにしたいんですが
どういう風に書けば良いんでしょうか。

426:名無しさん@お腹いっぱい。
09/03/11 17:30:08 SMQKLnXdP
!{WheelUp}じゃ駄目なの?

427:名無しさん@お腹いっぱい。
09/03/11 17:40:17 WedUAl7t0
うむ、自分も色々試したんだけど、ウチのCS3ではダメなんだよな
!修飾だとズームさえしないし、Sleep,500 して Send {Alt Up} してもズームはするがAltが押しっぱ状態
色々なSendModeやhookにしたけどダメだった

ただのズームで良ければ、Ctrl-やCtrl+送れば良いけど、
これだとポインタ位置のズームにならないから期待には沿えないんだろうな

428:425
09/03/11 17:44:19 zQD6nmYr0
>>427
>ただのズームで良ければ、Ctrl-やCtrl+送れば良いけど、
>これだとポインタ位置のズームにならないから期待には沿えないんだろうな

ははは。仰るとおりです。単なるズームならそれで良いんですけどね。
やっぱ難しいのかな…。
Photoshop7.0以前のホイール動作がしたいだけなんですけどねー。

429:425
09/03/11 17:51:27 zQD6nmYr0
>>426
実際やってみると分かるんですが、
それでは「altキーを押しっぱなしでホイール動作」にはならないんですよね。
altとホイールを同時に入力、とみなされて、微妙にカククアした動作になるんですよ。
押しっぱなしというキー入力がないと、スムーズにズームしないんですよね。

430:名無しさん@お腹いっぱい。
09/03/11 18:10:32 WedUAl7t0
あー、ウチではこれで動くようになったけど、かなりインチキくさいので7.0ではダメかも
Sleep後のAltの送り方をイジれば何とかいけそうなんでは
wheelup::
SendInput {Alt Down}{WheelUp}
Sleep, 500
Send {Alt}
Send {Alt Up}
return


431:名無しさん@お腹いっぱい。
09/03/11 18:21:31 iQp8Awzp0
> Sleep後のAltの送り方
タイマーでいいんじゃないかな。環境がないから何とも言えないけど。

wheelup::
wheeldown::
SendInput {Alt Down}{%A_ThisHotkey%}
SetTimer, AltUp, 500
return

AltUp:
Send, {Alt}
Send, {Alt Up}
return

432:425
09/03/11 18:45:36 zQD6nmYr0
>>430
おお!まさしく理想の動きになりました!
Sleep後の動作の書き方が分からなくてつまづいてました…。
ありがとうございます!

>>431
そちらも試してみましたが、なんかaltキーが常時連打されてるような動作になりました…。

433:名無しさん@お腹いっぱい。
09/03/11 18:51:43 W+NxFur40
解決したようだけど、押しっぱなしの原因は#HotkeyModifierTimeoutのあたりなのかな?

434:431
09/03/11 19:07:50 iQp8Awzp0
> そちらも試してみましたが、なんかaltキーが常時連打されてるような動作になりました…。
うは、初歩的なミス
> SetTimer, AltUp, 500
は↓で
SetTimer, AltUp, -500

解決したならいいんだけど

435:425
09/03/11 19:34:30 zQD6nmYr0
>>434
ありがとうございます!
キチンとスムーズに動作してくれました。

AutoHotkeyの存在を知ったのが昨日なのでまだあまり把握しきれてないですが、
かなり勉強になったのでちょっとハマってみます。

436:名無しさん@お腹いっぱい。
09/03/11 21:02:29 G1UR0H3q0
>>434
>負の値を指定した場合、その絶対値の時間が経過後に、一度だけサブルーチンが実行される。
勉強になった、d.。
ふぅ、無駄こいた(´;ω;`)ブワッ

wheelup::
wheeldown::
Send, {Alt Down}{%A_ThisHotkey%}
MouseGetPos, xMouse, yMouse
settimer, IdleMouseMoved, 100
return

IdleMouseMoved:
MouseGetPos, xMouseNow, yMouseNow
xMouseChange := ( xMouseNow - xMouse ) * ( xMouseNow - xMouse )
yMouseChange := ( yMouseNow - yMouse ) * ( yMouseNow - yMouse )
If (xMouseChange > 9) | (yMouseChange > 9) | (A_TimeIdle > 500){
send, {Alt Up}
settimer, IdleMouseMoved, off
}
Return

437:名無しさん@お腹いっぱい。
09/03/11 21:11:08 XeGc9YVz0
作成した関数が
複数の値を返すことはできますか?

438:名無しさん@お腹いっぱい。
09/03/11 22:25:12 NuVSrS420
>>437
引数の参照渡し(ByRef)を使ってみるとか。

#persistent
SetTimer, timer
return

MouseGetScreenPos(ByRef x, ByRef y){
CoordMode, Mouse, Screen
MouseGetPos, x, y
CoordMode, Mouse, Relative
}

timer:
MouseGetScreenPos(sx, sy)
MouseGetPos, x, y
tooltip, x%x%`ny%y%`n`nsx%sx%`nsy%sy%
return

439:名無しさん@お腹いっぱい。
09/03/11 22:26:53 RHpZI3IT0
windowsXPにAHK1.0.48.00をインストールしました
起動するにはAutoHotkey.exeをwクリックすればいいんですよね?
どうも起動していないようです
プロセスにも載っていません
どうすれば使えるようになるのでしょうか?
よろしくおねがします

440:名無しさん@お腹いっぱい。
09/03/11 22:41:17 G1UR0H3q0
>>439
exeと同じところにAutoHotkey.iniを作ってメモ帳で編集。
a::a
で保存。exeをダブルクリックするか、iniをexeにD&Dすればいい。

441:名無しさん@お腹いっぱい。
09/03/11 22:52:15 RHpZI3IT0
>>440
ありがとうございます。無事動きました。
以前使っていた自作のスクリプトがなぜか駄目だったようです
これが原因とは思っても見なかったので
初歩的なことを聞いてしまいました
おかげで切り分けが出来きて解決しました


442:名無しさん@お腹いっぱい。
09/03/12 01:46:44 F1m5qWie0
>>438
なるほど。参照渡しなら間違いないですね
ありがとうございます。


別件の質問ですが
a に test があり、かつb に hogeがあるときで
条件分岐をしたいのですが

If a in test and b in hoge

と書いたら上手く動きません
初歩的なことだと思いますが
どうすればよいのでしょうか


443:名無しさん@お腹いっぱい。
09/03/12 02:07:36 1BiiCvek0
if InStr(a, "tesst", true) && InStr(b, "hoge", true)

Caseを問わないなら括弧内の第3引数を省略または false にする

444:名無しさん@お腹いっぱい。
09/03/12 02:21:15 F1m5qWie0
>>443
ありがとうございます。

445:名無しさん@お腹いっぱい。
09/03/13 13:49:22 fNm1iUGy0
無変換キーをシフトキーのかわりとして使いたいのですが

無変換キー+A をshift + A とするだけではなく
ctrl + 無変換キー+A をctrl + shift + A や
win + ctrl + 無変換キー+A をwin + ctrl + shift + A というふうに
あたかもレジストリの編集により無変換キーをシフトキーとしたように動作させたいです

remap を使っても思ったとおりの動作ができません


446:名無しさん@お腹いっぱい。
09/03/13 14:01:43 nMFGybhR0
「思ったとおりの動作ができません」がどうせ間違ってるんだから、
途中まで試したコードを晒してみたら?

447:名無しさん@お腹いっぱい。
09/03/13 15:12:04 fNm1iUGy0
すみませんでした

sc07B::shift

だけでできました

448:名無しさん@お腹いっぱい。
09/03/13 15:47:42 fNm1iUGy0
たびたびすみません

リマップ
URLリンク(lukewarm.s101.xrea.com)

> リマップによって生成された入力では、フックを使用しているホットキー(「$^c」など)は反応しない。

この制限を解除する方法はありませんか?

449:jbpfxyseplh
09/03/13 15:47:58 DVfGG20W0
uGaXvO <a href="URLリンク(gvatgngxmxho.com)">gvatgngxmxho</a>, [url=URLリンク(iyoeszfqayam.com) [link=URLリンク(ohsodtdhgqfa.com) URLリンク(oqdjndcqppwj.com)

450:名無しさん@お腹いっぱい。
09/03/13 19:24:04 xVfJVQvM0
モディファイアのリマップはScancodeMapいじるようにした方が
何かとすっきりさっぱりだと思うんだ。

451:名無しさん@お腹いっぱい。
09/03/13 22:39:12 nX9nzRDN0
>>450
そうですか。
ありがとうございます。

452:名無しさん@お腹いっぱい。
09/03/14 21:34:52 4icr6LvT0
fenrirの呼び出しキーをうまく設定できません

^a::
send,^b
return

こういう設定を書きました
そのうえで、fenrirの呼び出しキーの設定の項目で
ctrl + A
を入力しました。

すると、左のctrlキーのときには意図したとおり
ctrl + B
が入力されたことになるのですが、
右のctrlキーのときには
なし
と表示されてしまいます。

パソコンはvistaを使っています
どうすれば右のctrlキーを左のctrlキーのように動かせるのでしょうか



453:名無しさん@お腹いっぱい。
09/03/15 00:25:08 lsWqS3cG0
>>452
なんか言ってることがよく分からんが、それfenrirを起動したくないってこと?

454:名無しさん@お腹いっぱい。
09/03/15 00:58:42 SZZoZhnK0
>>453
いやそうじゃないんです

他のソフト(エディタとか)では
右のctrl + A できちんと ctrl + Bが動作するんですが
fenrirに限ってはそのようには動かないんです
左のctrl + A ではfenrirでもきちんと ctrl + Bが動作するんですが
あ、fenrirは最新バージョンを使っています

どうもautohotkeyの内部で
右のctrlと左のctrlの処理が大きく異なっていると思うのですが

よくわかりません


455:名無しさん@お腹いっぱい。
09/03/15 09:19:57 AqdEGZ0E0
fenrir側の呼び出しキーの取得方法が特殊なんじゃなかろうか。

わざわざCtrl-Aを一旦Ctrl-Bにして呼び出す理由が分からないけど、
ただ前面にしたいなら、fenrirを二重起動するという方法もあると思う

456:名無しさん@お腹いっぱい。
09/03/15 09:46:43 aN9r1MmC0
LCtrlとRCtrlと両方書いてもだめかぬ

457:名無しさん@お腹いっぱい。
09/03/15 09:54:41 B8F8JwCv0
Gui, Add, Hotkey
Gui, Show
return
^A::MsgBox, Send`, "Ctrl + B"

いったんAHK止めてからせっていすりゃいいんじゃねーの

458:名無しさん@お腹いっぱい。
09/03/15 10:14:36 aN9r1MmC0
試してみたら正常動作したけどfenrirが古かったから最新版にしてみたんだがやっぱり普通に動くな

459:名無しさん@お腹いっぱい。
09/03/15 13:07:53 2+vykJE1P
もし {vkXXscXX} の形式だったら {vkXX} だけにしてみるとか

460:452
09/03/15 14:01:34 dCql5Xe00
autohotkey のkeyhistoryを見てみました

左のctrl + b では

42 030 i d 10.25 B fenrir
42 030 i u 0.00 B


右のctrl + b では

A2 01D i d 2.42 Ctrl fenrir
A3 11D i u 0.00 Right Control
42 030 i d 0.00 B
42 030 i u 0.00 B
A2 01D i u 0.02 Ctrl

こうなりました
そこで以下のように書いたら左のctrl + bと同様に動きました

^a::
send,{blind}b
return

>>457のスクリプトではどちらのctrlも正常に動きます
上記のみなさんのご指摘を踏まえると、
私の環境が特異だということですかね
いろいろと調べてみます
ありがとうございました。

461:名無しさん@お腹いっぱい。
09/03/16 17:00:43 OR65f9ys0
ホットキー用のキー足りねぇ→キーボード2台つなげばよくね
と思い、ジャンクの安いキーボード買ってきた

2台目用はScrollLockでもして、それで1台目と区別すりゃいいなと思ってたんだが
ScrollLockもCapsLockもNumLockも連動しやがる

1台目と2台目のキーボードの入力を判別する方法はないでしょうか?
PS/2接続とUSB接続の2台なんですが



462:名無しさん@お腹いっぱい。
09/03/16 19:38:57 BkAbLvKa0
斜め上を行く発想だなw
レスじゃなくてスマンが…

463:名無しさん@お腹いっぱい。
09/03/16 19:42:47 eGMmt4nd0
ソフト名忘れたが、デバイスドライバレベルで区分けするフリーソフトがあるよ。
たしか作者は日本人

464:名無しさん@お腹いっぱい。
09/03/16 20:51:44 5g2lI0+Z0
俺はプログラマブルキーボード使ってる。
本来はキーマクロを割り当てて使うものだが、キーマクロのメモリ登録では、
アプリ毎に動作を切り替えられず、専用のツールを利用すれば対象アプリ毎の
設定も出来るが、あまり出来が良くないので、メモリにはF13〜F24や、
普通のキーボードでは入力しづらいショートカットキーを登録し、
AutoHotkeyで引っ掛けてアプリ毎の動作に書き替えてる。

465:名無しさん@お腹いっぱい。
09/03/16 21:39:38 OR65f9ys0
>>463
情報ありがとう、それがみつかればできそうだ

>>464
俺も最初プログラマブルキーボードか、ホットキーがいっぱいあるゲーミングキーボードとか考えたんだか
特殊なキーボードは値段が高くて選択肢も少ないので、なんとかならないかと思ったんだが

プログラマブルってほどじゃなくても、全キーをWinキーあたりと同時押しができれば
あとはAutoHotKeyで十分なんだけど
ただWinキーを押しっぱなしで固定するだけじゃ、やっぱり2台とも連動して駄目だし
ハード的に改造しようかと調べてもROMライター前提で変換基盤自作とか、素人には無理そうだし

466:名無しさん@お腹いっぱい。
09/03/17 00:59:49 VkzQ2R4K0
setntptimeという時刻修正プログラムを実行後、ログの最後の4行を
TrayTipかMsgBoxに表示するようにしたいのですが

RunWait, C:\App\Internet\setntptime\setntptime.exe,,hide
logfile = C:\App\Internet\setntptime\settimeLog.txt
i = 0
Loop, read, %logfile%
{
i += 1
}
FileReadLine, server, %logfile%, i-3
FileReadLine, oldtime, %logfile%, i-2
FileReadLine, fixtime, %logfile%, i-1 ;最終行は改行だけなので省略
MsgBox,, setntptime log, %server%`n%oldtime%`n%fixtime%
return

のように、2度手間になりますがログの行数を取得してからFileReadLineする
方法しか思い浮かびませんでした。
もう少しスマートにしたいんですが良い方法あったらご教授ください。

467:名無しさん@お腹いっぱい。
09/03/17 01:19:19 pREBWc+h0
>>466
RunWait, C:\App\Internet\setntptime\setntptime.exe,,hide
logfile = C:\App\Internet\setntptime\settimeLog.txt
Loop, read, %logfile%
{
server=%oldtime%
oldtime=%fixtime%
fixtime=%dummy%
dummy=%A_LoopReadLine% ;改行が入る
}
MsgBox,, setntptime log, %server%`n%oldtime%`n%fixtime%
return

こんなんじゃだめ?

468:名無しさん@お腹いっぱい。
09/03/17 01:24:58 Q86YJixB0
すげぇ・・・なんというアクロバティック。これがこのスレの底力だな

469:名無しさん@お腹いっぱい。
09/03/17 01:50:46 VkzQ2R4K0
>>467
うおー即レスありがとうございます
ダミー咬まして・・・うーん頭こんがらかりそう
使わせていただきます。

470:名無しさん@お腹いっぱい。
09/03/17 13:48:31 hCcdtXRQ0
>>419
遅レスですが、IKKI氏乙です。

何か年末に作って放置してたのがあったのであげてみる。

秀丸でAHK編集する人のための CompleteX 用設定
LIBフォルダの関数ライブラリを読んで単語補完辞書&ヒントを作成する。
URLリンク(www6.atwiki.jp)

471:名無しさん@お腹いっぱい。
09/03/17 15:39:39 Lst9ESBRP
Runで引数を変数で与えたいんだが、
Run, %var1%, %var2%
ってやっても作業ディレクトリがうまく与えられないみたいなんだけど
何が原因?

472:名無しさん@お腹いっぱい。
09/03/17 15:52:26 Lst9ESBRP
ごめんなさい自己解決
制御文字が含まれてたっぽい

473:名無しさん@お腹いっぱい。
09/03/17 18:39:45 gDeBu6wE0
よくあるw
エクスプローラの引数とか特に

俺は行数増えるけど見通しよくするために↓みたくしてる

dir = c:\hoge\hoge
cmd = %var1%, %var2%
Run, %cmd%, %dir%

474:名無しさん@お腹いっぱい。
09/03/17 19:02:16 hImTYnxN0
>>470 乙です

一方、海の向こうではchmでいくんだろうか?
 GenDocs v2.0 - Create StdLib documentation easily!
 URLリンク(www.autohotkey.com)
といっても、前スレ
 GenDocs - utility for creating StdLib documentation
 URLリンク(www.autohotkey.com)
も含め投票数(反応)そのものも少ないみたいだし、このまま付けたり付けなかったりバラバラでいくのかな。。

475:名無しさん@お腹いっぱい。
09/03/17 19:03:05 L7m3HeAn0
作業ディレクトリを指定したら、実行ファイルってファイル名だけでいい気がした。
当たり前か・・・

476:名無しさん@お腹いっぱい。
09/03/17 21:04:07 lw7F/3Qx0
>>467
これ、発想がすばらしいなぁ。
AHK以外でも使えそうなアルゴリズムだ。ありがとう

477:名無しさん@お腹いっぱい。
09/03/18 00:30:37 2PEehZZi0
>>470
ちょうど欲しいと思ってた CompleteX 辞書ww
ありがとう、使わせてもらいます。

478:名無しさん@お腹いっぱい。
09/03/18 09:35:49 OXmG24Mg0
スクリプト内でも関数ライブラリ使ってんの忘れてたorz

秀丸でAHK編集する人のための CompleteX 用設定
ファイルパス関数群 (Path.ahk)同梱版
URLリンク(www6.atwiki.jp)


479:名無しさん@お腹いっぱい。
09/03/18 14:37:20 zm0v5CvW0
みんな宜しくよノシ

480:名無しさん@お腹いっぱい。
09/03/18 19:11:42 wqUWRKfJ0
atokの変換リストを表示中に
autohotkeyで操作をしたいのですが
atokの変換リストを表示しているかどうかを
取得する方法が分かりません。

window spyを使っても使用しているエディタの情報だけを
取得してしまっているようです
どうすればいいのでしょうか

481:名無しさん@お腹いっぱい。
09/03/18 21:24:09 xJ1I3V720
IME.ahk でいいじゃん。とおもったけどリストが出ているかどうかは分からないのね。

で、原始的だが変換リストを出してマウス直下の窓を調べるほうほうでやった

Pause::
MouseGetPos,,, hwnd
WinGetClass, class, ahk_id %hwnd%
Tooltip, %class%
return

ATOK2007なので"ATOK20Cand" だった。
で、いい加減だけど、指定の窓があったら(ウィンドウハンドルが0以外なら)
変換中とすればいいんじゃないかな

Pause::
Tooltip, % WinExist("ahk_class ATOK20Cand")
return

これが出ているとき専用のキーバインドが欲しいなら #Ifが使える、Autohotkey_Lが向いてそうだ

#If WinExist("ahk_class ATOK20Cand")
a:: hoge
b:: hige

482:名無しさん@お腹いっぱい。
09/03/18 21:26:05 xJ1I3V720
あ、、、#IfWinExist でいいじゃん・・・orz

483:名無しさん@お腹いっぱい。
09/03/19 00:19:09 DoWJYG5p0
>>481-482
おお!期待通りに動きました
ありがとうございます!


484:名無しさん@お腹いっぱい。
09/03/19 09:46:28 iKaTZieB0
超初歩的質問なんですがデスクトップをダブルクリックしたのを検出するのってどうやるんでしょうか
OSはVISTA32SP1です

485:名無しさん@お腹いっぱい。
09/03/20 17:37:19 oBtBrUgR0
こんにちは。わたしも質問です。
テンキーをマクロ用のホットキーとして使用してるのですが、

NumLockキーを押すと、「NumLock On&AHK Suspend」
もう一度押すと、「NumLock Off&AHK 再開」

このトグル動作をさせたいのですが、どのように記述すればいいのでしょうか。
よろしくおねがいします。

486:名無しさん@お腹いっぱい。
09/03/20 17:53:19 Ie0QoNxm0
SuspendじゃなくてPauseな気もする

487:名無しさん@お腹いっぱい。
09/03/20 18:03:04 Ie0QoNxm0
>>484
カーソル下をahk_class Progmanか否かで判別し、あとは下記を参考でできるかな?
~CTRL::
if A_PriorHotkey <> %A_ThisHotkey%, return
if A_TimeSincePriorHotkey > 400, return
;some action
return

488:名無しさん@お腹いっぱい。
09/03/20 18:11:28 Ie0QoNxm0
ああ、だめだ。あと下記も参考に
670 名前:665[sage] 投稿日:2008/06/06(金) 19:45:37 ID:89UJiJcz0
>>669
うあそういうことか

>>667
自レスも含みますが>666であったファイルの選択の状態を取得する他の方法を探したところ
ControlGetが使えそうなのでそれでやってみたテスト

~LButton::
MouseGetPos,MouseX,MouseY,WindowID,ClassNN,1 ; カーソル下の情報を取得(ClassNN以下いらないような
WinGet,DesktopID,,ahk_class Progman ; デスクトップのウィンドウIDを取得
ControlGet,StateListView,List,Selected,%ClassNN%,ahk_id %WindowID% ; StateListViewにSysListView32の選択項目名を入れる
If(A_TimeSincePriorHotkey<300 && DesktopID==WindowID && StateListView=="") ; デスクトップ上である&選択項目がない
Send,!{Numpad1}
return

アイコンのないところでダブルクリックをしたとき、イベントを乗っ取らないダブルクリックなので、
丁度よく最初のクリックの時点でデスクトップがアクティブになって選択状態が外れる
同じ方法でエクスプローラ・Openダイアログ等の余白をダブルクリックで上階層移動もできる
選択項目を利用するので MButton:: 等では途中に左クリック入れるとかしないとそのままではできない・・


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

5209日前に更新/194 KB
担当:undef