暇つぶし2chat SOFTWARE
- 暇つぶし2ch2:0.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製、クロスプラットフォーム) http://www.ironahk.net/ AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生) http://www.autohotkey.com/board/topic/39588-autohotkeydll/



3:名無しさん@お腹いっぱい。
15/01/28 15:44:21.94 /POZTSd60
■重要事項
オリジナルである、旧 "AutoHotKey" の開発は2009年9月で終了している。
現在は、そこからフォークした "AutoHotkey_L" が主流となり、2014年1月からは後のLが取れ
正式にAutohotkeyとして扱われるようになりました。
よって古いスクリプト(主にDllCall()を利用しているスクリプト)は最新Verで動作しないものがあり、
その場合はスクリプトの修正が必用です。

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

※新規利用者には最新版を推奨しますが、旧AHK(2009年9月までのVer)の利用者は新AHKへの移行に際して
少なからず改修が必要となります。特に、旧流行らせるページの配布物(MouseGesture等)の多くは
そのままでは動作しません。安定利用できている環境を崩して移行するかどうかは各人の判断による。
MouseGestureについては有志の方が最新AHK対応版(MouseGestureL.ahk)を配布しているのでそれを
利用するのもありです。
URLリンク(hp.vector.co.jp)
URLリンク(code.google.com)

※ACC.ahkとCOM.ahkはフォーラムのリンク先にファイルが存在しませんので下記から入手してください。
 URLリンク(ux.getuploader.com)

■質問に際して
OSの種類(XP/Vista/7)や32/64ビット版の違い、利用するAutoHotkeyのバージョンを明記すること。
また、操作したいソフト・やりたい処理などは具体的に書いた方がレスが付きやすい傾向にある。

2chの仕様の関係で、このスレではインデントに全角スペースを使ってコードを貼り付ける事があるので、
レスをコピペして利用する場合は行頭の全角スペースをタブ等に置換してから利用すること。

4:名無しさん@お腹いっぱい。
15/01/28 15:44:58.81 /POZTSd60
■過去スレ
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)

以下FAQ等

■実行環境
Q1:スクリプトに書いた日本語が文字化けしちゃうんだけど...
A1:スクリプトファイルを「UTF-8」の「BOM」付きで保存する。(AHKLの場合)

Q2:初めて使うけどどれを使えばいいの?
A2:AHKLのユニコード版を推奨。
  旧流行らせるページの配布物をそのまま使う場合は本家をそのまま利用する事。
  64ビットOSでAHKL32ビット版の使用は制約が多いので、64ビット版を強く推奨。

5:名無しさん@お腹いっぱい。
15/01/28 15:45:32.13 /POZTSd60
■ リマップ・ホットキー割り当て

Q1:[CapsLock(英数)][ひらがな][全角/半角]キーの割り当てがうまくいかないよ
A1:OSのローカライズ段階で発生してる問題なので日本語環境だとLock系キーの動作は不定。
  OS側がキーUp/Down情報を正しく返してこないのでAHKのみで対処は無理です。
  レジストリ変更等で別キーへ再配置を行い、AHKで割り当てを行うという二段構えが必要。
 
 例) ChangeKeyを使って[ひらがな]を[F13]にする
  AutoHotkeyで任意のキーをF13にリマップする(例えばF12をF13にリマップし、スクリプトを実行)。
   F12::F13
  Changekeyを起動する。( URLリンク(www.forest.impress.co.jp) )
  「調査」→「どのキーなのか?またはスキャンコードでキーを変更します」を選択。
  F12を押すとスキャンコード(0x0064はF13)が表示されるので覚えておき「終了」をクリック。
  「ひらがな」キーをクリックすると「【ひらがな】キーをどのキーに変更しますか?」という
  ウィンドウが表示されるので右上の「Scan code」をクリック。
  覚えておいたスキャンコード(0064)を入力し、「OK」ボタンをクリック。
  「登録」をクリックし、Windowsを再起動する。

Q2:「^1::Esc」とリマップ定義したけど [Ctrl]+[1] を押したらスタートメニューが出ちゃうけどどうすればいいの?
A2:リマップは修飾キー(Ctrl,Shift,Alt,Win)の押下状態を引き継いでキー発行するので、[Ctrl]+[Esc] がキー送信されるため。
  これを避けるには、「Send」コマンドを利用して明示的に修飾キーなしのキーを発行をすればよい。
   ^1::Send, {Esc}

Q3:[Shift], [Ctrl], [Alt], [Win]以外を修飾キーとしてキー割り当てしたいよ
A3:コンビネーションキーの機能で実現ができる。
 例) 無変換 + IKJLキーをそれぞれ「↑↓←→」に割り当てたい場合は以下のように記述する。
   sc07B & I::Send, {Blind}{Up}
   sc07B & K::Send, {Blind}{Down}
   sc07B & J::Send, {Blind}{Left}
   sc07B & L::Send, {Blind}{Right}

6:名無しさん@お腹いっぱい。
15/01/28 15:46:53.52 /POZTSd60
Q4:「XX hotkeys have been received in the last XXXXms.」って怒られるんだけど、、、(XXは環境による)
A4:多分自分自身のキーを送って無限ループになっている。 例) 「a::Send, a 」
  先頭に $ を付ければ回避できる(NT系のみ)。 例) 「$a::Send, a」

  #UseHookで全部にキーボードフックを適応する方法でも可。

Q5:キーリマップを使うとキー押下中に連打するけど、マウスボタンの場合は連打しない…
A5:マウスはキーリピートしないので、Loopなどを使って自前でリピートさせてください。

Q6:ジョイスティックのリマップがうまくいきません!!助けて
A6:ジョイスティックではリマップできない。「Send」コマンドでキー発行する必要がある。
   × Joy1::Esc
   ○ Joy1::Send, {Esc}

Q7:ジョイスティックの上下左右に割り当てたいけど、JoyLeft,JoyUpってホットキーは無いの?
A7:無い。AHKのジョイスティックサポートはかなり貧弱なのでプログラマブルにやる必要がある。

Q8:ジョイスティックのボタン1とボタン2の入れ替えなどはどうやってやるの?
A8:AutoHotkeyではできない。

7:名無しさん@お腹いっぱい。
15/01/28 15:47:31.55 /POZTSd60
Q9:[Ctrl][Shift][Alt]が押されっぱなしになる時がある。これってAHKのせい?
A9:AHKが原因の場合とそうでないときがある
 ○AHKが原因の場合
  AHKには、以下のような修飾キー付きのホットキーで修飾キー無しでキーを発効する場合、
  一時的に修飾キー押下を解除して、発効後に押下状態を再度設定する機構がある。
  しかしこのように発効するキーストロークが多い場合は、Sendコマンドが完了する前に
  物理キーが押下解除されてしまっている場合がある。この齟齬が押しっぱなしの原因となる。
   例) ^W::Send, {w 30}
  これを回避するためには、以下の方法をとればよい:
   ・キー押下状態を常に監視するキーボードフックを導入する(#InstallKeybdHook)
   ・キー発効のコマンドを SendInput, SendPlay にする(SendModeで一括指定でもよい)
   ・上記二つが出来ない場合は、SetKeyDelay, 0 等としてキー発効をなるべく早く行うか、
     #HotkeyModifierTimeout で修飾キー押下のタイムアウト値を長めに設定をする。
  なお、他のキー発効を行うツール(クリップボードユーティリティやマウスジェスチャツールなど)が、
  発効する修飾キーが原因となる場合もあるが、フックの導入でほぼ解決出来ると思われる。
 ○AHK以外が原因の場合:
  環境により異なるので何とも言えないが、以下のような環境の場合発生する事が報告されている。
  ・ Logicool(Logitec)のマウスユーティリティSetPoint(verによっては問題ない事もあるとか)
  ・VirtualPC, WMWare, 窓使いの憂鬱 等のキーボードフィルタドライバを用いるアプリケーションを使っている

8:名無しさん@お腹いっぱい。
15/01/28 15:48:07.29 /POZTSd60
■ IME関連
Q1:IMEのOn/Offの切り替えや、状態を得るにはどうすればいいの?
A1:URLリンク(www6.atwiki.jp) の「IME.ahk」を使いましょう。

Q2:IMEが現在文字を入力している、または変換中であるかどうかを得ることはできる?
A2:↑のIME.ahkで一部可能(IEやFirefox,MS-Wordのようにインライン化しているアプリでは無理)

■ その他
Q1:「a=abc」と「a:="abc"」って違いがある? / 「If a=1」と「If (a=1)」って違いがある?
A1:意味としては違いは無い。単体では、コマンド形式(共に前者)の方が「式」形式(同後者)より*少し*速い。
  複数条件の場合、IfのネストよりはAND(&&)条件で「式」を並べた方が速い。
  が、バッチでかなりの回数(数万↑~)回したりする場合以外は、体感出来るほどの差はない。

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

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

Q4:AHKってマルチスレッドじゃないの?
  タイマーやMsgBox, WinWait, KeyWaitを使ってるけど思った通りに動かない。
A4:「擬似マルチスレッド」です。最後に割り込んだスレッドが終わるまで元スレッドは動きません。
 MsgBox、WinWait、KeyWait、Process,WaitClose などをタイマーで複数動かす時は注意。
  > 要は処理系統が複数同時に走らないってこと。図にするとこんな感じ。
  > → 実行中、 …:割り込み終了待ち
  > 元スレッド   →→→→→→……………………………………→→→→
  >                  ★割込                ↑再開
  > 割り込みスレ          →→→→…………→→→→→→END
  >                        ◆割込 ↑再開
  > 更に割り込み                →→→END

9:名無しさん@お腹いっぱい。
15/01/28 15:50:43.70 /POZTSd60
Q5:AHK、AHKLx86、AHKLx64の共存は出来る?
A5:それぞれを違うフォルダ(ディレクトリ)にインストールすれば共存できます。
  但し、インストーラーを使って最後にインストールしたAutohotkey(Normal or x86 or x64)
  に対してahkファイルの関連付けが行われますので、レジストリエディタ(Regedit.exe)や
  FileTypesMan等のツールを使って関連付を変更してください。
  ahkファイルをAHK Normal、ahlファイルをAHKLx86、ah6ファイルをAHKLx64といったように
  別々の拡張子に関連付けが可能です。
  それぞれに関連付けしたファイルに対してドラッグアンドドロップを有効にするにはレジストリの
  [HKEY_CLASSES_ROOT\ファイルタイプの名前\ShellEx\DropHandler]
  の (規定) のデータを {86C86720-42A0-1069-A2E8-08002B30309D} にする。

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」に変更。

10:名無しさん@お腹いっぱい。
15/01/28 15:51:41.08 /POZTSd60
■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)

11:名無しさん@お腹いっぱい。
15/01/28 15:52:16.58 /POZTSd60
■派生版
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)

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

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

12:名無しさん@お腹いっぱい。
15/01/28 18:08:13.16 /+bq3MWi0
● 分からない理由 ●
1. 過去ログを読まない。
2. 読んでても肝心な所が見えてない。
3. 検索能力が低い。
4. そもそも検索する気がない。
5. 類推という概念がない。
6. それ以前に普通に頭が悪い。

<わからない11大理由>
1.読まない …現行スレ、テンプレ、取説などを読まない。読む気などさらさらない。
2.調べない …過去スレ、ググるなど最低限の内容も自分で調べようとしない。
3.試さない …めんどくさいなどの理由で実行しない。する気もない。
4.覚えない …人から聞いて、楽して得た答えは身に付かないから、すぐに忘れる。
5.説明できない …何に困っているのか、第三者に正確に伝わる文章が書けない。
6.理解力が足りない …理解力以前の問題で理解しようとしない。
7.人を利用することしか頭にない …甘え根性でその場を乗り切ろうとする。
8.感謝しない …教えてもらって当たり前。事がすんだらさようなら。
9.逆切れする …自分の思うようにならないと逆切れする。
10.開き直る …自分の思うようにならないと開き直る。
11.2ちゃんねるをお客様相談室だと思っている。

13:名無しさん@お腹いっぱい。
15/01/28 18:08:41.51 /+bq3MWi0
★教えて君五大要素★

1 読まない             (文盲)
2 調べない             (能なし)
3 試さない              (発想力欠如のアホ)
4 理解力が足りない        (馬鹿)
5 人を利用するこ


14:xだけならまだしも、何度も繰り返している。 これまでに、このスレではこの手の質問者は居なかったと記憶する。 いつまでもこんなクズにつきあう必要はない。 汎用性のないコードでスレが汚されるのは、結果的に良質な情報が 埋もれる原因になって迷惑だし、横から見ていても参考にならないし、 なによりも見ていて不快でしかない。



15:名無しさん@お腹いっぱい。
15/01/28 18:09:09.25 /+bq3MWi0
スレをひと通り読めば分かると思うんだが、
「○○という処理をするにはどういうコードを書いたらできますか?」 ではダメなんだよ

「○○という処理をすることを目的に、このようなスクリプトを組みましたがうまく動きません
どこを修正すればいいですか?」 という聞き方にしてみればいいじゃん
もっと言えば、「動かない」だけではなく、「××といった想定外の動作になります」ならベター

スクリプトをロクに書かずに答を教えてくれ、では単なるクレクレとみなされるということ
なぜそれが嫌がられるかと言えば、自分で学ぼうとも調べようともせずに、またクレクレするだろうと
思われるからさ

16:名無しさん@お腹いっぱい。
15/01/28 20:29:16.25 X/kNxoKN0
テキストファイル操作の内、ファイルの中身を消して新規書き込みをしたいんですが、
FileAppendで最初の引数を空にして書き込んでから、
さらに同じファイルに対してもう一度FileAppendして上書き、
っていう手順踏まなきゃだめなんですか?

一発で、ファイルの中身を消す→新規書き込み、をしたいんですが
何か方法ありますか

17:名無しさん@お腹いっぱい。
15/01/28 21:01:06.60 Pp0/wm8q0
>>14
FileOpen()のWrite使えばええやん?

18:名無しさん@お腹いっぱい。
15/01/28 21:21:36.88 X/kNxoKN0
>>15
なるほど、って思って使ってみたんですが、
何かファイルの中身がなくなるだけで書き込みの方ができません
なんか使い方勘違いしてますか?

file := FileOpen("C:\Hour.txt" , "w")
file.Write(%A_Hour%)

19:名無しさん@お腹いっぱい。
15/01/28 21:34:02.84 Pp0/wm8q0
>>16
最後にfile.Close()

20:名無しさん@お腹いっぱい。
15/01/28 21:35:06.70 nOerFSIe0
%A_Hour%→A_Hour

21:名無しさん@お腹いっぱい。
15/01/28 21:40:43.96 X/kNxoKN0
>>17
>>18
できました!ありがと3です

22:名無しさん@お腹いっぱい。
15/01/29 20:12:22.89 fr5eZeEy0
なかなか埋まらなかった前スレが、ネタレスのお陰でやっと埋まったようだなw

23:名無しさん@お腹いっぱい。
15/01/29 21:22:56.97 WtZquUFY0
AHKってマウスボタンの4個目以降はホットキーとして使えないであってあるよね?
今まで本家にそういう要望はなかったんだろうか・・・カスタムしたい

24:名無しさん@お腹いっぱい。
15/01/29 21:38:06.85 mH9Fj39D0
>>21
OSがサポートしているのがXButton2まで
サイドボタン3個目以降はマウス側でF13等に割り当ててからホットキーにする

25:名無しさん@お腹いっぱい。
15/01/29 22:00:30.37 WtZquUFY0
>>22 了解、ありがとう助かった

26:前スレ994
15/01/29 22:52:24.16 bBH6jDc40
終わり間際の前スレで質問してしまった…
995(アンカー付けるとこのスレのその番号に迷惑かけるのでアンカーは無しで)
どっちも検索で見付かった、キーに最大化を割り当てるやり方とかで、キーを押すんじゃなく起動したソフトは全部最大化させたいのでキーや元の大きさに戻すとかの部分は消してみたのがあれでして…
996
まとめてというか、別々で全部と言えば良いでしょうか
はい、よくわかってないので何がなにやら
997
それは…きっと何かが起きるのでは無いでしょうか…(笑)

27:名無しさん@お腹いっぱい。
15/01/29 23:22:55.53 fr5eZeEy0
>>24
悪いことは言わないから、「Maximize Assistant」という常駐ソフト使った方が良いよ。
ウインドウ(ソフト)一つに付き一つずつ設定していくか、設定次第では一つ設定するだけで全てのウインドウに適用できるかも知れない。

28:名無しさん@お腹いっぱい。
15/01/30 00:52:30.78 FiR08TSa0
前スレ終了の流れ
とりあえず厚顔無恥なクソやろう共と単純にわかってなくて支離滅裂になってる子を
同列にくさすのはやめようや

>>24
コピペはる前にコマンド説明くらいは読もう、で段階踏んで実行してみる

まずはアクティブウィンドウズでwinMaxmizeできるようになる
そしたらWinGet,outputver,list ですべてのウィンドウのIDリスト取得して
ループでぐるぐる回して一個ずつWinMaxmize
URLリンク(ahkwiki.net)
URLリンク(ahkwiki.net)

まあ>25の言うとおりアプリで何とかできるならそのほうがいいかもね

29:名無しさん@お腹いっぱい。
15/01/30 06:50:20.24 26CQmxX20
普通の権限で起動したAHKから管理者権限で起動するにはRun,*RunAsを使えば良いですが、管理者権限で起動したAHKから普通の権限で起動させるには、MouseGestureLのようにRunAsでユーザー名とパスワードを使わなければならないんでしょうか

30:名無しさん@お腹いっぱい。
15/01/30 08:00:26.46 jZoxhTfl0
>>24
前スレで「起動したソフト全てを常時最大化したく」って書いてたけど最小化を無効化したいってこと?
そうすると>>26に加えてタイマーで監視する必要もある

>>27
逆に聞くけど、それ以外にどんな方法(機能)を望んでいるんだw

31:名無しさん@お腹いっぱい。
15/01/30 14:48:47.46 FkIw8rOi0
>>28
昇格させたウィンドウで使えなくなるので管理者権限にしたいのですが、スクリプトを共有してるのでそういう情報は書き込みたくないなと
起動毎に環境変数に入力しかないかなあ

32:名無しさん@お腹いっぱい。
15/01/30 15:53:31.32 NIBcyWF10
質問です。半角全角をEscにしてカタカナひらがなをEscにする設定を教えてください。
以下のコードでは片方ずつなら設定されますが両方同時には設定できませんでした。

#SingleInstance force
#InstallKeybdHook
#InputLevel 1
SendMode Input
SetKeyDelay, -1
SetMouseDelay, -1
SetBatchLines, -1

#UseHook On

*sc029::Esc
*sc070::sc029

#UseHook Off

33:名無しさん@お腹いっぱい。
15/01/30 17:09:47.11 qoVrIGAM0
>>27 >>29
>管理者権限で起動したAHKから普通の権限で起動させるには
>昇格させたウィンドウで使えなくなるので管理者権限にしたい

管理者権限のある人だけ常に管理者として実行するってことか?
Autohotkey.exe→互換性→特権レベル にチェック

>>30
フックを使うとAHKが発行したキーイベントではホットキーは反応しない

#UseHook
*sc029::
*sc070::Esc

34:名無しさん@お腹いっぱい。
15/01/30 17:25:29.85 WEbmw/5q0
>>31
以下のようにコメントアウトしてインプットレベルをデフォルトに戻すと動作するようになりました
ありがとうございました

;#InputLevel 1

35:24
15/01/30 19:54:10.13 bICDVRkA0
レスありがとうございます。
>>25
以前最大化専用ソフトを検索してvectorだったかで数個入れたのはwin8に対応していなくて使えず、他のソフトを使わずAHKで出来るならベストだなと思ったので。
>>26
書いてあったページ他で説明は読んだのですがこれにはこれが必要とかこれはこうする為にあるとか、詳しく、はっきりと書かれてる所が無くて不要部分を削ってみたり - にしてみたりしました。
貼って頂いた上のページは読んでいたのですが、簡素過ぎて初心者には全然分かりませんでした。
下のwingetの方は詳しく書いてますね。
逆に難解ですがコマンドの意味などがわかるのでよく読んでみます。
アプリでなんとか出来るならその方が良いってレベルの難しい事なんですか?
AHKの得意分野かと思って(特定のアクションが起きたら指定した事をやらせる)実現しやすい事だと思っていました。
書いて頂いた事をコードにしてやってみます(ループなんかは全く使い方理解出来て無くて一生ループしそうで怖いのですが)。
ありがとうございました。
>>28
起動後って事ですよね。
いえ、起動時に最大化だけしてくれれば一応それで充分です。
紛らわしい書き方してすみません。

36:名無しさん@お腹いっぱい。
15/01/30 20:37:22.97 FiR08TSa0
いや、AHKの得意分野だし実現しやすい内容だよ
ただ君がそこにたどり着ける気がしないだけで

とりあえずここで長文全レスしてても事態は進展しないので
リファレンスのイントロダクションからその他解説まで順に読め
URLリンク(ahkwiki.net)

37:24
15/01/30 23:41:55.74 bICDVRkA0
>>34
やっぱりそうなんですね。
土日で読んでみます。
何度もありがとうございました。

38:名無しさん@お腹いっぱい。
15/01/31 07:57:23.98 iw/y08fB0
>>31
・管理者権限で起動したウィンドウにフォーカス当たってるとAHKが効かない
→AHKを管理者で起動すれば効くらしい
→AHKを昇格させるとRunで起動するソフトも管理者に
→MGLで対策用の関数があったがRunAs使うためユーザー名とパスワードが必要
⇒ユーザー名とパスワードを入力しない方法があったりしないかな

知りたかったのは管理者として実行しない方法なのでAHKを管理者として実行する方法ではないです

39:名無しさん@お腹いっぱい。
15/01/31 08:53:02.18 gTibSzyx0
試せる環境ないので実現可能なのかわからないけど
AHKコマンドでRunAs実行じゃなく、RunAs.exeを一般ユーザ権限オプションで実行するのは?

Run, RunAs.exe /trustlevel:0x20000 ~

URLリンク(www.k-tanaka.net)

40:名無しさん@お腹いっぱい。
15/01/31 10:43:58.59 u0ve/ASt0
>>33
URLリンク(ahkwiki.net)
最大化して起動したいだけならこんなコマンドもあるぞ

41:名無しさん@お腹いっぱい。
15/01/31 13:02:34.52 iw/y08fB0
>>37
ありがとうございます、やってみました
cmdを起動させたら「管理者: cmd (○○\○○として制限された特権で実行中)」とタイトルに出ました
どうやら少し違うようです

42:名無しさん@お腹いっぱい。
15/01/31 19:06:40.39 uuQmSKf30
URLリンク(lukewarm.s101.xrea.com)
thumbremapの64bit化に挑戦しています

TP_DW=0x01000000
NumPut(TP_DW | 10 ,ibuf+4*0) ; TP_DeviceHandle,
NumPut(TP_DW | 729 ,ibuf+4*1) ; TP_PacketFingerInfo,
(中略)
DllCall("DeviceIoControl",UInt,hDev,UInt,0x80006004,UInt,ibuf,UInt,ilen,UInt,obuf,UInt,olen,UIntP,bytes,UInt,0)

この
0x01000000 | 729や 0x80006004という値はどうやって得られたものなのでしょうか?

43:名無しさん@お腹いっぱい。
15/01/31 23:35:01.26 3bXCUNEB0
彼が書いたはコメント少な目な最小コードなので、
API仕様読むとか、ヘッダファイル見るとか色々しないと分からない。
特にビットORで合算したものは難儀だね

44:名無しさん@お腹いっぱい。
15/02/03 18:27:29.87 iECdrNEu0
URLDownloadToFileを使用するときにURLエンコードをしたいのですが、AutoHotKeyでは用意されていないので他のバッチコマンドなどを使用しなくてはいけないのでしょうか?

45:名無しさん@お腹いっぱい。
15/02/03 19:51:33.78 Vc7kHo7G0
>>42
URIエンコード・デコード関数
URLリンク(www.autohotkey.com)

46:名無しさん@お腹いっぱい。
15/02/04 15:25:45.79 +gTLM4Q40
altダブルクリックのホットキー登録ができれば教えていただけないでしょうか?
その際、他のalt組み合わせのホットキーに影響が内容にしたいです。

47:名無しさん@お腹いっぱい。
15/02/04 15:37:43.24 b+uyoQlk0
下記の2次元の配列を作っています
DIM_1_1, DIM_5_6など。たとえば、DIM_%x%_%y%など
これらは、一般的な表記、DIM(x,y)に対応するようにしているのですが、可変長にしており
DIM_10_5までかもしれないし、DIM_5_20までかもしれません
また、DIM_10_5には代入していてもDIM_5_5には代入していないかもしれません
で、途中でこれらの配列の中身をすべてクリアしたいのです
一般的にはFORループを使って全部の要素を回るのでしょうが、AHKの場合単純に出来る方法ってありませんか
AHKでは多分、データ領域に使用している変数名とか保管しているのだと思うのですが
例えば、DIM_から始まる変数を一斉削除とか
x、yのMAXを憶えておいてループで回るしか方法はないのでしょうか

48:名無しさん@お腹いっぱい。
15/02/04 18:40:22.63 UWZMQSET0
>>45
変数ではなく配列・オブジェクトを使用する

DIM := Array()
; DIM := []
MsgBox % DIM[1, 1] := "a"
MsgBox % DIM[1, 2] := "b"
MsgBox % DIM[5, 1] := "c"
MsgBox % DIM[5, 2] := "d"

DIM := Array() ; 空にする
; DIM := []
MsgBox % DIM[1, 1]
MsgBox % DIM[1, 2]
MsgBox % DIM[5, 1]
MsgBox % DIM[5, 2]
Return

49:名無しさん@お腹いっぱい。
15/02/04 19:25:47.48 b+uyoQlk0
>>46
ありがとうございました。それを使えば簡単にできたのですね
それは使ったことがなかったので、これを機に使ってみようと思います

50:名無しさん@お腹いっぱい。
15/02/04 19:35:51.80 VOPHjqx/0

質問者じゃないけど、
DIM := Array() と DIM := Object()
の違いが分からないので教えてつかぁさい。

「Array()」の説明が何処に書いてありますか?
「ComObjArray()」の説明なら見つかったんですが・・・

51:名無しさん@お腹いっぱい。
15/02/04 19:38:06.18 VOPHjqx/0
>>48
吸いません。
>>48>>46へのレスです。

52:名無しさん@お腹いっぱい。
15/02/04 19:49:05.98 6e7nMhHj0
>>48
URLリンク(ahkscript.org)

53:名無しさん@お腹いっぱい。
15/02/04 20:17:19.44 VOPHjqx/0
>>50
解説ページありがとうございます。
日本語じゃないのが辛いとこですが、じっくり読んでみます。

54:名無しさん@お腹いっぱい。
15/02/04 20:23:12.28 UWZMQSET0
>>48
どちらもオブジェクト扱いで
配列:インデックスでアクセス
連想配列:文字列をキーにしてアクセス

空のオブジェクト宣言する場合は Array() と Object() どちらでも同じだが
割り当てを同時にする場合や Array := [Item1, Item2, ..., ItemN]
誤読をさける為にも空であっても使い分けたほうがいい

URLリンク(ahkscript.org)

55:名無しさん@お腹いっぱい。
15/02/04 22:21:58.91 VOPHjqx/0
>>52
レスありがとうございます。
う~ん、使い分けするの難しそう・・・寝ます。

56:名無しさん@お腹いっぱい。
15/02/05 13:14:04.85 Swi5zNAI0
関数内から呼び出した関数に変数を渡すにはどうすればいいのでしょうか?

SetX(){
global trigger = A_Thi


57:sHotKey } !a:: SetX() gosub msgtest return msgtest: msgbox,%Trigger% return のようにGosubを使えばよいというのは分かったのですが !a:: SetX() msgtest() return msgtest(){ msgbox,%Trigger% } return このような場合msgtest()に%Trigger%を渡すにはどうすればいいのかが分かりません



58:名無しさん@お腹いっぱい。
15/02/05 13:55:23.76 FjihlSDJ0
msgtest(){
global Trigger
msgbox,%Trigger%
}

59:名無しさん@お腹いっぱい。
15/02/05 14:07:05.56 Lyo+BX4h0
>>41
ヘッダファイル見なおしたら読解が少し進みました
ありがとうございました

60:名無しさん@お腹いっぱい。
15/02/05 14:09:14.80 Swi5zNAI0
>>55
ああ、なるほど・・・
globalってそういうふうに使うんですね
よく分かりました。ありがとうございます

61:名無しさん@お腹いっぱい。
15/02/05 14:53:23.38 QwBMHot70
DllCallのCreateFileが上手く動きません。
どこでもいいので空のtxtが生成されるスクリプトのサンプルをどなたか教えてください。
それとアドレスの親フォルダの指定

SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
hFile := DllCall("CreateFile", str, "FileName.txt", Uint, GENERIC_WRITE, Uint, 0, UInt, 0, UInt, CREATE_ALWAYS, Uint, 0, UInt, 0)

62:名無しさん@お腹いっぱい。
15/02/05 15:02:27.18 QwBMHot70
それとAHKで親フォルダ、などの相対アドレスの指定の仕方についてまとめてあるところって
ないですか?\ を使った表現と/を使った表現の使い分けがよくわかりません


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