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

■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。 転載ダメ©2ch.net (ワッチョイ f977-fKjf)
垢版 |
2017/09/14(木) 11:52:40.84ID:uijNj4qb0

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

■前スレ
AutoHotkey スレッド part24
http://egg.2ch.net/test/read.cgi/software/1487149472/

■日本語解説等
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)
2018/01/22(月) 04:04:19.09ID:OoTUIsqF0
>>711
何とか出来ました!

reload
run , c:~main.ahk

上記のアホなことやっていて更新できないなぁと悩んでいましたw
教えて頂きありがとうございました
2018/01/23(火) 12:24:46.18ID:0+zHhbeo0
Autohotkeyで即時関数みたいなことできます?
MouseGestureLでジェスチャ毎に再利用しない変数を保持しっぱなしなのもなんだし
最後に一々解放するのもスマートでないというかめんどいというか
代替案でもいいのでお願いします
2018/01/23(火) 14:55:23.06ID:9c2K3oq50
>>713
どこでもいいから関数書いて呼び出すだけ
2018/01/23(火) 15:01:59.35ID:9c2K3oq50
hoge()
return

hoge() {
 MsgBox
}

; --------
hoge2()
hoge2() {
 MsgBox
}
return

; --------

hoge3() {
 MsgBox
}
hoge3()
return
2018/01/23(火) 21:28:28.51ID:0+zHhbeo0
いや、都度関数を作ると関数名がどんどん消費されちゃうってことで即時関数のやり方を聞いた次第です
っていうか即時関数というより無名関数でしたね
2018/01/24(水) 02:41:30.95ID:YYzix6Ix0
MouseGestureL使ってないんでわかんないけどObjectじゃだめなん?
2018/01/26(金) 11:51:05.61ID:A8q+WlDN0
LWin::[
ってやってるだけなんだけど
いつのバージョンからかキーボードの他のキーやマウスのサイドボタンまでおかしな挙動をするようになった
割り当て自体は成功してるんだけど副作用がすごい
仕様変更ですかそれともおま環ですか?
2018/01/26(金) 14:32:12.71ID:lXZy4ZkG0
>>718
そういうのはレジストリ変更タイプのキーチェンジャーをおすすめする
2018/01/26(金) 16:08:35.67ID:A8q+WlDN0
>>718
すまん…おま環だったわ
マウス変えた時に入れたLogicool Optionsと競合してるだけだった
まぁ解決は出来なかったんだけどね
2018/01/26(金) 19:32:30.01ID:tlFNmfdt0
>>716
できない
v2でも実装する予定なし(去年の時点で)
https://autohotkey.com/boards/viewtopic.php?p=150578#p150578
関数名やラベル名を消費しないでサブルーチン作る方法は今のところないんじゃないかな

変数の一斉解放だけなら、変数をオブジェクトにまとめておいて最後に空にするとかあるけど
代案とするには弱すぎる
2018/01/27(土) 12:35:13.87ID:CxWu/J0c0
>>717
>>721
実装予定もなしかー
プラグインレベルの大掛かりなのだとobjectもありかもですね
ありがとうございました
723名無しさん@お腹いっぱい。 (ニククエ 0Caf-N37C)
垢版 |
2018/01/29(月) 13:14:45.61ID:cdR4sGD2CNIKU
Ctrl+CでPageDown、Ctrl+Q Ctrl+CでCtrl+PageDownに
したくて以下のようにしたのですが、^q後の^cがPageDown
に置き換えられてしまっているのかInputで拾えません。
何か方法はありませんでしょうか?


^c::send, {PgDn}
^q::
Transform, CtrlC, Chr, 3

Input,InputChar,I M L1 T2

if (InputChar = "c" or InputChar = CtrlC)
Send,^{END}
2018/02/01(木) 01:50:51.47ID:IVRJohHu0
gpd pocket を axキーボード設定で使っているのですが ?? のキーにFnを入れることはできますか?もしできるようなら教えてください。
2018/02/01(木) 01:52:25.90ID:IVRJohHu0
724です。
??は 三と書いてあるキーです
2018/02/01(木) 02:21:21.73ID:pVoUMo//0
>>725
FnキーはOSやソフトウェアを介さないハードウェアキーなので無理
「三と書いてあるキー」と言うのは恐らくAppsKeyのことなんだろうけど、それなら
AppsKey & ○:: でそれぞれの機能を割り当てれば疑似的にFnキーの様に使うことは可能
一つずつ割り当て行う必要あるから少し面倒だけどね

例)
AppsKey & Left:: Send, {Home}

AppsKeyのことじゃなかったら知らん
2018/02/01(木) 06:26:10.42ID:IVRJohHu0
>>726
ありがとうございます。
三はAppsKeyというのですね。
何もしらなくてすいません。
Fnキー無理なのですね、ファンクションキーがFn+数字キーなので片手で押せないので指の届く近くのキーに割り当てようと思いました。
でも全然わからなかったので質問してみました。
親切にありがとうございます。
2018/02/01(木) 07:26:34.43ID:urvW4tJz0
>>727
だからFnキー自体は割り当てられないけどAppsKeyをFnキーの様に使うことはできるっつーの
AppsKeyと数字の1キーを押したらF1を出力
AppsKeyと数字の2キーを押したらF2を出力
AppsKeyと数字の3キーを押したらF3を出力
以下略

これらを一通り割り当てればAppsKeyをFnの替わりに使える
例まで出してやってんだしこれで分からないなら質問する以前に基礎知識不足
wikiをよく読んでから出直して
2018/02/01(木) 07:37:13.87ID:Y39MZt1z0
AHKアップデートかけたら
vk1Dsc07B & MButton:: foo()
みたいのが片っ端から動かなくなって焦った
結局元に戻したぜ
余計なことすんな
2018/02/01(木) 08:10:11.62ID:IVRJohHu0
>>728

AppsKey & 6:: Send, {F6}
AppsKey & 7:: Send, {F7}
AppsKey & 8:: Send, {F8}
AppsKey & 9:: Send, {F9}

できました。
これで日本語入力楽になります。
本当にありがとうございました。
助かったです。
2018/02/01(木) 08:45:01.74ID:9rNYl+bm0
>>729
>>648
2018/02/02(金) 02:59:10.15ID:wY+RdUVV00202
v1.1.27.07にアップしたら、
もともとWinデフォのホットキーがあるキーに、
下のようなKeyWaitを使った複数タップ系のスクリプトが動かなくなった。
とりあえず「#2 Up::return」を上に置けば動いたけど何だろな?

#2::
 Key := "2"
 Timeout := 0.5
 KeyWait,%Key%
 KeyWait,%Key%,D T%Timeout%
 if ErrorLevel = 1
 {
  スレタイ検索
  return
 }
 ;2タップ時
 Googleで全文検索
return
2018/02/02(金) 05:38:52.02ID:EGJ8lL3F00202
なんだろうな動いたけど
GetKeyState, state, CapsLock, T で状態取得してelseで分岐させると動かない
でもトリガーがCapsLockキー単体なら問題無く動くんだよなぁ
同じコードなのにキーが違うと動かない理由ってなんだろう

;Shift+CapsLockに変えると動かない
;------CapsLock Auto OFF ------
vkF0sc03A::
GetKeyState, state, CapsLock, T
If state = U ;OFF
SetCapsLockState, ON
else
{
SetCapsLockState, OFF
}
Timer03:
If(A_TimeIdlePhysical>5000)
SetCapsLockState, OFF
Return

;Shift+CapsLockはこれじゃないと動かない
;------CapsLock Auto OFF ------
CapsLock::return
~Shift & vkF0sc03A::
Send, {CapsLock}
Timer03:
If(A_TimeIdlePhysical>5000)
SetCapsLockState, OFF
Return
2018/02/02(金) 05:43:35.42ID:EGJ8lL3F00202
そもそも状態を取得する必要性が何でだったかを忘れてるが...
下のコードだと何か気持ち悪い
2018/02/02(金) 11:23:50.20ID:UlhnALdl00202
vk**sc***は>648

それはそれとしてもLock系キーの動作は日本語OSではもともと不定でBIOS(UEFI)によって挙動バラバラだったし
たまたま動いてたのがバージョン変わったことで動かなくなったとしても別に不思議じゃないと思うが
2018/02/11(日) 15:54:02.28ID:wLAjQo6+0
識者の知恵をお借りしたい
ほとほと困ってます…

環境:windows7 32bit + Autohotkey 1.1.27.07
上記はvmware上で動作しています
この環境に,ipad + bluetooth keyboard + vmware horizone clientで,リモート接続しています
(つまり,クライアント側(ipad)の環境には,手が出せないということです)

で,windows7側で,キー入力をフックしたいのだが,Autohotkeyのkey historyで探ると,例えば…
VK=E7,SC=003D Type=U → 実際のキー入力は ”=”
VK=E7,SC=005B Type=U → 同 ”[”
VK=E7,SC=0040 Type=U → 同 ”@"
と表示されます

この情報から例えば,
sc003D::a
sc005B::b
sc0040::c
と,キーのリマップを定義しても,思い通りの動作にはなりません(scの後を3桁にしてもダメ)
また,
=::a
[::b
@::c
とやっても,思い通りの動作となりません

どうやら,autohotkey側で,VK=E7のキー入力をフック出来ていないような感じがします
このような(妙なキー入力)をフックする方法をご教授頂きたいのです

良い知恵や,サンプルコードなど,ありませんでしょうか?
2018/02/11(日) 16:54:31.12ID:3ZvNHM330
普通に
=::a
[::b
@::c
で機能してるけど
単に権限で弾かれてるだけじゃね?
2018/02/11(日) 17:35:40.80ID:DQMytbvG0
>>737
試してもらった環境で、autohotkeyのkey historyを確認してほしい。
該当する箇所のVK、SC、Typeの欄、>>736 と違うのではないかと…。
2018/02/11(日) 17:47:15.75ID:j35DJg2F0
[ → vkDB sc01B
@ → vkC0 sc01A

=なんてキーはないから知らん
2018/02/11(日) 17:52:01.25ID:3ZvNHM330
@ は C0 01A
[ は DB 01B
= はshift-なので、- は BD 00C
2018/02/11(日) 18:32:04.46ID:DQMytbvG0
>>739-740
本来は、それが正しいんだと思う。
>>736 のキー入力は、特殊な環境で発生するみたいで…。
何とかフックして、正しい状態に変換したいというのが、やりたいことなんです。
autohotkeyの他、keymillを使っても確認したが、やはり、仮想キーコードとスキャンコードは、>>736 と同じでした。
手詰まりなのかなぁ。
2018/02/11(日) 19:10:35.03ID:tFbq6f170
$ や #UseHook はどうなってんの?
2018/02/11(日) 20:36:51.05ID:wLAjQo6+0
>>742
現時点ではサンプルコードで動作確認している程度なので,必要かどうかは疑問
----- -----
#InstallKeybdHook

sc003D::a ; sc03Dも試した
sc005B::b ; sc05Bも試した
sc0040::c ; sc040も試した
----- -----

scriptとしては,上記しか記載していないです
#UseHookの記載があったとしても,効果ないですよね?
$は関係なさそうだし…
2018/02/11(日) 21:23:43.50ID:tFbq6f170
>>743
$ や #UseHookは
実際にキーが押された信号を拾う(ドライバレベルのキー変更は変更後を拾う)
ないときはソフトで発行されたキーも拾う
2018/02/11(日) 21:25:35.35ID:tFbq6f170
#InstallKeybdHookもおなじね
2018/02/11(日) 21:34:15.09ID:tFbq6f170
#InstallKeybdHookは関係ないわ忘れてくれw
2018/02/11(日) 21:49:22.37ID:wLAjQo6+0
>>744
----- -----
#InstallKeybdHook
#UseHook On

sc003D::a ; sc03Dも試した
sc005B::b ; sc05Bも試した
sc0040::c ; sc040も試した
----- -----
とやっても,ダメポ
思った通りの動きをしてくれない
----- -----
#InstallKeybdHook
#UseHook On

=::a ; sc03Dも試した
[::b ; sc05Bも試した
@::c ; sc040も試した
----- -----
もダメ
ヤレヤレ…
2018/02/11(日) 22:08:12.57ID:wLAjQo6+0
>>747
今判ったのだが,SCの4桁って,Unicodeだわ
U+003Dは"=",U+005Bは"[",U+0040は"@"
autohotkeyでUnicodeの入力をフックすることは,さすがに出来ないんだろうな
悩ましい…
2018/02/13(火) 06:44:07.16ID:sFxCGnec0
1.1.28.00
変更点多数
2018/02/14(水) 04:54:09.67ID:IcKhWWhH0
オブジェクトのクリーンアップ中に呼び出されたときに例外をキャッチして報告するように__Deleteを変更しました。
以前は、次の関数呼び出しまたはtry-block / threadの終わりまで例外を延期する(誤った)影響がありました。
アクティブなウィンドウが変化するのではなく、フォーカスが変化したときにホットストリング認識機能をリセットしました。
メニュー0&をウィンドウのシステムメニューとして扱うようにWinMenuSelectItemを変更しました。

#Includeに渡されたパス内のすべてのビルトイン変数のサポートが追加されました。
A_TimeIdleKeyboardとA_TimeIdleMouseを追加しました。
A_ListLinesを追加しました。
A_ComSpec(ComSpecのエイリアス)を追加しました。
A_LoopFilePath(別名A_LoopFileFullPathのエイリアス)を追加しました。
自動置換の代わりに同じ行のアクションを実行するhotstring Xオプションを追加しました。
Hotstring()を追加しました。
機能ホットストリングを追加。
StrSplitにMaxPartsパラメータを追加しました。
#MenuMaskKeyを改善して、VKとSC、またはvk00sc000を指定できるようにしました。
2018/02/14(水) 05:01:13.25ID:Rm7A3QSM0
A_LoopFilePathはほぼLongのほうしか使わないからそっちのエイリアスにしてくれればよかったのに
2018/02/14(水) 07:56:06.39ID:IcKhWWhH0St.V
vkxxscxxx修正疲れた〜
vkxxは動くとこと動かないとこがある
scxxxは安定ぽい
2018/02/14(水) 12:30:38.02ID:eq9KUA5f0St.V
アプデしたいけどあらゆる作業に影響ありまくるから踏ん切りつかぬ
2018/02/14(水) 16:26:24.52ID:eOeOVFcL0St.V
うちなんかv1.1.24.00でずっと止めてるわ
v1.1.24.01のHotkeyコマンド関連の仕様変更にいまだに修正対応できずに足踏みしてる
2018/02/14(水) 21:21:16.70ID:AOagrs8+MSt.V
>>754
同じく
修正マンドクセ
2018/02/14(水) 23:58:57.92ID:yRogQsfK0
>>750
結局、vk**sc***表記を復活させたということかな
その方がいいんだけど、1.1.27〜の時の苦労は何だったのかw
週末にでも更新しようかね
2018/02/15(木) 00:40:13.12ID:02BDAqxY0
なに迷走してんだか…
2018/02/15(木) 00:52:21.11ID:MGxE8Lu40
v1.1.24.01 → 1.1.28.00
レスポンスが悪くなった?

ALTキーの空押しでIMEの制御してたけど
ALT upがワンテンポ遅くなった
IME自体の表示は即オンオフの反映されるんだけど
文字を打ち込もうとするとALTが押された状態みたいでエラー音がティンティン鳴る
2秒位待たないと文字が打てなくなってしまった
何故かエディタのみで起こってブラウザでは問題無い
後、トグル系が急に効かなくなったり効いたり
トライアンドエラーで対策できず、結局バージョン戻したわ
2018/02/15(木) 02:01:48.57ID:MGxE8Lu40
原因はアクセラレーターキーだった
何故か反応するようになってしまってる

ブラウザの方はアクセラレーター切ってってて
使ってるエディタにメニューバーが無いので気づかなかったわ
空押しでアクセラレーターキーが効かないのを効くように修正したってことかな

もう一度バージョン上げてみたみたはいいけど、やっぱ駄目かも
2018/02/15(木) 06:21:05.12ID:A4rUj4nf0
/*
┌────┐
│存在判定│
└────┘
WinExist→WinActive…アクティブ判定

■関数
WinExist_1("WinTitle") ;前方一致検索
WinExist_2("WinTitle") ;部分一致検索
WinExist_3("WinTitle") ;完全一致検索
WinExist_R("WinTitle") ;正規表現検索

■使用例
if WinExist_n("WinTitle") ;ウィンドウがあれば
if !WinExist_n("WinTitle") ;ウィンドウがなければ
*/
WinExist_1(WinTitle) {
 SavedTitleMatchMode := A_TitleMatchMode
 SetTitleMatchMode,1
 ErrorLevel := WinExist(WinTitle)
 SetTitleMatchMode,%SavedTitleMatchMode%
return ErrorLevel
}

WinExist_2(WinTitle) {
 SavedTitleMatchMode := A_TitleMatchMode
 SetTitleMatchMode,2
 ErrorLevel := WinExist(WinTitle)
 SetTitleMatchMode,%SavedTitleMatchMode%
return ErrorLevel
}
2018/02/15(木) 06:21:20.14ID:A4rUj4nf0
WinExist_3(WinTitle) {
 SavedTitleMatchMode := A_TitleMatchMode
 SetTitleMatchMode,3
 ErrorLevel := WinExist(WinTitle)
 SetTitleMatchMode,%SavedTitleMatchMode%
return ErrorLevel
}

WinExist_R(WinTitle) {
 SavedTitleMatchMode := A_TitleMatchMode
 SetTitleMatchMode,RegEx
 ErrorLevel := WinExist(WinTitle)
 SetTitleMatchMode,%SavedTitleMatchMode%
return ErrorLevel
}
2018/02/15(木) 07:44:58.37ID:DStDVLAI0
_1 _2 _3 _R も引数にしたくなる人が多そう
2018/02/15(木) 19:03:18.66ID:XW96eMY10
>>760
関数などの別スレッドの各種設定は終了すると
規定値(AutoExecuteセクションの設定)に戻るので戻す必要はないよ

> SavedTitleMatchMode := A_TitleMatchMode
> SetTitleMatchMode,%SavedTitleMatchMode%

大量の関数ではなく引数を使おう

MsgBox % isWindow(, 2, "電卓")
return

isWindow(Active=0, MatchMode=1, WinTitle="A", WinText="", ExcludeTitle="", ExcludeText="") {
 SetTitleMatchMode %MatchMode%
 return (Active ? WinActive(WinTitle, WinText, ExcludeTitle, ExcludeText)
          : WinExist(WinTitle, WinText, ExcludeTitle, ExcludeText))
}
2018/02/15(木) 20:12:31.47ID:6ml6AmJ20
関数は別スレッドではありません
2018/02/15(木) 20:27:59.62ID:XW96eMY10
>>764
え?まじだ
すいません間違えました
2018/02/15(木) 20:50:07.36ID:XW96eMY10
>>763
すいません訂正します
同じスレッドでした
> 関数などの別スレッドの各種設定は終了すると
> 規定値(AutoExecuteセクションの設定)に戻るので戻す必要はないよ


MsgBox % isWindow(, 2, "電卓") "`nA_TitleMatchMode: " A_TitleMatchMode
return

isWindow(Active=0, MatchMode=1, WinTitle="A", WinText="", ExcludeTitle="", ExcludeText="") {
 Save := A_TitleMatchMode
 SetTitleMatchMode %MatchMode%
 e := (Active ? WinActive(WinTitle, WinText, ExcludeTitle, ExcludeText)
         : WinExist(WinTitle, WinText, ExcludeTitle, ExcludeText))
 SetTitleMatchMode %Save%
 return e
}
2018/02/15(木) 23:28:05.40ID:A4rUj4nf0
>>766さん
別解ありがとうございます。知識になります。
768名無しさん@お腹いっぱい。 (ワッチョイ d767-MriG)
垢版 |
2018/02/16(金) 11:24:34.32ID:U6oi7OTq0
ゲームに使おうとしています。
https://i.imgur.com/DmXSDJk.png
上の画像のように、ゲーム内で検索した装備品で、
検索にヒットし黄色の枠でハイライトされているものを鞄にCtrl+LClickで移動させるマクロを作りたいと思っていまして
黄色の枠のみをペイントで抽出し、bmpで保存(下のコードのtest.bmpです)し
ahkのImageserchに使えばいけるのでは?と考えたわけですが
error level1が返ってきます。
同じように加工したjpg、枠以外を透過させたpngでも試しましたが同じくerorrlevel1でした
なにがまずいのでしょうか。。。

https://i.imgur.com/DDTMyo5.png(抽出画像)

F8::some()

some(){
BlockInput On
ImageSearch, foundX, foundY, 0, 0, 1920, 1080, *TransFFFFFF C:\Users\User01\Desktop\test.bmp
If ErrorLevel = 2
MsgBox Could not conduct the search.
Else If ErrorLevel = 1
MsgBox Icon could not be found on the screen.
if ErrorLevel = 0
{
SendInput, {
MouseMove, %foundX%, %foundY%
Send {Ctrl down}
Click, %foundX%, %foundY%, Left, 1
Send {Ctrl up}}
BlockInput Off
}
}
2018/02/16(金) 12:00:10.03ID:SvcDK4bi0
ImageSearchを完全一致やめて誤差の余裕持たせてみ
2018/02/16(金) 12:01:54.87ID:kFXWbhgF0
>>768
画像を見た感じ、境界の部分が明示的透過というより背景と混ざっているように見える
多分アンチエリアスとかのせい
よって、*Nオプションである程度認識する色に幅を持たせるか
抽出画像の方を明確に色の濃い部分だけを残して真っ白にして透過指定する
とかを試してみてはどうだろう?
2018/02/16(金) 16:13:41.17ID:m7uJKjCZa
>>769 >>770
ありがとうございます
誤差検索*90をオプションに追記しましたところ、
ハイライトされたもののうち2つには反応しましたが
その二つを取り除いてみるとerror2でした

>>770
たしかにwindowsプリセットの画像ビューワで見たとき滲んだように見えますね
しかしペイントで抽出した際は滲んでいるようには見えず、この枠の太さ(ほかに表現方法がわかりません笑)が1ドットになるようにしたのですがこれが限界ではないということでしょうか(;´Д`)
2018/02/16(金) 18:22:57.21ID:ajEghuwq0
>>768
枠の形変わりそうだし画像で探すなら
最小限の3ドット以上の角(┏)でいいのでは?
PixelSearch*3回でもおk
2018/02/16(金) 20:23:31.67ID:uKa9qGpV0
所詮おまけ機能なんだから複雑な事しようとするとすぐ手詰まりになるよ
そういうのは何か他のツールに処理投げた方がマシ
2018/02/16(金) 20:59:29.19ID:ifkLCsJ10
俺はむしろ、こういう変態的な使い方を考えるのは凄いと思うよw
日本人っぽいニッチな工夫というか何というか
2018/02/16(金) 21:16:18.23ID:j4lSZ2IT0
>>768
これ対象画像側の枠サイズ一定じゃないね
2018/02/16(金) 23:56:55.26ID:U6oi7OTq0
>>775
まじすか
それはどうやってわかりました?
777名無しさん@お腹いっぱい。 (ワッチョイ 1701-MriG)
垢版 |
2018/02/17(土) 00:32:17.20ID:a1W66dge0
流れ読まずに質問スマソ
管理者権限のアプリも操作するためにAHK自身を管理者で実行すると、
今度はRUNで何か走らせる際にそれらも全部管理者権限になってしまう。
対策としては、
・タスクスケジューラを噛ませる
・Win+R 窓を開いてそこでコマンドを実行する
ほかにもっと簡単な方法はないでしょうか?
2018/02/17(土) 00:38:19.47ID:xrBc6gW30
ほんとだ
画像編集ソフトで半透明レイヤー重ね合わせてみたら縦横ズレることろあるね
https://i.imgur.com/CzwkKZ1.png

775良く気付いたなw
2018/02/17(土) 00:45:15.12ID:xrBc6gW30
>>777
俺はこうやってる

Run, Explorer "標準権限で起動したいアプリ.exe"
2018/02/17(土) 01:00:18.16ID:ykUscsnm0
タスクバーをアクティブにしてMbuttonを押すと何かする
のをやろうとしたんですがMbuttonが効かないんです
スクロールは割り当てできます
おま環ですかね?
2018/02/17(土) 20:13:15.35ID:9Ob7L7Vv0
>>779
run, explorer "notepad.exe"
とかやってみたけど、マイドキュメントフォルダーが開くだけだったよ
782名無しさん@お腹いっぱい。 (ワッチョイ 1701-MriG)
垢版 |
2018/02/17(土) 20:20:17.03ID:9Ob7L7Vv0
>>779
>>781
run, explorer "C:\Windows\System32\notepad.exe"
パス付けたら動いた
どうもありがとう!!
2018/02/17(土) 20:27:03.30ID:Wm0LX3zO0
>>781
ちゃんとパス指定しないとアカン
パス指定は絶対パスでも相対パスでも可能

ただし起動したいexeと同一フォルダにahkファイル置くならパス指定不要
784名無しさん@お腹いっぱい。 (ワッチョイ 1701-MriG)
垢版 |
2018/02/17(土) 20:41:59.94ID:9Ob7L7Vv0
>782
いろいろ試したけど、
ターゲットアプリに引数を渡すことは出来ないみたいだね
例)
explorer "C:\Program Files\internet explorer\iexplore.exe" http://ntt.setup

explorer.exe の仕様なんだろうか
2018/02/17(土) 21:15:34.04ID:GM2z7ZiA0
https://github.com/Lexikos/AutoHotkey-Release/blob/master/installer/source/Lib/ShellRun.ahk

これ使えばできた
786名無しさん@お腹いっぱい。 (ワッチョイ ff01-MriG)
垢版 |
2018/02/18(日) 00:24:02.28ID:OinWbaSp0
いろいろありがとう!
2018/02/18(日) 13:06:36.91ID:R6I2ijWP0
vk**だとvkF0::Returnしか効かないな
sc03Aでやっと出来た

OFFにするだけのコードに手こずってしまった
何を当ててもOFFから当てたキーと同時にONになってしまうのね〜
GetKeyState, state,でイケたけどSetCapsLockState, OFFでONにしないというのは感覚的にキモいな
元々OFFの状態だからか何かもぞもぞする

;USキーボードCapsLock制御
#InstallKeybdHook
SetTimer, Timer01, 1000
SetStoreCapslockMode, off
;------------------------------------
~LShift & sc03A:: ;左Shift+CapsLockでCapsLockのON OFF
Send, {CapsLock}
Timer01:
If(A_TimeIdlePhysical>5000) ;5秒間何も押されなかったら
SetCapsLockState, OFF ;自動でOFFにする
Return

sc03A:: ;CapsLockがONの時にOFFにするだけ(ONにしない)
GetKeyState, state, CapsLock, T
If state = D ;ONだったら
SetCapsLockState, OFF ;OFFにする
GetKeyState, state, CapsLock, P
If state = U ;物理的にCapsLockキーが押し下げされてなければ
SetCapsLockState, OFF ;OFFにする(ONにしない)
Return
2018/02/18(日) 22:24:30.08ID:3FpAdC2Y0
┌──────────┐
│マッチ判定(通常検索)│
└──────────┘
■関数
□大文字/小文字の区別なし
InStr_1(var, "検索文字列") ;前方一致検索
InStr_2(var, "検索文字列") ;部分一致検索
InStr_3(var, "検索文字列") ;完全一致検索

□大文字/小文字の区別あり
InStr_1(var, "検索文字列", "true") ;前方一致検索(大文字/小文字の区別)
InStr_2(var, "検索文字列", "true") ;部分一致検索(大文字/小文字の区別)
InStr_3(var, "検索文字列", "true") ;完全一致検索(大文字/小文字の区別)

■返値
真…マッチ位置
偽…0

■使用例
if InStr_n(var, "検索文字列") ;マッチすれば
if !InStr_n(var, "検索文字列") ;マッチしなければ

if InStr_n(var, "検索文字列") = n ;検索文字列がn文字目にマッチすれば
2018/02/18(日) 22:35:18.66ID:3FpAdC2Y0
InStr_1(Haystack, Needle, CaseSensitive="") {
 SavedTMM := A_TitleMatchMode
 SetTitleMatchMode, 1
 FoundPos := InStr(Haystack, Needle, %CaseSensitive%)
 SetTitleMatchMode, %SavedTMM%
return FoundPos
}

InStr_2(Haystack, Needle, CaseSensitive="") {
 SavedTMM := A_TitleMatchMode
 SetTitleMatchMode, 2
 FoundPos := InStr(Haystack, Needle, %CaseSensitive%)
 SetTitleMatchMode, %SavedTMM%
return FoundPos
}
2018/02/18(日) 22:38:00.78ID:3FpAdC2Y0
InStr_3(Haystack, Needle, CaseSensitive="") {
 SavedTMM := A_TitleMatchMode
 SetTitleMatchMode, 3
 FoundPos := InStr(Haystack, Needle, %CaseSensitive%)
 SetTitleMatchMode, %SavedTMM%
return FoundPos
}
2018/02/18(日) 22:43:08.17ID:ZvCWwtWf0
>>788
>>1http://pastebin.com/を使ったらどう?
2018/02/18(日) 22:57:11.81ID:3FpAdC2Y0
>>791さん
次から使わせていただきます。
2018/02/19(月) 03:06:32.79ID:Y9HUB6jX0
それ _1 _2 _3 全部同じやw
InStr に SetTitleMatchMode を設定しても何の効果も無いよ
2018/02/19(月) 04:14:54.89ID:BdhMP5UP0
>>793さん
ご指摘ありがとうございます。

InStr()関数はIfInString文同様部分一致検索のみで意味ないことしてました。m(_ _)m
2018/02/19(月) 04:35:55.96ID:BdhMP5UP0
前方一致検索…RegExMatch(var, "^検索文字列")
後方一致検索…RegExMatch(var, "検索文字列$")
完全一致検索…RegExMatch(var, "^検索文字列$")
部分一致検索…InStr(var, "検索文字列")
部分一致検索…IfInString, var, 検索文字列
2018/02/19(月) 05:00:29.90ID:PJPmNhpU0
>>795
うざい
2018/02/19(月) 05:11:58.24ID:BdhMP5UP0
スレ汚しすみません。しばらくロムります。
2018/02/19(月) 11:21:09.62ID:IXuHbD6q0
WinExist_n()でn部分を引数にせえよって指摘されたのなら次にも生かしたらいいと思うの
…って書こうとしたら_nで分けること自体に意味がないのかこれw
2018/02/19(月) 11:40:12.03ID:BxLXEv6G0
添削お願いします の一文も無く、いきなり貼られても困るよね
2018/02/20(火) 00:26:22.82ID:9Z14yE7+0
ただ質問しただけだと教えてもらえないけど自信満々に間違ったことを書くと煽りとして正解が返ってくるという
2ちゃんあるあるを利用したのかもしれない
2018/02/23(金) 07:33:03.76ID:9Fk1AXu40
うむ、専門板では必須の基本テクだよな
2018/02/23(金) 07:33:14.45ID:Y0VJAwMh0
今更ながらこれを実装した
ペーストできない欄にID、パスワード等を書き込むのに便利
こんなの10年前にやるべきだったな…

^+v:: send,%clipboard%
2018/02/23(金) 07:50:14.04ID:ZjJ8bLPd0
>>802
コピペでパスワード入力するってことは、パソコン内にパスワードのテキストを置いているんでしょ。
Send,LoginID{Tab}PassWord{Enter}
で良いんじゃないの?
2018/02/24(土) 00:25:26.38ID:b4HvGc+S0
すみません質問なんですが
エディタ等では使えるんですがExplorer上でファイル名の編集で使えないです
クリップボードの文字に括弧を付けて一旦格納することは可能でしょうか?
タイムスタンプは^vで貼り付け出来ているのでこれも出来ないかなと思いまして
どなたか知恵をお貸しくださいおねしゃす

;選択したテキストを括弧で囲む
Menu, 01, Add, 【 】で囲む, Command1 ;メニュー
;━━━━━━
Command1:
clipboard =
Send ^c
ClipWait
Send 【%clipboard%】
clipboard =
Return
;━━━━━━
~Alt & [:: ;Alt+ [ でメニューの表示
IME_SET(0)
Menu, 01, Show
return

こっちはどこでも使える
;━━━━━━
~F13 & Tab::
FormatTime, TimeString,,yyyy_MMdd_HHmm
Clipboard = %TimeString%
Send, ^v
clipboard =
return
2018/02/24(土) 15:06:36.08ID:b4HvGc+S0
これで駄目なら無理なのかな?

Command1:
clipboard =
Send ^c
ClipWait
clipboard = 【%clipboard%】
Send ^v
clipboard =
Return
2018/02/24(土) 15:17:50.05ID:HoejbmkP0
>>804
最後の Send と clipboard = の間に、
Sleep,100
を入れて実験してみて。
2018/02/24(土) 15:45:22.10ID:J1gZxMO+0
>>804
メニュー表示した段階でファイル名編集状態が外れてるんじゃないの?
2018/02/24(土) 22:17:24.31ID:HiBHIVZG0
だな
フォーカス外れた段階でファイル名のEditBoxがなくなるから別窓やメニュー表示は無理
LiNameみたいなリネームソフトでいったんエディタに飛ばして変換するのが無難かと
2018/02/24(土) 22:47:10.87ID:b4HvGc+S0
ありがとうございます。なるほど理解しました
結果的にExplorer上ではメニュー出さずに直で行うようにしました

F14::
clipboard =
Send ^c
ClipWait
Send 【%clipboard%】
clipboard =
Return

あとはキーをちょっと工夫してみます。
トグルして括弧の種類を変えていければいいんだけど...
2018/02/28(水) 04:34:44.24ID:WVOCCenh0
エラー処理入れておいたほうがいいぞ

clipboard= ; クリップボードの内容をクリア
send, ^c
clipwait,1000 ; クリップボードの内容がからの間は待つ
if ErrorLevel <> 0 ; タイムアウト時のエラー処理もちゃんとする
{

return
}
msgbox, clipboard changed: [%clipboard%]
return
2018/02/28(水) 10:49:33.46ID:fyn3Q3mHr
正規表現スレからコピペ
RegExMatch("こんにちは。", "(.)+", $)
MsgBox, %$1% ;「こ」じゃなくて「。」が入るんだね
RegExMatch(str, "^(.)+", $)
でも同じ結果だた
2バイト文字だからこうかなと思たら
RegExMatch(str, "^(..)+", $)
$1に「は。」が入る
もうわけわかんねー
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

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