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

■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。 転載ダメ©2ch.net (ワッチョイ 997d-+Qhn)
垢版 |
2017/02/15(水) 18:04:32.01ID:kshCKhXn0
!extend:checked:vvvvv:1000:512と次スレを立てる際は1行目に記入してください

■配布元
http://ahkscript.org/download/

■前スレ
AutoHotkey スレッド part23
http://potato.2ch.net/test/read.cgi/software/1470936221/

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

■派生版
IronAhk (.NET製、クロスプラットフォーム)
https://github.com/polyethene/IronAHK
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
http://www.autohotkey.com/board/topic/39588-autohotkeydll/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
2017/02/25(土) 13:17:08.13ID:FDsrzjQa0
三項演算子がAutoHotkeyで使えるという発想がなかった
2017/02/25(土) 13:31:02.35ID:1dPH+8dyr
a := (aaa ? aaa
: (bbb ? bbb
: (ccc ? ccc : ddd)) )
みたいにテンプレ入れてるな俺
視認性はif文と大して変わらないかもだけど
2017/02/26(日) 01:26:03.66ID:g3AOYpmk0
教えてください。
無変換キーコンビネーションキーの一つ目で使用しているのですが、
一つ目のキー単独の元の機能は失わないようにしたいです。そこで

vk1Dsc07B::vk1Dsc07B       ←これが動作しません
vk1Dsc07B::Send, {vk1Dsc07B}  ←これは動作するのに

これはどうしてでしょうか?変換キーは同じこと(リマップ)をしてもそのまま動作するのに。
あとチルダ(~)をつければ大丈夫ってwikiみたのですが動く気がしません。
2017/02/26(日) 02:23:39.42ID:EZAUaAEs0
vk1Dsc07B::vk1Dsc07B
これも普通に動作したけど
2017/02/26(日) 02:26:33.44ID:g3AOYpmk0
ありがとう。えー、どうしてだろう。もう一回やったけど僕無理だ。
2017/02/26(日) 02:39:53.60ID:EZAUaAEs0
ヘタに省略せず登録したコンビネーションキーとかも全て書くべきだと思うがな
ちなみに俺が試したのは下記

vk1Dsc07B::vk1Dsc07B
vk1Dsc07B & x:: AltTab

これで無変換キー単独で押した時は普通に無変換キーとして動作してる
2017/02/26(日) 04:06:34.29ID:g3AOYpmk0
原因わかりました。
別の所で特定のウインドウが前面になったときの個別のキー割り当てのなかに

#IfWinActive, ahk_class GomPlayer1.x
vk1Dsc07B::Send, !{F4}
#IfWinActive

というのが入っていたのが原因でした。でもなぜこれが原因なのかわかりません。
どうしてなのでしょうか?
もし真ん中の行がSend, ではなくふつうのリマップの::a であれば無変換単独へのリマップがふつうに動きます

autohotkey.ahkでテストした記述は以下の6行がすべてです。
------ここから-------
#IfWinActive, ahk_class GomPlayer
vk1Dsc07B::Send, !{F4}
#IfWinActive

vk1Dsc07B::vk1Dsc07B
vk1Dsc07B & x:: Send,^{x}
------ここまで-------
ぼくは決定的なことがわかってないんだと思います。教えてください。
2017/02/26(日) 13:46:35.37ID:pxJcwieV0
MPC-HCにAHKからsendでのキー操作(早送り、次のトラック等)が
届くものと届かないものがあるんですが同じようなことで悩んだ先達さんいないでしょうか
全部効かせるコツがあったら教えて下さい
2017/02/26(日) 13:53:37.36ID:CqbTNGi00
メディアキーが効かないならキーボードショートカット使えば?
ショートカットキーはMPC-HC側でいくらでも編集出来るし
2017/02/26(日) 14:43:56.66ID:CqbTNGi00
>>124
てか試して見たら次のトラックとかメディアキー(Media_Next)でもキーボードショートカット(デフォならPgDn)でも
AHKからSendして普通にMPC-HCで使えたけど
根本的に何か記述間違ってるだけじゃね
2017/02/26(日) 17:36:49.95ID:pxJcwieV0
>>126
ありがとうございます
それで問題が狭まったかも
実は問題はSVP 3.1.5に同梱されているmpc-hcで出ていて
madVRやReClock併用時だけの問題なのかもです
色々試してみたけどやぱり分かりませんね…
2017/02/26(日) 18:05:19.38ID:CqbTNGi00
スクリプトすら貼らないから何が問題なのかすら伝わってこないんだが
質問するやつ言葉足らずが多すぎ
2017/02/26(日) 18:15:27.29ID:TxBZNz0e0
最近妙にご新規さんが増えてるっぽい印象は感じる
どこぞで紹介でもされたんかね
2017/02/27(月) 14:33:40.39ID:KE+0u5pR0
ToolTipのフォントが小さいのですが、フォントを変更することは出来ますか
2017/02/27(月) 14:35:24.62ID:iBgmHIgZ0
:::Send,{'} ; [:] -> '
+:::Send,{"} ; Shift + ' [*] -> "

WildcardをDouble questionにremapしたいのですが何故か動作しません助けて下さい
2017/02/27(月) 14:48:45.00ID:TdJpVywr0
*::"
2017/02/27(月) 14:52:38.05ID:wiDI8cWz0
http://ahkwiki.net/KeyList#Key_Colon
2017/02/27(月) 14:56:37.32ID:5ofIhFHw0
>>130
出来ない。但し、GUIやProgressで代用可能

tooltip_gui("ほげほげ")
sleep, 2000
tooltip_progress("hogehoge")
sleep, 2500
exitapp

tooltip_gui(msg) { ; Gui番号を指定すれば複数表示可
Gui, -Border
Gui, Font, S50
Gui, Add, Text, , %msg%
;Gui, show, X300 Y200 ; 座標指定
Gui, show ; 画面中央
SetTimer, tooltip_gui_off, -2000
return
tooltip_gui_off:
GUI, Destroy
return
}

tooltip_progress(msg) { ; 複数表示不可、各々のオプションは適当
;Progress, h100 W400 X300 Y200 B1 C00 ZH0 ZW0 ZY2 FM60 WM200 CWFFFFBF , , %msg% ; 座標指定
Progress, h100 W400 B1 C00 ZH0 ZW0 ZY2 FM60 WM200 CWFFFFBF , , %msg% ; 画面中央
SetTimer, tooltip_progress_off, -2000
return
tooltip_progress_off:
Progress, off
return
}
2017/02/27(月) 15:26:41.86ID:KE+0u5pR0
>>134
作らないといけないということですね。ありがとうございました
2017/02/28(火) 00:08:57.54ID:GG32Wtxo0
どなたか>>123の疑問を解決していただけませんか?
どうしてこの最小構成のスクリプトでvk1Dsc07Bの単独の機能が死んでしまうのが
理解できません。なにがだめなんでしょうか?
137名無しさん@お腹いっぱい。 (ワッチョイW bf39-Z+OO)
垢版 |
2017/02/28(火) 02:01:23.61ID:TZ6azZE+0
部分的すぎて質問の意味が伝わって泣きんじゃないか?

動くほうのスクリプトと動かないスクリプトの両方をはっつけて
何は出来るのに何ができないって示さないとわかんないんじゃないかな
2017/02/28(火) 08:09:02.90ID:FkW/ZsiE0
環境書かない質問はスルーしていいってじっちゃが言ってた
2017/02/28(火) 08:37:07.90ID:GJMq1dBE0
>>136
vk1Dsc07B::
if WinActive("ahk_class GomPlayer"){
Send, !{F4}
} else {
Send,{vk1Dsc07B}
}
で良いんじゃないの?
2017/02/28(火) 10:40:52.10ID:LhprMn5H0
>>136
同じキーへの割当でホットキーとリマップを混在させるとよろしくない
リマップは実行時ホットキーに自動変換されることが関係してるらしい
2017/02/28(火) 11:25:14.64ID:ztkILZtN0
>>136
コンビネーションキーとして使用すると
一つ目のキー自体のもともとの機能は無効化される。
機能残したいなら#ifを使おう

#IfWinActive 電卓
vk1Dsc07B::Tooltip 電卓

#if GetKeyState("vk1Dsc07B")
x::Tooltip x
#If
2017/02/28(火) 12:04:10.61ID:zYze+Gwq0
>>139-141
>>136の質問の仕方が下手糞なせいもあるが、質問内容に沿ったを回答をしてるのは>>140だけ
2017/02/28(火) 13:22:09.15ID:GG32Wtxo0
レスたくさん頂いてありがとうございます。文章が下手ですいません。
>>140

・#IfWinActiveで別々のケースとして区切っているのに、ホットキーとリマップの混在になってしまうのでしょうか?
・その混在で不都合がでるのはコンビネーションキーを設定したときに、一つ目のキーを離したときに発動する機能に限ったことなのでしょうか?

ぼくのautohotkey.ahkの構成は、#IfWinActiveをつかって

Aのソフトウェアが前面にあるときのホットキー
Zのソフトウェアが前面にあるときのホットキー
それら以外の場合のホットキー

という順で、どのソフトウェアが前面であるかを一つのユニットとして、別々にホットキーを
設定しているので#IfWinActiveの仕切りを越えて影響してきたら若干困ります。
AからZのホットキーの場合は前後で#IfWinActiveで仕切っているのに対して
「それら以外の場合の」ホットキーの場合は前後になんの工夫もなくただ書いているだけなのがまずいのかな。
2017/02/28(火) 13:36:30.15ID:XP3qQWy90
>>143
何が困るんだよ
自分で最初に書いた通り
vk1Dsc07B::Send, {vk1Dsc07B}
で動くんだからそれでいいじゃん
2017/02/28(火) 16:07:06.51ID:qHZRcqns0
>>143
最初の「なんで」という疑問に「ahkはそう言う仕様で作られてる」というしかない気もするけど
リマップとSendどうしても混在させたいなら開発者に要望出すしかないんじゃないですかね
2017/02/28(火) 23:19:34.98ID:pfHbqPzF0
デスクトップの向きって取得出来ませんか?。
wiki見た感じだとsysgetやwingetでは無理そうなんです。
2017/02/28(火) 23:30:28.86ID:FkW/ZsiE0
ポートレートかランドスケープかって判断ならhright widthの値比較でわかると思うが
タブレットデバイスの 0/90/180/270 角度判断は無理じゃね
2017/02/28(火) 23:56:51.35ID:pfHbqPzF0
角度は無理そうですか。
有難うございます。
2017/03/01(水) 00:03:41.20ID:YlFSJdgd0
どんな用途か知らんけど大抵は縦か横かの判定だけで事足りる気がするけど
2017/03/01(水) 01:25:21.04ID:vkF2E2Qp0
>>144
vk1Dsc07Bの単独の機能が死ぬんだがw
2017/03/01(水) 01:34:35.06ID:7S3s7KBn0
>>150
死なないよ
てかお前が最初に>>119
vk1Dsc07B::Send, {vk1Dsc07B}  ←これは動作するのに
って書いてるじゃん

こっちでもちゃんと検証して動作確認済み
2017/03/01(水) 01:46:08.52ID:vkF2E2Qp0
>>151
は?w
2017/03/01(水) 01:47:28.86ID:7S3s7KBn0
>>152
は?w
2017/03/01(水) 02:53:29.56ID:CdHko6H20
(ワッチョイ ef99-8lb6)
なんだこいつ態度急変キモイ
2017/03/01(水) 03:20:05.71ID:fP4W4bcy0
もうクソ質問者はスルーでいいだろ
2017/03/01(水) 11:29:34.71ID:IaUsgbY50
>>146
>>147
かなり力技だけど
タスクバーを常に出してるならそれぞれの画面角度のスタートボタンとかの画面キャプチャ(bitmap形式)を保存しといて
ImageSearch使って判別すれば角度もわかると思う
2017/03/01(水) 13:00:43.90ID:bWmGcKpi0
>>156
0度と180度(または90度と270度)ってAHKから見たら同じで判別不能じゃね?
2017/03/01(水) 20:49:17.06ID:bF3Dp7fJ0
list=hoge`nhage`nhige
Loop,parse,list,`n
{
ypos:=A_index * 24
Gui, Add, Edit, x5 y%ypos% ReadOnly, %A_LoopField%
Gui, Add, Button, x+50 y%ypos%,これを押すと左のeditboxのテキストをクリップボードにコピーさせたい
}
Gui,Show,Autosize NoActivate

こんな感じで変数listを行区切りでGUIボタンにして
クリックすると行ごとの左のeditboxのテキストをクリップボードにコピーさせたいんですけど
どうやればいいですか?
変数listが100行超える場合もあるので1個1個ラベルを書いていくのはつらいです
2017/03/01(水) 20:55:32.57ID:0YtyRuzK0
ComboBoxではだめな理由があるの?
2017/03/01(水) 21:34:35.90ID:rWcbJ3kU0
>>158
Gui, Add, Button, x+50 y%ypos% vb%A_Index% Gcopysub,これを押すと左のeditboxのテキストをクリップボードにコピーさせたい


copysub:
msgbox,%A_GuiControl%
return
2017/03/01(水) 21:49:08.51ID:E4tjBCtbr
>>158
ラベル手入力するのが面倒ならラベル作成するスクリプト書けばいんじゃね
loop,100 {
gui, add, button, x y, %a_index%
clipboard .= "button" a_index ":`n" ;みたいに
}
その書き方ならボタンコントロール番号とエディットコントロール番号が一致するだろうから
button1:
button100:
controlgettext, var, % "edit" regexreplace(a_thislabel, "i)button", ""), A
clipboard := var
2017/03/02(木) 00:37:44.30ID:1f30O+z30
>>160のcopysubラベル内でA_GuiControlを使ってcontrolgettextしたら無事動作しました。
ありがとうございました!
2017/03/02(木) 19:23:57.83ID:yxlabhZo0
変数名を文字列として格納できないかの質問。

下みたいな指定した変数のリストをメッセージボックスに表示する関数を作った。

a := 5
b := 7
OutputValue(a,b)
return
OutputValue(Variable*){
Strings := ""
Loop,% Variable.MaxIndex() {
Strings .= "変数" . A_Index . ":" Variable[A_Index]
If( A_Index != Variable.MaxIndex() )
Strings .= "`n"
}
Msgbox,% Strings
}

これを実行すると

変数1:5
変数2:7

と書かれたメッセージボックスが表示されるんだけど、これを

変数a:5
変数b:7

といった表示をさせるようにしたい。
関数OutputValueに変数名の情報を引き渡すことはできないだろうか?
2017/03/02(木) 21:42:23.09ID:a9s2vKBl0
>>163
;呼び出し
OutputValue({"a":a, "b":b}*)

;関数定義内で
For k, v in Variabe
Strings .= "変数" . k . ":" v
2017/03/02(木) 21:58:53.96ID:a9s2vKBl0
* は要らんわ。まぁ、とにかく変数名をキーにした配列を渡す以外に道は無いと思う
2017/03/02(木) 22:01:44.99ID:yxlabhZo0
>>164
ありがとう。
2017/03/02(木) 22:01:46.72ID:jvAYnBY/0
a := 5
c = a
OutputValue(c)
return

OutputValue(v) {
MsgBox, % v ":" %v%
}
2017/03/02(木) 22:17:16.48ID:yxlabhZo0
>>167
こっちでも出来た。多謝。

a := 5
b := 7
c = a
d = b
OutputValue(c,d)
return

OutputValue(v*) {
Loop,% v.MaxIndex(){
v2 := v[A_Index]
Strings .= v[A_Index] ":" %v2% "`n"
}
2017/03/02(木) 22:18:52.57ID:yxlabhZo0
MsgBox,% Strings
}


コピペ抜け
2017/03/02(木) 22:25:39.67ID:a9s2vKBl0
>>167>>168
それは OutputValue() 内に定義された変数名と同じ変数名が渡されたとき、意図しない動作になるから気を付けて
そのコードで
v2 := 5
c = v2
として
OutputValue(c,d)してみ
2017/03/02(木) 22:29:02.24ID:yxlabhZo0
>>170
確認した。ありがとう
2017/03/03(金) 17:11:26.26ID:5KTlVZI300303
このスクリプトがUnicode版だと動作しないのは何故でしょうか?。
http://pastebin.com/raw/GbNmzpFX
ansi版では動作します。
2017/03/03(金) 17:40:33.47ID:5KTlVZI300303
sFile = gui.png
にしたら動作しました。
お騒がせしました。
2017/03/03(金) 17:41:43.23ID:5KTlVZI300303
ごめんなさい、嘘です。
全く動作しませんでした。
2017/03/03(金) 17:41:57.35ID:MhJlJ3Ar00303
最後らへんで MultiByteToWideChar かましてるから
A_IsUnicode チェックするなりして外してみたら?
2017/03/03(金) 18:43:53.33ID:eGsuleKk00303
追試してほしいならansi版で動作するパーツセットは最低限揃えるべきじゃね
拾い物の動作確認依頼にしても不親切すぎるだろ
2017/03/03(金) 18:57:57.64ID:5KTlVZI300303
>>176
失礼しました、よろしくお願いします。

Gdip.ahk
http://www.autohotkey.net/~tic/Gdip.ahk
2017/03/03(金) 18:59:01.12ID:zFdEJt/o00303
つか、もう>>175で回答出てるでしょ。たぶんそれで動くよ
2017/03/03(金) 19:13:19.41ID:5KTlVZI300303
If A_IsUnicode = 1の場合に
DllCall("kernel32\MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sFile, "int", -1, "Uint", &wFile, "int", 512)
この行を無効にするって事ですか?全く理解できていません。
2017/03/03(金) 19:31:52.21ID:eGsuleKk00303
>>177
そっちじゃなくてgui.pngのほう
176投稿前にググって拾ってきたgdip.ahkと
ローカル画像を適当にリネームしたgui.pngじゃ
ansiもunicodeもみえないウィンドウ起動されるだけで挙動変わんなかったぞ
ソース貼るだけじゃどう動いてほしいのかすらわからん
2017/03/03(金) 19:41:16.65ID:desiQVSy00303
>>180
こちらにはansiとunicode共に32ビット版のVersion 1.1.24.1が有ります。
そして172のスクリプトを実行すると、unicode版だけ画像が表示されないんですよ。
画像ファイルは何でも良いと思います。
2017/03/04(土) 21:34:48.97ID:X+DGGu4u0
Ctrl & 無変換 & j の3キー同時押し処理をしたいけれど、
押す順番で動作しないことが有ります。

vk1Dsc07B & j:: Send, {Blind}{Left}

こんな風に書いた場合、
無変換 -> Ctrl -> j の順に押すと Ctrl & Left として処理されるけど
Ctrl -> 無変換 -> j の順だと Ctrl & j として処理されてしまいます。

このページを参考に色々手を加えてもやっぱりダメだった。。
http://did2.blog64.fc2.com/blog-entry-371.html

何か良い方法は無いでしょうか。
2017/03/04(土) 22:22:35.67ID:bmdqhUvr0
>>182
私は同じことを変換キーでやっているんだけど、どっちの順番でも正常に動作するよ
2017/03/04(土) 23:59:43.26ID:KMbQaFtK0
>>182
無変換down、ctrlJをsend、無変換up
2017/03/05(日) 12:24:10.80ID:FTkBqX9p0
情報ありがとうございます
英語配列キーボードを使ってるんですけど、
レジストリいじって英語配列使えるようにしたり、無変換・変換を割り当てたりしてるんでそのせいかも・・

レジストリをもとに戻して別の日本語配列キーボードを使ったら、確かに3キーの押す順番を変えても正常に動作してくれました
2017/03/07(火) 01:01:54.19ID:igDWGueT0
すみません初心者なのですが質問いいでしょうか
Windowsキー単独のみを無効にしたいんです
Windowsキー+Rとかは普通に使いたいです
どのようにすればいいでしょうか
2017/03/07(火) 01:40:50.62ID:aCPxdpZT0
>>186
LWin & r::Send, #r
LWin::Return

これでWinキー単独は無効化、Win+Rは使用可能
あとは使いたいWin+○のショートカットを全て登録すれば・・・
と思ったんだけどなぜかこの2行だけでWin+EやWin+Dなど他の組み合わせも使用可能になった
けがの功名だけどこれで良いのかな
2017/03/07(火) 02:49:42.64ID:igDWGueT0
>>187
ありがとうございます
WindowsキーをRetuるrnして使いたいキーを、それぞれ追加す以外にスマートな方法があるかなと思ったんですが
どうやら、LWin & r::Send, #rのみで他の組み合わせも使えますね...気づきませんでした
2017/03/13(月) 10:12:25.02ID:9KlZZ2sm0
>>69
亀レスですがそれで解決しました。
ありがとうございます。目からウロコでした。心から感謝
2017/03/14(火) 18:48:55.49ID:qGTDkJ3gdPi
sleep時間をスクリプト起動中に変更したいんだけど
引用数字って可能?
それかクリップボードの数字を引用させるでもいいんだけど
2017/03/14(火) 19:24:42.03ID:UqdowXo+0Pi
変数でよくない?
2017/03/15(水) 02:10:45.16ID:+W/tCI4i0
>>191
Gui,Add,Slider,vmyslider Range100-1000 ToolTip x6 y10 w300 h30
Sleep, %vmyslider%

これで読み込めないんだけど:=もだめ
そもそもこれで変数としてよみこめてるのかな?
2017/03/15(水) 02:28:53.68ID:uyZbH3FO0
>>192
Gui, Submit または GuiControlGet
MsgBoxで変数の中身を見ていれば空だとわかる
194名無しさん@お腹いっぱい。 (ワッチョイ 0dfb-KBVs)
垢版 |
2017/03/15(水) 03:59:28.69ID:2v/WnyI60
>Sleep, %vmyslider%
そもそもvが余計
2017/03/15(水) 07:09:05.75ID:3wo/Hu/l0
>>192
ini使うのは?

a:
IniRead, aaa, %A_ScriptDir%\aaa.ini, test, bbb
Sleep, %aaa%
MsgBox, %aaa%

Gui, New, hwndhGui AlwaysOnTop Resize MinSize
Gui, Add, Edit, Number Vaaa_, %aaa%
Gui, Add, Button, Gok, OK
Gui, Show
return

ok:
Gui, Submit
IniWrite, %aaa_%, %A_ScriptDir%\aaa.ini, test, bbb
gosub a
2017/03/15(水) 08:13:05.34ID:EC8yCRZy0
質問内容はスクリプト実行中(本来の意図は起動時ではない)の数値反映で
スクリプト終了状態の保持ではないからiniは余計じゃね

質問者が躓いてるとこスルーして他の機能盛り込まれても混乱させてしまうだけでそ
2017/03/15(水) 08:17:03.90ID:NGi/MHju0
v付けちゃったあるあるミスなだけでしょ。
2017/03/15(水) 12:25:05.71ID:+W/tCI4i0
>>193
Gui,Add,Slider, VMySlider Range100-1000 ToolTip x6 y10 w300 h30
Gui,Submit,NoHide Myslider
Gui,Add,Radio,x24 y70 w38 h30,10
Gui,Add,Radio,x64 y70 w38 h30,20
Gui,Add,Radio,x103 y70 w38 h30,30
Gui,Add,Radio,x141 y70 w38 h30,40
Gui,Add,Radio,x180 y70 w38 h30,50
Gui,Show,w350 h120,test
enter::
Gui,Submit, MySlider NoHide
MsgBoX,%MySlider%
Return

Gui,submitで取得できましたありがとうございます
enter押してスライド位置取得した後No hideしててもGUI消えてしまうのは
再起動を組んで解決?ずっと表示していてほしい
2017/03/15(水) 14:09:37.78ID:APz6NzFEr
試してないけどGui,Showの次の行にreturn入れれば良いだけでね
200名無しさん@お腹いっぱい。 (ワッチョイ 6504-2gzW)
垢版 |
2017/03/19(日) 14:31:54.63ID:0FObHEAj0
$RShift::
KeyWait, RShift, T0.13
if ErrorLevel
send,{RShift}
else
send,#{Tab}
keywait, RShift
return

機能は短く押した時Windows10のタスクビューが動作し、長く押すと右Shiftが押されるというものを作りたいのですがいくら長押ししても右shiftが出力されません。
教えてください。
2017/03/19(日) 17:20:41.79ID:LvXCj/QY0
試してないけど「~」付けたらどうだろう?
202名無しさん@お腹いっぱい。 (ワッチョイ 6504-2gzW)
垢版 |
2017/03/19(日) 17:24:16.47ID:0FObHEAj0
どこにですか?教えていただけるとうれしいです
2017/03/19(日) 18:55:41.33ID:z8QAGZGe0
右shiftが出力されませんてのは何を見てそう言ってるの?
ちゃんと押されてるのを認識してないだけじゃないの
2017/03/20(月) 00:18:22.44ID:wjZDytjZ0
>>200
まずサンプルページをよく見て記述を見直そう
あとRShiftの押し下げと上げの記述もちゃんと書こう
2017/03/20(月) 06:46:02.77ID:bwg2wt630
俺も「~」付ける書き方に変更することに賛成だな。
206名無しさん@お腹いっぱい。 (ワッチョイ 6504-2gzW)
垢版 |
2017/03/20(月) 08:54:18.97ID:VXF0FNnI0
>>203 メモ帳で大文字を打とうとしたときにわかりました。あとで確認したらShift+Deleteもできないことで出力されていないとしました。

>>204 ごめんなさい。サンプルコード見ても何もわかりませんでした...わたしの理解力不足なのは重々承知の上、教えて頂けないでしょうか?
2017/03/20(月) 09:06:58.30ID:bwg2wt630
Win7だから、タスクビュー出せないけど、こんなスクリプトなら動作したよ。
~RShift::
KeyWait,RShift,T0.13
if(ErrorLevel){
return
}
MsgBox,短く押されたよ
return
2017/03/20(月) 11:46:59.75ID:wjZDytjZ0
本来はShift+Win+Tabではタスクビュー呼び出せないので、~付けるのはダメな気がするけど
なぜか~付けてsend,#{Tab}でもタスクビューは呼び出せるね
そのやり方で行くなら0.13秒以上押した場合にRShiftを送る必要もない
ただし>>207のスクリプトだと長く押してもMsgBoxが出てしまうのでkeywaitは必要

でも>>200はそれ以前にifの使い方とか基本的なことすら分かってないというね
2017/03/20(月) 13:00:20.47ID:Y3ljsR+90
>>206
Send,{shift} が送れているかいないかと
それで大文字が打てるかは話が別
2017/03/20(月) 15:15:07.83ID:bwg2wt630
>>208
>なぜか~付けてsend,#{Tab}でもタスクビューは呼び出せるね

Shiftを離した時に発動するから、タスクビューを呼び出せるってことかも
2017/03/20(月) 15:45:01.98ID:wjZDytjZ0
>>210
言われてみればその通りだね
2017/03/20(月) 17:44:58.82ID:bwg2wt630
KeyWaitのTオプションとErrorLevelはあてにならない感じだし、こんなのかな

~RShift::
KeyWait,RShift
if(A_TimeSinceThisHotkey>130){
return
}
send,#{Tab}
return
2017/03/20(月) 17:47:22.41ID:bwg2wt630
あ、違った。こう。

~RShift::
KeyWait,RShift
if(A_TimeSinceThisHotkey<130){
send,#{Tab}
}
return
2017/03/20(月) 17:55:55.68ID:wjZDytjZ0
>>212
>>207のやり方でも良いんだよ

~RShift::
KeyWait,RShift,T0.13
if(ErrorLevel){
keywait, RShift ;←これが必要
return
}
MsgBox,短く押されたよ
return
2017/03/20(月) 19:30:13.57ID:bwg2wt630
>>214
なるほど。
ちょっとカウント入れて実験してみたけど、Shiftキーもキーリピートがかかるみたいだね。
216名無しさん@お腹いっぱい。 (ワッチョイ 6504-2gzW)
垢版 |
2017/03/21(火) 14:31:44.92ID:iEQL6gRD0
教えてくださった皆様ありがとうございました‼
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

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