X



AutoHotkey スレッド part24 [無断転載禁止]©2ch.net

レス数が1000を超えています。これ以上書き込みはできません。
2017/07/05(水) 13:38:06.91ID:pQcxE+w20
>>716
なるほどそんな方法があったとは
>>717
調べてみましたがOnMessageでウィンドウに送られた操作により
関数WM_LBUTTONDOWNを実行していて
0x201が左クリック押し下げで、HTCAPTIONがタイトルバーの事で
0x2は(中止 再試行 無視)?0xA1?
左クリック押し下げをタイトルバー左クリック扱いにしてる的な?
これ以上はアホすぎて分かりませんでしたが
ありがたく使わせてもらいますありがとうございました
2017/07/06(木) 14:41:03.04ID:bDkSu5ce0
皆さんのお知恵を拝借したく存じます
OSはWindows 10 Creators Update(32bit)で、AutoHotkeyは最新の
v1.1.26.0(32bit)を使用中です
やりたいことは「ウインドウズの「天気」アプリを起動する。すでに起動済
みの場合はアクティブにする」です
起動済みのアプリはウインドウのタイトル──「天気」──を指定すれば
アクティブにできるのですが、新規に起動させる方法がわかりません
「天気」アプリのフルパスはC:\Windows\System32\
ApplicationFrameHost.exeで、どうやら「天気」に限らず「カレンダー」
「電卓」「設定」などすべてのアプリはフルパスが同じ、つまり
ApplicationFrameHost.exeという共通の実行ファイルのようです
ふだんはClassicShellのメインメニューにショートカットを置いてあるのでク
リックすればすぐ起動できるのですが、AutoHotkeyで一発で起動でき
ればなお便利です
「天気」アプリだけを新規に起動させる方法をご存じのかたがいらっしゃれ
ば教えていただきたく存じます
2017/07/06(木) 14:58:13.34ID:cYpWMSdX0
そのショートカットに書かれてるコマンドそのままRunしてできないの?
2017/07/06(木) 15:19:57.87ID:bDkSu5ce0
>>720
さっそくのレスどうもありがとう
ClassicShellに置いてあるショートカットは自分で作成したものではなく、
Windows 10のデフォルトのスタートメニューで選んだ「天気」アプリのアイ
コンが自動的に登録される仕組みです
ご指摘に従ってコマンドを調べようと右クリックしてプロパティを確認したところ
「Microsoft..BingWeather_8wekyb3d8bbwe!App」と書いてありました
そこで、Run, Microsoft..BingWeather_8wekyb3d8bbwe!App を実行
したところ「指定されたファイルが見つかりません」というエラーダイアログが
出てしまいます
どうすればよいのかしら?
2017/07/06(木) 15:22:51.01ID:mu6k+ziL0
レス書いてたら割と正解に近づいていたという

Run, shell:AppsFolder\Microsoft..BingWeather_8wekyb3d8bbwe!App
でできると思う
2017/07/06(木) 15:27:33.81ID:YlZ3WLUw0
run ,explorer.exe shell:AppsFolder\Microsoft.BingWeather_8wekyb3d8bbwe!App
こうじゃないの?
2017/07/06(木) 15:27:44.81ID:bDkSu5ce0
>>722
おかげさまでばっちりうまくいきました!
ちなみにコピペさせてもらったままだと「指定されたファイルが見つかりませ
ん」というエラーダイアログ」が出ましたが、「Microsoft」と「Bing」のあいだ
のピリオド2つ「..」をピリオド1つ「.」にしたら大成功でした
どうもありがとう!
2017/07/06(木) 15:29:14.17ID:bDkSu5ce0
>>723
レスありがとうございます
explorer.exe をつけてもばっちりうまくいきます
どうもありがとう
2017/07/14(金) 14:00:54.30ID:J0Dqledj0
パッカーでパックする以外にコンパイルしたexeのスクリプト丸見えなのを回避する方法って無いのかね。
2017/07/14(金) 14:19:16.98ID:2RF7a3cA0
古いバージョンなら暗号化できた気がする
2017/07/14(金) 14:39:44.68ID:J0Dqledj0
おお、ちょっと調べてみます。
2017/07/14(金) 17:40:12.37ID:Sx63cWJt0
>>726
暗号化しても意味無い
AHKのライセンスでソース付けないの禁止
2017/07/14(金) 20:23:37.13ID:J0Dqledj0
AutoHotkey_Hのコンパイラーで出来ました
2017/07/17(月) 13:04:37.83ID:3YRBsneS0
キーAを押しっぱなしにすると連射状態になりますが
他のキーを押すとAを押しっぱなしでも連射状態は止まりますよね?
このとき連射状態を復活させる手段はないでしょうか?
連射状態が復活できれば
完全に近いレジストリを書き換えないcapslockのモディファイア化が出来ます。


#capslockのモディファイア化挑戦の現状
キーの連射状態を観察してcapslockキーのリリースを一応検知できるところまでは出来ました
しかしcapslockを押している最中に他のキーを押すとループが終了して
リリースが検知できなくなってしまいます。

その一回でa::xは動作します。
押しっぱなしのモディファイアとしてはホットキー一回分しか使えないのが現状です。
2017/07/18(火) 15:52:32.59ID:HJjTR5hZ0
a.ahkというスクリプトを管理者で実行していて、その中から、Runコマンドで他のアプリを実行すると
それは管理者として起動します
これを管理者ではないユーザーとして実行することってできますか?
Win7なのですが、管理者として実行した場合とそうでないときとで、アプリの動作が違うのです
2017/07/18(火) 16:00:52.56ID:3xAgoAgw0
>>732
Run, Explorer "○○.exe"
2017/07/20(木) 13:41:15.68ID:ntVZc9sC0
AutoHotKey - Changes & New Features
1.1.26.01 - July 16, 2017

Fixed RegDelete (with no args) failing when A_LoopRegSubKey is blank, such as when enumerating keys directly under the root key.
Fixed RAlt/LAlt:: sometimes failing to prevent menu activation after the user alt-tabs away from a window and reactivates it.
Fixed SC → VK translation for multimedia keys, CtrlBreak, Pause, LWin and RWin, with the exception that multimedia keys and CtrlBreak are still translated incorrectly on Windows 2000 and XP.
Fixed VK → SC translation for multimedia keys, CtrlBreak and Pause.
Fixed 'Wait commands such as RunWait to log extra lines for ListLines only when necessary to show that it is still waiting; that is, after resuming from an interruption which logged other lines.
2017/07/22(土) 01:25:20.71ID:bUHxCpI00
>>710

          ,,,,,..ー彡彡ミミ))))ミノ、、、、
        彡彡///ミミミ)))))))ノノ)))ヽ
      //////ゞゞヾノノノノ//ノヾヽ
     ////////////゙ヾ、ノノノノ"~///ミミミミミミ
    r////////////           ミミミヾ)))))
   ノノノ/////////            ミヾ)))))))))
   ノノノノ////////              ミ)))))))))ノ
  ((//////////.,,、、,,,   )(    .,,,,,,、、 ヾノノノノノノ
  ノノノ.((((/////ノ.  ヾ゙ゝ // ./''"    ノノ((((((ノヾ
 ノノノ///////ノノ.∠ ●ヽ     /●`ヽ、 ((ヾヾヾヾ)
 ((((((((((///.   ` ー~ ` | |  `ー ´   |ヾヾミミヽ
 ((((((((((/ r.|      .,,.- l  l 、     .|^/))))))))
 ((((((((((.\_|     / ( (._) )\    |/)))))))))
 ((((ヾヾヾヾ .l   .f ,,,-===.v===-、ヽ  .iノノノノノノノ
 λヾヾヾヾヾヽ   l.`、.LlLlLlLlLl 7´.l  ./ノノノノノノノ この、ハゲーーーっ!
  ((ノノノノノノノノ.ヽ  ゝ ゝ 二二二ノ ./ ./ノノノノ
  λヾヾヾ|  ヽ\         /./ノノノノ
    \\.|   ヽ.ヽ、     ノ/   \
    / ヾヽ     \```ー.´´/      \
2017/07/22(土) 01:32:44.96ID:MMBTFc5u0
df87-YpI/ = 8287-coLX
2017/07/22(土) 04:18:04.17ID:bUHxCpI00
ちーがーうーだーろーー!
2017/07/22(土) 09:29:09.19ID:m5/75Y9F0
何日も経ってから怒り心頭でAA荒らしとか惨めなやつだな
2017/07/24(月) 10:56:36.48ID:vMsfHTY30
思い出し怒りだよ!
2017/07/25(火) 22:13:52.45ID:Say/v9tX0
マウスカーソルを動かした時に任意のコマンドを実行したい場合
MouseGetPosとSetTimerでカーソル位置の監視を繰り返すしかないですかね?
もし可能ならSetTimerを使わずにマウスの移動を検知する方法があったら
ご教示お願いします
2017/07/25(火) 22:37:31.20ID:5+ElbHaJ0
TrackWheelがDllCallでマウスフックしてRegisterCallback()でゴニョゴニョやってるな
難易度的にはSetTimerより格段に難しくなるけど効率優先でがんばりたいなら参考にしてみては

尚古いスクリプトなので AHK U64版では動かない模様
https://sites.google.com/site/agkh6mze/trackwheel
2017/07/25(火) 22:48:29.87ID:Say/v9tX0
>>741
レスありがとうございます
私の知識量ではどうやら難しそうですが、それが分かっただけでも感謝
743名無しさん@お腹いっぱい。 (ワッチョイ 7b01-FEN5)
垢版 |
2017/08/02(水) 19:51:14.90ID:swdU24Q10
F1::menu,私のメニュー,Show
sc07B & i::send,{Blind}{Up} ;無変換キーとiで↑
sc07B & k::send,{Blind}{Down} ;無変換キーとkで↓

menuコマンドでメニューを出した時その選択にカーソルキーを使いますが
その時ホットキーが使えないのは回避できませんか・・・・?
744名無しさん@お腹いっぱい。 (ワッチョイ 7b01-FEN5)
垢版 |
2017/08/02(水) 20:19:24.40ID:swdU24Q10
>>740 >>742
透明なウィンドウを最大化で描いてOnMessageでmousemoveを拾う方法なら昔試した事がある。
https://lumi4.blogspot.jp/2017/08/autohotkey-detect-mousemove.html
参考にどうぞ。




・・・・という訳で>>743もよろしくお願いします。
2017/08/02(水) 21:02:06.05ID:PcAOCJuP0
>>743
とりあえずってことなら、menuを出すスクリプトとカーソルキー機能のスクリプトを別AHKにして、
その2つを同時に常駐させるとmenuでカーソルのホットキーが使える。
2017/08/03(木) 00:13:24.75ID:ZCPN+VNJ0
>>743
単なる好奇心で聞きたいんだけど何のためにわざわざそんな面倒な操作するの?
テンキーレスやノートpcのキーボードでもカーソルキーなんて付いてると思うが…
それをわざわざ無変換+IとKって押しにくい位置だし、まだ無変換+WやSとかの方が
押しやすいだろうに
2017/08/03(木) 00:19:37.02ID:UMIF7cfz0
ホームポジションで入力できるからじゃね
それにi,kとw,sはあんま変わらん気がするが
w,sは薬指だからむしろ若干押しづらいような
2017/08/03(木) 00:19:44.36ID:4Ac+zMh30
JKLI のカーソル移動は俺も使ってる。(無変換+じゃなくて、変換+だけど)
右手のホームポジションで操作だから使いやすいよ。
2017/08/03(木) 00:23:44.07ID:2PUsdafW0
で結局この問題は、ポップアップメニュー表示中は割り込みできない仕様なの?
2017/08/03(木) 00:25:44.58ID:ZCPN+VNJ0
>>747-748
それなら無変換じゃなくて変換+JIKLの方が押しやすい
修飾キーのためにわざわざ両手使うの?
2017/08/03(木) 00:35:04.13ID:UMIF7cfz0
ホームポジションなら修飾キーは英数と逆の手で押すのが基本だし楽だよ
そうじゃなくてもそんなもん好みでいいじゃん
2017/08/03(木) 00:56:06.00ID:ZCPN+VNJ0
>>751
そんな基本は聞いたことなかった
ShiftやCtrl使うときもいつも片手だわ
まあ両手で押したい人ならそれで納得だけど
無変換+IKとか片手だとすごく押しにくいなーと思って聞いただけなので
2017/08/03(木) 00:58:47.91ID:IcGZPZ2o0
ブラインドタッチしてるかどうかの違いだろ?
>>5
のテンプレにあるくらい一般的だぞ
むしろここで何でそんなの使うの?
って質問が出た方がびっくしたわ
2017/08/03(木) 01:04:05.19ID:ZCPN+VNJ0
>>753
俺も当然ブラインドタッチしてるよ
でも修飾キーで両手は使わなかったと言うだけ
2017/08/03(木) 01:13:39.60ID:IcGZPZ2o0
ID:UMIF7cfz0は丁寧に答えて尊敬するわ
俺はイラッとしてきた・・・・
2017/08/03(木) 01:25:04.68ID:PsIL7bc30
>>755
カルシウム足りてないのでは?
2017/08/03(木) 01:29:37.86ID:I890JROW0
>>745
ありがとう
別AHK化ついでに抜本的に自分のコードを再構築することにした
現在まで拡張を重ねて1200行
複雑で重くなりメンテも機能追加も困難になってきてる
使用頻度の低い機能や高速応答性を求めない機能は外部化してその都度Runで呼び出す形にしよう

しかし、本格的なプログラミング経験もないし、改築・増築を繰り返して膨らんだコードは汚くなるなorz
リファクタリング頑張るぞー

>>749
そうみたいだね
2017/08/03(木) 03:39:57.07ID:LjQWaP7K0
1200行とか長すぎバカス
と思って自分の見たら1800行だった
2017/08/03(木) 04:34:30.77ID:7Mhtplw50
むしろ片手の指だけで全部操作は指への負担がデカい
2017/08/03(木) 04:45:33.96ID:/e2+Z1L50
変換・無変換キーは同じ修飾機能にしてるわ
修飾キーは基本的に逆の手派だけどこれって育った文化で違いそう
右手をマウスに置く時間とかCtrlキーの位置や押し方とか
2017/08/03(木) 06:28:15.59ID:4Ac+zMh30
>>745
キーボーでメニューを選ぶ時はカーソルキーで選ぶのも良いけど、
メニュー名1(&a)
メニュー名2(&s)
メニュー名3(&d)
&でショートカットキーを作って選ぶのも便利だと思うよ。
2017/08/03(木) 06:33:21.00ID:4Ac+zMh30
自分の場合、カーソルキーはShiftやCtrlとの組み合わせも良く使うから、
右手で変換+JKLI 、左手でShiftとCtrl を押してる。
これを全部同じ手でやるのは辛い。
2017/08/03(木) 07:23:40.79ID:pJZy4g/s0
うちはshiftもctrlも左小指固定だな、英数が左よりなら片手で右寄りなら両手
右手はマウスやカーソルキーへの持ち替えでホームにいない事も多いからか
修飾キーを右で押そうとは思わんかった
なので変換無変換もIMEのためだけのキーだわ
2017/08/03(木) 07:55:18.63ID:wNqV+uXd0
変換はエディタやIDEのようなキーボード主体のアプリで
アプリ固有のショートカットを割り当てるのに使ってるな
汎用操作を割り当てると混乱するしマウス操作が面倒になるので割り当てない
2017/08/03(木) 08:48:13.61ID:4Ac+zMh30
どんどん便利にカスタマイズか、自分以外のパソコンを使う時に困らないように控え目にカスタマイズか。
そういう葛藤がある人は多いんじゃないかな。
2017/08/03(木) 13:45:11.85ID:7Mhtplw50
前に変換+hjklでカーソルキー移動、かなカナ+hjklでマウスカーソル移動
としようとしたら流石に右手の使いすぎだと思ってやめた
2017/08/03(木) 15:45:25.10ID:b4JZoSmy0
カーソルはもう脳波で操れるようになればいい
2017/08/03(木) 16:48:00.65ID:TN4r2vLL0
変数 a = 123
とあって、その頭に半角スペースを1つつけたいのです

b = " "%a%
b := " "%a%
b := " " . %a%
b = %A_Space%%a%
b := %A_Space%%a%
b = {A_Space}%a%
b = {Space}%a%

どれもダメです
2017/08/03(木) 16:55:33.88ID:MD3pGL1j0
>>768
>>273
2017/08/03(木) 17:01:59.61ID:r88ylQgX0
a:=123
b:="` " + a
c:="` " + a + "` "
msgbox,a:[%a%],b:[%b%],c:[%c%]

cの結果に納得がいかない
2017/08/03(木) 17:02:45.66ID:TN4r2vLL0
>>769
ヒントありがとうございました。 式は知ってたのですが

b := " " . %a%

とやってダメだったので悩んでたのですが

b := " " . a

でできました。ほんと悩ましいwww
%a%を使っては出来ないのかな
2017/08/03(木) 17:04:22.88ID:TN4r2vLL0
>>770
b:="` " + a
ではなく
b:=" " + a
で出来ました
ダブルクオーテーションで囲めばエスケープはしなくてもよさそう
2017/08/03(木) 17:06:11.83ID:TN4r2vLL0
>>770
cやってみました
c:=" " + a + " "
でも空になりますね。 これは私も納得いかない
2017/08/03(木) 17:07:50.51ID:TN4r2vLL0
>>770
ああすいません。 私の勘違いです
文字列の連結はピリオドです
c:= " " . a . " "
でうまくいきます
2017/08/03(木) 17:24:42.94ID:6Sj7ihBf0
>>771
「:=」の式だから、%a%が展開されて「変数123」を参照するからです
a=123
aa=a
b := " " . %aa%
これだとちゃんと期待通りの動作になるはず
2017/08/03(木) 17:31:18.77ID:TN4r2vLL0
>>775
そういうことですね。ありがとうございました
式をつかわずに代入=で%a%を使ってする方法はないのかな
2017/08/03(木) 18:02:33.67ID:2PUsdafW0
autotrim
2017/08/03(木) 18:10:57.50ID:TN4r2vLL0
>>777
なるほど、そういうことだったんですね。 これがオンになってたから=代入だとわざわざ自動でカットされてたんですね
これも悩ましいなあw
2017/08/04(金) 09:38:48.74ID:MCY15x3Y0
初心者ですがこの関数作って下さいよろしくお願いします
key := showcontextmenu(
"
ファイル(&F)
編集(&E)
表示(&V)
ツール(&T)
ヘルプ(&H)
")

if key=f
if key=e
...
2017/08/04(金) 10:03:57.65ID:SkKFgPJN0
釣りならよそでやって
本気で言ってるならまず自分でやれ
2017/08/04(金) 11:25:35.48ID:dxEdSaJ60
おれもこの機会に無変換+IKJLで上下左右設定して
UとOにもPgUpとPgDnを設定したんだけど
HomeとEndも同様に設定してる人いたら割り当て聞いてみたい
イメージとしては上の7,9が順当な気がするけど
下のM,[.]の方が押しやすいかなとかY,Hもアリかなとか迷ってる
2017/08/04(金) 15:54:08.55ID:tO7YGvF00
IME的にAとE
783名無しさん@お腹いっぱい。 (ワッチョイ 0d01-3aaz)
垢版 |
2017/08/04(金) 17:24:29.81ID:hl+IJSJ50
>>781
単体のHome,End,PgUp,PgDnやNumLockオフ時のテンキーと合わせたくなるから
umo.=Home,End,PgUp,PgDn
にしたくなるumo.
2017/08/04(金) 17:42:59.06ID:dxEdSaJ60
>>782,783
なるほどありがとうー
すまんIME的にAとEっていうのの意味がわからなかった
umo.いいかもしれんね
2017/08/04(金) 17:50:04.93ID:RXKhmsBXM
みんなにオススメしたいんだけど無変換+SpaceにBackSpace割り当てると最高に捗る
2017/08/04(金) 17:59:38.83ID:dxEdSaJ60
>>785
良さそう
ちょっとやってみる
2017/08/04(金) 18:07:02.20ID:bwy3Tu9B0
無変換+Spaceは半角/全角に割り当ててるな
2017/08/04(金) 18:18:51.61ID:tO7YGvF00
無根拠な独自ショートカット考えだすと
後で忘れたりソフト固有のものや慣例的なショートカットと混同したりで困るぞ


でもそこでBSの代わりならとH持ち出すとjkhlと被るんだよなぁ……
仕方なくDにDelあててるけど
2017/08/04(金) 18:26:13.98ID:RXKhmsBXM
無変換と組み合わせる分には他のソフトとバッティングはしないし
自分の指の動かしやすさ優先だなあ
2017/08/04(金) 18:32:04.60ID:6oMFTNPM0
みんなにオススメしたいんだけどサイド12ボタンマウスにAHKで機能割り当てすると最高に捗る
2017/08/04(金) 18:41:33.40ID:SkKFgPJN0
プログラマブルなゲーミングマウスもいくつも使ったがどのボタンになに割り当てたか忘れるし
ショートカットキーはキーボード上で完結しないと使いづらいんだよな
まあトラボ使いだからマウス鬱陶しいてのが一番の理由だが
2017/08/04(金) 19:00:46.70ID:6oMFTNPM0
体で覚えればいい
キーボードのブラインドタッチと同じ
2017/08/04(金) 23:29:20.72ID:4pk5hYVn0
効率化目指して効率おちたら世話ない
2017/08/04(金) 23:40:19.91ID:apzqFnws0
使いこなし度次第だな
2017/08/05(土) 01:58:47.82ID:P44HsfO70
割り当てたキーは無変換+F1で即確認できるようにすれば良い
自分はTiddlyWikiの"メモ帳/ショートカット"のようなページをセカンダリモニタに表示して
いつでも確認、編集できるようにしてある

あとはifwinactiveごとにこんなのを仕込んですぐエディタで開けるようにしておくとか
#IfWinActive,ahk_exe myapp.exe
+!Q::EditMe(A_LineFile, A_LineNumber)
2017/08/05(土) 02:50:40.79ID:RTBv5tXM0
確認する時間すら惜しいのがキーボードでのショートカットなんだがなぁ……
2017/08/05(土) 02:55:18.13ID:F+5MTYX80
いちいち確認なんてしねえわw
50くらい自分で機能割り当てしてるが余裕で覚えてる
2017/08/05(土) 03:52:53.35ID:1rOOb94B0
常用してる内はいいけど
何かの拍子で1〜2ヶ月くらい操作しないでいると確実に忘れてるから困る
2017/08/05(土) 03:56:27.31ID:F+5MTYX80
そんなレアケースを引き合いに出されてもな
2017/08/05(土) 08:40:31.13ID:lJmnygdT0
50個ものショートカットを満遍なく常時使い続けるほうがレアケースだがなあ
特定アプリ向けにホットキー設定したはいいがそのアプリの使用頻度自体が下がる時期とか普通にあるし
2017/08/05(土) 15:22:41.28ID:j1ctB5jA0
>>798
おれはもうほとんど忘れた
おかげでShift+Del相当のコマンド入力してしまった
2017/08/05(土) 17:52:06.72ID:Ut8T45ux0
忘れてしまったショートカットは、あんまり使わないショートカット。
そういうのをどんどんリストラすればスッキリするよ。
2017/08/05(土) 18:11:42.09ID:yxYjm/HS0
すみません、お尋ねします。
IniReadだと変数が改行されません。

HENSUU.ini, INIの中身
[INI]
HENSUU=1111`n2222

IniRead, HENSUU, HENSUU.ini, INI, HENSUU
msgbox, %HENSUU%

IniReadせず、同一スクリプト内で変数を指定すると改行されます。

HENSUU=1111`n2222
msgbox, %HENSUU%


IniReadでも変数を改行するにはどうしたら良いでしょうか?。
よろしくお願いします。
2017/08/05(土) 18:38:45.62ID:lJmnygdT0
Transform,HENSUU,Deref, %HENSUU%
2017/08/05(土) 18:44:19.59ID:yxYjm/HS0
>>804
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
変数が変形しました!有難うございました!。
2017/08/05(土) 19:20:51.13ID:FuhVuCF70
宣伝なんですがToMoClipていうソフトにキーの同時押しってのがあって
HJ,UJ,JK,NMそれぞれ同時に押す(押しながらでなく)ことで方向キーを押したように設定できます
お試しあれ
2017/08/05(土) 19:30:48.38ID:Ut8T45ux0
AutoHotkey以外の常駐ソフトをなるべく入れたくない人達のスレでそんなことを言われてもなぁ…
2017/08/05(土) 19:38:06.80ID:FuhVuCF70
わかる俺も入れたくなくて簡単なことは自ソフトで完結させようとしてる
スレチは重々承知申し訳ない
2017/08/05(土) 19:43:26.63ID:lJmnygdT0
TomoClip懐かしいなまだ現役なんか

そういやTomoClip起動用ホットキーって設定したまま忘れてたわ
クリップボード履歴は特定の作業中しかいらないから常駐させずAHKから起動かけてたんだった
でもたぶん10年単位でもう使ってないわ
さすがに外すか
2017/08/06(日) 09:28:56.87ID:u/ujlzesa
Autohotkey単体に機能付け足していったほうが軽かったりするからなぁ
2017/08/07(月) 20:28:29.06ID:PynmXoIT0
>>808
頭イカレてるの?
2017/08/09(水) 19:20:54.66ID:aqwNaEvd0
>>811
趣味ですから
今マウスジェスチャー作ってるんだが20日かかる
でもこれでトリガー側はキーもマウスもAHK越えたな使ったことないけど
2017/08/09(水) 19:23:04.66ID:gWHSsziJ0
ToMoClipの作者さんなの?
2017/08/09(水) 19:25:47.80ID:djpeYP7/0
>>812
スレチカスは消えろ
2017/08/09(水) 19:40:50.32ID:aqwNaEvd0
過疎ってても見てる人はいるんだな2分ちょい返信すごい
>>813 どうでしょね
スレチついでに次バージョンで同時キーでもキーリピートこれに気づけたのはここのお陰です
816名無しさん@お腹いっぱい。 (ワッチョイ 9ff3-V3Ru)
垢版 |
2017/08/09(水) 19:46:35.65ID:djpeYP7/0
真性のキチガイ荒らし
2017/08/09(水) 19:49:26.83ID:Akmaazft0
スレチと言われているのにもかかわらずここでスレチついでにと言っているあたり頭おかしい
普通の感性なら自粛すると思うんだ
2017/08/09(水) 19:51:12.03ID:f2S9YBWp0
ほっときゃいいのにお前らもいちいち構うなよ・・・
2017/08/10(木) 00:13:47.73ID:YdTMLjr00
ふぅ・・・
またしても神スクリプトを編み出してしまった

WheelDown::
MouseGetPos,x,y
if x<32
Send,^{Tab}
else
Send,{WheelDown}
return

WheelUp::
MouseGetPos,x,y
if x<32
Send,+^{Tab}
else
Send,{WheelUp}
return
2017/08/10(木) 00:26:39.90ID:5Rv0QQ+Q0
>>819
すげーなお前1000年に一人の大天才だな世界一の発明家になれるよ
2017/08/10(木) 01:35:39.18ID:kMd5DWVa0
>>819
すみませんが神造言語は一介の人間には読めません。なんと書いてあるんですか?
2017/08/10(木) 06:10:29.78ID:aV7rVjat0
>>819
これってFirefoxとかで使うってことか
普通には画面のスクロールダウンアップだが、左端にマウスを持って行ったときは
タブを変更していくってこと?
2017/08/10(木) 07:03:11.04ID:WOdOtC3Q0
#If IsCursorInsideRect(0, 0, 32, A_ScreenHeight)
WheelDown::Send, ^{Tab}
WheelUp::Send, +^{Tab}
#If

IsCursorInsideRect(Top, Left, Right, Bottom) {
MouseGetPos, X, Y
Return (Top < Y && Left < X && Right > X && Bottom > Y)
}

#If を使うと少し簡素化できる
2017/08/10(木) 09:11:28.00ID:PHXtA8CC0
v1.1.26.01 を使っています。
流行らせるページ管理人様のFileLaunchを以下のコマンドで実行したところ
エラーで起動しませんでした。

AutoHotkeyU64.exe Lib\FileLaunch\FileLaunch.ahk
----
Error: Invalid Option.
Specifically: Delimiter

---> 089: Gui,add,ListBox,Multi -E0x00000200 w400 h300 vLst Delimiter

----

Guiコマンドのオプションはバージョンに寄って違いがあるのでしょうか?
すみませんが、教えてください。
2017/08/10(木) 10:13:41.21ID:RFn9sxkC0
違いはある、というか新しいバージョンでオプションが追加されることは結構ある
古いオプションが使えなくなるのは、Guiコマンドについてはなかったような気がする
(古いコマンドが使えなくなることも、AutoItの残り香的なやつを除けば、基本的になかったはず)

流行らせるページのは昔のAutoHotkey無印用に作られたやつだから
AutoHotkeyA32.exeで動かすか、AHKファイルの文字コードを変更してやるとちゃんと動くかも

ただ>>824のはDelimiterオプションで何も指定してないのがエラー元じゃないのかな
2017/08/10(木) 10:18:04.83ID:G0B+NxzO0
エラーチェックが厳しくなってこれまでスルーされてたエラーが引っかかることはある
上の例だとL氏が引き継ぐ前の旧バージョン(1.0.48.5)では引っかからなかった
とりあえずエラーメッセージにあるDelimiter以降削ったら最近のAHKでも起動はしたが
流行らせるの頃はANSI版前提で作られてるのでA32.exeで実行したほうが無難かもしれない

あと試す前にタスクマネージャで余分なAHK起動してないか確認したほうがいいかも
うちではエラー出た後にプロセス状態で居座ってた
2017/08/10(木) 10:55:06.29ID:G0B+NxzO0
>>825
メッセージ省略されてるけど 元ソースだと指定はされてる

> Gui,+Delimiter`n
> Gui,add,ListBox,Multi -E0x00000200 w400 h300 vLst Delimiter`n,

ヘルプ見るとGui,addでDelimiterオプションは存在しない
Delimiterの指定は上行のGui,+で行われてるので消しミスかも
2017/08/10(木) 11:10:49.66ID:PHXtA8CC0
申し訳ありません。
エラーメッセージを手打ちでしたので、不要と思い一行上の
> Gui,+Delimiter
を省いてしましました。

AutoHotkeyA32.exe で起動しましたが、状況変わらず。
*.ahk をUTF-8に変換したところ、今度は以下のエラーとなりました。
---
Error: Call to nonexistent function.
Specification: Scan(GetRealPath(dir),ptn,ld,ep,dep))

---> 641: UpdateIndex(dir,Scan(GetRealPath(dir),ptn,ld,ep,dep))

---
これら関数はFileLaunch.ahk内に定義されていると思うのですが....

>>827氏の
>Delimiterの指定は上行のGui,+で行われてるので消しミスかも

とは、どの部分のことか教えてください。
2017/08/10(木) 12:23:02.60ID:G0B+NxzO0
エラーの原因については>826に書いたけど>824のエラーメッセージにある通り
89行目のGUI,add のDelimiterオプションが不正なのでそこを削ればいい
2017/08/10(木) 14:56:37.15ID:PHXtA8CC0
>>825,826
お陰様で無事起動できました。
ご親切な対応に感謝いたします。ありがとうございました。
2017/08/12(土) 15:46:30.43ID:z7pa5x8S0
ホイール神のやつ応用がいろいろできそうだ ありがたいヒント
2017/08/12(土) 19:59:05.27ID:7UJg4fMrd
キーを押している間
一度のみ実行して
次押されるまで待機させたいのですが
Returnする前にSleep長めにして押してる認識を解除するしかないでしょうか
2017/08/12(土) 21:04:05.70ID:MMuaPOxH0
>>832
具体的に何をしたいのか良く分からないんだが
「キーを押している間」って話ならKeyWait使えば何とかなるんじゃね
2017/08/12(土) 21:34:29.07ID:yjQvhwVI0
キーリピート防ぎたいって話ならKeyWaitでいけるっぽい
2017/08/13(日) 01:52:37.86ID:KdyxWBuQ0
分かりにくい文面ですみません
>>834さんのkeywaitでできました
2017/08/13(日) 02:02:14.19ID:NuPhi+6Y0
>>835
先に教えてくれた>>833に失礼じゃないか
2017/08/16(水) 07:47:02.89ID:WajeZll00
ホットストリングスのキーの入力間隔指定がうまくいきません
いろいろ試してみたんですがどれもダメです
#Hotstring K1000
#Hotstring K 1000
#Hotstring K,1000
#Hotstring Kn1000
#Hotstring Kn 1000
#Hotstring Kn,1000
2017/08/16(水) 16:51:45.55ID:LXOwXqH60
200%や125%といった画面の拡大率(スケーリングレベル?)の取得は可能でしょうか?
2017/08/16(水) 17:14:16.54ID:9O3Tzc/f0
>>838
これで実験してみて
RegRead,p,HKEY_LOCAL_MACHINE,SYSTEM\CurrentControlSet\Hardware Profiles\Current\Software\Fonts,LogPixels
MsgBox,%p%

なんか、96が100%で、120が125%で、144が150%らしい。
2017/08/16(水) 17:29:30.19ID:LXOwXqH60
>>839

192と出ました。
2560x1440 125%なのですが。
2017/08/16(水) 18:17:48.43ID:9O3Tzc/f0
>>840
RegRead,p,HKEY_CURRENT_USER,Control Panel\Desktop,LogPixels
MsgBox,%p%
これも同じかな?
2017/08/16(水) 18:40:16.98ID:LXOwXqH60
>>841

今度は何も出なくなりました。
ダイアログは出るのですが、何も文字がない状態です。
p に何も代入されていないか空文字が入ってるようです。
2017/08/16(水) 19:11:44.61ID:9O3Tzc/f0
なるほど。別の回答者さん後を頼む。
2017/08/16(水) 19:37:59.06ID:TFi/pcpH0
>>838
A_ScreenDPI
845名無しさん@お腹いっぱい。 (ワッチョイ c977-qs+I)
垢版 |
2017/08/17(木) 09:41:55.54ID:duntHIrz0
>>838-844
ふーむ、A_ScreenDPIなんてものがあったのか。

100%のときに96、125%のときに120という値が返るのはWindowsの仕様。
そもそもWindowsで扱っているのはDPI値で、たとえば文字のポイント数と
ピクセル数との相互換算にはこの数字を使う。

100%とか125%とかいうのは、コントロールパネルが便宜的にそう称しているだけの値。

というか今のご時世、「50インチで1920×1080のテレビチューナーつきディスプレイ」と
「9インチで2560×2048のタブレット端末」とが両方とも珍しくないんだから、
倍率だけ取得してもあんまり意味ないよ。
2017/08/17(木) 10:01:30.96ID:uwGj52xB0
あれな
ユーザーが見えるところにdpiで表示してくれないのほんとわかりにくい
2017/08/17(木) 14:38:57.91ID:fj8eIXbS0
>>844,843

希望する値が取得できました。
お騒がせして申し訳ありません、ありがとうございました。
2017/08/21(月) 13:12:07.19ID:A6ALt3nf0
AHKを使って、あるウインドウを指定してそれの指定した場所に色を塗る、とかは出来ませんか

既存のソフトがあって、そのある領域に色を付けたらとてもみやすくなるのにと思ったりすることがあるので
ウインドウを指定して指定した領域に色を塗ったり線を引いたりが出来ればいいのにと思うことがあるのですが

あるいはそれが出来るソフトはないでしょうか
2017/08/21(月) 17:41:25.00ID:RNkT0uESr
>>848
Gui, Add, Pictureでタイトルバーなしクライアント領域透過で背景透過のpng画像をその位置に置くか
特定の領域だけ隠したいだけなら
WinSet, Region
でもやれると思う

WinSet, Region, 0-0 300-0 300-300 0-300 0-0 100-100 200-100 200-200 100-200 100-100, A
Sleep, 5000
WinSet, Region,, A ; Restore
return
2017/08/21(月) 17:45:32.16ID:f8tfCMZ50
Firefoxをバージョンアップしたらrunで複数のURLを開こうとすると一つしか反応してくれなくなりました
sleepで時間をおいて開くようにしていますが何か良い方法は無いでしょうか
2017/08/21(月) 18:16:15.84ID:YW5lMWtx0
>>850
環境と状況と問題のスクリプトが書かれていないのだけど?
2017/08/21(月) 18:20:39.05ID:A6ALt3nf0
>>849
なるほど、そういう方法ですね
ウインドウのIDから直接そのウインドウにお絵かきすることはさすがに出来ませんか
Dllとか使ってもいいのですが
2017/08/21(月) 18:38:33.51ID:X3gwaVfd0
Win10のupdateを高速化・安定化するスクリプトください
2017/08/21(月) 22:13:42.06ID:wF8uqQKA0
>>852
MouseGestureL(.ahk)でジェスチャーの軌跡を描画できてるから、
いわゆる"お絵描き"は可能と思われるのでスクリプト解析してみては?
855名無しさん@お腹いっぱい。 (ワッチョイW 938f-FDjR)
垢版 |
2017/08/22(火) 18:36:22.06ID:qLSs8lj90
PixelSearchは指定した色が存在するときにヒットしますが
逆に指定した色が存在しないときに、座標を取得することはできますか?

PixelGetColorをLoopしてやってみましたがかなり遅かったので・・
2017/08/22(火) 18:39:27.34ID:KMhSPUpt0
>>855
if (ErrorLevel)
2017/08/22(火) 18:59:16.85ID:qLSs8lj90
失礼しました具体的に書きますね
ブラウザ上でyoutubeの動画が再生されている座標(とりあえずX座標)を取得したいです

背景が0xF1F1F1ですので
左から色を検索して、0xF1F1F1ではなくなるX座標を取得すればいいと思いますが
それができないです
2017/08/22(火) 21:58:22.61ID:fSLki/+h0
>>857
flash playerの現在位置を知りたいってことだよね?
だったら、ControlGetPos でflash playerのControl class名(aPluginWinClass1)を元に左上角の位置が取得できる
あとはSetTimerで回しとけばスクロールして場所が変わっても常に最新の位置が取得できる
2017/08/22(火) 22:51:12.27ID:fSLki/+h0
>>858のレス取り消し
あーとんだ間違いを犯してしまった
今はhtml5なんだっけか
2017/08/23(水) 15:07:11.06ID:01NK/MZm0
>>858
そうですplayerの現在位置です
情報有難うございます
2017/08/26(土) 21:58:41.09ID:ffDSWmBD0
Array := Object()
Array[0] := [1,2,3]
Array[1] := [10,20,30]
Array[2] := [100,200,300]

こんな感じの配列のそれぞれのキーの値を1つずつ取り出して
1,10,100、1,10200、1,10,300、1,20,100……
という全ての組み合わせが欲しい場合、どういう処理をすればいいですか?

上の例ではキー3つ、値3つずつしかありませんが、実際に処理したい内容は
配列のキーの数は1〜13、1つのキーに含まれる値は1〜25程度あります。
2017/08/26(土) 22:46:09.19ID:65tLUYz40
>>861
msgbox, % Array[0,1]
msgbox, % Array[1,2]
msgbox, % Array[2,3]

他にもっと良い方法があるのか分からないが、後は自分でガンバってね
2017/08/26(土) 22:52:02.24ID:65tLUYz40
>>862
すまん、なんか質問の答えじゃなかったな
単に数値を引っ張り出しただけだったorz
2017/08/27(日) 01:13:40.11ID:ZKXMcXTK0
test
2017/08/27(日) 01:30:46.31ID:ZKXMcXTK0
書き込めるようなのでお聞きしたいのですが。

ローカルにあるファイルを書き換えたり、開いたりしたくて

・・・・(動作記述) C:(以下フルパス).test.txt


・・・・(動作記述) C:(以下フルパス).test.txt


・・・・(動作記述) C:(以下フルパス).test.txt

のように同じファイルを扱う記述を何回かくりかえすのですが
場所を変えるたびに何か所も書き換えるのが面倒なんで
一か所変数にフルパスを入力して以下そこを参照してって構造にしたりできませんか?
2017/08/27(日) 02:26:33.64ID:mAKtzIVf0
なんのコマンドか知らんけどファイルパスはたいてい変数使えるでしょ
2017/08/27(日) 13:42:45.03ID:ZKXMcXTK0
ありがとうございます
今は記述見られる環境にないのですが、fileappendとRunだったと思います
具体的にどのように記述したらよろしいのでしょうか?

fileappend,Text,C:・・・.test.txt
Run,C:・・・.test.txt
2017/08/27(日) 14:38:27.44ID:KSxuEUz90
WikiのFileAppendのページの例の通り普通に変数に入れて使うだけだが……
2017/08/27(日) 15:52:11.08ID:PtjqheDO0
>>867
答えもらったら再質問は最低限調べてからにしなよ
何度も書いてるけどここはドンピシャのコードもらうためのスレじゃないから
2017/08/27(日) 17:36:02.66ID:ZKXMcXTK0
調べてはいますけど、今調べても試す環境がなく
試せる環境に戻るとここで質問ができない環境になるんでより精度の高い回答が欲しかったんです
2017/08/27(日) 17:41:41.49ID:7INbSKJQ0
なるほど
面白い環境だな
2017/08/27(日) 18:20:21.54ID:dshFxxN20
Win10になってからAHKいじる気起きなくなってきた(そもWin10自体いじりたくない)
2017/08/27(日) 19:12:18.48ID:MfxAJuvVa
classNNやウィンドウハンドルで区別できないボタンを押すのに、座標を指定してクリック以外の方法で押す方法ないですか?
2017/08/27(日) 19:15:17.10ID:MfxAJuvVa
近くのボタンからtabや矢印キーで移動もできません
2017/08/27(日) 19:21:04.89ID:GLVvABwQ0
>>861
k:=Array.MaxIndex()
a:=[]
f(0)

f(i){
 global Array,a,k
 Loop,% Array[i].MaxIndex()
 {
  a.Push(Array[i][A_Index])
  if (i < k)
   f(i+1)
  else
   ここに来るごとに各組み合わせが取れる(配列a)
  a.Pop()
 }
}


適当に書いたが上手くいってるように見える
ほめられたやり方なのかどうかは知らない
2017/08/27(日) 22:12:04.15ID:PtjqheDO0
>>870
そのものずばり 変数 って回答もらってるんだからそれ以上の精度の回答なんてない思うが…
あなた過去にも咀嚼しないで再質問繰り返してる人だよね?
言っちゃ悪いけどこんなの 僕は自分で調べる気一切ありません て宣言してるのも同じだよ?

1. 質問する前にwikiの スクリプト仕様 を読み返す
2. 回答もらったらwikiの検索BOXにキーワード入れて検索

これが実行できないのならAHK使うの諦めたほうがいいよマジで
悪いけど質問していいレベルの事柄ですらない
2017/08/28(月) 00:07:36.17ID:7m2Zv48D0
>>875
こういうのさらっと書けちゃう人すごい……ありがとうございます!
2017/08/28(月) 04:28:14.15ID:wAfLg01qM
なるほど
2017/08/28(月) 15:44:07.69ID:hsgrRvWJ0
スルーすりゃいいのにわざわざ嫌味だけ置き土産してくやつもどうかと思うわ
2017/08/28(月) 15:53:21.78ID:xugByVWN0
嫌みを言ってストレス解消のために
ここにいる人だから
その人の存在意義を否定しないでw
2017/08/28(月) 15:54:46.53ID:2tPa2YUG0
普通のお礼でしょ
2017/08/28(月) 16:03:28.15ID:xugByVWN0
嫌みの本人来たw
2017/08/28(月) 16:27:07.52ID:10My9WrV0
来たな、元凶!


あっ、言ってみたかっただけです
2017/08/28(月) 22:21:14.23ID:OD5GMrv+0
>>873-874
他にはボタンのスクショを予め撮って置き、それをImageSearchで捜す
あとは、例えばボタン文字列が「開く(O)」みたいになってたら、send,!oでも行けそう
もっと有るかもしれないけど↑以外自分は分からない

そもそも何で座標を指定するやり方が嫌なのか分からないが、
もし、該当のボタン含むウインドウが表示する度に場所が変わるってことなら、
CoordMode, Mouse, Window で基準をウインドウ左上の角にすれば良いだけだと思うが・・・
でも、ボタンの位置がコロコロ変わるってんなら話は別で、やっぱ上記のやり方かなー
2017/08/29(火) 16:39:55.54ID:bNioMEw20NIKU
英語キーボードなんですが左altに無変換を同時に割り当てることってできます?
左altを無変換に割り当てたところalt+f4で閉じるが使えなくなったので
できれば慣れてるやり方で使えればと思いまして
2017/08/29(火) 16:46:51.10ID:vRGZZZoh0NIKU
>英語キーボード
無変換の付いていない欠陥キーボードを窓から投げ捨てるのが一番手っ取り早い
2017/08/29(火) 16:55:45.51ID:3SEZMKvw0NIKU
>>885
まず、レジストリ系のキー変更アプリで、左alt を f13 キーにしておく。
そして、↓のように書けば良いんじゃないかな。

f13 & f4::Send,!{f4}
f13::Send,{sc07B}

装飾キーはそのまま使うとたまに誤動作するから。
2017/08/29(火) 17:12:07.82ID:nMMgk/VH0NIKU
alt+F4の他にもaltキーなんて多用するんだからそもそも左altを無変換にすること自体が無謀だがな
2017/08/29(火) 23:30:14.64ID:XjnV7ZAC0NIKU
おると無いとじゃ大違いだな
2017/08/29(火) 23:32:02.93ID:WMN3B7FI0NIKU
>>889
2017/08/30(水) 00:23:37.63ID:bk6DEqje0
>>886
ノートなんで

>>887
やってみます。ありがとうございます
2017/08/30(水) 19:05:32.60ID:Y5VP/KUn0
わざわざPCを不便にするためにAHK使う人もいるんだな
893名無しさん@お腹いっぱい。 (ワッチョイ c33e-k/3h)
垢版 |
2017/09/01(金) 01:07:37.82ID:0PMQPHaA0
QorEを押したらもう一度押すまでおしっぱにされているスクリプトを見つけたんですが
シフトを押した場合おしっぱを解除したいんですが下記にどのようなコードを追加すればいいでしょうか?

https://autohotkey.com/boards/viewtopic.php?f=19&;t=32339
2017/09/01(金) 01:25:00.88ID:tkL4AVuH0
keywaitの代わりにloop+getkeystate
追加というより書き直しになるんじゃね
2017/09/01(金) 17:38:06.89ID:1G41JveX0
ahk 64bit unicode版 / windows10

UTF-8で保存すると文字列の閉じquoteの手前が「し」で終わるとエラーになります。
aaa := "かかし"

UTF-16だと無問題
これはバグですよね??
2017/09/01(金) 17:42:12.36ID:fnuLWJDb0
BOM
897名無しさん@お腹いっぱい。 (ワッチョイ cf01-k/3h)
垢版 |
2017/09/01(金) 20:22:06.32ID:1G41JveX0
たいへん勉強になりました!!
2017/09/01(金) 20:31:35.49ID:I8hn/M9fa
ボムボムボムボムボム
2017/09/01(金) 23:33:20.30ID:7d7CJrk/0
指定時間に実行するタイマーを作りたいのですが、
ミリ秒を取得することはできますか?
2017/09/02(土) 00:35:16.28ID:UtftmLsW0
A_MSec
901名無しさん@お腹いっぱい。 (ワッチョイ a3ec-k/3h)
垢版 |
2017/09/02(土) 13:27:53.00ID:medBOmhe0
多分簡単な内容かも知れませんが宜しくお願いします。

SPLASHとかてにWINSET等の方法又は 最前面に固定したアプリ又は画像ウィンドウの領域を反応させないで
表示させたまま下のウィンドウの操作をしたいのですが組み方としてはどうすれば良いんでしょう?
WinSet, AlwaysOnTop 等では画像分のアクティブになってしまうようでして。
2017/09/02(土) 19:26:50.64ID:PxYybRRg0
>>901
透過ウィンドウのことだね

Gui, Add, Edit, h500 w500
Gui, Show, NA, TEST
WinSet, Transparent, 50, TEST

Gui, +AlwaysOnTop +E0x00000020
; WinSet, AlwaysOnTop, On, TEST ; 最前面
; WinSet, ExStyle, +0x00000020, TEST ; WS_EX_TRANSPARENT(透過ウィンドウ)
return
903名無しさん@お腹いっぱい。 (ワッチョイ a3ec-k/3h)
垢版 |
2017/09/03(日) 07:58:15.02ID:tPQnacaR0
>>902

あーーー!!!
コレです!
これだけわかればもうOKです。
有難うございます。こう指定すればよかったのですか…勉強になりました。
2017/09/03(日) 12:00:10.75ID:ptt8omPg0
>>900
ありがとうございます。
2017/09/04(月) 00:16:19.30ID:bG9ijaw10
すみません質問いいでしょうか

やりたいのは アクティブなら最少化、非アクティブならアクティブに、起動してないなら起動です
他のプログラムではうまくいくのですがExplorer(ブラウザじゃない方)が起動しないです
" Run,C:\Windows\explorer.exe"以外の書き方ってありますか?
windows7です。よろしくお願いします

#E::
Process, Exist, explorer.exe
If (ErrorLevel <> 0)
{
IfWinActive, ahk_class CabinetWClass
{
PostMessage, 0x112, 0xF020, , , ahk_class CabinetWClass
}
Else
{
WinActivate, ahk_class CabinetWClass
}
}
Else
{
Run,C:\Windows\explorer.exe
}
Return
2017/09/04(月) 00:35:39.77ID:iAwmkG+w0
エクスプローラのクラスはCabinetWClassの他に
ExploreWClass というのも(XPの頃は)あった
win10とか最近のOSはわからんけど
上手く行かないエクスプローラのクラスを調べなおしてみては
2017/09/04(月) 00:36:52.29ID:3LMD3eG30
ウインドウを1つも開いてなくてもexplorer.exeは常に起動しているものだけどそこを勘違いしてる?
2017/09/04(月) 00:41:01.95ID:3rOlLvxm0
>>905
>Process, Exist, explorer.exe
>If (ErrorLevel <> 0)
だとどうやっても"Run,C:\Windows\explorer.exe"の行にはいかなかったので
IfWinExist , ahk_class CabinetWClass
にしたら動いたよ
2017/09/04(月) 00:52:29.54ID:IxgPkgxk0
ところで話は逸れますがElseって書く必要あるんですか?
if{}で囲ったらElseって書いても省略しても挙動は変わらないですよね?
それとも何か違いがあるんでしょうか?
2017/09/04(月) 01:21:30.87ID:uWvF+T/50
>>909
必要ないなら書かないでいい
2017/09/04(月) 01:30:07.16ID:IxgPkgxk0
>>910
やっぱりそうなんですね
ありがとうございます
2017/09/04(月) 01:30:28.79ID:iAwmkG+w0
elseはifじゃないときの処理を書く
ifの時にはしたくない処理をelseに入れる

例)
Aが1の時は"OK"と表示する   (if)
そうじゃない時は"NG"と表示する(else)
2017/09/04(月) 01:44:37.19ID:IxgPkgxk0
>>912
はい
でも{}で囲ったらElse無くても同じ意味ですよね
{}の外は"そうじゃない時"になるので
2017/09/04(月) 02:03:30.48ID:3LMD3eG30
全然違う
自分でいろいろ試してみりゃいいよ
2017/09/04(月) 02:19:59.45ID:Po3eqTp10
俺なんかelse ifで12分岐してるで
自慢にもなりゃしないけど
2017/09/04(月) 02:20:31.48ID:iAwmkG+w0
{ }の外はもうifに支配されないので
そうでもそうじゃなくても実行される
{ }の中にreturnやgoto突っ込んで強制的に行き先変えてる場合は別だが
2017/09/04(月) 02:21:40.56ID:bG9ijaw10
>>907
失念してました
>>908
ありがとうございます解決できました
プロセスが常に起動してることを失念してたのが原因ですかね
プロセスじゃなくウィンドウが存在するかどうかで処理すればよかったのですね

>>909
ご指摘どうもです
上のElse 1つ余計で要らなかったですかね?

#E::
IfWinExist, ahk_class CabinetWClass
{
IfWinActive, ahk_class CabinetWClass
{
PostMessage, 0x112, 0xF020, , , ahk_class CabinetWClass
}
{
WinActivate, ahk_class CabinetWClass
}
}
Else
{
Run,C:\Windows\explorer.exe
}
Return
2017/09/04(月) 02:43:00.93ID:IxgPkgxk0
>>914-916
ああ、なるほど
Returnを書いてない場合はElseが必要になるんですね
自分はいつもReturn付けてたので複数分岐してもElseは全く使っていませんでした
2017/09/04(月) 02:49:11.33ID:IxgPkgxk0
>>917
Elseを使わない場合はこうですね

#E::
IfWinExist, ahk_class CabinetWClass
{
IfWinActive, ahk_class CabinetWClass
{
PostMessage, 0x112, 0xF020, , , ahk_class CabinetWClass
Return
}
WinActivate, ahk_class CabinetWClass
Return
}
Run,C:\Windows\explorer.exe
Return

書き方の違いだけでElse使っても同じ動作させられるので好みだと思いますが
2017/09/04(月) 03:23:11.88ID:bG9ijaw10
>>919
なるほど Returnを使うのですね
でもやっぱりElseがある方が条件分岐してるというのが分かりやすいかな
Elseを"そうでない場合は..."という感じで使ってるので。
2017/09/04(月) 07:35:31.57ID:iAwmkG+w0
>>919
うーん…
それ己が好きで使う分にはいいかも知れんけど人に薦めないほうがいいような
出口をむやみに増やす書き方は好みと呼ぶには変態すぎる
多重loopの深い階層から一気にアボートしたい場合時は自分も中途return使うけど基本的に変則処理だから

>>917
そこのelseは必要
行数減らしたいなら1行しか処理内容がない場合の{ }は省略可能

#E::
  IfWinExist, ahk_class CabinetWClass
  {
    IfWinActive, ahk_class CabinetWClass
      PostMessage, 0x112, 0xF020, , , ahk_class CabinetWClass
    (else)
      WinActivate, ahk_class CabinetWClass
  }
  Else
    Run,C:\Windows\explorer.exe
Return
2017/09/04(月) 12:52:51.87ID:s4P5aKg20
>>921
別に人に薦めてるわけじゃないですよ
ただ初心者向けのwikiのサンプルコード集とかも{}の中にReturnを付けてElseを使わない書き方が
多かったので、たまたま自分はそれに慣れてしまったというだけですので
完全に独学なので何が変則とか分からないですしね
2017/09/04(月) 13:35:08.09ID:dTIS4lCH0
>>919のコードも変則でも変態でもない
好きなように書けば良いんやで
2017/09/04(月) 14:07:18.50ID:9j+nU6QO0
マウスのサイドボタン+ホイール上下で
firefoxのyoutubeの音量を調整するために下記のように設定したのですが

;Firefox音量調整
#IfWinActive ahk_class MozillaWindowClass
xbutton1::Send,^w
xbutton1 & WheelUp::send,{Up}
xbutton1 & WheelDown::send,{Down}
#IfWinActive

初めのうちは問題なく動作するのですがしばらくすると音量の上げ下げを受け付けなくなります
その際も xbutton1::Send,^w の方は受け付けています
その後、Reload This Script すると再び動作しますがしばらくするとまた
マウスの2ボタンを使ったスクリプトは受け付けなくなります

firefoxの問題かとも思ったのですがIEでも同じ挙動になります
どうすれば安定して動作するでしょうか?
2017/09/04(月) 21:10:41.98ID:8+O37YES0
>>924
参考になるか分からんけど、自分もwheel操作にキーを送るスクリプト(>>819と同等の)使ってるが、
以前、「マウス関数群 (MUS.ahk)」ていう関数を使う別のホットキーのコードも併記していたら同じようになった
でも、MUS.ahk使うコードが不要になり、この関数を使わなくなったら以降同現象は発生しなくなった

※MUS.ahkが悪さしてたというより自分の書き方が悪かったのかもしれないので念のため
2017/09/04(月) 21:44:55.04ID:25LQ8mxi0
質問とは関係ないけど、うっかり閉じそうなキー設定だな
2017/09/04(月) 22:11:00.76ID:9j+nU6QO0
>>925
ありがとう
自分は他のスクリプトは併用していないし念のため32ビットと64ビット両バージョンで試したけど
だめだった
仕様だと思って諦めます

>>926
そうなのよ、急に ^w だけ認識するようになって音量調整しようとしたらてタブが閉じるようになった
2017/09/04(月) 23:58:21.70ID:8+O37YES0
今頃気づいた
自分使ってないので分からないが、firefoxってホイールクリックでタブ閉じないのかな?
ホイールクリックでタブ閉じする方が誤爆率低そうなんだが…
そうすればxbutton1は別用途で使えるようになるから良いと思うがな

スレ違いand大きなお世話ですまん
2017/09/05(火) 00:18:15.64ID:BAbZefjZ0
うちのfirefoxはタブ閉じるよ
マウス、タブ操作関係のアドオンは入れてない
Debian sid 64bit / Firefox 55.0.2
あとMozzilaのホームページでもそう説明されてる
2017/09/05(火) 05:37:53.31ID:188LMfmV0
>>928
ホイールクリックでも閉じるけどタブのとこまでカーソル持って行かずにボタン一つで
連打してがしがしタブを閉じたいので ctrl+w をサイドボタンに当ててます
2017/09/05(火) 07:17:32.23ID:iCCxh9rp0
モディファイアキー単独押しに、誤発動したら困る機能を割り当てるのは、自分ならやらないなぁ。
2017/09/05(火) 08:05:49.75ID:ZIXYq/GW0
そっスか
2017/09/05(火) 08:33:17.45ID:9v2IhtwaM
マウス動かさずガシガシ閉じたいときは左手でctrl+w連打してるな
寝PCなんかでキーボード触りたくない時はマウスだが
2017/09/05(火) 11:01:09.15ID:zdILsO1y0
マウスに削除機能や閉じる機能を割り当てると
誤爆した時めっちゃ面倒だから割り当てない。
2017/09/05(火) 11:51:00.61ID:RQRJN7rO0
wikiのサンプルコード集 - 1つのキーに3種類以上の動作割り当て
どうしてもxbutton1に拘りたいなら、これでxbutton1のダブルクリックに^w割り当てれば誤爆減るかもね。
あとは、ホイールクリックに^w割り当てる手もある。(パンて言うのかオートスクロールって言うのかの機能殺すだろうけど)

firefoxの機能に「このタブより右(左)を全て閉じる」みたいな機能(拡張)あるならそれ使えば良いのに、、、とも思う。
2017/09/05(火) 13:32:39.30ID:188LMfmV0
>>935
「このタブより右(左)を全て閉じる」も使ってるけどだいたい10から20くらいのタブの間を
行ったり来たりするから細かく素早くタブを消したいのよ
誤爆してタブ消すことあるけど拡張のマウスジェスチャーで 右ボタン→← を
ctrl+shift+T に割り当ててるから一瞬でタブ復活できて読んでたページのスクロール位置も記憶してて
そこまで戻ってくれるから自分にはサイドボタンを ctrl+w に割り振るのが1番使いやすいです
2017/09/05(火) 13:49:54.73ID:jv4vUIP4X
マウスが壊れると一気に不便になるから
サイドボタンには頼らなくなった
2017/09/05(火) 14:42:48.54ID:188LMfmV0
>>937
自分の使ってるのはエレコムの安い2000円くらいの5ボタンマウスだけど
壊れて他の使うと手になじむまで結構かかるからまとめて同じの10個くらい買ってる
1個の寿命がだいたい3年くらいもつのでたぶん自分が呆けるか死ぬかUSBの規格が
終わるくらいまではもつかなw
ゲームとかで激しく使うわけじゃないから壊れたと思っても分解清掃したら復活して全然壊れないw
2017/09/05(火) 16:24:36.71ID:2p8x7jza0
WinActivateでwindowを指定したいんですけど、
同じアプリで2つwindowを開いてるからタイトルもクラスも同じだから、
先に起動したほうのwindowがアクティブになるんです。

後に起動したwindowをアクティブにしておいてからやっても、先に起動したほうの
windowがアクティブになってしまう……。
何か解決方法ありますでしょうか?
2017/09/05(火) 16:44:05.17ID:iCCxh9rp0
>>939
絶対にAutoHotkeyを使って起動させると決めておけば、runの時に指定したプロセス名で自由自在じゃないかな
2017/09/05(火) 16:55:00.19ID:2p8x7jza0
>>940
再起動したら、2つあるうちのactiveな方のwindowを操作できるようになってました……。
よく動作が分からない……。
2017/09/05(火) 16:56:06.02ID:S621LfW+0
>>939
ウィンドウハンドル(ahk_id)で指定
2017/09/05(火) 17:02:37.45ID:uXUJebp/0
>>939
ウィンドウハンドルで指定

https://msdn.microsoft.com/ja-jp/library/cc344590.aspx
> Windows では、作成されたウィンドウにハンドルを割り当て、ウィンドウが削除されると、割り当てているハンドルを解放します。
> ウィンドウが存在する限りそのハンドルは保持されますが、ウィンドウを一度削除して再作成したときに同じハンドルが割り当てられるとは限りません。
> ハンドルを変数に保持する場合は、ウィンドウが削除されるとそのハンドルは無効になることに注意してください。
2017/09/05(火) 17:16:57.45ID:2p8x7jza0
>>942
>>943
ありがとうございます。またコードを改良してみます。
2017/09/07(木) 12:23:30.02ID:/lAMkvyj0
Win7です。 WindowsUpdateを起動するとき、

Run, wuapp

とすると、WindowsUpdateのウインドウが出てきますが、一発で更新プログラムの確認をしたいのです
今は、このウインドウを起動して、あとは手作業でマウスを動かしてやっていますが、
一発で更新プログラムの確認が出来る方法、コマンドってありますか
2017/09/07(木) 12:49:12.76ID:oQQtUb2M0
コマンドライン調べて無理そうなら
send でtabenterするなりcontrolclickするなりしてみたら
2017/09/07(木) 12:53:11.31ID:ltKuwJLg0
(C)
2017/09/07(木) 13:29:37.64ID:e+e3r0hl0
Tabキー連打からのEnterキーを送れば良いんではないでしょうか
2017/09/07(木) 14:14:07.50ID:/lAMkvyj0
なるほど。やっぱりTABで回してからEnterしかないのかな
ありがとう
2017/09/08(金) 01:15:04.77ID:xyKAQtlP0
Hotkey Explorerなんてツールがあるんだな
大昔に割り当てたまま忘れ去ってたホットキー発見できた
2017/09/08(金) 16:32:15.31ID:DlVZMNm+0
忘れるくらいなら最初からほっときい
952名無しさん@お腹いっぱい。 (ワッチョイ 3e67-xkdj)
垢版 |
2017/09/10(日) 05:56:51.93ID:Gp5DYXYz0
MButton::
if(clickEnable = true)
clickEnable := false
if(clickEnable = false)
clickEnable := true
loop{
click
sleep 250
if(clickEnable = false){
break
}
}
return

ミドルキーを押すと連打、もう一度押すと連打解除のスクリプトを作りたくて組んだのですが、
連打解除が出来ない状態です。
どなたかアドバイスをお願いします。
2017/09/10(日) 06:26:05.60ID:9UIYY5GX0
ループ内sleepでMbuttonイベント内部に留まり続けてるせいで
次の押下があっても割り込み発生しないのでは
timer発生させてMbuttonはreturnですぐ抜ける
連打処理はtimerのなかでやる
2017/09/10(日) 06:45:31.30ID:i6WpSb1i0
他にも、

書いてないだけかもしれないが
フラグ変数の初期値がないからどのifも偽にしかならない

さらに、ちゃんと値入れたとしてもそれ何度押しても絶対trueになる
2017/09/10(日) 07:29:40.41ID:9UIYY5GX0
本当だ
elseifじゃないから2回if通ってるわ
2017/09/10(日) 08:56:43.07ID:Gp5DYXYz0
ちょっと確認してみます。
アドバイスありがとうございました。
2017/09/10(日) 09:07:45.68ID:Gp5DYXYz0
clickEnable := false

MButton::
if(clickEnable = true)
clickEnable := false
else if(clickEnable = false)
clickEnable := true
loop{
SetTimer, click , 250
if(clickEnable = false){
break
}
}
return

すいません。
やはり動きませんでした。
更に助言を頂ければ幸いです・・・。
2017/09/10(日) 09:42:03.19ID:i94Q7tou0
放っとけ と音の近いホットキーを並べて発音し、面白さ表現を狙っています
2017/09/10(日) 09:44:54.59ID:9UIYY5GX0
SetTimerのヘルプちゃんと読んで

sleep置換じゃなくてloop内全部を別スレッドで起動させる
まずいのは永久loop状態でMButtonから出られないことだから
960名無しさん@お腹いっぱい。 (ワッチョイ 0b87-x/0H)
垢版 |
2017/09/10(日) 09:46:26.55ID:HxrW5Xht0
最近やり始めた。

ファイルがあればおkとか初めの?にも書いてあるし
ネットの入門ページにもEXEダブルクリックでおkとか書いてあるのに
結局ファイル取らせないと起動しない上
?ページの英語頑張ってよみつつ検索してもencordでマッチしないし
webページはバージョン違いで参考にならないから
コンテキストメニューからの生成で8Bってわかって変えてやりかたかった
win+Tへのリマップいきなりできたからイイけど

そもそも同じ場所に3つもEXEあるしソレゾレの説明が無い。
まぁこのスレの説明から恐らくU32がオススメなんだとは思うが
沢山あるネット入門ページが変なのは今までの歴史の重積のセイだと思うんだけど、
コレじゃ新規ゆとりんには流行らんわコレ

あまりに案内がメチャクチャ過ぎる
2017/09/10(日) 10:33:39.93ID:ZLodYEhw0
>>960
ほんとそれ

> ファイルがあればおkとか初めの?にも書いてあるし
> ネットの入門ページにもEXEダブルクリックでおkとか書いてあるのに
> 結局ファイル取らせないと起動しない上

EXEファイルと同じ名前のAHKファイルを起動するだけならEXEダブクリでおk

> そもそも同じ場所に3つもEXEあるしソレゾレの説明が無い。
> まぁこのスレの説明から恐らくU32がオススメなんだとは思うが

A32→Ansi/32bit版、U32→Unicode/32bit版、U64→Unicode/64bit版
PCが32bitなら32bit版、64bitなら64bit版
基本はUnicode版推奨だけど、一部の古いスクリプトを動かしたいだけならAnsi版が都合のいい時があったりなかったり

> 沢山あるネット入門ページが変なのは今までの歴史の重積のセイだと思うんだけど、
> コレじゃ新規ゆとりんには流行らんわコレ

Unicode版の登場と、最近A32・U32・U64が同じパックで配布されるようになって入門のあたりはだいぶ信用できなくなってるけど
それ以外は昔の記事でも役に立つから…(震え声)
2017/09/10(日) 10:57:13.22ID:9Ln2fu6j0
むかし流行らせた本人はもう流行らせたくないつってサイト閉めちゃったからねぇ
正直>960が何言ってるのかよくわからんが AHK分かりにくいよ何参考にしたらいいんだよ ってこと?

アプデ追従常時最新じゃないにしろ AutoHotkey Wikiなら情報古すぎて役に立たないってことはない
AHK v2についてはα版だし解説も少ないので初心者がいきなり手を出さないほうがいい
2017/09/10(日) 11:43:33.03ID:ZLodYEhw0
>>952>>957
勘違いだったら悪いけど、スクリプトがどういう順番で動いているかの理解がいろいろ間違ってる

@最初にミドルを押すとMButton::ラベルが実行されるけど、もう一度ミドルを押したときは実行されない(正確にはスレッドの割り込みが行われない。詳しくはThreadとか)
Aループ中にclickEnableをfalseにする処理がないから、一度目のループが永遠にbreakしない(動かないように見えるだけで、実際はずっと必死にループしてる)
BSetTimerは別にラベルが必要

やり方としては、一度のMButton::ラベルの中だけで全部終わらせるようにする
具体的にはloopの中に、2回目のミドルクリックをkeywaitかinputとかgetkeystateとかで感知してbreakする処理を入れてやる
keywaitおすすめ
2017/09/10(日) 15:58:05.30ID:Gp5DYXYz0
>>963
ありがとうございます。
まだ動かないのですが、今はこんな感じで調整してみました。

MButton::
loop{
click
sleep 250
keywait , MButton , D
break
}
return
2017/09/10(日) 16:49:29.43ID:/9OPRtmP0
>>964
横槍だけどLoop使わないでSetTimerでクリックを繰り返せばって話じゃないの?
あとはMButton押すたびにSetTimerをオンオフ切り替えれば良いだけかと
2017/09/10(日) 17:54:59.37ID:9Ln2fu6j0
キーボードだったらキーリピート発生するから>893みたいな例でKeyWaitやGetKeyState使えるけど
マウスの場合 Send, {Lbuton Down}してもクリック連打にはならないので
MButton::スレッド内で完結させるのは難しい

KeyWait中はクリック連打させられないしGetKeyStateでBreakしちゃったら
その後の再押下までやっぱりクリック連打されない
Loopは諦めて素直にSetTimerにしたほうがいい
2017/09/10(日) 18:17:46.69ID:Y7cFsSEb0
mbutton::
keywait,mbutton
loop{
click
keywait,mbutton,d t0.25
if !errorlevel
break
}
return
2017/09/10(日) 20:08:04.68ID:ZLodYEhw0
>>954
俺の書き方が悪かった、その調整で大体あってるけどそれだと
ループに入った後に次のミドルクリックをひたすら待って2回目のミドルクリックでbreakしてるか
あるいは1回目のミドルクリックが離される前にkeywaitの判定に入っちゃって即座にbreakしてる
どちらにしろループの1回目でbreakしてるから連打できてない

>>967の人ので動いてくれると思う
クリック

ミドルクリックが押されるのを待つ、ただし250ミリ秒たったらタイムアウト(sleepの行の節約にもなる)

タイムアウトしなかったら(errorlevelが0なら)、つまり2回目のミドルクリックされたらbreak
タイムアウトしたら(errorlevelが1なら)次のループへ

ループの前のkeywaitは、1回目のミドルクリックが離されるのが遅くて即座にbreakしてしまうのを防ぐ保険だと思う

あと最初に言えばよかったんだけどlistlinesかタスクトレイメニューのOpenでスクリプトの流れが見えるから
今回くらいの短さのやつならそっちを確認しながらやるといろいろ捗る
2017/09/10(日) 20:56:51.46ID:ZLodYEhw0
せっかくだからタイマー使うやり方も
スレッドが2つになるのがあんまり好みじゃないけど、こっちの方が最初に希望してた動作に近いかな?

MButton::
clickEnable := clickEnable ? false : true
if(clickEnable = true)
settimer, clicktimer, 250
else if(clickEnable = false)
settimer, clicktimer, Off
return

clicktimer:
click
return
2017/09/11(月) 01:29:02.79ID:Moiu+rBD0
>>964
全く検証してないのだが・・・・・
サンプルコード集 - AutoHotkey Wiki
http://ahkwiki.net/SampleCodes#.E3.82.AD.E3.83.BC.E9.80.A3.E5.B0.84.E3.82.B9.E3.82.AF.E3.83.AA.E3.83.97.E3.83.88
の「キー連射スクリプト」では動かない?
2017/09/11(月) 05:01:50.02ID:HJJLJNG10
皆さんありがとうございました。
settimerはユーザー定義関数だったんですね・・・。
色々と勉強になりました。

ありがとうございました。
972名無しさん@お腹いっぱい。 (ワッチョイ ff77-WPj4)
垢版 |
2017/09/11(月) 12:47:39.81ID:rdkmRnoo0
>>961
今から始めるなら基本はU32版。
これなら普通に使っている限り、Windowsが32bitでも64bitでもきちんと動いてくれる。
U64版は64bit版のWindowsにしかない機能を使うときのためのもの。
A32版はWindows95/98/Me/NT4をまだ使っている人と、
その時代のスクリプトを手直しせずに使いたい人のためのもの。

ちなみに俺の場合、64bitマシンのProgram Filesには素直に64bit版を入れているけど、
Ahk2ExeでコンパイルするときはA32・U32・U64 を3つとも作るようにしている。
…で、ほとんどの場合は持込先が64bit OSでもU32のEXEファイルだけで事足りている。
今のところ、Win64のDLLを使うとか、よほど巨大なデータを扱うとかしない限り、
「迷ったらU32版」で何も問題ないと思うよ。
2017/09/11(月) 13:11:55.55ID:/0w7mLR10
AHKの書籍あったらいいのになあ
寝る前とかにパラパラ読めたらさぞよかろうに
2017/09/11(月) 13:43:58.58ID:hHI5OB/r0
>>972
普通にインストーラーからインストールした場合64bitOSだとU64版が「AutoHotkey.exe」になって
ahkファイルもそこに関連付けされるけどU64版で何も困ったことは無いな
2017/09/11(月) 21:30:39.92ID:gvgo1xfh0
>>971
settimerはコマンドで、settimerのパラメータにユーザー定義ラベルを指定する必要があって
ユーザー定義ラベルの代わりにユーザー定義関数が最近使えるようになった、てのが正確なところだけど…
まあ当初の目的が達成できたならよかったよ
2017/09/12(火) 02:58:27.50ID:6AFuQYBa0
>>975
達成も何も、ゆとりの教えたがりがスクリプト丸々張っただけだがな
2017/09/12(火) 03:37:20.22ID:q1GGHISr0
>>964まで辿り着いたんだから十分だろう
2017/09/12(火) 06:57:36.69ID:a3KK4HLqM
何回教えてもダメな子にはもう面倒だから丸ごとスプリクト与えちまえみたいな
前例作っちゃったのは良くないがな
2017/09/12(火) 07:18:57.19ID:aE6Ly69Y0
ここはそんなに教育的な場なの?
質問者のネタ提供に対して、回答者達があれこれ楽しくスクリプト例を出し合うのも良いんじゃないかな。
2017/09/12(火) 07:45:27.70ID:FVt7NWTY0
時間をかけてAutoHotkeyマスターになったところで一銭にもならないしな・・・
2017/09/12(火) 08:20:42.72ID:2WtjvSiA0
ここんとこ解答者の言わんとしてることをあまり理解しようとしないで
こうですか?わかりません!
をくり返す質問が増えたなあ、としみじみ思う
同一人物なのかも知れんけど
2017/09/12(火) 09:21:39.99ID:6Kx8CYjX0
ループの最後にbreakされたらさすがに教えるほうの心は折れるわ
2017/09/12(火) 10:45:08.23ID:T5YGvLqj0
すみません質問いいでしょうか?
何枚か重なったウィンドウで1番裏にあるウィンドウをアクティブにするコードなんですが
グループを指定しなくても出来ますか?
特に指定や除外条件が無いので簡単に最裏を指定したいです。

;Auto-execute Section
;〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
GroupAdd, UraWindow, ahk_exe firefox.exe
GroupAdd, UraWindow, ahk_class WindowsForms10.Window.8.app.0.141b42a_r14_ad1
GroupAdd, UraWindow, ahk_class MontBlancApp_mtvGuide
Return
;〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
#x::
WinActivateBottom, ahk_group UraWindow
Return
2017/09/12(火) 11:48:00.72ID:6Kx8CYjX0
Shift+Alt+Tab
2017/09/12(火) 11:55:08.42ID:0OSs0TgH0
groupadd, ALL, ^(?!Program Manager$)
2017/09/12(火) 11:58:38.81ID:aE6Ly69Y0
Windows7だと
Send,+!{Tab 2}
2017/09/12(火) 12:17:44.73ID:2WtjvSiA0
wikiやヘルプだと
>WinActivateBottom [, WinTitle, WinText, ExcludeTitle, ExcludeText]
てなってるけど
タイトル省略して WinActivateBottom だけにするとエラーになるな

v1.1.24.00
2017/09/12(火) 12:27:05.86ID:xtICOaaq0
条件分岐ifだけか
switchっぽいの便利だと思うんだが何がダメなんだろ
吉里吉里とかでもif組み合わせるのメンド臭かったわ
2017/09/12(火) 14:25:34.01ID:sReJPT2j0
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --app=https://translate.google.com/?hl=ja

起動してクリップボードに変更があったら^a^vするマクロ組んだら
リアルタイム翻訳ツールになってめっちゃ便利だ
2017/09/13(水) 03:27:48.82ID:fOGI8mDI0
無理みたいですね
+!{tab}は使えませんでした
私の環境だとAlt+Tabはモニタ毎にそれぞれで起動してるタスクを表示させてるので
全体のタスクから拾えないんです
どのみち最少化してるのまで含んでしまうし駄目ですけどね

試行錯誤しながらクラス名書き出してたらとりあえずいっぱいになったので
このまま突き進みます

ありがとうございました。
2017/09/13(水) 04:59:20.66ID:GKtt9/100
>>990
AHK使ってないので見当違いかもしれませんが除外にありえない文字列
WinActivateBottom,,,aaaaaaaaaaaaaaaaaa
とかわ
2017/09/14(木) 00:43:31.34ID:bO4XyPKz0
>>990
DllCallでGetWindow関数を使えば、
最裏(つまりデスクトップの一つ上)のウィンドウを取得することができるかもしれない
申し訳ないがDllCallに詳しくない自分のテストではデスクトップを取得するだけに至り、その上のウィンドウ取得ができなかった
しかしGetWindowはアプローチとしては良いと思ったので提案
2017/09/14(木) 07:56:08.61ID:21FBV48V0
ただの発想なので欠陥だらけかも…
それに、うまく行ったとしてもタイムラグ激しそう

-------------------------
WinGet, OutputVar, list
で存在する全てのウィンドウを列挙し、(loopで回すのが賢い)
GroupAdd, UraWindow, ahk_id OutputVar1
GroupAdd, UraWindow, ahk_id OutputVar2
      ・
      ・
で取得した全ウインドウハンドルを次々にグループに登録し、
WinActivateBottom, ahk_group UraWindow
で実行
-------------------------

例えばこのスクリプト↑を「a.ahk」とし、

-------------------------
#x::
run, a.ahk
Return
-------------------------

という「b.ahk」スクリプト↑を常駐させる
2017/09/14(木) 08:02:12.92ID:21FBV48V0
>>993>>990へのレス
そして訂正
>で存在する全てのウィンドウを列挙し、(loopで回すのが賢い)
の(loopで回すのが賢い)は、間違い
正しくは↓
で取得した全ウインドウハンドルを次々にグループに登録し(loopで回すのが賢い)、

ですた、スマンOTZ
2017/09/14(木) 08:07:37.85ID:30I9EHlG0
そんなことしなくてもその擬似配列の一番最後が最後面だよ
2017/09/14(木) 08:11:35.66ID:pyPyCswm0
Zオーダー順だしな
997名無しさん@お腹いっぱい。 (ワッチョイ c977-fKjf)
垢版 |
2017/09/14(木) 12:08:58.65ID:uijNj4qb0
次スレです。

AutoHotkey スレッド part25
http://egg.2ch.net/test/read.cgi/software/1505357560/

連投規制でテンプレを最後まで貼れなかったので、誰かヨロ。
998名無しさん@お腹いっぱい。 (ワッチョイ c977-fKjf)
垢版 |
2017/09/14(木) 12:12:14.96ID:uijNj4qb0
あ、しまった、いま気付いたけど、
「!extend:checked:vvvvv:1000:512と次スレを立てる際は1行目に記入してください」
>>1の頭に2回書かないといけないのか。
最近の2chは色々と難しいなあ…。
2017/09/14(木) 12:27:07.13ID:bailWlDl0
二回連続でええの?
なんか回避文字があるのかと !! みたいな
2017/09/14(木) 12:32:16.08ID:NnR8h+BN0
有効になるのは一行目のみだからそのままでいい
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
SLOT Results
🎰🎰🎰 Excellent!! 0
🎴🎴🎴 Gratz!! 0
🌸🌸🌸 OPPAI Ban!! 0
💣💣💣 Backingum!! 0
Win!! 1
Points 7 pts.

life time: 210日 18時間 27分 44秒
10021002
垢版 |
Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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