AutoHotkey スレッド part23at SOFTWARE
AutoHotkey スレッド part23 - 暇つぶし2ch500:名無しさん@お腹いっぱい。
16/12/06 20:57:52.67 jL33oXDW0.net
>>467
ChromeはなんかAHK上じゃ取得できないウィンドとかがあるっぽいんでWindow Spyでチェックして取得できてれば出来る
出来てなければ出来ない
これはChromeの作りによるものだからAHKでは対応できない
Firefox使ってるからChromeは詳しくない

501:467
16/12/06 21:44:49.10 cEoHFcho0.net
Window Spyでみると、Google スプレッドシートの場合は
test - Google スプレッドシート - Google Chrome
ahk_class Chrome_WidgetWin_1
ahk_exe chrome.exe
となります。これがスプレッドシート以外の場合
新しいタブ - Google Chrome
ahk_class Chrome_WidgetWin_1
ahk_exe chrome.exe
となってました。
window titleの"Google スプレッドシート"の文字列があるかないかで分けれると思ったのですが甘かったようです。

502:名無しさん@お腹いっぱい。
16/12/06 21:48:04.33 xb9G4uCi0.net
>>467
それはたぶん1つめの#If~がリマップ定義なのに
2つめのほうはホットキーでSendしてるから
F2::Send, {BS} にすれば上手くいくかもしれない
理由は、リマップは実行時に変換されてて云々って過去スレで見たけど忘れた

503:467
16/12/06 21:55:07.83 cEoHFcho0.net
>>471
うまくいきました。
びっくりしました。
ありがとうございました。

504:名無しさん@お腹いっぱい。
16/12/06 21:55:54.11 EW2hWGCH0.net
>>464
sleep,500 (0.5秒)は長すぎ
人間のするキー押し操作って素早くやれば200~300msくらいにはなるよ
取りこぼしなくすなら loop 100 / sleep,50にしてみるとか
まあでもloop内で何か特別な処理したいんじゃなければKeyWaitのほうがいいとは思う

505:名無しさん@お腹いっぱい。
16/12/10 01:07:05.15 V+SFzAmx0.net
var := 111
MsgBox, % RegExMatch(var, "\d{3,}") ;1 mは省略できる
MsgBox, % RegExMatch(var, "\d{,3}") ;0 マッチしない
MsgBox, % RegExMatch(var, "\d{,3}+") ;0 強欲でもマッチしない
MsgBox, % RegExMatch(var, "\d{0,3}") ;1 nを省略しなければマッチする
正規表現の{n,m} = n回以上m回以下のマッチパターンでnを省略するとマッチしなくなるの前からでしたっけ?
それと正規表現の再帰呼び出しについてなのですが
pos := RegExMatch("aaa bbb ccc", "(\w+)\s((?1))\s((?1))", $)
MsgBox, %pos%`n%$1%`n%$2%`n%$3%
となるのは分かったのですが再帰呼び出しの(?R regexp) (正規表現全体を再帰呼び出し)というのはどういう使い方をすれば良いのでしょうか(具体例を探したが見つからなかった)
この例だと
pos := RegExMatch("aaa bbb ccc", "(\w+)\s((?R)))", $) ;これはマッチしないし
正規表現全体を呼び出すって(?Rより左のマッチパターンなのか(?R以降も含んでの全体なのかもよく分かりません…

506:名無しさん@お腹いっぱい。
16/12/10 02:44:41.10 CkOfBjdu0.net
> 具体例を探したが見つからなかった
ダウト

507:名無しさん@お腹いっぱい。
16/12/11 08:57:40.07 Url71XKZ0.net
2つのスクリプトa.ahkとb.ahkが走っているとき、
a.ahkからb.ahkを終了させることって出来ますか
たとえばAキーを押したときにb.ahkを終了とかさせたいです

508:名無しさん@お腹いっぱい。
16/12/11 09:59:26.35 43UbzIIU0.net
>>476
その例なら、b.ahk に
a::ExitApp
を書けば良いだけだけど、本当は何がやりたいの?

509:名無しさん@お腹いっぱい。
16/12/11 10:16:36.00 Url71XKZ0.net
ああ、すいません。省略しすぎました。ポイントだけを書こうと思ってやってしまいました
b.ahkがある条件のときにだけ必要で普段は要りません
なのである判定条件でb.ahkを実行させてある条件下で終了させたいです
実行はRun,b.ahkでできますが、終了させるのはどうするのでしょうか

510:名無しさん@お腹いっぱい。
16/12/11 10:18:48.72 43UbzIIU0.net
>>478
終了条件を b.ahk に書けば良いと思うんだけど…

511:名無しさん@お腹いっぱい。
16/12/11 10:42:37.73 Qjz+2to00.net
完全自動化できるだけの明確な条件があるわけでなく、任意のタイミングで手動で落としたいってことじゃね
wincloseかProcess closeするしかないんじゃね
ahkスクリプトの個別判別法は
DetectHiddenWindows,ONにしてwintitle見れば良かったと思う
どっかにテンプレなかったっけ

512:名無しさん@お腹いっぱい。
16/12/11 10:47:20.99 43UbzIIU0.net
手動の条件も b.ahk に書けば良いと思う。b.ahkが動いているんだから。
俺が上手く理解できていないのかな…

513:名無しさん@お腹いっぱい。
16/12/11 10:56:42.86 jz5LhT0D0.net
あくまでa.ahkから操作したいんだろうと推測
a.ahkでRun,b.ahkした時にpid取得しといて>>480のように
wincloseかProcess closeでa.ahkから終了
で良いんじゃなかろうか

514:名無しさん@お腹いっぱい。
16/12/11 11:04:25.98 Qjz+2to00.net
あとはOnMessageでaからbに通知出してb側で終了処理して終わるつう手もあるか
そとから強制終了するよりは自然になるんじゃね
メッセージのやり取り必要だけど

515:名無しさん@お腹いっぱい。
16/12/11 11:06:12.07 eot+lbWk0.net
PostMessage と OnMessage を使った他のスクリプト終了
;a.ahk
SetTitleMatchMode, RegEx
DetectHiddenWindows, On
HWND := WinExist(".*b.ahk.* ahk_class AutoHotkey")
If HWND
PostMessage, 0x9999, 0, 0, , ahk_id %HWND%
DetectHiddenWindows, Off

;b.ahk
#SingleInstance, Force
#Persistent
;第一引数は受け取る値、第2引数は受け取って実行する関数名
OnMessage(0x9999,"owari")
Return
owari(wParam,lParam,msg) {
;owari() { ; のように引数無しでも可
exitapp
}

516:名無しさん@お腹いっぱい。
16/12/11 11:25:44.60 Url71XKZ0.net
ありがとうございます
b.ahkのPIDを取れれば、WinCloseで終了できることを確認しました
Proess,Closeは強制終了のようなのでWinCloseの方がよさそうです
でもPIDを取れないこともあるようです
OnMessageでするのは以前したことがあるので確実にPIDを取れないときはこちらですることにします

517:名無しさん@お腹いっぱい。
16/12/11 11:30:25.08 Url71XKZ0.net
ああすいません。DetectHiddenWindows,ONにしてれば見れそうです
せっかく書いてくれていたのにこちらの確認忘れていました。 これでやれそうです

518:名無しさん@お腹いっぱい。
16/12/11 11:32:07.50 Url71XKZ0.net
>>484
こちらのスクリプトはコピペさせてもらいますね。ありがとうございました

519:名無しさん@お腹いっぱい。
16/12/11 11:44:39.58 jz5LhT0D0.net
>>485
>でもPIDを取れないこともあるようです
どんな時に取得できない?今までそんな場面に会ったことないので今後のため是非知りたい

520:名無しさん@お腹いっぱい。
16/12/11 11:58:07.53 Url71XKZ0.net
>>488
a.ahkとb.ahkがあったとして、a.ahkに
a::
Run, b.ahk
Sleep,1000
WinGet, ppid, PID, b.ahk
MsgBox, %ppid%
return
とすると取れてません。でも
DetectHiddenWindows, On
を入れると取れます

521:名無しさん@お腹いっぱい。
16/12/11 12:06:05.72 jz5LhT0D0.net
>>489
あ、あの…
Run, b.ahk → Run, b.ahk, , , PID

522:名無しさん@お腹いっぱい。
16/12/11 12:11:32.35 jz5LhT0D0.net
>>490
紛らわしい書き方、スマン
a::
Run, b.ahk, , , ppid
MsgBox, %ppid%
return

523:名無しさん@お腹いっぱい。
16/12/11 12:12:07.80 Url71XKZ0.net
>>490
おっと、マジですか。実行時に取得というのはそういうことだったんですね
ほんと聞いてくれて助かりました。それはやったことがなかったです
確認しました。出来ました。ありがとうございました

524:名無しさん@お腹いっぱい。
16/12/11 13:17:10.81 aD4uPqt20.net
ControlSend不具合あるな

525:名無しさん@お腹いっぱい。
16/12/12 19:27:07.61 nJTKh9PX0.net
RegExMatch()で文字列中からパターンにマッチする文字列をすべて抜き出したいんだけどどうすれば良い?
例えば4桁(\d{4})の数字が含まれる文字列をすべて抜き出して変数に格納するとか。

526:名無しさん@お腹いっぱい。
16/12/12 20:17:30.76 W2HEuYwQ0.net
とりあえず考えてloop使ってスクリプト書いてみ
それ見て見ないと何したいのか

527:名無しさん@お腹いっぱい。
16/12/12 20:27:57.63 nJTKh9PX01212.net
でけたわthanks
ループ以外に方法ってないのかな

528:名無しさん@お腹いっぱい。
16/12/12 20:39:19.70 mYlAPjlh0.net
RegExReplaceでマッチしない文字列を削除すればいんでね

529:名無しさん@お腹いっぱい。
16/12/12 21:16:45.04 eKTfpN+f0.net
>>496
その方法を探るために、ループで書いて貼れっつてんだと思うよ

530:名無しさん@お腹いっぱい。
16/12/12 21:27:25.15 DdmiA8yD0.net
>>496
ComObjCreateでJScript使ってJavaScript仕様の正規表現matchメソッド使うとか

531: 【不如帰】
16/12/12 21:55:42.72 qdNE9vHy0.net
Internal Server Error

532:名無しさん@お腹いっぱい。
16/12/12 23:36:49.81 tLc5bbg/0.net
>>497,499
正規表現は鬼車とかに丸投げするスクリプトがうpろだにある

533:名無しさん@お腹いっぱい。
16/12/13 02:06:45.64 5GKU1EPF0.net
ホットストリングってかならず一発で決まるってわけじゃないんですか?
毎度必ず一回の失敗(なにも変換されない)があって、その次からちゃんと変換されるようにはなるのですが、
アイドリングの一回の無反応が必ずあるんですが

534:名無しさん@お腹いっぱい。
16/12/13 21:27:54.98 cesb19JL0.net
>>502
言ってることがよく分からないので、これ↓よく読んで再試行
ホットストリング - AutoHotkey Wiki
URLリンク(ahkwiki.net)

535:名無しさん@お腹いっぱい。
16/12/14 23:19:37.26 EYKCAnoc0.net
guiのコード作成初挑戦なんですがお尋ねします
なんらかの情報をコピーして、フルパスやテキストがクリップボードに保持されますが、
それらの履歴をウインドウに表示し、
選択するとクリップボードに戻すということを試しに目論んでいます
ポイントして
・そもそものリストウインドウ表示
・クリップボードの更新を検出すること
・上記更新を受けて自動でリストに追加すること
を考えています。1番目はどうにか先が見えたのですが
下二つが見当がつかないので、どの情報を参考にしたらいいかご教示願います

536:名無しさん@お腹いっぱい。
16/12/14 23:22:21.21 pgpT/YCM0.net
onclipboardchange

537:名無しさん@お腹いっぱい。
16/12/14 23:30:00.14 kHN+qQxO0.net
Autohotkey専用うpろだのClipboardHistory.ahkを参考にする手もある
俺はDLしたことないから実際の挙動とか中身はわからんが

538:名無しさん@お腹いっぱい。
16/12/14 23:52:46.53 EmhQg+e60.net
>>504
似たようなのを作ってるけど俺は^cでテキストをコピーした時だけ履歴残したかったから
キーラベル^c作って通常のコピーに加えてクリップボードの内容をテキストに残すようにしてる
それをGuiでリストビュー生成する時に読み込んでる

539:名無しさん@お腹いっぱい。
16/12/14 23:57:12.13 EmhQg+e60.net
なんかややこしかった
^cで文字列をコピーした時だけテキストファイルに履歴残してる

540:名無しさん@お腹いっぱい。
16/12/15 09:04:56.86 DZf3ZsS20.net
>>504
クリップボードはOnClipboardChangeがあるからそれでいいけど
なにかの検出→それを受けて処理って流れはSetTimerのタイマーで定期的に監視するのが普通
あと一部の特殊なイベントはDllCallでイベントフックできるし、guiを操作した時の処理なら専用ラベルがある
他になんかあったっけか

541:名無しさん@お腹いっぱい。
16/12/15 12:44:09.63 kvr1NHDi0.net
ControlSend, , !HA, 無題 - メモ帳
これでAlt->H->Aとなると思うのですが、HAが入力されるだけです
ControlSendでAlt->H->Aを実現する方法はないでしょうか?
AutoHotkey v1.1.24.03 + Windows7

542:名無しさん@お腹いっぱい。
16/12/15 13:47:28.82 Ix9+z4420.net
>>510
メニュー操作したいんだろうけど、まず非アクティブウィンドウはメニュー操作できない
これは恐らくAHKではなくWindowsの仕様だと思う
なので WinActivate してから Send コマンドで !ha を送ればメモ帳のバージョン情報表示できたよ
ちなみに WinActivate しても ControlSend だとAltがうまくいかない

543:名無しさん@お腹いっぱい。
16/12/15 14:25:01.06 kvr1NHDi0.net
ありがとうございます やっぱりできないのですね
WinActivate してから Sendを使用することにします ありがとうございました

544:名無しさん@お腹いっぱい。
16/12/15 15:06:13.86 Fmvt4SAA0.net
>>512
WinMenuSelectItem というのもあるよ

545:名無しさん@お腹いっぱい。
16/12/15 16:54:29.71 kvr1NHDi0.net
>>513 ありがとうございます それで行けました!

546:名無しさん@お腹いっぱい。
16/12/15 20:54:41.01 F1GBTSpB0.net
>>505>>509 ありがとうございます
>>507 それに類似したものはネット上で見つけ
今中身をいじっていますが今のところさっぱりです
あともう一つ伺いたいのですが、
SelectWinView:
StringReplace,TxListLoad,TxListLoad,<br.>,`f,All
Gui,90:Destroy
Gui,90:Font,S10
Gui,90:Add,Button,Default,OK
Gui,90:Add,Button,X50 Y7,a
Gui,90:Add,Button,X92 Y7,b
Gui,90:+Delimiter`f
Gui,90:Add,ListBox,vSelectTx gAnyEventG90 W500 H250,%TxListLoad%
Gui,90:Show,,%TxListTitle%
return
以上のコードで
URLリンク(www.dotup.org)
のような窓ができたのですが、右端に偏っているlist表示欄を
OKボタンの左端のX座標から表示して左右対称にするにはどうしたらいいでしょうか

547:名無しさん@お腹いっぱい。
16/12/15 21:28:25.18 ZtjaodqY0.net
>>515
言ってることがちょっと分からないけど
Gui,90:Add,ListBox…のところを

Gui,90:Add,ListBox,vSelectTx gAnyEventG90 W500 H250 XM0,%TxListLoad% に変えた表示?

548:名無しさん@お腹いっぱい。
16/12/15 22:04:13.39 gl6qsfK+0.net
なんかへんな表記見つけた
Loop
{
Sleep, 10
GetKeyState, state, Nu


549:mpadAdd, P If state = U Break } これって要するにkeywait, NumpadAddだと思うんだけどなんでこんな書き方してるの? 内部的にどう処理が違うんだろう?



550:名無しさん@お腹いっぱい。
16/12/15 22:33:35.20 PZGHOr5J0.net
質問するまえにヘルプなりwikiなり見ようよ

551:名無しさん@お腹いっぱい。
16/12/15 22:44:12.44 Fmvt4SAA0.net
明らかに不適切というわけでないのなら、どちらが正解かにこだわる意味なんてないことのほうが多い

552:名無しさん@お腹いっぱい。
16/12/15 22:49:09.77 gl6qsfK+0.net
いや、割り込まれたくないとかそういう副次的効果があるのかなぁと
なんもないんかな

553:名無しさん@お腹いっぱい。
16/12/15 23:42:27.55 PZGHOr5J0.net
ていうかそれヘルプのGetKeyStateのExample(s)そのままだし
keywaitコマンドは確かGetKeyStateより後の実装だし
昔書いたのそのまま使ってるだけなんじゃないの

554:名無しさん@お腹いっぱい。
16/12/16 00:07:22.74 tPLS8eU80.net
>>521
そう、なんか不思議な書き方してるなと思ったから
keywaitのほうがあとなのか。知らなかった

555:名無しさん@お腹いっぱい。
16/12/16 08:03:31.44 IrhKDJEV0.net
複数のウインドウが画面上に表示されているとき、そのうちの2枚でどちらが上になっているかを
判定する方法ってありますか

556:名無しさん@お腹いっぱい。
16/12/16 08:51:17.53 kr7+89zL0.net
how to get window z order (win32api or autohotkey)とかで検索すりゃいいんじゃね

557:名無しさん@お腹いっぱい。
16/12/16 09:39:34.44 0/j2k5Yi0.net
window spy の All text の部分にでてくるテキストを判定に使いたいんですが
AHKからここの情報を拾うことってできないですかね?

558:名無しさん@お腹いっぱい。
16/12/16 09:56:16.99 0/j2k5Yi0.net
>>525ですけどWinGetTextでひろえました。

559:名無しさん@お腹いっぱい。
16/12/16 13:26:45.05 ZMDD3X4r0.net
>>523
winget,id,listでid%n%が若いほうが上

560:523
16/12/16 16:44:40.56 3bVRGKCR0.net
>>527
ありがとう

561:名無しさん@お腹いっぱい。
16/12/16 23:21:59.49 0EtTjoqh0.net
ホットキーに変数って使えますか?

562:名無しさん@お腹いっぱい。
16/12/16 23:25:21.44 0EtTjoqh0.net
%hotkey%::return のような事をしたいのですが

563:名無しさん@お腹いっぱい。
16/12/17 00:07:03.39 A/KZv4BJ0.net
>>530
Hotkey,

564:名無しさん@お腹いっぱい。
16/12/17 00:29:41.67 o8o2P8qg0.net
>>531
ありがとうございます

565:名無しさん@お腹いっぱい。
16/12/17 08:23:19.63 7meObdy10.net
Msgboxですが、通常はど真ん中に現れますが、これを特定の位置に表すことってできますか
モーダルなのでMsgboxを実行したあとに位置変更をしようとしてもMsgboxを閉じたあとでないと実行されないので
位置を変えることが難しいです

566:名無しさん@お腹いっぱい。
16/12/17 08:36:51.94 1euW8Qt+0.net
>>533
SetTimer

567:名無しさん@お腹いっぱい。
16/12/17 09:02:44.60 7meObdy10.net
>>534
やってみました。出来ましたが、最初にど真ん中に一度表示されてしまうのはしょうがないですね
ちなみにSetTimer, label, -50
でやりましたが、この時間を-50では出来ると出来ないときがあり、40以下にすると確実に動きません
Windows7です
AHK wikiではNT系は10以上、9x系では55以上とありますが、55以上でないとダメなのかな
でもそれより小さい値をセットしたときは最小間隔にセットされるとあって動かないとはないのですが
どうなんでしょうね

568:名無しさん@お腹いっぱい。
16/12/17 09:49:42.26 9ory3ymY0.net
どれだけ時間を短くしようと表示してからになるのは変えられないんじゃね
その辺見栄え重視でやりたいなら面倒だけど自力でGUI

569:名無しさん@お腹いっぱい。
16/12/18 01:22:03.84 3dJvvfQn0.net
キーボード掃除用に
#Persistent
BlockInput,On
これでキー操作無効になると思ったんですができません
ご教示お願いします。

570:名無しさん@お腹いっぱい。
16/12/18 01:25:16.09 8Y3xHDeZ0.net
run,窓の手 キーボード掃除機能.lnk

571:名無しさん@お腹いっぱい。
16/12/18 02:45:54.58 00Zeti1H0.net
Win 7 64-bitで
マルチメディア系のキーが無い


572:キーボードで、類似機能を実現させたいのですが (具体的にはhttp://ahkwiki.net/KeyList のMedia_とVolume_の各キーの機能が 欲しい。それと電卓の起動くらいあれば十分) AHKよりもっとシンプルなソフトはありますか? いや、別にプログラム書いたり、(必要ならば)英文ページ読むのも大丈夫なんですが できるだけ単機能なソフトで実現できるなら、そっちのほうがいいかなって 思った次第です 他のプログラム、OSの本来のホットキー、ショートカットキーと重複しないか調べなきゃ、とか あとSetPoint使ってるんで(マウスM570のため)、そういうのと競合して不具合 起こっても面倒なので それと、使ってるキーボードでFnキーがあるんですが Fn+(上/下/左/右)→ PgUp/PgDn/Home/End Fn+Del → Ins Fnキーを使うキーが、たった↑これだけしか用意されてないんですよね ですけど、じゃあFnキーをもっと有効利用しようとして、 (良くありがちな感じで)Fn+F7で「再生/一時停止」をさせようとしても これは無理ですよね… たぶん、Fnキーを押しただけでは、何もPCに信号が 行ってないんでしょうから。 じゃあもう2000円くらい出して、マルチメディア機能の付いたキーボード買えよ、って 言われそうですがw



573:名無しさん@お腹いっぱい。
16/12/18 02:50:38.18 npIrVC4w0.net
AHK以外のソフトをお望みならスレチだから自分で調べろカス

574:名無しさん@お腹いっぱい。
16/12/18 07:15:05.40 +Dd+4JV80.net
こういう記述でF1キーを押したときに
test関数内からtooltip表示をさせないようにスレッドを終了させることってできないですかね?
F1::
test()
tooltip,aaaaaa
return
test()
{
soundbeep
return
}

575:名無しさん@お腹いっぱい。
16/12/18 07:20:48.97 +Dd+4JV80.net
>>541ですけど returnの代わりにexitをかけばいいみたいですね
自己解決しました

576:名無しさん@お腹いっぱい。
16/12/18 09:20:57.08 jmiTGyHi0.net
>>537
BlockInput,OnはUACがオンだと効かない
あといくつか無効にならないキーがあったと思うからwikiとかで調べた方がいい

577:名無しさん@お腹いっぱい。
16/12/18 09:25:00.68 QdxZeNMb0.net
>>537
俺が使ってるスクリプトはこんなの↓
SplashImage,5:,B FS10 FM15 W150 X0 Y0,Escで解除,キーボードロック
input,kb,t3600,{Esc}
SplashImage,5:off

578:名無しさん@お腹いっぱい。
16/12/18 15:56:49.07 +/IPHjV40.net
以下で、ドロップダウンリスト選択時にテキストが見切れる場合、
リスト表示(アクティブ)時のみ幅を変更、または、テキストに合わせて幅を変動するようにしたいのですが、そのような設定項目はありますか?
var = aaa`|bbb`|ccccccc`|dddddddddddddddd`|eeeeeeeeeeeeeeeeeeeee
Gui, Add, DropDownList, x10 y10 w90 h20 R10 , %var%
Gui, Show, w110 h40, test

579:名無しさん@お腹いっぱい。
16/12/18 16:39:00.23 18ImSF6i0.net
>>545
dropdownlistにvとgを設定して、g内でvの長さを元に幅を決めてguicontrolで変更する

580:名無しさん@お腹いっぱい。
16/12/18 17:21:40.17 +/IPHjV40.net
色々試しましたが挙動が微妙なのでToolTipで選択項目をポップさせることで解決しました。

581:名無しさん@お腹いっぱい。
16/12/18 20:56:21.83 h6s78ApR0.net
>>543
ありがとうございます。コンパイルして管理者モードで実行したら
うまく動作しました。
>>544
ありがとうございます。
なるほど。これだとマウスは動かせて便利です。
これを少しいじってみます。

582:名無しさん@お腹いっぱい。
16/12/18 22:42:27.68 hYH8i8D60.net
押しっぱなし病はどうすれば�


583:ナきるんだろう……Sleep噛ませてもまだダメだ



584:名無しさん@お腹いっぱい。
16/12/18 23:22:12.73 Li+QnySc0.net
>>549
俺の環境ではShiftキーの場合
KeyWait, Shift ;なぜかこれ入れないと発病する
Send, {Shift Up}
この2行をreturnの直上に置くと直った

585:名無しさん@お腹いっぱい。
16/12/18 23:58:31.17 dCjl+xOM0.net
その程度で直るなら苦労しない

586:名無しさん@お腹いっぱい。
16/12/19 00:18:18.33 g832UXCJ0.net
よくアプリケーションのウインドウ枠の下にある
--------------------------------
ファイル(F) 編集(E) 表示(V)
--------------------------------
このバーを削除する事って出来ませんか?。
winsetコマンドで試しているのですが、ウインドウ枠は削除出来ますが、肝心の部分が削除されません。
どうかご教示願います。

587:名無しさん@お腹いっぱい。
16/12/19 01:14:09.50 u+T+IQ3J0.net
それをすてるなんてとんでもない

588:名無しさん@お腹いっぱい。
16/12/19 07:47:26.32 8jqyrdIk0.net
>>552
URLリンク(autohotkey.com)

589:名無しさん@お腹いっぱい。
16/12/19 09:31:28.76 g832UXCJ0.net
>>554
やったー!有難うございます!。

590:名無しさん@お腹いっぱい。
16/12/19 10:09:01.47 mani5yG00.net
質問の内容よりメニューバーの名称を知らない子がいるということに驚いた

591:名無しさん@お腹いっぱい。
16/12/19 11:14:53.16 ueQao2ti0.net
>>556
同感やな
あと!のあとに。を付ける子がいるということにも驚いた

592:名無しさん@お腹いっぱい。
16/12/20 00:16:15.06 5G4/WbtU0.net
>>517
内部処理的に変わらないけどこっちなら手を加えることも出来るってことでいいんじゃないの
こうすりゃkeywaitで押しっぱなし病が起きるのも防げるし
while GetKeyState("NumpadAdd","P"){
Critical,30
sleep,30
}

593:名無しさん@お腹いっぱい。
16/12/20 15:17:36.64 ivWdDKdl0.net
var1 := "1`n2`n3`n4`n5`n6`n7`n8" の時
var1に含まれる文字列に4以上の数字があった場合
条件にマッチした数字のみ(改行`n除く)を抽出し、別の変数(例えばvar2)に格納したいのですがどうすれば良いでしょうか?

594:名無しさん@お腹いっぱい。
16/12/20 15:52:17.07 Jq8zfd0a0.net
Stringsplit

595:名無しさん@お腹いっぱい。
16/12/20 16:11:51.90 WAqgz9xv0.net
4 5 6 7をしてそれぞれ格納したいのか
最初に見つかった4だけでいいのか
最後に見つかった7だけでいいのか
もっとも大きい数値7が欲しいのか
条件が単純ならRegExMatchで一括処理
複雑そうならLoop,parseで個別判断

596:名無しさん@お腹いっぱい。
16/12/20 16:28:29.63 HnY/HoiE0.net
>>559
意味不明。数字には単位つけろよ
文字列に4ヵ所以上数字が見つかった場合なのか
n >= 4が見つかった場合なのか
n >= 4が4ヵ所どっちよ

597:名無しさん@お腹いっぱい。
16/12/20 16:29:09.55 HnY/HoiE0.net
おっとリロードしてなかったぜ失礼

598:名無しさん@お腹いっぱい。
16/12/20 23:20:28.07 Q67O6vnL0.net
ADO := ComObjCreate("ADODB.Stream")
ADO.Open()
ADO.Write("あいうえお") ;<-エラーが出る
なんで??

599:名無しさん@お腹いっぱい。
16/12/20 23:28:00.89 Q67O6vnL0.net
WriteTextで行けますた

600:名無しさん@お腹いっぱい。
16/12/21 12:01:28.48 0+rnPXDT0.net
公式フォーラムでも質問したのですが、リプライが付かないので2chでも質問させてください
iPhoneの端末をシェイクしてUndoのように、
Windowsタブレットを振った時に処理を実行したいです
とりあえず加速度センサーの値が取得できればなんとかなると思うのですが、
どうすれば加速度センサーの値を取得できるでしょうか
検索してもユニバーサルアプリやWindows Phoneの場合の例が出てくるばかりでお手上げです

よろしくお願いします

601:名無しさん@お腹いっぱい。
16/12/21 13:47:13.25 ksngrLMH0.net
レスがつかないのは


602:AHKの範疇じゃないからだと思うよ 直接VisualStudioでやったほうがいいと思う よくは知らんがUWPアプリとして設計すれば加速度センサーの値は取れるようだし デスクトップとwinスマホの区別なく動くんじゃない? とりあえずスレチなのでム板あたりで聞いてみたらいい



603:名無しさん@お腹いっぱい。
16/12/22 07:22:46.85 WE5Sz2Ut0.net
壁カレですが、
URLリンク(www.vector.co.jp)
モニター2枚で行っているのですがときどき1枚にしたり2枚にしたりしていると
壁カレのモニター上での表示位置がずれるので、
WinMoveで修正しようと思ったら、基本設定で壁に張り付くでやっていると
WinMoveを行っても位置が動きません
ソフト側でこんなことって出来るんですね。どうやっているのでしょうか
基本設定で通常にすれば動くようですが、見栄えを背景を透明にしたいので、壁に貼り付けにしたいのですよね
壁に貼り付けにしてもマウスでクリックして動かそうとするとこれはちゃんと動くにでいちいち手動で
動かさないといけないので面倒です。なにかいい方法はありませんか

604:名無しさん@お腹いっぱい。
16/12/22 07:58:04.30 /gsYMvMn0.net
MouseClickDragでw

605:名無しさん@お腹いっぱい。
16/12/22 16:47:23.56 oZPscVKA0.net
テキスト文をダブルクリックして選択したところをコピーするのに、次のスクリプトを作りましたが
コピー出来るときとできないときがあります。なぜでしょうか?
選択したところは毎回確実に黒反転しますが、^Cで取るところが取り損ねることがあるようです
確実に取るようにはどうしたらいいでしょうか

RButton::
Clipboard =
Click, 2
Sleep, 1000
Send, ^C
clp := Clipboard
MsgBox,,,%clp%, 2
return

606:名無しさん@お腹いっぱい。
16/12/22 17:39:17.96 qnWJ6o5A0.net
>>570
ClipWait

607:名無しさん@お腹いっぱい。
16/12/22 17:43:04.63 qnWJ6o5A0.net
あ…そもそもクリップボードに入らないって話かな

608:名無しさん@お腹いっぱい。
16/12/22 17:46:05.25 oZPscVKA0.net
>>571
出来ました。ありがとうござました

609:名無しさん@お腹いっぱい。
16/12/22 17:47:36.47 oZPscVKA0.net
Wikiを見てきて、
Send, ^C
のあとにClipWaitを入れるだけで出来ました

610:名無しさん@お腹いっぱい。
16/12/22 17:54:21.36 oZPscVKA0.net
ダブルクリックをして反転してコピーができる状態になるまでに
時間がかかるだろうと思ってここにSleep,1000を入れましたが(最初は100とか200とか。で余裕もって1000入れても
ダメなので質問しました)
Send, ^C
をしてからClipboardに入るまでに時間がかかるとは思わなかったですw

611:名無しさん@お腹いっぱい。
16/12/25 01:40:51.42 yAWsNBQH0.net
BSとEnterを無変換、変換に割り当てた、以下のような
単純なスクリプトを読み込んだのですが、ものすごく
反応が鈍くて、後押しっぱなしにすると全然反応しないみたいです。
どのようにすれば動くのでしょうかご教授頂けると幸いです。
sc079::Send,{Blind}{Enter}
sc07B::Send,{Blind}{BS}

612:名無しさん@お腹いっぱい。
16/12/25 02:46:52.20 1oir272c0.net
おま環

613:名無しさん@お腹いっぱい。
16/12/25 13:17:58.44 XZKmGyqb0.net
ワシ漢

614:名無しさん@お腹いっぱい。
16/12/25 13:30:32.50 BYbOgKlx0.net
試してないけど
sc079::Enter
sc07B::BS
こんな感じにリマップするだけでいいんじゃないの

615:名無しさん@お腹いっぱい。
16/12/25 13:51:14.20 EX6KYLEg0.net
自分は「#UseHook」使った上で
;[半角/全角]
sc029::send, {BS}
;[無変換]
sc07B::Send, {ENTER}
こんな感じに"俺キーリマップ"してるが特に問題は起きてない

616:名無しさん@お腹いっぱい。
16/12/25 15:01:07.38 yAWsNBQH0.net
>>580
UseHookで動作は軽くなりました・
ありがとうございます。しかし、押しっぱなし
が効力しないみたいです
暫くこの二つは諦めようと思います

617:名無しさん@お腹いっぱい。
16/12/25 20:00:27.75 pDLKP2T90.net
>>581
試してみたけど>>580ので半角/全角押しっぱなしも
普通にBS連続入力されるけど?

618:名無しさん@お腹いっぱい。
16/12/25 22:01:59.28 Z5XRrej


619:f0.net



620:名無しさん@お腹いっぱい。
16/12/25 22:06:28.38 d1Frnvw50.net
USBキーボードとPS2キーボードで挙動が違うキーがあったよ

621:名無しさん@お腹いっぱい。
16/12/25 22:31:31.73 t/3Ip7EI0.net
>>583
「被ってるみたい」とか曖昧なこと言わず「Virtual Desktop Enhancerって仮想デスクトップ切り替えソフト」
とやらを終了させた状態で試すとか自分で出来ることをちゃんと検証してから書き込もうな
ちなみに何のスクリプトも作らずにAutoHotkey.exeだけを起動してもヘルプが表示されるだけで
トレイアイコンとかは何も出ないぞ
常駐型スクリプトを書いてそれを起動したときに初めて常駐される

622:名無しさん@お腹いっぱい。
16/12/25 22:37:58.28 t7MBGd7h0.net
>>583
AuttHotkey.exeはスクリプトのない状態で起動しても何も起きない
詳しい使い方は>1のwikiにあるリファレンスを頭から読む
virtual-desktop-enhancerはexe化してあるしahkままでもしスクリプト毎に別プロセスで動くので関係ない
ただホットキー競合するとややこしいし混乱の元になるので
自スクリプトのデバッグ時には終了させておいたほうが無難

623:名無しさん@お腹いっぱい。
16/12/25 23:06:33.05 yAWsNBQH0.net
>>582
やっぱりだめだったので、他のキーに
割り当てるとうまく動作しました。何か内部で
衝突を起こしているのですかね
後、もう一つ問題がありまして、
無変換 + LにRightを割り当てて、Win + →で画面半分に整列
を行ったところ、Win + Lも同時に反応してロックがかかってしまいます
このような場合どうすればよいのでしょうか?

624:名無しさん@お腹いっぱい。
16/12/25 23:10:05.47 Z5XRrejf0.net
>>585-586
ありがとうございます。初期状態だと常駐しないんですね。
wikiのリファレンスに「AutoHotkey.exeを実行すると、タスクトレイにアイコンが表示される。」
と書いてあったので、タスクトレイアイコンから操作するのかと思ってました。
色々試してみます。

625:名無しさん@お腹いっぱい。
16/12/26 00:08:35.37 lGyWrLlp0.net
>>587
Win+Lは無効にできないんじゃなかったかな

626:名無しさん@お腹いっぱい。
16/12/26 10:03:12.61 RRXZ5ZRE0.net
>>589
無効にはせず使用したいんです

627:名無しさん@お腹いっぱい。
16/12/26 10:06:53.65 F7miIqL80.net
>>587
Win+ →、Win+ ←、の機能を別の 無変換+何か に割り当てたら良いよ。
コンビネーション3キーよりも2キーの方が便利でしょ。

628:名無しさん@お腹いっぱい。
16/12/26 10:58:50.28 LPws2mY40.net
>>590
無効にせず使用なら>587でできてるじゃない
AHK側で指定したホットキーは機能してる→使用可能
OS側のキーコンフィグも効いてしまう→実用で困るから無効にしたい
でしょ?
それに対し>589は無理じゃね?って回答
Ctrl+Alt+DelやWin+Lなんかのロック系操作はOS的に優先度高いから
アプリ側で完全に奪うのはできないということかと

629:名無しさん@お腹いっぱい。
16/12/26 11:14:17.70 Ior0lFV20.net
;アクティブウインドウの切り替え
^Tab::!Tab
これだとCtrl+Tabで切り替えできますが、決定後にEnterキーを押す必要があります。
Enterキーを押さなくてもいい方法はありますでしょうか?

630:名無しさん@お腹いっぱい。
16/12/26 11:47:18.78 F7miIqL80.net
>>593
AltTab
ShiftAltTab
っていう専用のものがあるみたいだけど、Ctrl+Tabの本来の機能を無くしても良いの?

631:名無しさん@お腹いっぱい。
16/12/26 11:50:59.35 /EZNtYvQ0.net
ctrl up時にでもenter送るようにしたら?
誤爆除けにpush - upでフラグ管理でね

632:名無しさん@お腹いっぱい。
2016/12/28


633:(水) 01:31:04.20 ID:Y+/w/tpu0.net



634:名無しさん@お腹いっぱい。
16/12/28 01:40:23.72 V3MWbTRY0.net
なんでそこにreturn

635:名無しさん@お腹いっぱい。
16/12/28 01:40:41.38 j82Xl8220.net
msgboxをguiに変更する

636:名無しさん@お腹いっぱい。
16/12/28 01:43:34.53 V3MWbTRY0.net
ていうかMSGBOXが出るとスプリクトはMSGBOX消すかボタン押すまでサスペンドだよ

637:名無しさん@お腹いっぱい。
16/12/28 01:46:29.32 H3qU4NTi0.net
>>596
SetTimer, printMsg, 5000
Msgbox,hoge
Exit
printMsg:
TrayTip,,%msg%,30,16
Return
先頭から順番に実行されてExitやReturnで終わるメインルーチン(AHKではAutoExecuteセクションと呼ぶ)と
ラベルにジャンプしてReturnで戻ってくるサブルーチンはしっかり区別しないとだめ
あとこの例だとMsgBox後終了してしまうから、タイマー存続させたいならPersistentの宣言も必要

638:名無しさん@お腹いっぱい。
16/12/28 08:46:46.38 Y+/w/tpu0.net
596です
解決しました
レスありがとうございました!

639:名無しさん@お腹いっぱい。
16/12/29 18:05:25.38 1Sah2jTO0.net
常時監視させておいて
特定のウィンドウがアクティブのときだけ全角入力状態にさせたいのですが
どう書けばよいのでせうか?

640:名無しさん@お腹いっぱい。
16/12/29 19:07:53.31 X9CYw/VZ0.net
7.人を利用することしか頭にない …甘え根性でその場を乗り切ろうとする。

641:名無しさん@お腹いっぱい。
16/12/29 19:20:49.48 M7mE77di0.net
>>602
SetTimer
IfWinActive
IME.ahk
この辺調べりゃ出来るんじゃね

642:名無しさん@お腹いっぱい。
16/12/30 11:14:43.94 oWxLs7nI0.net
>>602
うろおぼえだが、WinWaitActiveとかってなかったか。WinWaitはあるがこれは違うしな

643:名無しさん@お腹いっぱい。
16/12/30 15:08:32.63 VZR+H28N0.net
>>605
>>604がファイル名まで書いて答え出してくれれるじゃん
Winwaitでも無限に待つか、時間指定してLoopしてErrorlevelでcontiuneするかbreakするかでやれないことはないと思う

644:名無しさん@お腹いっぱい。
16/12/30 15:17:36.82 0vFwXqAK0.net
自分はIMEのオン/オフでIMEツールバーの表示/非表示切り替えるスクリプト常用してるのだが、
>>602のレスきっかけに見直したところ手直し必要な個所発見できたよ、ありがとな
本来ならIMEオン/オフ状態の他にIMEツールバーの表示/非表示状態もコマンド発行条件にするべき所を
IMEオン/オフ状態しか考慮してなかったためコマンドが常に発行されてしまってた(´・ω・`)
>>605
>WinWaitActive
なんか使い道違うような…
いや、間違ってないかもしれないが個人的には常駐監視に使いたくないだけですた
やっぱ>>604の方法採用するかなあ

645:名無しさん@お腹いっぱい。
16/12/30 15:31:58.47 0vFwXqAK0.net


646:名無しさん@お腹いっぱい。
16/12/30 15:47:05.10 IkwKuYxf0.net
AutoExecuteセクション
---
SetTimer,labelLoop, -100
---
exit
labelLoop:
WinWaitActive, wintitle
--
goto labelLoop
return

647:名無しさん@お腹いっぱい。
16/12/31 16:15:35.10 TVOFo6fz0.net
ListLines
Exit
#IfWinActive, ahk_class AutoHotkey
LButton::
Click, L, D
KeyWait, LButton
Click, L, U
Return
これ実行してログウインドウのバーをクリックすると
クリックしっぱなし(KeyWaitの行で処理が止まる)になっちゃうんだけど
これはどういうことなの?

648:名無しさん@お腹いっぱい。
16/12/31 19:33:25.67 U4DAfvul0.net
AutohotkeyはGetkeystate部分の取得が完璧じゃないっぽい
押しっぱなし症状はだいたいこいつのせい
離しててもD判定出る

649:名無しさん@お腹いっぱい。
17/01/02 02:35:24.16 CDe5nKO60.net
autohotkeyの言語について調べたり勉強したいんですが、皆はどこから知識を得ているの?
参照してるものは何?
Webサイト?書籍?他の言語?…etc?

650:名無しさん@お腹いっぱい。
17/01/02 02:57:42.08 IK/M2jlZ0.net
>>612
>>1

651:名無しさん@お腹いっぱい。
17/01/02 07:04:53.00 QoafxYr80.net
言語は大体どれも書式や型がある程度は共通してるから
プログラミング経験者なら入りやすいのは言うまでもない
AHK自体はただのマクロだし覚えることwikiに書いてあることくらい
高度なことしようと思ったら若干知識いるけど

652:名無しさん@お腹いっぱい。
17/01/02 12:36:23.86 BZX+2MyC0.net
覚えたいっていう漠然とした感じだとなかなか難しいと思うよ
まず自分が今なにを実現したいかというのがあって、そのために必要なことを探していく
その積み重ねでいろいろできるようになっていくものかと

653:名無しさん@お腹いっぱい。
17/01/02 12:38:09.94 N4cqeu4r0.net
俺もDllCallやPostMessageやSendMessageのこと初歩的なことから例題つきで日本語解説してある本かwebあったら知りたい。
流行らせるページで覚えて上の3コマンド以外は概ね使えるようになった(スマートか否かで言えば非効率的な書き方してると思うけど)。
いまだに
cnt++, var := 0
MsgBox, %cnt% ;みたいな書き方してはまるw
cnt++
var := 0 ;のように行を分ければcnt変数が空にならないのよね

654:名無しさん@お腹いっぱい。
17/01/02 14:56:29.11 Sx93MzEj0.net
海外の本スレで他人様のコードを盗用するのが覚えるの早い

655:名無しさん@お腹いっぱい。
17/01/02 15:08:53.82 EhtkFIfe0.net
昔はVB ProgramarsのページでAPIやWinMessageについて解説してるサイトがあったんだけどね
Messageのほうは昔あった解説サイトをローカルに落としてchm化したものを愛用してる
今だとここの付録の部分のリストくらいかな一覧が見られるの
AHKじゃなくてHSP用の解説だけど
URLリンク(chokuto.ifdef.jp) 👀
Rock54: Caution(BBR-MD5:79b7e0206b0fd5ffcfddd514fa488d36)


656:名無しさん@お腹いっぱい。
17/01/03 13:14:36.35 ubl1mXBd0.net
>>618
サンクス
求めていたものが見つかったかもしれない

657:名無しさん@お腹いっぱい。
17/01/03 13:31:21.37 SANGgOVT0.net
あらURLの後ろに変なゴミ入っちゃってるか
HSPの裏技 っていうページね

658:名無しさん@お腹いっぱい。
17/01/04 14:16:01.01 EunnHk1e0.net
>>616
WindowsでのCやC++プログラミングの基礎を勉強しる
SDKやVC++とかやってるやつはみな知っている

659:名無しさん@お腹いっぱい。
17/01/04 17:29:09.73 MuN+Qw4G0.net
>>612
『好きこそものの上手なれ』・・・これに尽きる
>>615のようにahkで何を実現したいか目的を持てば自然と身に付くと思う
別に重要な仕事で使うわけじゃないんだから気楽に行こう

660:名無しさん@お腹いっぱい。
17/01/05 12:31:42.55 +b2tQkgJ0.net
Getkeystateがもはや信用ならんのだけど、Dllcall立と治るのかな

661:名無しさん@お腹いっぱい。
17/01/05 15:05:16.72 CRF0ShBZ0.net
AutoIt試してみたら?使ったことないけど

662:名無しさん@お腹いっぱい。
17/01/06 19:53:14.03 ikjFUVuQ0.net
#NoTrayIcon
SetFormat, FLOAT, 03.0
FontFace1 := "MS ゴシック" ;他のフォントの組み合わせでも同じ
FontFace2 := "メイリオ", FontSize2 := 10
Gui, Font, S10 CDefault, %FontFace1%
Gui, Add, Text , x6 y10 , Test Text1
ChgFont("Edit", "x+8 yp-4 w64 h20 vV1", "000.0", FontFace2, FontSize2) ; WantReturn Right Limit8 hwndID1などのオプションに関わらず
Gui, Add, Text , x6 y+8 , Test Text2
ChgFont("Edit", "x+8 yp-4 w64 h20 vV2", "999.9", FontFace2, FontSize2) ; WantReturn Right Limit8 hwndID2
Gui, Show
var := V1 V2 ;vオプションの変数名をどこかで使用しないと「Error A error a control's variable must be global or static」と怒られてスクリプトがバックグラウンドで常駐状態になってしまいます
return
;フォントを指定してGuiコントロールを追加
ChgFont(ctl, param, str, FontFace2, s=10, cl="Default", r=1) {
global FontFace1
Gui, Font, % "S" s " C" cl, %FontFace2%
Gui, Add, %ctl%, %param%, %str%
ifEqual, r, 1, Gui, Font, S10 CDefault norm, %FontFace1%
return
}
GuiClose:
;Gui, Submit ;Submitしてもしなくても同じ
;var := V1 V2 ;内外ラベルでvオプションの変数をすべて捨て変数に代入したりMsgBox, %V1%`n%V2%などを入れるとエラーにならないがV1だけだと同じエラーが出ます
ExitApp
関数の使い方からして間違っているのでしょうか?
フォント変更するコントロールだけまとめて書けばいいのでしょうけど変数を代入すれば実行できること自体おかしいのかな

663:名無しさん@お腹いっぱい。
17/01/06 21:03:15.86 lVLjjWwq0.net
関数内でいきなり出てきた変数は基本localだから
Guiで使う変数はglobalかstaticにしないとダメって言われてる
例1
#NoTrayIcon
V1 =
V2 =

664:名無しさん@お腹いっぱい。
17/01/06 22:18:02.18 ikjFUVuQ0.net
>>626
そういうことかー
ありがとうございました
でもGuiCloseでSubmitしてMsgBoxとかで変数拾うと関数でGlobalしてなくてもvオプションで指定した変数が拾えるんですよね…

665:名無しさん@お腹いっぱい。
17/01/07 10:04:48.51 +cndblmC0.net
stringsplitよりloop,parseの方がパフォーマンスが高い理由って
stringsplitは変数をたくさん作るから?

666:名無しさん@お腹いっぱい。
17/01/07 14:07:29.85 q1Hk9Udz0.net
Gui,Add,Text,w100 -wrap,sample text 1 gyoume`nsample text 2 gyoume`nsample text 3
Gui,Show

URLリンク(light.dotup.org)
固定幅でnowrap指定すると、はみ出した行の数だけ下に余分な空白が追加されてしまうのはなぜ?

667:名無しさん@お腹いっぱい。
17/01/07 14:37:54.72 mq9RSsg70.net
本来の折り返し分の行が含まれてるからそうなるんじゃ?
幅伸ばしてはみ出ないようにするかRオプションで高さ指定すればいい

668:名無しさん@お腹いっぱい。
17/01/07 14:56:20.94 q1Hk9Udz0.net
幅は固定で高さは行数に応じて可変にしたいんよ

669:名無しさん@お腹いっぱい。
17/01/07 16:01:10.82 CWeP/GeG0.net
行数をカウントして高さを指定すれば良いんじゃね

670:名無しさん@お腹いっぱい。
17/01/07 16:17:51.67 q1Hk9Udz0.net
>>632
いい感じにできました ありがとう

671:名無しさん@お腹いっぱい。
17/01/07 22:05:43.13 +cndblmC0.net
SetBatchLines, -1に設定して
Loop,1000000
StringGetPos,OutputVar, % InputVar:="hoge",hoge

Loop,1000000 {
InputVar:="hoge"
StringGetPos,OutputVar,InputVar,hoge
}
だと上の例の方が早かったんだけど
いちいち変数に代入するより式を使ったほうがパフォーマンスはあがるってことですか?

672:名無しさん@お腹いっぱい。
17/01/08 01:53:27.66 jOmqi9Oo0.net
二行か一行かの違いじゃね(適当)

673:名無しさん@お腹いっぱい。
17/01/08 11:15:53.17 sK1EMnaf0.net
Loop,1000000 {
StringGetPos,OutputVar, % InputVar:="hoge",hoge
}
で試してみたが{ }のあるなしで速度に差が出る模様
ループ範囲がどこまでか確認する作業が入るからじゃね
まあそれでも上のほうが若干速かったけど

674:名無しさん@お腹いっぱい。
2017/01/0


675:8(日) 16:57:34.03 ID:ArPBjJtS0.net



676:名無しさん@お腹いっぱい。
17/01/08 19:14:52.11 sK1EMnaf0.net
データ型指定が間違ってんじゃね?
少なくともPWSTRは8ビットではなさそうだが
URLリンク(msdn.microsoft.com)(v=vs.85).aspx#PWSTR

677:名無しさん@お腹いっぱい。
17/01/08 19:28:58.43 tbtrZL1X0.net
MyPathCchAddBackslashEx(sPath) {
VarSetCapacity(Buf, 260*2) ; (MAX_PATH * 2)
StrPut(sPath, &Buf, "UTF-16")
DllCall("api-ms-win-core-path-l1-1-0.dll\PathCchAddBackslashEx", "Ptr", &Buf, "UInt", 260, "Int", 0, "Int", 0)
VarSetCapacity(Buf, -1)
Return StrGet(&Buf, "UTF-16")
}
MsgBox, % MyPathCchAddBackslashEx("C:\TEST\テスト")
PWSTR型は16ビット文字列のポインタなんで、StrPutでUTF-16でバッファに書き込み、DllCallでバッファのポインタを渡してる
データ型は未だによく理解してなくて少し自信ない

678:637
17/01/08 19:48:38.96 ArPBjJtS0.net
>>638-639
ご指摘ありがとうございます 。そのとおりでした
>>639を見ると理解できていなかったことがいくもありましたので
精進します

679:名無しさん@お腹いっぱい。
17/01/09 10:54:12.80 9upGt/bw0.net
無変換キーをCTRL+ATLにしたいのですが
vk1Dsc07B::send,!^ で動きません
修飾キーだけの設定はできないのでしょうか?

680:名無しさん@お腹いっぱい。
17/01/09 14:51:59.88 Dxv2SSmB0.net
Setkeydelayで調整するといいよ
あと単純な割当変更ならvk1Dsc07B::!^だけでいいよ

681:名無しさん@お腹いっぱい。
17/01/10 23:07:52.56 pCMXxcnI0.net
必要十分なシンプルな機能のツールを作ろうとしてサクっと不満なく仕上がったはずなのに
そこから明らかに無駄な機能を次から次へと盛り付けてしまう作業が終わらない
自分用だから想定外の入力がされたときのエラー処理とか要らないってのに

682:名無しさん@お腹いっぱい。
17/01/10 23:21:06.78 OVY8QOXV0.net
遊びってそんなもんでしょ

683:名無しさん@お腹いっぱい。
17/01/11 02:23:05.65 BKcuswbi0.net
俺は常日頃から常駐スクリプトにどんな新機能を追加するかを考えている

684:名無しさん@お腹いっぱい。
17/01/11 07:36:05.90 RSt7HbP50.net
常駐スクリプトにどんどんホットキー割り当てていくと
どのホットキーに何の機能割り当ててるかわからなくなったりしない?
ほかのソフトのショートカットキーと被らないように複雑なホットキー割り当ててるとなおさら
どういう規則で割り当てるとわかりやすいとかある?

685:名無しさん@お腹いっぱい。
17/01/11 07:52:45.48 r4A42y8Z0.net
>>646
ホットキーの割り当てリストみたいのが出てくるようなのが欲しいよね
俺もずっとそれは思っていた

686:名無しさん@お腹いっぱい。
17/01/11 09:28:13.08 QiyOcO3i0.net
そういうの


687:はMsgBoxで自作してるわ。



688:名無しさん@お腹いっぱい。
17/01/11 13:49:30.60 OoIYyNmE0.net
俺ホットキー全部で7つしか設定してない
うち5つがメニュー出して選択する式にしてるからだけど
>>646
ちなみにどれくらい割り当ててんの

689:名無しさん@お腹いっぱい。
17/01/11 15:30:27.71 2Yn+OUKD0.net
一つのスクリプトにどんどん機能を追加していく点において
AHKが並行処理に対応してないのが玉に瑕

690:名無しさん@お腹いっぱい。
17/01/11 16:30:34.74 nJrWSdEe0.net
AHKLはだめだけどなんか並列処理できるやつなかったっけ?

691:名無しさん@お腹いっぱい。
17/01/11 20:23:20.02 RSt7HbP50.net
数えたらmsgboxにメモするようにした分だけでも29あった
ちょっとしたエクセルマクロとか作るたびに割り当ててるから……

692:名無しさん@お腹いっぱい。
17/01/11 20:31:49.13 /P+GkoPQ0.net
ホットキーごとにスクリプト作ればホットキー分かりやすいし、並列運用できるんじゃね!? 俺マジ天才じゃね!?

693:名無しさん@お腹いっぱい。
17/01/11 20:54:59.70 fG505L6l0.net
そこまでいったらホットキーで呼び出すコンテキストメニュー作ってそこに羅列したほうがいいと思うわ
指に馴染んでるものだけ残して

694:名無しさん@お腹いっぱい。
17/01/11 21:48:45.87 eFsMAy1g0.net
グローバルIPを取得する方法ってあるますか?
ローカルIPは組み込み変数に有りましたが。

695:名無しさん@お腹いっぱい。
17/01/11 21:50:04.75 kb9XyZlp0.net
>>653
複数のホットキーのルーチンで同じ変数が使えんじゃん
そんなケース腐るほどある

696:名無しさん@お腹いっぱい。
17/01/11 22:15:58.02 SvUgcnIU0.net
>>655
普通にグローバルIPだけ返してくれるサイトにHTTPリクエスト投げればいいんじゃないの?

697:名無しさん@お腹いっぱい。
17/01/11 22:19:46.20 pWCjgp7D0.net
ボケてるんだろうから、真面目に突っ込まないであげて!

698:名無しさん@お腹いっぱい。
17/01/11 23:14:50.32 +jEE7NDQ0.net
ロジクールのG600を購入予定だけどAHKとG600を使ってる人いますか?
G600のボタンにF13以降を割り当てることは可能?
設定ファイルをPCに置く場合はできなくて、オンボードメモリーに置く場合はできるとかいう情報があったけど
このページをみるとそうじゃないようにもみえる
URLリンク(d.hatena.ne.jp)

699:名無しさん@お腹いっぱい。
17/01/11 23:21:39.11 SvUgcnIU0.net
ロジならそもそもどのキーにするか割り当てできんだからそれを置き換えればいいだけじゃねえの?

700:名無しさん@お腹いっぱい。
17/01/11 23:50:15.23 qTUoLXBY0.net
>>659
G300では出来てる。ただし登録時にF13~
の信号をロジのソフトウェアに送る必要がある。自分はハード的に送ったので未確認だがahkのリマップでも送れるはず。

701:名無しさん@お腹いっぱい。
17/01/12 00:52:00.89 DBA1LWeH0.net
>>660
>>661
ありがとう。最近の更新でできるようになったともあったけどやっぱりわからないので本スレに言って聞いてきます。

702:名無しさん@お腹いっぱい。
17/01/12 02:08:35.65 lQlySkdO0.net
>>657
池沼?

703:名無しさん@お腹いっぱい。
17/01/12 02:21:28.54 /JvVJEmD0.net
俺はG600じゃなくてNagaだけど普段使いのプロファイルはNagaにF13~F24を
割り当ててそれをAHKで各種機能割り当てしてる

704:名無しさん@お腹いっぱい。
17/01/12 03:03:52.74 DBA1LWeH0.net
>>664
それも購入候補にいれてたけどそっちは確実にいけるんだ
ありがとう
でも保証期間がロジクールより一年短いな

705:名無しさん@お腹いっぱい。
17/01/12 05:22:03.97 575Fa+ad0.net
>>663が他の方法を教えてくれるらしいので期待

706:名無しさん@お腹いっぱい。
17/01/12 12:12:43.51 ukHVT/xn0.net
>>662
確認したところロジのソフトウェアにahkのリマップは効かなかった。過去フリーのchangekeyで一時的に適当なキーをF13化して信号を送ったことがある。
あとオンボード、ソフトウェア�


707:繧ヌちらもF13~入ったよ。



708:名無しさん@お腹いっぱい。
17/01/12 13:53:27.38 oOABE5wo0.net
昔使ってたロジのMX1000はSetpointのxmlを自分で書き換えればF13以降も好きなように設定できたよ

709:名無しさん@お腹いっぱい。
17/01/12 14:04:25.34 575Fa+ad0.net
SetPointなら普通にAHKのリマップで設定できる
SetPointのGUI上では空白で一見入力できてないように見えるが
ちゃんと設定ファイルには反映できてるので表示名だけ後から書き換えればいい

710:名無しさん@お腹いっぱい。
17/01/12 18:52:31.90 DBA1LWeH0.net
情報ありがとう。とりあえずG600買いますわ。
ボタンがたくさんあるから便利だけどスクリプトの管理も大変になるわ。

711:名無しさん@お腹いっぱい。
17/01/13 03:07:03.04 VugGKbUf0.net
例えば100回のLoop処理(計算結果をメモに書き込む)の中で
10回に1回だけ条件(特定値Xに等しいか違うか)に一致するか判別させ、
等しければBreakさせる

にはどう書けばよいんでしょいか

ヒントでも良いのでおねがいすます

712:名無しさん@お腹いっぱい。
17/01/13 06:40:40.53 gdau3kgZ0.net
whileループ使えばいいんでは?
while (条件式){
ループ内容
}
(値じゃないと抜ける)
以降任意コマンド
...

713:名無しさん@お腹いっぱい。
17/01/13 06:46:36.78 gdau3kgZ0.net
あ、ループ中ならループを入れ子にすればいいよ

714:名無しさん@お腹いっぱい。
17/01/13 07:29:51.53 wZoDLogu0.net
>>671
ループの中で、A_Indexってのが使えるだろ。 これの1ケタ目が0のときに(10で割って余りがゼロ)
条件確認とかすればいいんじゃね

715:名無しさん@お腹いっぱい。
17/01/13 08:46:26.17 7Zy1oQ180.net
>>674
同じこと考えてた

716:名無しさん@お腹いっぱい。
17/01/13 09:05:59.46 ElJK1pof0.net
しかし質問者の条件一致でBreakしたら
100ループにしても10回目でもれなくループ終了するやん
continueと勘違いしてるんかね

717:名無しさん@お腹いっぱい。
17/01/13 09:11:00.10 ElJK1pof0.net
ああ、特定置X=10ではないのか
失礼した

718:名無しさん@お腹いっぱい。
17/01/13 11:14:21.99 wZoDLogu0.net
>>675
お前、だれ? なんの相槌だよ

719:名無しさん@お腹いっぱい。
17/01/13 11:26:31.65 twlQAXuK0.net
すみませんでした

720:名無しさん@お腹いっぱい。
17/01/13 15:32:54.56 tGzElDSz0.net
If mod(A_Index,10)=0でもいいし、Loopを10回×10回に分けてもいい。後者の方なら以下で
Loop,10
{
Loop,10
{
計算結果をメモに書き込む処理
}
If 条件=X
Break
}

721:名無しさん@お腹いっぱい。
17/01/13 18:03:27.80 H5dv8le90.net
>>667
今日G600を買ったけど
ahkのリマップがきかないというのは

F1::F13

みたいなahkのリマップがG600では認識されないってことだよね?最初それでF13以降をG600に割り当ててみたけどうまくいかなかった。
自分が持ってる別のゲーミングマウスはF13以降が送れるからそれを使ってG600にF13以降割り当ててみたけどそれなら問題なくいけましたわ

722:名無しさん@お腹いっぱい。
17/01/14 13:22:22.97 +HfGXXB60.net
!z::
  run C:\data\雑多メモ.txt
  SetTitleMatchMode,2
  ifWinExist, 雑多メモ.txt
  {
    WinActivate
    WinMove, A,, 10, 10
  }
return

このようなスクリプトをAutoHotkye.ahkに記述して
Alt+Zで特定のテキストを表示するようにしているのですが
1度の押下ではWinMoveが効かずもう一度Alt+Zを押すと移動します
どうしたら一度の押下でテキスト起動と移動まで実行できるでしょうか

723:名無しさん@お腹いっぱい。
17/01/14 13:59:20.75 agYRBtA90.net
SetTitleMatchMode, 2はAuto-executeセクションに書いとくとして
!z::
 IfWinNotExist, 雑多メモ.txt
  {
  run C:\data\雑多メモ.txt
  }
 WinWaitActive, 雑多メモ.txt, , 2
 if ErrorLevel <> 0
  {
  MsgBox, WinWait timed out.
  return
  }
 else
  WinMove, A, , 10, 10
return
こうじゃねか?

724:名無しさん@お腹いっぱい。
17/01/14 14


725::10:47.36 ID:gHuGvuYB0.net



726:名無しさん@お腹いっぱい。
17/01/14 14:33:21.53 +HfGXXB60.net
>>683
ありがとうございます行けました!
>>684
ありがとうございます
682のWinActivateの後ろに sleep, 2000 入れて試してはいたのですがダメでした
その以前にいれてれば多分いけたのですね
runの完了をifWinExistは待たず判定も即座で間に合って無かったってことですかね

727:名無しさん@お腹いっぱい。
17/01/14 17:43:36.02 UAvdEFwy0.net
とある行の最後尾に” /n”とつけるために書いてるんですけど、
send、{End}+{Space}/n
て入力するときにIMEが「ひらがな」入力になってても「半角英数」で入力されるようにするにはどうしたらいいですか?

728:名無しさん@お腹いっぱい。
17/01/14 18:30:36.54 TOPRHsv20.net
IME OFFにしてからSend
強制OFFが嫌ならSend後にもう一度IME ON
>7参照

729:名無しさん@お腹いっぱい。
17/01/14 18:31:52.79 FXMhwENU0.net
普通に文字列操作でwiki漁った方が

730:名無しさん@お腹いっぱい。
17/01/14 18:34:38.29 S4PpoINE0.net
404ワロス
IME_Func.ahkでググれ

731:名無しさん@お腹いっぱい。
17/01/14 19:01:29.78 gHuGvuYB0.net
クリップボードに入れてペーストをsendしてもいい

732:名無しさん@お腹いっぱい。
17/01/14 19:13:42.16 TOPRHsv20.net
>>689
いやまだ見れるし落とせるようだが
IME_Func.ahkとか古いの薦めるのはやめたげて
URLリンク(www6.atwiki.jp)

733:686
17/01/14 19:52:22.02 UAvdEFwy0.net
IMEを操作するためのZIPが複数あってどれが良いのかよくわからなかったので
>>690さんのでwikiでクリップボードのところを調べて(ほぼコピペして)やってみました
send,{End}
text := " /n"
Clipboard := text
ClipWait
send,^v
sleep,100
send,{Enter}
ClipSaved =
「変数」を今月に知ったレベルなのでおかしいとこあるかもしれませんがこれでできました
どうもありがとうございました

734:名無しさん@お腹いっぱい。
17/01/15 03:15:41.55 W+cB+eE20.net
clipsaved…?

735:名無しさん@お腹いっぱい。
17/01/15 05:47:30.86 3bynuYQQ0.net
質問失礼します
autohotkeyを起動したまま変換無変換にIMEの
半角/全角を割り当てたいのですが、うまく動かない
みたいでご教授願いいただけますでしょうか?
IMEのプロパティを変更して無変換と変換に割り当てる
ことはできたのですが、Autohotkeyを起動すると
競合できないのかうまいこと動作しないみたいです。

736:名無しさん@お腹いっぱい。
17/01/15 09:14:29.48 P2jis31i0.net
スプリクト内で変換、無変換キーでの割り当てしてないなら問題ないはすだけど
autohotkey.iniの常駐スクリプト終わらせて

ESC::ExitApp

だけのスクリプト作って起動して動作確認してみ

737:名無しさん@お腹いっぱい。
17/01/16 00:50:43.06 UidCcR1d0.net
Loop処理中にマウスとキーボードを他の事(ウィンドウ)で使用しても
処理が止まらないようにするにはどうやるのでしょうか?

738:名無しさん@お腹いっぱい。
17/01/16 01:12:12.07 2QPAIHs30.net
>>695
説明不足ですいません。
無変換 + αのように割り当ては行っています

739:名無しさん@お腹いっぱい。
17/01/16 01:15:12.61 5ZpgV/d+0.net
Thread, Priority,-1

740:名無しさん@お腹いっぱい。
17/01/16 01:28:55.16 5ZpgV/d+0.net
>>697
コンビネーションキーの話なら一つ目のキーはチルダ付けないと入力無効化される
URLリンク(ahkwiki.net)

741:名無しさん@お腹いっぱい。
17/01/16 01:41:18.10 T8PIEUF50.net
>>697
それはそういう仕様だ
チルダを付けて無変換 + αを押したときでも無変換が送られるのが嫌なら
単一キーで無変換は無変換として使う記述を追加しとけ

742:名無しさん@お腹いっぱい。
17/01/16 09


743::41:51.09 ID:aDTlFBVy0.net



744:名無しさん@お腹いっぱい。
17/01/16 12:25:03.86 INWH9M920.net
getkeystateでググれ

745:名無しさん@お腹いっぱい。
17/01/16 14:00:57.45 bAgInogz0.net
HHKBスレの人がキーボード毎(デバイス毎)に異なるキーリマップを記述出来ると
言ってるんだが出来る? いいサンプルないですか?

746:名無しさん@お腹いっぱい。
17/01/16 17:25:49.97 m5sByfJM0.net
HHKBなんか持ってねーよ普通。
持ってるなら自分でためしてみたら?
a::msgbox,aとかで確認すればいい

747:名無しさん@お腹いっぱい。
17/01/16 17:40:19.22 9WPK/4Xa0.net
そのスレで話題になってるんなら、そのスレで聞けば良いんじゃね

748:名無しさん@お腹いっぱい。
17/01/16 17:47:58.10 qy/dHsVE0.net
かなり前に少し話題に上った記憶があるからHIDで過去スレ検索するといいんじゃないかな

749:名無しさん@お腹いっぱい。
17/01/17 08:53:59.08 N/ZqSfaO0.net
キーリストの履歴にあるかないかだからできないことはないだろうけど
持ってない人のほうが多そうだしな

750:名無しさん@お腹いっぱい。
17/01/17 09:33:44.95 08JloE/t0.net
HIDMacrosやMagicKeypad(最新だとHidKeySequence)あたりと組み合わせる前提かなと思ったが
ググった感じだとAHKHID.ahkがあればahk単体でも行けそうな雰囲気
試してないから実際はわからんけど

751:名無しさん@お腹いっぱい。
17/01/17 12:39:31.96 oai8lHtf0.net
フットペダルにF15F16F17割当てて#IF getketstateで使ってるけどそれとは話違うような気もするしなぁ

752:名無しさん@お腹いっぱい。
17/01/17 22:07:21.08 GhPYznbR0.net
#NoTrayIcon
Gui, Add, Edit, Section w96 h20 ve1 ge1,
Gui, Add, Edit, x+8 ys wp hp ve2,
Gui, Show
return
GuiClose:
ExitApp

e1:
Critical ;Critical状態はスレッドごとに保持される
;Input, var, T0.5 L6 V, {Tab},a,b ;MatchList=a,b ;MatchList手前のスペースも文字列の一部とみなされる
Input, var, T0.5 L6 V, ab{Tab}, ;EndKey=a or b or {Tab}
MsgBox, %ErrorLevel%
return
すいませんInputコマンドで行き詰ってます。
MatchList・EndKeyいずれに割り当てた場合でも「a」と1文字入力しただけではErrorLevel=TimeOutになってしまいます。
この例は2文字abと打つとEndkey:Bが返ってきます(これはL0やL1にしても同じでした)。
Inputで1文字目から反応するのはどう書いたらよいでしょうか

753:名無しさん@お腹いっぱい。
17/01/17 22:26:17.58 bKdKUfsT0.net
なにがしたいのかわからない
edit1に文字打つたびにサブルーチンが呼ばれるんだから
そこで変数e1の中身見ればいいだけじゃないの?

754:名無しさん@お腹いっぱい。
17/01/17 22:38:46.61 oMGiQfe70.net
ラベルが呼ばれた段階で既に文字入力されてるんだからそりゃそうなるでしょ

755:名無しさん@お腹いっぱい。
17/01/17 22:44:23.78 GhPYznbR0.net
>>711
Gui,Add,Editでnumberオプションつけると整数のみ入力可能になりますよね
あれのマイナス値や少数値も入力可能なエディットボックスを作りたかったのです。
出きることならEndkeyなしで発動させたくInputでやってみた次第なんですがInputコマンドでは無理なんでしょうか?

SetFormat, floatfast, 03.0
MatchList := ”000,”
Loop, 999
MatchList .= (A_Index+0.0) . ","
のようにして3桁入力されたらEndkeyなしでFocusを次のEditコントロールに移動(これはうまくいきました)
整数3桁までならいけるんですが4桁以上になると16383バイト制限に引っ掛かるようで「


756:Out Of Memory」エラーになってしまいます #MaxMemやVarSetCapacityを入れてもだめでした



757:名無しさん@お腹いっぱい。
17/01/17 23:03:10.36 bKdKUfsT0.net
文字だろうがなんだろうがとりあえず入力可能にして、
確定した時点で数値として正しくなかったらやり直しにするのがてっとりばやいような

758:名無しさん@お腹いっぱい。
17/01/17 23:07:29.85 GhPYznbR0.net
>>712
あー!なんでこんな簡単なことに気づかなかったんだろう…orz
gオプションで値が変化した後でInputコマンドが呼ばれるわけか……
じゃあやっぱりInput使わずにその都度値を拾って判定するか
gオプション外してSetTimerでFocus監視してEdit1ならタイマー止めてe1ラベルに飛ばしてInputで入力待ちとかにした方がいいのかな
スレ汚し失礼しました

759:名無しさん@お腹いっぱい。
17/01/17 23:23:43.08 2CP3aljR0.net
main.ahk

というメインのファイルに

#include sub.ahk

と記述してsub.ahkをincludeしてるんですが、
そのsub.ahkに組み込み変数の Clipboard を使った条件式を書いてもうまくうごいてくれませんでした。
ただmain.ahkのほうにかけば動きました。もしくは sub.ahkに test := Clipboard などのように一度別の変数にクリップボードの中身を移してから条件式をかけば動きました。
原因は何でしょうか?includeしたファイル内では組み込み変数の動きが変わってくるんでしょうか?

760:名無しさん@お腹いっぱい。
17/01/17 23:26:57.60 2CP3aljR0.net
>>716
説明不足でした。

if Clipboard contains XXXXX

といったクリップボードに含まれる文字列を使った条件式を書いていますが
その記述だとsub.ahkでは動きませんでしたが、

test := Clipboard
if test contains XXXXX

と書いた場合はsub.ahkの中でも動きました

761:名無しさん@お腹いっぱい。
17/01/17 23:51:36.48 08JloE/t0.net
main.ahkのどの位置にIncludeしてるんだかわからんが
Autoexecuteセクション回りはちゃんと理解してる?

762:名無しさん@お腹いっぱい。
17/01/18 00:35:01.52 w9//4JoN0.net
>>718
includeの記述はあってました
いろいろやったんですが動きました
新規作成 → Autohotkey Scirpt でahkファイルを新規作成し
sub.ahkの中身を新規作成したahkファイルにコピーしてそれをmain.ahkにincludeしたらなぜか動きました。
ahkファイルがこわれていたんでしょうか
新規作成したahkファイルは拡張子がahkなだけではなく何か特別な形式のものだったりするんですかね

763:名無しさん@お腹いっぱい。
17/01/18 02:31:34.81 /8WkK9MV0.net
includeの記述方法じゃなくて
includeした行位置とautoexrcuteの理解について聞いたんだが

764:名無しさん@お腹いっぱい。
17/01/18 07:11:29.64 py2IVMta0.net
#if 0
MsgBox,aaa
#if

#if 0
^b::Send,bbb
#if

下は実行されないけど、上は実行されてしまう。
これって、どう理解したら良いのでしょう?

765:名無しさん@お腹いっぱい。
17/01/18 08:09:46.32 tveMqUZp0.net
#ifはホットキーやホットストリングにしか効果がない条件式だと思いねえ

if 0
MsgBox,aaa

#if 0
^b::Send,bbb
#if

これならどちらも実行されない

766:名無しさん@お腹いっぱい。
17/01/18 08:42:57.51 dp2UanEk0.net
#IFってのはその条件が当てはまってる環境ならその下に書いたものに派生するってこと

上はAutoexecuteセクションにかかってるからから勝手にメッセージが出る

ホットキーラベルは書いた瞬間から常駐確定

wikiの頭から読んでこい

767:名無しさん@お腹いっぱい。
17/01/18 08:50:11.52 py2IVMta0.net
#if はAutoexecuteセクションでは使わないということで理解しました。
ありがとう。

768:名無しさん@お腹いっぱい。
17/01/18 20:13:35.14 m/tnoBRp0.net
Ifを5個6個とつかってるといまどれのある場合かなしの場合かわからなくなってくるんですけど
これを分かりやすくする方法ってないですか?

769:名無しさん@お腹いっぱい。
17/01/18 20:37:54.55 2S1lOUtx0.net
エディターにタグ付けするとか?

770:名無しさん@お腹いっぱい。
17/01/18 20:58:32.86 xE+P++2h0.net
単純に変数に入れる数値で解決するだろ

1つ目の条件なら1をいれる
2つ目の条件なら2をいれる
両方満たすなら3をいれる
んでその変数の数が=でどれと一緒なら分岐するかとかな
notならそもそもNullってるはずだ

ていうかIfで


771:分岐するのがわからなくなるなんてあるのか?



772:名無しさん@お腹いっぱい。
17/01/18 21:43:25.43 /8WkK9MV0.net
条件分岐が多すぎて迷子になるってことじゃね?
ネストはきちんとインデントして視覚的に階層をわかりやすくする
条件別にコメント見出し行をつける
あたりを徹底してみたら?

// ****** A設定: Xが◇の時は□の処理をする ******
if (…) {
  :
  // *** A'設定: X◇かつYも◇の時は更に◆の処理をする ***
  if (…) {
  :
  }
}
// ***** S設定 : XとYとWが○でかつHが○じゃない時は△の処理をする ******
else if (…) {
  :
}

773:名無しさん@お腹いっぱい。
17/01/19 13:44:19.33 PhlHVTVT0.net
>>725
タブで段組するとかこまめにコメントつけるとか
根本的な問題として書き方が下手だからif連発のスクリプトになってるのではありませんか

774:名無しさん@お腹いっぱい。
17/01/19 13:57:08.60 +J2J6wBF0.net
{ } 内の処理の行数が多いと見にくいから、中身を関数呼び出しにしたり、サブルーチン呼び出しにするのも良いかな。

775:名無しさん@お腹いっぱい。
17/01/19 15:12:21.28 A7V+soX30.net
 if a {
  if b {
   (…)
  }
 }
 ↓↓↓↓↓
 if (a && b) {
  (…)
 }
みたいにまとめたり
 if a {
  (…)
  if b {
   (…)
   (…)
  }
 }
 ↓↓↓↓↓
 if a {
  flag++
  (…)
 }
 if b {
 {
  flag++
  (…)
 }
 if (flag > =2) {
 (…)
 }
みたいにifに必要な部分以外は後ろに持ってくるとか
まあ最強なのはコメントだけど

776:名無しさん@お腹いっぱい。
17/01/19 23:37:36.34 YP1ta4bu0.net
>>725
もしスクリプト書き用エディタに「メモ帳」使ってるならエディタ変えてみたら?
ahkスクリプト作成編集に特化したSciTE4AutoHotkey(URLリンク(fincs.ahk4.net))や秀丸なんかだと、
カッコ開始の(や{にカーソル持って行くと対応するカッコ閉じの)や}と共にハイライト表示するから範囲が見やするなるぜ

そういうことじゃないってが…(´・ω・`)

777:名無しさん@お腹いっぱい。
17/01/20 16:31:43.88 40MyC7IQ0.net
>>725はスクリプト書いてる最中じゃなく、現在実行中のホットキースクリプトの分岐条件で今スクリプトのどこが実行中なのか分からなくなるって話なのかとおもた

だとしたら普通にToolTip入れる・音を鳴らす・トレイアイコンを変える・慣れるまでMsgBox1秒表示とか?

778:名無しさん@お腹いっぱい。
17/01/20 17:30:09.57 z+RLR9YH0.net
ログ見れば済むはなしでは?

779:名無しさん@お腹いっぱい。
17/01/20 20:02:23.02 NqDuNzkz0.net
誰か助けてください
アップローダにあったEverythingのダブルクリックで関連付けの条件にExplorerを登録して使ってみたんですが
ゴミばこのパスをSend,{s}でコピーすることが出来ないのでクリップボードに格納できません
ライブラリも同様です。
どうにかゴミ箱やライブラリを判別して取得する方法はないですか

780:名無しさん@お腹いっぱい。
17/01/20 20:53:20.30 NqDuNzkz0.net
あ、自己解決しました。

781:名無しさん@お腹いっぱい。
17/01/22 21:33:20.93 ona4x+vs0.net
質問があります

関数Aにパスを入れた変数を含む文字列をこんな感じで渡した時

A("%hoge%\memo.exe")

A(path){
msgbox % path
}

ここで出てくるメッセージは%hoge%\memo.exeになってしまいます
この%hoge%を展開して関数内でフルパスを得るにはどうすればいいんでしょうか

782:名無しさん@お腹いっぱい。
17/01/22 21:37:45.10 cZt34c360.net
A(hoge . "memo.exe") とか

783:名無しさん@お腹いっぱい。
17/01/22 21:39:09.79 cZt34c360.net
おっと"\"が抜けてた

784:名無しさん@お腹いっぱい。
17/01/22 21:57:43.24 ona4x+vs0.net
うーんだめだ。動きませんでした

変数を展開して文字列に直す、みたいな機能はないんでしたっけ?

785:名無しさん@お腹いっぱい。
17/01/22 22:08:11.32 cZt34c360.net
>>740
ん?


786:こういう意味じゃなくて? hoge := "C:\" A(hoge . "memo.exe") A(path){ msgbox % path ; C:\memo.exe }



787:名無しさん@お腹いっぱい。
17/01/22 22:23:38.88 ona4x+vs0.net
あ、関数内でも展開されました。もうちょっとで出来そうなのにうまくいかない
もしかして関数でコンテキストメニューのMenu,Context,addは使えないです?

788:名無しさん@お腹いっぱい。
17/01/22 23:16:52.77 ecIzh0Se0.net
>>742
小出しせずにソース晒してみ

789:名無しさん@お腹いっぱい。
17/01/22 23:28:20.32 ona4x+vs0.net
MenuLine("Xnviewerで開く",App . "\XnView\xnview.exe","Xnviewer","jpg,jpeg,png,bmp,gif,icon,ico")

MenuLine(Menuname,Path,GoLabel,Ex="",Key=""){
GLOBAL line,fileEx

Ifexist,%Path%
{
If (Ex != ""){
If fileEx in %Ex% ;この拡張子に当てはまったらメニュー表示
{
line := 1
Menu,Context,add,%Menuname% %key%,%goLabel%
;Menu,Context,Icon,%Menuname% , %Path% ;←これ動かねぇ
}
}else{
line := 1
Menu,Context,add,%Menuname% %key%,%goLabel%
}
}
return

790:名無しさん@お腹いっぱい。
17/01/22 23:29:42.69 ona4x+vs0.net
こんなかんじでメニューを作る関数を組んでるんですがなんかメニュー用アイコンが拾えない……なんでや

791:名無しさん@お腹いっぱい。
17/01/22 23:36:45.01 ona4x+vs0.net
あ、APPにはパスが入ります。USBに入れて使いたくてここは変動します

792:名無しさん@お腹いっぱい。
17/01/23 00:15:32.21 5fXuRjd50.net
問題は2つ
1
「%Menuname% %key%」でkeyが空だったら、作られるメニュー項目は「%Menuname% 」←スペースが付いてる
だから次の行でそんな名前のメニューねえぞって怒られる
わかっててカンマの前にスペース入れてるならそれじゃだめ、%a_space%にしてみ
というかそんな変な名前の付け方はやめたほうがいいと思うけど

2
そこを解決しても、pathの中身はアイコン画像じゃないからエラーになる

793:名無しさん@お腹いっぱい。
17/01/23 00:31:23.29 5fXuRjd50.net
もう1つレアな可能性もあるな

◯ APP:="D:"
◯ APP = D:
× APP=D:

794:名無しさん@お腹いっぱい。
17/01/23 04:02:08.11 5fXuRjd50.net
ごめん>>747の2は盛大に勘違い
exeでもちゃんとアイコン画像のソースになりました

795:名無しさん@お腹いっぱい。
17/01/23 12:37:03.84 7nDqAK650.net
>>744
いまテスト環境ないんであれだけども
そのMenuは関数の外に出して試したの?
それで表示されるなら関数内では使えないってことなんじゃね
ahkの関数って見えない制約あるみたい
例えば>>625
他にもstringsplitのoutput変数名でarrayという変数名を関数内で使うと動かなかったりしたことがあった

796:名無しさん@お腹いっぱい。
17/01/23 13:00:12.85 9FhKom2Y0.net
それはグローバル変数にしてないからじゃないかえ

797:名無しさん@お腹いっぱい。
17/01/23 14:09:33.12 qIOmmpBm0.net
Menu,Context,Icon,%Menuname% %key%, %Path% で動いたよ
あと関数の最後の } が一個足りない、たぶんコピペ抜けだと思うけど

余計ごとだが key排除で
Menuname := "&Xnviewerで開く" とか "Xnviewerで開く(&x)" で良いんじゃなかろうか

しかし事前にfileExに値入れとかないとif条件満たさないとか
menu,Context,Show付け足さないと見れないとかなかなか面倒なソースだわ
追試してほしいならもうちょい上手いこと切り出してくれると助かる

798:名無しさん@お腹いっぱい。
17/01/23 14:18:40.33 rJ/utNVs0.net
Wintitleが、AA、BB、CC
の�


799:R種類があって、これらのときにaキーを動かしたいとき、 #IfWinActive, AA a:: goto label return #IfWinActive, BB a:: goto label return #IfWinActive, CC label: a:: -- 動作内容 -- return #IfWinActive, みたいな書き方をしています。他の書き方、一つにまとめたりって 出来ますか



800:名無しさん@お腹いっぱい。
17/01/23 14:29:12.15 sGnzOKc00.net
#If WinActive("AA") or WinActive("BB") or WinActive("CC")

801:名無しさん@お腹いっぱい。
17/01/23 14:29:26.62 B/XWkeT50.net
#IfWinactiveにする理由ある?

a::
IfWinactive,AA
処理AA
Else IfWinactive,BB
処理BB
Else
Send,a

みたいな感じではだめなの?

802:名無しさん@お腹いっぱい。
17/01/23 14:37:35.24 rJ/utNVs0.net
>>754
なるほど、Wiki見てきましたが
WinActive("WinTitle" [ , "WinText", "ExcludeTitle", "ExcludeText"])

Excludeも出来るのですね。そういう書き方があるのですか

>>755
それだと、いったんa;;のループに入って分岐するって感じ
#IfWinActiveだと、まず対象のウインドウをチェックして関係なければループ自身にも入らない

だから、なんとなくそれは気持ち悪いです

803:名無しさん@お腹いっぱい。
17/01/23 14:38:43.21 rJ/utNVs0.net
>>755
特に、マウスクリック関係やマウスUpとかはおかしな動作をしがちな気がする

804:名無しさん@お腹いっぱい。
17/01/23 14:47:14.24 rJ/utNVs0.net
>>754
前々から思っていたのですが、
IfWinActive
では、Excludeが使えるのに、
#IfWinActive [, WinTitle, WinText]
では、Excludeがないのですよね。

なんで? って。でも#If Winactive
を使えば、これも解決できますね

これバージョンアップしたときに#IfWinActiveも直してほしい

805:名無しさん@お腹いっぱい。
17/01/23 14:54:35.05 qIOmmpBm0.net
パフォーマンス落ちるからじゃね
#Ifはその辺犠牲にして自由度高めた感じだし

まあExcludeはともかく、
SetTitleMatchMode ,RegEx にしておけば #IfWinActiveでも一行で済むんじゃね

806:名無しさん@お腹いっぱい。
17/01/23 14:58:39.50 rJ/utNVs0.net
a::
のルーチンの中で、IfWinactiveで分岐すると、else
で、Send, a
とかをしなければならなくなる。 マウスクリック関連だと、Blindするしないとかいろいろと不具合の種になる

807:名無しさん@お腹いっぱい。
17/01/23 18:24:39.01 qGWthWaq0.net
>>753
ahk_group

808:名無しさん@お腹いっぱい。
17/01/23 18:44:29.80 +kLHbjVk0.net
>>752
動きました。スペースが邪魔だったんですね。ありがとうございました

809:名無しさん@お腹いっぱい。
17/01/23 21:34:25.68 qYisSVk+0.net
特定のボタン押してる間Ctrl出力するのってどうすればいいんですか?
a::Send, ^や{Ctrl}ではうまく行きません

810:名無しさん@お腹いっぱい。
17/01/23 21:36:23.49 qGWthWaq0.net
{ctrl down}

811:名無しさん@お腹いっぱい。
17/01/23 21:37:46.25 qYisSVk+0.net
それだと一度押したらずっと押されっぱなしになってしまいます

812:名無しさん@お腹いっぱい。
17/01/23 21:40:40.23 qGWthWaq0.net
up

813:名無しさん@お腹いっぱい。
17/01/23 22:08:17.80 qYisSVk+0.net
a::
Send, {ctrl down}
Send, {ctrl up}
間にsleep入れたりしてみましたがやはりうまく行かないです
一瞬入力されるだけになってしまう

814:名無しさん@お腹いっぱい。
17/01/23 22:15:09.20 9FhKom2Y0.net
何がしたいか分からんもん
具体的にどういう動作を想定してるのか言わな

815:名無しさん@お腹いっぱい。
17/01/23 22:19:17.66 qYisSVk+0.net
マウスの横ボタンをCtrlにしたい
ゲーミングマウスなら設定変えればいいけどやろうとしてるのは普通のBTマウスなのでそういうわけにも行かずahkでなんとかしようと思ってる

816:名無しさん@お腹いっぱい。
17/01/23 23:06:48.60 9FhKom2Y0.net
リマップじゃなくクリックで{ctrl down}と{ctrl up}を切り替えるようにしたら
マウスの横ボタンどう考えても a じゃないじゃん
他人のマウスの該当キーが何か知らんもん試しようがない

817:名無しさん@お腹いっぱい。
17/01/23 23:10:33.86 +kLHbjVk0.net
>>769
あー言いたいことはわかりました

XButton1::
send,{LCtrl down}
keywait,XButton1
send,{LCtrl up}
return

ゲームってことらしいので左Ctrlを割り当ててみる

818:名無しさん@お腹いっぱい。
17/01/23 23:25:31.61 qIOmmpBm0.net
マウスだったらキーリピート考慮しなくていいんだし
XButton1 と XButton1 up にそれぞれ ctrl down/up 割り当てればいいじゃん <


819:名無しさん@お腹いっぱい。
17/01/23 23:26:08.19 9FhKom2Y0.net
いやいや
XButton1で合ってるなら
XButton1::Ctrl
これでいいじゃろ

820:名無しさん@お腹いっぱい。
17/01/23 23:38:36.90 qYisSVk+0.net
>>771-772
ありがとうございます
どちらでも希望通りの捜査になりました
>>773
それだとちゃんと動作しないのでここに来ました

821:名無しさん@お腹いっぱい。
17/01/23 23:42:32.43 9FhKom2Y0.net
>>774
おまえ、、、
>>763でa::Send, ^や{Ctrl}ではうまく行きません
ってリマップしたいのにホットキーの書き方してるから動かんのじゃろ
XButton1::{Ctrl}
こうじゃなく
XButton1::Ctrl
こう!

822:名無しさん@お腹いっぱい。
17/01/23 23:44:25.84 MgtzdEPG0.net
質問後出し君は面倒くさいねえ
最初から
「サイドボタン押してる間だけCtrl押しっぱなし状態にしたいけど XButton1::Ctrl だと上手く動かない」
と書けばいいのに

823:名無しさん@お腹いっぱい。
17/01/23 23:44:58.66 qYisSVk+0.net
>>775
それ以前にやってました
今もう一度試してみましたがやはりそれでは動かないです

824:名無しさん@お腹いっぱい。
17/01/23 23:47:05.64 9FhKom2Y0.net
そうか
{Ctrl}もCtrlも両方試したんだな
試したことは正確に書いてくれ

825:名無しさん@お腹いっぱい。
17/01/23 23:47:23.09 qYisSVk+0.net
すみませんでした

826:名無しさん@お腹いっぱい。
17/01/24 00:27:04.50 992xxzzv0.net
XButtonは環境によっては押しっぱなし自体できなかったりするから
最初にちゃんと言わないとどうしようもない

最近やけに質問するとき手前勝手に情報絞る奴多いな

827:名無しさん@お腹いっぱい。
17/01/24 07:52:02.48 7kGGksAZ0.net
>>780
素人にそこを求めても無理。答える方に経験があれば指摘できる

828:名無しさん@お腹いっぱい。
17/01/24 10:27:47.41 J1W92RRt0.net
無理でも毎回指摘はするべき
同じ人間が再質問する時に毎回こんなやりとりが続くようじゃ本人のためにもならない

829:名無しさん@お腹いっぱい。
17/01/24 10:44:48.02 7cwjcxG/0.net
>>780
どこでもいっしょ。このスレや2ちゃんに限らず
都度要求するか、スルーで

830:名無しさん@お腹いっぱい。
17/01/24 12:20:20.11 UHBgPEPO0.net
ここはいつも相変わらずだな

831:名無しさん@お腹いっぱい。
17/01/24 12:22:15.90 ihL1oeuZ0.net
>>783
酷い奴なんか自分の意図が伝わらないことで逆ギレするのがいたわ

832:名無しさん@お腹いっぱい。
17/01/24 12:24:05.95 T/yiTrei0.net
感情論でスレ進めんなよ

833:名無しさん@お腹いっぱい。
17/01/24 12:27:11.39 crrxor1c0.net
理解しといてほしい事があるならテンプレに書いとけばいいじゃん

834:名無しさん@お腹いっぱい。
17/01/24 12:30:32.40 J1W92RRt0.net
>2に書いてあるんだよなあ

835:名無しさん@お腹いっぱい。
17/01/24 12:36:12.79 GE5wVamP0.net
まあふらっと来ただけの質問者はテンプレ見ないからね
こことは関係ない質問スレみてるけど質問の書式テンプレにあってもそれを守るやつなんてそういない

836:名無しさん@お腹いっぱい。
17/01/24 15:24:56.91 5QF8P+np0.net
Ctrl + Pause にホットキーを割り当てようとして試行錯誤した結果、
^CtrlBreak で拾えたのですが、
そうすると Ctrl + ScrollLockまで拾ってしまいます。

Ctrl + ScrollLock には別の機能を割り当てたいのですが可能でしょうか?

ahk v1.1.24.01
一般的なフルキーボード(108キー)です。

837:名無しさん@お腹いっぱい。
17/01/24 16:48:19.83 gXpwbaQi0.net
#IF getkeystate
でおけ

838:名無しさん@お腹いっぱい。
17/01/24 16:50:55.57 dWKsdENq0.net
>>790
どうぞ
URLリンク(ahkwiki.net)
URLリンク(ahkwiki.net)

839:名無しさん@お腹いっぱい。
17/01/24 18:01:44.04 4q1oiuqt0.net
今書いてるのが上手く動かないんですって人が
その書いてるのを貼りもしないのはさすがに理解できない
テンプレの問題ですらない

840:名無しさん@お腹いっぱい。
17/01/24 18:41:50.42 J1W92RRt0.net
>4にもあるがLocks系キーの挙動はBIOSでばらつきあるんじゃなかったけ?

回答する側の人間もあまりうかつに答えるのはどうだろう
テンプレ嫁はなにも質問者だけに当てはまるわけじゃないと思う

841:名無しさん@お腹いっぱい。
17/01/24 18:45:30.26 JTdgw3ZH0.net
人の環境が分かるエスパーなんていないから誰も回答しなくなるぞ

842:名無しさん@お腹いっぱい。
17/01/24 19:29:42.97 x2o1zO


843:3l0.net



844:名無しさん@お腹いっぱい。
17/01/24 19:38:32.75 ih2ZG1ZZ0.net
>>796
URLリンク(ahkwiki.net)

複雑なことしたいなら正規表現
RegExReplace()

845:名無しさん@お腹いっぱい。
17/01/24 20:14:18.88 Aj/ZMJce0.net
AHK を用いて Firefox で表示中の URL を取得するにはどうしたらいいでしょう?
winclass.ahk では情報取得できそうになかったです
Windows 10 x64 Build14393.693 + AutoHotky 1.1.24.04 + Firefox 50.1.0

846:名無しさん@お腹いっぱい。
17/01/24 20:27:36.32 4q1oiuqt0.net
ctrl+L送ってコピー

847:名無しさん@お腹いっぱい。
17/01/24 22:37:41.55 dWKsdENq0.net
>>796
単純にエクスプローラで現在開いてるフォルダのアドレス取得したいなら、WinGetTitleでだめ?
もしかしたら、「フォルダオプション」で設定必要有るかもしれないけど・・・

848:796
17/01/25 00:00:15.00 8aRVeOIS0.net
>>797
うまくいかなかったです、というか使い方がよくわからなくて・・・


>>800
winactivate, ahk_class CabinetWClass
sleep,200
WinGetTitle, moto, A
Msgbox, %moto%
return


開いてるフォルダのパスじゃなくて名前しか取得できませんでした
使い方間違えてたらすいません

849:名無しさん@お腹いっぱい。
17/01/25 01:23:52.65 odyPGWq00.net
>>791 やってみましたがダメでした。
#IF !GetKeyState("ScrollLock","P")
^CtrlBreak::
MsgBox,"%A_ThisHotkey%"
return
GetKeyStateでは両者の区別が出来ませんでした。

>>792 もちろんそのページは読みましたが
>CtrlBreak  このキーは実在しない。Ctrl+Breakを押したのと同じ。
この記述のとおりには動きませんでした。

>>793 対応するホットキーラベルがあるかどうかの問題だと思うのですが?
自分の試したラベルは以下の通りです。
^ScrollLock::
^Pause::
CtrlBreak::
^CtrlBreak::
Ctrl & Break::
Ctrl & Pause::
Ctrl & ScrollLock::
vk13sc045::
vk91sc046::
^vk03sc146::
^vk03sc046::
^vk13sc045::
^vk91sc046::
vk03sc146::
vk03sc046::

>>794 やはりAHKでは対処不能のようですね。
・・・・・・・
いずれにしても Ctrl + Pause が拾えればもれなく Ctrl + ScrollLock も拾ってしまうのは避けられないみたいです。ありがとうございました

850:名無しさん@お腹いっぱい。
17/01/25 01:29:15.41 PIq8LqdA0.net
>>801
エクスプローラなら、Shellオブジェクトから行ったほうが確実かな

;windowsキー + i
#i::MsgBox % GetFolderPath()

GetFolderPath()
{
hwnd := WinActive("ahk_class CabinetWClass")
win := ComObjCreate("Shell.Application").Windows
Try {
cnt := win.Count
Loop % cnt {
ie := win.Item[A_Index - 1]
If (ie.Hwnd == hwnd)
Return ie.Document.Folder.Self.Path
}
}
}

851:名無しさん@お腹いっぱい。
17/01/25 02:12:33.30 8Ayfw6rJ0.net
>>801
[フォルダー オプション]→[表示]→[詳細設定]→[ファイルおよびフォルダー]→
→[タイトルバーにファイルのパス名を表示する(クラシックテーマのみ)]
にチェックするとフォルダパス取得できると思うんだが
win7のエクスプローラにて

852:名無しさん@お腹いっぱい。
17/01/25 02:19:04.39 eewC0kv10.net
「アドレス:」を消すのではダメな理由がわからん

853:796
17/01/25 02:33:46.54 8aRVeOIS0.net
>>803
>>804 この二つのどちらでもできるようになりました ありがとうございました



855:名無しさん@お腹いっぱい。
17/01/25 19:48:19.14 6lAGpast0.net
ホットストリングで日付を入力したいのですが、毎度一回目の入力で成功してくれません。(そのままnowスペースと入力されるだけ)
二回目でちゃんと日付が入力されます。
おそらくスクリプトの書き方が悪いと思うのですが、どこを直せば、一回のミスの前提がなくても
最初の一回目でホットストリングが入力されるようになるのでしょうか?教えてください。

::now::
FormatTime,nowTime,Time,HH:mm
Send,%nowtime%
Return

856:名無しさん@お腹いっぱい。
17/01/25 20:28:41.52 t2nV1KD00.net
*ZC

857:名無しさん@お腹いっぱい。
17/01/25 21:52:11.54 ZtZrsxPW0.net
AHK便利すぎおもしろすぎぃwww
それだけいいたかったの!!

858:名無しさん@お腹いっぱい。
17/01/25 22:29:24.70 eewC0kv10.net
車輪の再発明が楽しすぎる
公開する意味がないのはもちろん下手すると自分で使う意味すらないのにわざわざ作ってはニヤニヤしてしまう

859:名無しさん@お腹いっぱい。
17/01/25 23:06:55.74 FjbQN+IQ0.net
誰かゲーム作ったチャレンジャーいない?

860:名無しさん@お腹いっぱい。
17/01/26 00:04:23.45 2bSFIh600.net
そこらへんのフリーソフトで痒いところに手が届かないものを自分なりに似せて作って俺専用ユーティリティ作るのは勉強になる
常駐増えないし軽いし

861:名無しさん@お腹いっぱい。
17/01/26 10:23:03.13 fR4Qip7a0.net
実際超便利
作るの楽しければね

862:名無しさん@お腹いっぱい。
17/01/26 17:20:35.03 Ct/Efl0Z0.net
>>811 の為につくってやったぞ
te1=ぐぅ
te2=ちょき
te3=ぱぁ
rensho:=0
start:
kakegoe=ぽん
Random, com, 1,3
ToolTip, じゃんけん 1:ぐぅ 2:ちょき 3:ぱぁ
ToolTip, ,,,2
Return
1::
2::
3::
pl:=A_ThisLabel
ToolTip, %kakegoe%
Sleep,500
ToolTip, % te%com%
MouseGetPos, x,y
ToolTip, % te%pl%, x, y+50 ,2
Sleep,1000
tugi:
If (pl=com){
kakegoe=しょ
Random, com, 1,3
ToolTip, あいこで 1:ぐぅ 2:ちょき 3:ぱぁ
Return
}

863:名無しさん@お腹いっぱい。
17/01/26 17:20:55.65 Ct/Efl0Z0.net
if (com= mod(pl,3)+1){
rensho+=1
ToolTip, うー %rensho%連負だよ
}else {
rensho:=0
ToolTip, わーい 勝った勝った
}
Sleep,1000
Goto, start
Return

864:名無しさん@お腹いっぱい。
17/01/26 20:29:03.44 /243r9fs0.net
>>815
サザエさんゲームか
マリオは流石に難しいか…

865:名無しさん@お腹いっぱい。
17/01/26 21:08:37.35 9FnOAAZf0.net
テキストRPGなら根気が有れば誰でも作れると思うぞ

866:名無しさん@お腹いっぱい。
17/01/26 21:14:09.42 HIuytZSy0.net
NetHackならできそう

867:名無しさん@お腹いっぱい。
17/01/26 23:06:03.01 nvLNw86f0.net
>>810
あ~楽しいんじゃ~
実際自分が作ったもが既存のAHKスクリプトよりも出来がよかったり気分がいいよな
フォーラムじゃ公開しないけどニヤニヤ出来る

868:名無しさん@お腹いっぱい。
17/01/26 23:10:29.65 2ZoDyBlk0.net
AHK使えるようになると楽しいのは分かるけどRPGはRPGツクールでよくね?って思ってしまう

869:名無しさん@お腹いっぱい。
17/01/26 23:43:08.01 BumNn57A0.net
>>819
初期に書いたスクリプトを数年後とかに見直した時、「・・・」と落ち込む事もあるよな

870:名無しさん@お腹いっぱい。
17/01/27 00:30:53.16 PDG9RR7z0.net
>>811
数年前にマップエディタ作ったところで力尽きた。
GUIに貼り付けた画像を移動すると残像が残る謎現象に悩まされそもそも画面の更新が重いので投げました。

871:名無しさん@お腹いっぱい。
17/01/27 00:34:31.45 OG/qWTF70.net
おれは


872:成長を感じて涙を流す 涙を流すはうそだけど



873:名無しさん@お腹いっぱい。
17/01/27 01:48:23.13 eMO4KDoP0.net
64bitOSの方、ahkで計算すると小数何桁までできてますか?
32bitしか環境ないもんで確認出来ないんですが
SetFormat, float, 0.32
MsgBox, % ATan(1)*4.0
小数16桁で計算打ち止めになる(小数17桁以降は0の連続)のはOSの仕様でどうしようもないんでしょうか

やりたいことは、スマホアプリで作ったgpsデータ(xml形式)の数万ポイントある座標データから距離計算したかったんですがヒュベイニの公式でpi使うのでなるべく誤差を少なくしたいです

874:名無しさん@お腹いっぱい。
17/01/27 02:00:24.38 yGp4+8ei0.net
計算部分は任意精度ライブラリ、DLLにすれば?

875:名無しさん@お腹いっぱい。
17/01/27 02:08:44.21 eMO4KDoP0.net
こんな感じで書いるんですがpiを小数16桁以上にしても結局
pi := 3.1415926535897932384626433832795
SetFormat, float, 0.32
MsgBox, % pi*1.0 ;3.14159265358979310000000000000000 小数16桁で打ち止めになってしまいます
MsgBox, % Hubeny_Exp(35.709, 139.735, 35.658, 139.904) ;単位m

Hubeny_Exp(lat1, lon1, lat2, lon2, lr=6378137.0, sr=6356752.314140) {
;出展 URLリンク(yamadarake.jp) のコードをAutoHotkey形式に変換したもの
; d := sqrt( ((dy*M)**2) + ((dz*N*cos(muy))**2) ) ;ヒュベニの公式
; dy := (lat1*(pi/180))-(lat2*(pi/180)) <--NG このようにpiを使った計算を繰り返すと誤差が増える
; dy := (lat1-lat2)*(pi/180) ;緯度の差(Radian角)
; dz := (lon1-lon2)*(pi/180) ;経度の差(Radian角)
; muy:= ((lat1+lat2)/2)*(pi/180) ;二地点緯度の平均値
; e := sqrt( ((a**2)-(b**2)) / (a**2) ) ;第一離心率(a = 長半径, b = 短半径)
; M := (a*(1-(e**2))) / (W**3) ;子午線曲率半径
; N := a/W ;卯酉(ぼうゆう)線曲率半径
; W := sqrt( 1 - ( (e**2)*((sin(muy))**2) ) ) ;演算子の優先順位の都合により、負の数になる
; ;可能性がある式のべき乗は(-exp)**nのように()で囲う必要がある
static pi := 3.1415926535897932384626433832795
dy := (lat1-lat2)*(pi/180)
dz := (lon1-lon2)*(pi/180)
muy:= ((lat1+lat2)/2)*(pi/180)
e2 := ((lr**2)-(sr**2))/(lr**2)
Mn := lr*(1-e2)
W := sqrt( 1 - (e2*((sin(muy))**2)) )
M := Mn/(W**3)
N := lr/W
d := sqrt( ((dy*M)**2) + ((dz*N*cos(muy))**2) )
return d
}

876:名無しさん@お腹いっぱい。
17/01/27 02:10:21.50 eMO4KDoP0.net
>>825
う、リロードしてなかった
有難うございます探してみます

877:名無しさん@お腹いっぱい。
17/01/27 02:15:02.65 34U0tnK70.net
>>824
; win7x64
SetFormat, float, 0.48
MsgBox, % ATan(1)*4.0 ; 3.141592653589793115997963468544185161590576171875
Return

878:名無しさん@お腹いっぱい。
17/01/27 02:18:42.55 eMO4KDoP0.net
>>828
有難うございます
やっぱり64bitで使う仕様で書いた方が良さそうですね

879:名無しさん@お腹いっぱい。
17/01/27 02:24:53.22 34U0tnK70.net
OSは何使っているの?

880:名無しさん@お腹いっぱい。
17/01/27 03:25:27.97 osKm4NDo0.net
Microsoft Windows XP Professional x64 Edition

881:名無しさん@お腹いっぱい。
17/01/28 11:16:41.41 SRD3tZmB0.net
うpろだにあるEverythingに独自ContextMenuを作るのを改造してエクスプローラ上で通常の右クリックでコンテキストメニューを開いたらその隣にさらに関連付けコンテキストメニューを開こうと思っています。

ところがうpろだにあるものはコピーでファイルパスを格納してそれを分�



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