AutoHotkey スレッド part19at SOFTWARE
AutoHotkey スレッド part19 - 暇つぶし2ch13:名無しさん@お腹いっぱい。
14/09/22 18:41:40.53 p6lOg1se0
>>12に追記
表示されたウィンドウ内のテキストが切れると言う意味です。
よろしくお願いします。

14:名無しさん@お腹いっぱい。
14/09/22 20:03:53.86 +lqQnBvw0
>>13
取得したテキストが半端で途中で切り捨てられているような場合は、このコマンドを実行する前に VarSetCapacity(OutputVar, XXX) としておくと効果がある
(XXX には欠けたテキストよりも十分に長いものにする)。
一部のアプリケーションはテキスト長を調べる WM_GETTEXTLENGTH メッセージに反応しないため、 このような事前の容量確保をしておく必要が生じる。
URLリンク(ahkwiki.net)

15: ◆T98aC7LCC.
14/09/22 20:06:13.00 +lqQnBvw0
テンプレが古いので修正案を出しておきます。

>>2
旧版のAHKとの変更点多数。新しい仕様や互換性についてはドキュメントを良く読むこと。
 →URLリンク(ahkscript.org)
 →URLリンク(ahkwiki.net)

>>4
 例) ChangeKeyを使って[ひらがな]を[F13]にする
  AutoHotkeyで任意のキーをF13にリマップする(例えばF12をF13にリマップし、スクリプトを実行)。
   F12::F13
  Changekeyを起動する。( URLリンク(www.forest.impress.co.jp) )

>>7
Q2:テキストエディタでキーワードの色づけなどをしたいんだけど。
A2:wikiに各種エディタの定義ファイル及びキーワード一覧あり。( URLリンク(ahkwiki.net) )

Q3:GUI作るのめんどくせ~~
A3:海外の有志が作ったツールを使うと楽。
 SmartGUI Creator ( URLリンク(www.autohotkey.com) )
 GUI Creator ( URLリンク(ahkscript.org) )

>>8
Q6:Windows Vista(以降)で管理者権限のウィンドウ操作やSendPlayが効かないんだけど?
A6:OSのセキュリティ機能であるユーザーアカウント制御(UAC)にブロックされている。

16: ◆T98aC7LCC.
14/09/22 20:08:25.66 +lqQnBvw0
■AutoHotkeyの系譜
             ┌ AHK64(統合)
             │
AutoIt         .│ ┌ AHK_U(統合)
 │          │ │
AutoHotkey(1.0) ─ Autohotkey_L ┬ Autohotkey(1.1) ←いまここ
   │         │       │
   └ IronAHK×  │       └ Autohotkey v2(α版)
             │           │
             └ AutoHotkey.dll  .├ AutoHotkey_H v2
                │  │     │
                │  └ AutoHotkey_H
                │
                └ AutoHotkey_N×

■メインストリーム
AutoHotkey 1.0(開発終了)
URLリンク(www.autohotkey.com)
Autohotkey 1.1 (Autohotkey_L)
URLリンク(ahkscript.org)

■開発中
Autohotkey v2(下位互換性を排除して操作利便性の向上)
URLリンク(ahkscript.org)

17: ◆T98aC7LCC.
14/09/22 20:09:00.95 +lqQnBvw0
■派生版
IronAhk(.NET製、クロスプラットフォーム。開発終了)
URLリンク(www.ironahk.net)

AutoHotkey.dll(真のマルチスレッド対応)
URLリンク(www.autohotkey.com)
AutoHotkey_N(開発終了)
AutoHotkey_H
URLリンク(www.autohotkey.net)

■統合
AHK_U(Unicode版)
URLリンク(www.autohotkey.com)
AHK64(64bit版)
URLリンク(www.autohotkey.com)

18: ◆T98aC7LCC.
14/09/22 20:11:25.38 +lqQnBvw0
>>8
Q6:Windows Vista(以降)で管理者権限のウィンドウ操作やSendPlayが効かないんだけど?
A6:OSのセキュリティ機能であるユーザーアカウント制御(UAC)にブロックされている。

■回避策
1:管理者として実行
 Autohotkey.exeを右クリックしてプロパティを開き、「互換性」→「管理者としてこのプログラムを実行する」にチェック。
 スクリプトに記載する方法もある( URLリンク(www.autohotkey.com) )

2:対策パッチ
 実行ファイルのマニフェスト書き換え、自己署名証明書のインストールが行われる。
 ※AutoHotkey.exeはProgram Files以下に置く必要がある。
 URLリンク(www.autohotkey.com)

3:UAC停止 ※注意!! 必ずHIPS機能がある他のセキュリティ対策ソフトを導入してください。
 「コントロールパネル」→「ユーザーアカウント」
 Vista:「ユーザーアカウント制御の有効化または無効化」→ チェックボックスをオフ。
 7/8/8.1:「ユーザーアカウント制御設定の変更」→ スライドバーを一番下に。
 ※Windows 8/8.1では上記に加えレジストリを変更する必要があります。(注意:Windowsストアアプリが実行できなくなる)
 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
 「EbableLUA」の値を「0」に変更。

■スクリプト作成支援ツール
AutoHotKey専用エディター ※必須ではありあせん。
 SciTE4AutoHotkey
 URLリンク(fincs.ahk4.net)

GUI作成ツール
 SmartGUI Creator
 URLリンク(www.autohotkey.com)
 GUI Creator
 URLリンク(ahkscript.org)

19:名無しさん@お腹いっぱい。
14/09/22 20:39:58.86 LhXBlblr0
Everything等で独自の関連付けするahkサブルーチンファイル作ってみました。良ければ使ってください
もっとスマートに出来るかも

URLリンク(ux.getuploader.com)

20:名無しさん@お腹いっぱい。
14/09/22 21:03:09.18 p6lOg1se0
>>14
コメント有難うございます。
早速チャレンジしてみます。

21:名無しさん@お腹いっぱい。
14/09/22 21:19:06.45 iyM3+SBr0
>>19
これは便利そうなのがいきなり来たな

22:名無しさん@お腹いっぱい。
14/09/22 21:46:18.53 ZP/8pA2I0
系譜こんなにあったのかよ
UとかHとか今知ったわ

23:名無しさん@お腹いっぱい。
14/09/22 21:49:09.99 LhXBlblr0
あ、サーセン。やらかしてた。
>>19の左クリック処理、ドラッグ選択からだと複数起動うまくいかないのでこう書き換えてください
サブルーチン側の問題じゃないんでここに書いときます。あんま重要でもないし

*Lbutton::
If(A_Priorhotkey = A_thishotkey && A_TickCount < WClick){
WClick :=
gosub,Association
}
click,L,D
keywait,Lbutton
click,L,U
WClick := A_TickCount+300
return

24:952
14/09/22 22:25:42.48 KL8RiTSL0
クリップボードの文字列の半角を全角に置換してファイル検索ソフトに送る方法で質問していた、前スレの952です。
本当に沢山の皆様からのレスありがとうございました。
つい最近スクリプトの知識が全くないまま作り始めたものだったので、
頂いたレスの半分も理解できませんが、自分が望む動作のスクリプトが形成できました。
返事が遅れて申し訳ないですが、レスを頂いた皆様、本当にありがとうございました。

25:名無しさん@お腹いっぱい。
14/09/23 07:27:52.45 R6s1s0Ph0
>>23
300だとダブルクリックの猶予ありすぎじゃね?ctrl押しながらだと暴発する
100くらいにして使います。ありがとう

26:名無しさん@お腹いっぱい。
14/09/23 17:02:28.59 UMdKa/N90
これでだいぶ欲しい機能満たしてきたな
追加機能のネタがなくなってきた

27:名無しさん@お腹いっぱい。
14/09/23 17:54:00.28 ujSp2SWr0
何でもできるなぁというか、何でも作るなぁというか……

28:名無しさん@お腹いっぱい。
14/09/23 18:58:15.73 YExVa2E50
最初はこれでもかとAHKの機能追加するけど、
そのうち安定すると全然いじらなくなる

マシンやキーボード・マウスあたりを新調したらまた弄るかもしれんけど

29:名無しさん@お腹いっぱい。
14/09/23 19:06:11.57 uEi9XvUs0
>>28
HHKBJP買ったらAHKの補助がないと使えないレベルだったんで急遽.ahk書いたわ
それでも使えなかったが。なんだあのクソ配列

30:名無しさん@お腹いっぱい。
14/09/23 21:30:22.92 Nat2IEXu0
公開されてる関数や実用スクリプトを「これは使えそう!」とか言って導入しても、
動作テストしたっきりで結局実使用しない事多いよな・・・俺だけかw

31:名無しさん@お腹いっぱい。
14/09/23 22:29:11.35 QI1cpnFL0
>>30
公開されてるまんまは流石にないけど、カスタムしてなら使ってるな

ソースコード読んでるとこんな簡単なやり方で実現できんのかとか、こんなコマンドあったのかとか勉強になる

ホイールの慣性スクロールは無くてはならないモノになってしまった
加速じゃなくてね

32:名無しさん@お腹いっぱい。
14/09/24 07:29:22.32 h+15TBzd0
>>19
これ、ひょっとするとと思って

#If (MouseIsOver("ahk_class EVERYTHING") or MouseIsOver("ahk_class CabinetWClass")) && !getkeystate("Rbutton","P")

enter::
ControlGetFocus, editclass
If(editclass == "Edit1"){
send,{enter}
}else{
gosub,Association
}
return

*Lbutton::
If(A_Priorhotkey = A_thishotkey && A_TickCount < WClick){
gosub,Association
}
click,L,D
keywait,Lbutton
BlockInput,On
click,L,U
WClick := A_TickCount+150
BlockInput,OFF
return

#If

って書き換えたら普通にエクスプローラ上ですら独自関連付けできた

33:名無しさん@お腹いっぱい。
14/09/24 07:53:10.30 h+15TBzd0
あ、この条件だとちょっと挙動危ないな
If(editclass == "Edit1")

If RegExMatch(editclass, "^Edit\d+$") or RegExMatch(editclass, "^DirectUIHWND\d+$")
こうした方がいいかも。文章入力を求めるクラスでまで関連付けサブルーチン動いちゃ駄目だし

ControlGetFocus, editclass
Clipboard := editclass
msgbox,%editclass%
で確認できるから状況に合わせて追加していくべきかも

34:名無しさん@お腹いっぱい。
14/09/24 09:11:54.64 h+15TBzd0
あと、これで気になる点は最後だからついでに書いておくわ
サブルーチン内部の最後の行。ここは
else
{
send,{enter} ;全てに当てはまらなかったので普通にエンターを発行して起動
}

こうしたほうがいいと思う
else
If(fileEx == "") ;フォルダパス
{
 run,explorer.exe "%A_LoopField%"
}
else ;標準関連付けでそのまま起動
{
 run,%A_LoopField%
}

理由は複数行あった場合その回数だけenterを発行しちゃうから
2つのフォルダを選択してこれを行うと二回Enter入って4つフォルダが起動しちゃうってことね

それよりはそれぞれ解体したパスそのものをコマンドラインナシで起動しちゃうのが一番安全と思う

35:名無しさん@お腹いっぱい。
14/09/24 11:20:13.81 pF7jz3Dw0
どんな乗っ取りしてんのかとソースみたらかなり単純なのな
ていうかの

36:名無しさん@お腹いっぱい。
14/09/24 11:21:04.01 pF7jz3Dw0
途中で送っちゃった
ていうか乗っ取りですらなかった

37:名無しさん@お腹いっぱい。
14/09/24 13:57:09.15 cLI/kd0c0
こういった普通に便利なのならいくらでも作って使ってるのあるけど
プログラム的に凄いことまったくしてない物は晒す価値ないみたいな暗黙の遠慮あるから
なかなか出せないし出てこないよな

38:名無しさん@お腹いっぱい。
14/09/24 14:04:33.89 wxgmM4po0
まだまだ改善の余地はあると思うけど、やってることわかりやすいし、そもそもその単純な発想が賢いと思った
俺だったら変にスパゲッティになる
プログラムはやっぱり発想勝負だな

39:名無しさん@お腹いっぱい。
14/09/24 14:33:30.18 K0fLl19g0
使わせてくれるならなんでもありがたくもらいたい
技術的に俺があまり詳しくないのもあるけど、そもそも発想が乏しいからクリップボードの有効活用とか出来ないから

他人のコードは本当勉強になるからありがたいわ

40:名無しさん@お腹いっぱい。
14/09/24 17:01:54.30 gdIT+qZG0
>>37
これ機会損失だよな
何で役に立つかわかんねえのに

41:名無しさん@お腹いっぱい。
14/09/24 18:26:06.43 RC24OFDT0
ファンクションキーが24個あるキーボードって現行商品であるのん?

42:名無しさん@お腹いっぱい。
14/09/24 22:19:27.48 Q0GFm/Tj0
PostMessageについてお尋ねします。
以下はhage.ahkにサスペンドを送信しますが
サスペンドを解除するにはどうしたらよいでしょうか。
PostMessage, 0x111, 65305,,, hage.ahk - AutoHotkey ahk_class AutoHotkey

43:名無しさん@お腹いっぱい。
14/09/24 22:25:40.75 jMy3nG4c0
>>41
xkeysがキーボードに分類されるなら有るってことになるんじゃないの

44:名無しさん@お腹いっぱい。
14/09/24 22:25:52.93 h+15TBzd0
サスペンド送っちまったら手動復帰しかないんじゃない?
やったことないけどサスペンドしたら多分受付も止まりそうな予感
一回サスペンドをサブルーチン化したときちゃんと機能してくれなかったので勘で答えてみる

45:名無しさん@お腹いっぱい。
14/09/24 22:52:39.83 lsLyuOWz0
>>42
トグルなのでもう一度送信すればONになる。

>>44
デマ拡散はやめてくれ。

46:名無しさん@お腹いっぱい。
14/09/24 23:02:48.16 Q0GFm/Tj0
>>45
おお確かに出来ました!有難うございます。
それとサスペンドを送信したスクリプトのサスペンド状態を知るコマンドありますでしょうか?。
よろしくお願いします。

47:名無しさん@お腹いっぱい。
14/09/24 23:12:36.36 lsLyuOWz0
>>46
URLリンク(ahkwiki.net)

48:名無しさん@お腹いっぱい。
14/09/24 23:21:33.72 lsLyuOWz0
情報足らなかったので追加

値をOnMessageで受け取る
URLリンク(ahkwiki.net)

49:名無しさん@お腹いっぱい。
14/09/24 23:36:12.78 Q0GFm/Tj0
>>48
これは私には難しそうです。
どうも有り難うございました。

50:名無しさん@お腹いっぱい。
14/09/25 10:23:11.71 mEy0Rn1N0
超初歩的な言を聞くようですが、ググっても出てこなかったので教えて下さい

WindowspyのVisible Window Text
内部の文字列を取り出すにはどうすればいいんでしょう

エクスプローラ上でここを見ると今開いてるアドレスが表示されるんですが、これを使って処理をしたいんです

51:名無しさん@お腹いっぱい。
14/09/25 10:36:10.78 mEy0Rn1N0
すみません自己解決しました。聞き流してください

52:名無しさん@お腹いっぱい。
14/09/25 11:56:30.53 pwdySlks0
右から左に受け流す~♪

53:名無しさん@お腹いっぱい。
14/09/25 19:16:17.02 mEy0Rn1N0
ぐぬぬ
デスクトップの余白部分ダブルクリックでマイコンピュータを開くってのが地味に難しい

54:名無しさん@お腹いっぱい。
14/09/25 22:25:17.27 PVNcodU70
Process, Close, %プロセスグループ%
これは出来ませんでしょうか?

55:名無しさん@お腹いっぱい。
14/09/26 00:45:11.67 n9BxVIQz0
>>54
無くなるまで回せばいい。
Loop + WinGet + If + Break + Process

56:名無しさん@お腹いっぱい。
14/09/26 01:44:52.14 9pRGCenR0
個人的にだが、「Process, Close, …」はwincloseで終了できないプロセスに限り使う方が良いと思う。
wincloseなら>>54がしたい ahk_group 使えるみたいだからLoopで回す必要もなく、記述もシンプルになる。

57:名無しさん@お腹いっぱい。
14/09/26 02:09:53.19 n9BxVIQz0
>>56
Processのページにばっちり書いてあるから考慮してあるんじゃない?

58:名無しさん@お腹いっぱい。
14/09/26 02:40:50.65 rfMkdeRi0
WM_QUITはどうなんだろ
Process, Closeと変わらない?

59:54
14/09/26 04:08:07.13 ERPPP7460
みなさん大変申し訳ありません、GroupAddの存在を完全に忘れていました。
WinCloseでどうにかなりそうです、お騒がせしました。

60:名無しさん@お腹いっぱい。
14/09/26 23:51:58.75 ERPPP7460
msgboxのウィンドウクラスはahk_class #32770ですが
これだと他のウィンドウと重複してしまい、処理が上手くいきません。
ウィンドウタイトル以外の方法で、AHKのウィンドウだと明確に指定出来ませんでしょうか?。

61:名無しさん@お腹いっぱい。
14/09/27 00:32:42.44 qd2bT6T+0
>>60
「ahk_class #32770 ahk_exe AutoHotkey.exe」で指定。
ahk_class #32770 はダイアログのクラス。

62:名無しさん@お腹いっぱい。
14/09/27 00:47:59.24 wz9yNweh0
>>61
おおお素晴らしい!出来ました。
どうも有難うございました。

63:名無しさん@お腹いっぱい。
14/09/27 01:14:53.47 lCEmMHMT0
>>61
それだと複数ahk起動してると、どのスクリプトのmsgboxか区別できないからウィンドウタイトルも指定した方が良いんじゃ…
と思ったが、 AutoHotkey.exe をスクリプト名にリネーム(例:hoge.exe)してそれを起動すれば問題ないね。
「ahk_class #32770 ahk_exe hoge.exe」 or 「ahk_class #32770 ahk_exe c:\ahk_script\hoge.exe」

64:名無しさん@お腹いっぱい。
14/09/27 01:28:25.12 qd2bT6T+0
>>63
複数ある場合はWinGetでプロセスID(起動毎に割り当て、終了するまで固有)を取得してahk_pidで指定。

65:名無しさん@お腹いっぱい。
14/09/27 10:07:13.21 MWN87NGW0
AHKで他のプログラムを一時停止させる(プロセス優先度を最低にするのと同じ感じで)ことってできますか?

66:名無しさん@お腹いっぱい。
14/09/27 10:38:22.29 JCbBJ7Hy0
どうだろう……
プロセスを最低には出来るよ、でもサスペンドとかはどうなんだろう?

67:名無しさん@お腹いっぱい。
14/09/27 12:30:52.26 MWN87NGW0
>>66
不可能ですかね?
プロセス優先度を最低にしてもまだ重い(CPUを多く占領する)プログラムなので
一定時間キーとマウス操作をしていない時以外は停止させたいのですが

68:名無しさん@お腹いっぱい。
14/09/27 14:01:51.42 eu8qeP8j0
んー・・・regreadって機能使ってみたいけどネタが思い浮かばない
レジストリからしか入手できない値ってなんかあったっけかな

>>67
もうそこまでアレならいっそのこと一回プロセスを終了とかはできへんの?

俺はDropbox+ブラウザはネット専有しすぎて書き込み総量もすごいからブラウザ起動中はDropboxのプロセス終わらせて、ブラウザが終了したのみはからってDropbox起動っていうのやってるけども

69:名無しさん@お腹いっぱい。
14/09/27 14:06:42.29 MWN87NGW0
>>68
終了はできませんね、終了も再開も手作業しなければならない手間が多いので…
ファイアーウォールソフトなんかでは、通信しようとしてるソフトを一旦気絶させてユーザーの許可を得ようとしますよね?
そんな感じでWindowsには他のプログラムの動作を一時停止させる機能はないのでしょうかね?

70:名無しさん@お腹いっぱい。
14/09/27 14:08:49.05 eu8qeP8j0
さすがに思いつかんね。他のソフト当たるほうがいいかも

71:名無しさん@お腹いっぱい。
14/09/27 15:59:58.52 YcFvAXqt0
こんなのを見つけてやってみた。とっても便利で気に入りました
URLリンク(www.autohotkey.com)

Multiple virtual desktopsっていうやつで、上のほうにある、DesktopSwitch ってやつで
これはめちゃいいのでみなさんも是非やってみてくださいって言いたかったんだが
Alt+数字で切り替えると、ときどき、デスクトップ背景のアイコンが全部消えて見えなくなったり
Alt+0で終了すると、デスクトップ背景のアイコンが全部消えたままになったりするんだけど
AutoHotKeyってデスクトップに並べてるアイコンを消したりって出来るのですか?
このプログラム自身、とっても小さいので見てるのですが、どっかにバグがあるようには
見えないのですが、何が問題なのでしょうか
ちなみに私はWindows7です
また、消えたアイコンを復活させるWindows7のコマンドや操作ってありますか
Windows側の問題なのかな

72:名無しさん@お腹いっぱい。
14/09/27 16:42:23.43 BeXFoUnx0
>>69
FWはソフトを気絶させるんじゃなくて通信遮断してるだけじゃないの?

手作業で終了再開しなければならない手間、をどうにか自動化する方面のほうが
ahkの本領発揮だと思うが

73:名無しさん@お腹いっぱい。
14/09/27 17:02:00.15 lCEmMHMT0
>>65
「psr」っていうコマンドラインツールをahkで動かせば可能だと思うので試してみれば?
ahk使わない方法の一つとしては、Process Explorerを使うとか。

以下、別件。
>>63
自己レス。何かあんな小面倒くさいことしないで、やっぱり素直に、
「ahk_class #32770 ahk_exe AutoHotkey.exe」へ「msgboxのタイトル」を追加して、
「msgboxのタイトル ahk_class #32770 ahk_exe AutoHotkey.exe」ってすれば
msgboxの特定も問題ないだろうし、コードもシンプルに書けるような気がする。

でも、起動中の複数ahkスクリプトでmsgboxのタイトルが同じだったりすると破綻しそうだし、
msgboxのタイトルを書き換えたりすると監視するスクリプトの方も修正が必要になる面倒くささはあるけど。

>>64
自分のプロセスIDをどうやって監視用ahkに知らせるんだろう?
自分にはやり方分からないんだけど、OnMessage()とか使うんかな?
あ、クリップボードやファイルに書き出し→読み取りっていう方法もあるか?

>>60>>64のレス根本的に勘違いしてたらゴメン。

74:名無しさん@お腹いっぱい。
14/09/27 17:04:49.08 YcFvAXqt0
デスクトップからアイコンが消えたあと、デスクトップ上で右クリックして復活させる方法を見つけたので
やってみたけど、デスクトップ上で右クリックも出来なくなりました
でも、下のタスクバー上で右クリックしたら、デスクトップを表示というのがあったのでここを選択したらアイコンが
元通り表示されました。なんか焦ったわ。Atl+0でスクリプト終了させたあとずっとデスクトップのアイコン消えてたから

75:名無しさん@お腹いっぱい。
14/09/27 19:00:11.27 qd2bT6T+0
>>73 ID:lCEmMHMT0
質問の内容を無視してるのだが・・・。

「ウィンドウタイトル以外で」 AHKのダイアログを指定
「AHKで」 他のプログラムの優先度変更と一時停止


横レスのまったく違う条件の質問ということで以下回答。

通常は他のスクリプトを操作しないように「自分のPID」を指定する。
スクリプトから他のスクリプトをPIDを指定して操作する場合「対象のPID」を指定する。
値の受け渡し方はOnMessage()、外部ファイル書き出し、クリップボード監視。

76:名無しさん@お腹いっぱい。
14/09/27 20:30:08.69 qd2bT6T+0
>>69
任意のプロセスを一時停止/再開
URLリンク(www.autohotkey.com)
検索ワード:autohokey Suspend processes

77:名無しさん@お腹いっぱい。
14/09/27 21:29:00.66 shs41SRD0
>>76
む~読んだけどよくわからないっす;;
つまりこれはそういう機能がほしいという要望が既にある、という話ですかね?
それとも下の方に「それはこうやればできるよ」とやり方が書いてあるんですかね?

78:名無しさん@お腹いっぱい。
14/09/27 21:38:24.57 nZJdp6Er0
×読んだけどよくわからない
○読めないし読む努力もしたくない

79:名無しさん@お腹いっぱい。
14/09/27 21:38:25.70 JCbBJ7Hy0
>>76
試してみたが、これ危険だわ……
おとなしく終了、再起動を自動でやったほうが正確に動く

80:名無しさん@お腹いっぱい。
14/09/27 21:56:27.73 shs41SRD0
>>75 私は別にAHKだけで完遂できなくてもいいですよ 他のプログラム併用でもなんでもいいです

81:名無しさん@お腹いっぱい。
14/09/27 22:06:59.38 23Wk1MnK0
なんでもいいんなら>>73でも>>76でもいいだろ
やっぱ>>10-11は必要なんだなw

82:名無しさん@お腹いっぱい。
14/09/27 22:19:37.60 Q37fe4nD0
>>81
子供が多いスマホアプリスレだと完全に馬の耳に念仏状態だけどなそれ

83:名無しさん@お腹いっぱい。
14/09/28 09:11:26.08 moCoGGlM0
>>77
ソース読む読む能力無いのになぜ質問しようと思った
難しくて何やってるかわかりませんでした、ならともかく直リンクで辿り着けもしないとか

84:名無しさん@お腹いっぱい。
14/09/28 14:16:23.04 xi5JPEeR0
>>77
そのページのheresy さんやIce_Tea さんのレスがもっと下にスクロールできることに気づいてないんじゃない?
だからProcess_Resume(~でエラーが出るとか。
あとunicode版でインストールしてないとか。
とエスパー

85:名無しさん@お腹いっぱい。
14/09/28 14:45:33.42 AkkEqmTg0
>>76のリンク踏めば自動的にページエンドへ行く。
しかもそこにはコードサンプルが貼られているのにも関わらず、
それを確かめもしなかったから叩かれてんじゃないの?

86:名無しさん@お腹いっぱい。
14/09/28 14:55:05.71 xi5JPEeR0
>>85
いやいや、それは当然見えるけどそのレスの中にスクロールバーがあってコードにもっと続きがあることに気づいてないんじゃないの?ってこと

87:名無しさん@お腹いっぱい。
14/09/28 18:08:00.81 1+kB/N7l0
最小化していないウィンドウの数を数えるなんてできます?
たとえばブラウザ、ファイラー、メディアプレイヤーが存在してたら3と数えるとか

88:名無しさん@お腹いっぱい。
14/09/28 18:26:37.77 Rv/GylDU0
>>87
WinGetでリストと状態を取得、後は自分で考えよう。
URLリンク(ahkwiki.net)

89:名無しさん@お腹いっぱい。
14/09/28 18:46:36.27 1+kB/N7l0
あー、カウントとかリストとかコマンドあるんだ
情報有り難うございます。やってみます

90:65
14/09/29 09:49:14.53 GtFTMOJX0
>>84 >>86
すげー、ビンゴです
何もincludeもせずに耳慣れない関数が出てくるのでおかしいなと思ってました
最初から見える範囲がちょうどキリの良い空行で切れてるので気付かなかった
無事に狙ったことができました
>>76さんもありがとうございます

91:名無しさん@お腹いっぱい。
14/09/29 19:34:10.85 jgD1fp5t0
~MButton::
KeyWait, MButton, T0.5
If ErrorLevel
AltTabMenu
KeyWait, MButton

上記のような処理をしたいのですが、エラーで出来ません。
何かいい方法ありますでしょうか、よろしくお願します。

92:名無しさん@お腹いっぱい。
14/09/29 19:46:35.45 +htSO+Tj0
AltTabはあきらめた方が幸せという結論に至った
MbuttonだったらLogifcool製・Microsoft製マウスについてるユーティリティソフトの方が…

93:名無しさん@お腹いっぱい。
14/09/29 20:07:00.62 jgD1fp5t0
>>92
残念、諦めます・・。
コメント有難うございました。

94:名無しさん@お腹いっぱい。
14/09/29 20:12:21.65 bj/ecbDP0
>>93
自前でSendすればいいだけ
Alt + Ctrl + Tag (Vista以降)

95:名無しさん@お腹いっぱい。
14/09/29 20:17:02.42 jgD1fp5t0
>>94
有難うございます。
あっさり出来ました。

96:名無しさん@お腹いっぱい。
14/09/29 20:21:58.67 VgLnZsQB0
MGLではこういう感じでタスク切り替えできる

MB_WD_
MG_Abort()
if(!MG_Hold()){
Send,{Lwin Down}{Tab}
wintab:=1
}else{
Send,{Lwin Up}
wintab:=0
}

あとalttabで出てくるタスクメニューのclassはTaskSwitcherWnd

97:名無しさん@お腹いっぱい。
14/09/29 20:37:17.56 bj/ecbDP0
>>96
それAeroフリップ3D・・・。

98:名無しさん@お腹いっぱい。
14/09/29 21:51:33.52 j+LkBhr90
>>96
うん、まぁ、これも便利は便利よな

99:名無しさん@お腹いっぱい。
14/09/29 21:54:55.68 t+3LdmQR0
送るキーくらい自分で置き換えられるだろ

100:名無しさん@お腹いっぱい。
14/09/30 02:38:02.91 QrCMvsbv0
横から失礼

Autohotkey-Scripts/Affinity.ahk at master ・ dufferzafar/Autohotkey-Scripts ・ GitHub
URLリンク(github.com)

↑にあるアフィニティマスク設定のスクリプト(?)が何の動作もしないんですが
どういう原因が考えられますか?
例)

Affinity_Set(1,notepad.exe)

としてタスクマネージャーで関係を見ても使用コアが変化しません
CPUは4コア8スレッドです
AHK使い始めたばかりの初心者なので基本的なところを勘違いしているかもしれませんがよろしくお願いします

101:名無しさん@お腹いっぱい。
14/09/30 02:42:49.46 SeJUcLB30
それ以前にMGLはスレチ

102:名無しさん@お腹いっぱい。
14/09/30 04:10:39.76 SeJUcLB30
>>100
関数の引数()の中は式になるので文字列は””で囲う。 hoge( 123, "文字列", 変数 )
URLリンク(ahkwiki.net)

そもそも第二引数はプロセスID。

Process, Exist, notepad.exe
PID := ErrorLevel
Affinity_Set(1, PID)

; Affinity_Set( CPU=1, PID=0x0 ) ....
; CPU: CPU0=1 CPU1=2 CPU2=4 CPU3=8 ... 数の和を指定
; PID: プロセスID 省略時はスクリプト自身

103:名無しさん@お腹いっぱい。
14/09/30 15:25:37.51 12x17Na20
7日前の日付をフォルダ名にしたいんですがなんでコレ動いてくれないんでしょう

foldername:=A_now
foldername-=7,D

7日引いたらエラーが出ます。試しに+にしたらエラーが出ません

104:名無しさん@お腹いっぱい。
14/09/30 16:13:51.34 V+44fyZJ0
foldername += -7,D

105:名無しさん@お腹いっぱい。
14/09/30 17:46:50.26 6NIyJkr90
へーそんな機能があったのか
-=の場合は EnvSub を参照するといいみたいだぞ >>103

106:名無しさん@お腹いっぱい。
14/09/30 17:48:29.38 6NIyJkr90
-=の場合は → -=についての詳細は

107:名無しさん@お腹いっぱい。
14/09/30 18:18:33.16 QrCMvsbv0
>>102
サンクス
無事に使えました。
もう一つよく飲み込めてないけど沢山サンプルに接するうちに理解していけるといいなぁ…という心境です

108:名無しさん@お腹いっぱい。
14/10/01 12:11:12.93 x4VaPOtB0
>>104
出来ました出来ました
ありがとうございます

109:名無しさん@お腹いっぱい。
14/10/01 13:31:27.55 x4VaPOtB0
AHKは配列ないっぽい?
loop,Parseで回す他にいい方法ないかしら

110:名無しさん@お腹いっぱい。
14/10/01 14:33:01.00 m5XVznIk0
アルヨー

でも総当り処理だったら行数あんまり変わんねー気もする

111:名無しさん@お腹いっぱい。
14/10/01 14:41:41.20 NC4Qan6e0
object

112:名無しさん@お腹いっぱい。
14/10/01 17:13:16.66 m5XVznIk0
デスクトップにあるファイルの自動振り分け機能作ってるけどもうちょっとメンテナンスしやすくしたいんですがなんかいいアイディアないですかね?
これでも動くんですが、具体的にはftypeで書いてるのにIf連続地帯でフォルダ名二回目書かなきゃいけないのが地味にめんどくさいという

ftype = 画像 アーカイブス 動画 音楽 メモ Flash ;デスクトップにある振り分け先フォルダ名
loop,Parse,ftype,%A_space%
{
IfExist,%A_desktop%\%A_loopField%
{
foldergenre := A_loopField ;振り分け先フォルダを決定

If(foldergenre == "画像") ;フォルダの名前を調べて拡張子を入れるものを決める
Extype = *.jpg *.jpeg *.png *.bmp *.gif
else If(foldergenre == "アーカイブス")
Extype = *.zip *.rar *.exe *.cab *.7z *.iso *.img *.pdf *.lzh *.ipa
else if(foldergenre == "動画")
Extype = *.flv *.mp4 *.wmv *.avi *.3gp *.mkv
else if(foldergenre == "音楽")
Extype = *.mp3
else if(foldergenre == "メモ")
Extype = *.txt *.ahk
else if(foldergenre == "Flash")
Extype = *.swf

loop,Parse,Extype,%A_space%
{
FileMove,%A_desktop%\%A_loopField%,%A_desktop%\%foldergenre%,1  ;振り分ける
}
}
}

113:名無しさん@お腹いっぱい。
14/10/01 17:41:50.84 O8eRmxL00
>>112
なんで配列にしないでスペース区切りの文字列にしてるのか知らないけども
仮想配列と配列を使えばいいんでないの?

配列周りを勉強しなさいっていう神のお告げだ

114:名無しさん@お腹いっぱい。
14/10/01 18:18:18.72 ycG21aDl0
やってることは完全に同じだがA_indexで見ても良いんじゃね?
まあ、そんだけ出来るなら配列の概念もすぐわかるさ
まんま配列処理だし

115:名無しさん@お腹いっぱい。
14/10/01 18:38:29.60 m5XVznIk0
アイディアありがとござます!
連想配列にすると今度は関連付けで長ったらしくなりそうだったので控えてたんですが、今テストしてみたら

AssociativeArray := {Color: "Green"
,Size: "Large"
,Price:"10,000"
,Stock: "True"}

こんなかんじで縦に書いても認識するんですね、知りませんでした
連想配列で行きます

116:名無しさん@お腹いっぱい。
14/10/01 18:54:36.31 CvxdwXKW0
こうかな あんま動作確認してないから試すときはテストフォルダでやってね

Okataduke(A_Desktop)
Return

Okataduke(dir, force = 0){
Static ftype := {画像: ["jpg", "jpeg", "png", "bmp", "gif"]
, アーカイブス: ["zip", "rar", "exe", "cab", "7z", "iso", "img", "pdf", "lzh", "ipa"]
, 動画: ["flv", "mp4", "wmv", "avi", "3gp", "mkv"]
, 音楽: ["mp3"]
, メモ: ["txt", "ahk"]
, Flash: ["swf"]}
tDir := A_WorkingDir
SetWorkingDir, % dir
For k, v in ftype {
If (!FileExist(k := Chr(0x30A8) Chr(0x30ED) k))
FileCreateDir, % k
Loop % v.MaxIndex()
FileMove, % "*." v[A_Index], % k "\*." v[A_Index], % (force != 0)
}
SetWorkingDir, % tDir
}

117:名無しさん@お腹いっぱい。
14/10/01 21:19:38.97 V8yOKcSw0
A_TimeIdleが、30秒まで数えると0に戻っちゃうみたいなんですが
この状況でそれ以上数えるにはどうしたらいいですかね?

118:名無しさん@お腹いっぱい。
14/10/01 21:44:40.83 nD/Yt8j00
>>117
・A_TimeIdle
最後に何らかの入力があってからの経過時間をミリ秒で格納。(NT系専用)
PCが放置されているときにアクションを起こすのに使える。
何らかのプログラムが生成した入力イベントでもリセットされてしまう。
・A_TimeIdlePhysical
A_TimeIdleと同じだが、キーボードHookやマウスHookが使用されていると、プログラムが発生させた入力イベントを無視できる。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch