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で親フォルダ、などの相対アドレスの指定の仕方についてまとめてあるところって
ないですか?\ を使った表現と/を使った表現の使い分けがよくわかりません