自動化ツールuwsc使いよ集まれ6at SOFTWARE
自動化ツールuwsc使いよ集まれ6 - 暇つぶし2ch728:名無しさん@お腹いっぱい。
11/05/21 19:12:09.76 eBttpOx+0
>>727
文法とか以前にインスタンスが作れない名前空間的機能にclassって命名したりどうなの。
あと>>593のこの仕様とかw
競合しているなでしこのほうがまだオブジェクト指向で書けるからいいとオモッタ
でも結局C言語(win32 api)と相性のいいpythonの拡張ライブラリに
自前でChkImgとPeekColor実装したらどっちも使う必要無くなった。

729:名無しさん@お腹いっぱい。
11/05/22 14:30:22.93 4P4zk0BAi
>>728
希望としては、そのライブラリを公開してほしい

730:名無しさん@お腹いっぱい。
11/05/22 20:14:35.77 3zhjDiIw0
調べたのですが、見つからないので質問させてください。

IEを使用したときの接続表示待ちの指定は
while True
  if (! IE.busy) and (IE.readyState=4) then Break
  sleep(0.1)
だとわかったのですが、chromeを使った際の
接続表示待ちの指定がわかりませんでした。
何か方法はあるのでしょうか?

731:名無しさん@お腹いっぱい。
11/05/22 20:21:51.08 SGY1ppJH0
ありますん

732:名無しさん@お腹いっぱい。
11/05/23 00:12:29.86 ycsCtdl90
なんかファイルを開けないんですが
ドラッグドロップして一回動かさないと読み込みできない


733:名無しさん@お腹いっぱい。
11/05/23 00:32:19.76 ZSCGOBZL0
そうですか

734:名無しさん@お腹いっぱい。
11/05/23 11:12:22.75 ycsCtdl90
exeファイルをmew11で圧縮したのがいけなかったのかな?

735:名無しさん@お腹いっぱい。
11/05/23 11:45:44.84 a3VOAi3w0
>>730
何を持ってページ読み込み完了とするかをまず考える。

736:名無しさん@お腹いっぱい。
11/05/24 07:17:12.13 syW7YMrL0
忍法帳を管理するツール作ったんだけど、なぜかクッキーが消えることがあります。
クッキーに対しては一括読み込みして全行削除して1行書き込みして閉じるという
それだけのことしかしてないんですが。
クッキーは特別な管理がされているのでそれが影響してるのかなと思わなくもありませんが・・

バージョン確認したら4.5a (2009/3/31)だったので最新に差し替えてみます。

問題のツールも置いときますね。
URLリンク(scripts.web.fc2.com)

737:名無しさん@お腹いっぱい。
11/05/25 10:17:33.14 EhgzlpEh0
While True
 ifb PEEKCOLOR(511,605) = $0000e6 then//xyが赤の場合↓の場所を左クリック
BTN(LEFT,CLICK,723,758)
else
endif
Wend

↑動かないんです
どこが違ってるか見てもらえませんか?

738:名無しさん@お腹いっぱい。
11/05/25 10:26:45.33 tmfXCBnY0
>>737
BTNが実行されたらマウス座標が移動するけど、それは起こる?起こらない?

あと、座標、色コードはあってる?ちょっとでも違うと反応しないよ。それだと。
あと、Sleep()入れないと相手も動けないよ。
UWSCがCPU占有して重くなると、UIは受け付けなくなるようなゲームも多いからね。


739:736  忍法帖【Lv=2,xxxP】
11/05/25 12:45:37.52 tmfXCBnY0
どうやらクッキーは頻繁に書き換えるとだめらしい。
ある程度、時間を置いてのんびりやるとうまくいくようだ。


それよりJaneの動作がおかしくなった。
仮想マシンを新品に入れ替えてJaneドライブを接続して使っているが、
ログ取得の記録がどうも書き換わらない・・・

あ、そっか。ユーザーを一般ユーザーに変更したからアクセス権がないんだ・・・
ディスクのチェックをする権限もなかったし。
変なアクセス権が設定されてるんだろうな。

740:名無しさん@お腹いっぱい。
11/05/25 12:46:57.64 sktEnkul0
チラ裏でした

741:名無しさん@お腹いっぱい。
11/05/25 15:53:37.01 EhgzlpEh0
ACW(GETID("パチンコ"))
While True
Sleep(1)
 ifb PEEKCOLOR(511,605) = $0000e6 then//xyが赤の場合↓の場所を左クリック
KBD(LEFT,CLICK,723,758)
else
endif
Wend

↑此処まで修正しました
やっぱり無反応です。
色はペイント座標は記録からメモ帳で調べてますが、
皆さんはどうやって見てますか?

742:名無しさん@お腹いっぱい。
11/05/25 16:29:49.72 tmfXCBnY0
>>741
ペイント(拡大)とメモ帳で問題ないけど、
色ってシェーディングかかってたら似た色でもコードが違ってくる。
座標がピンポイントで一致しないといけない。
それは大変なので、特にシビアじゃないときには「赤っぽい色」で判定する。

red = color and $FF
green = (color and $FF00) / $100
blue = (color and $FF0000) / $10000

if (80 < red) and (green < 40) and (blue < 40) then 赤っぽい
てな感じで。
数値は適当なので、カラーマップとか見て目で判断する。
括弧つけないとredとgreenの論理積扱いされるかも。
括弧つけると先に不等号判定され、結果がbool値になるので、それを論理積する。

大小判定は直感的に分かるように、大小の方向を一致させるといい。

743:名無しさん@お腹いっぱい。
11/05/25 17:04:08.85 J6WPryn10
勉強になるなぁ

744:名無しさん@お腹いっぱい。
11/05/27 14:35:43.35 rO7PE39G0
>>741
狙ってるところを、何回もスクショとってみて、確認かな。
ずーっと同じ値なら固定値でいい。
バラついてるなら、ばらつき加味してプログラムすべし。

745:名無しさん@お腹いっぱい。
11/05/28 22:29:36.94 sS6Xevt50
画像認証の範囲指定をおしえてください。


Ifb CHKIMG("mp45452.bmp",409,714,1500,1500,) > 0 //MP薬補充
sleep(0.1)
KBD(VK_F8)
endif

範囲指定しなければちゃんと動いています。
後ろの範囲は適当に入れた数値で、もし0,0,1500,1500だったら動作します。

MOUSEORG(0) 
↑などもいろいろやってみましたがだめでした。

746:名無しさん@お腹いっぱい。
11/05/28 23:10:57.58 2eEfKVil0
特定の画像を一定の秒数表示された場合にF5を押すマクロを組みたいのです。
ググってみたもののわからなかったので教えて下さい。

747:名無しさん@お腹いっぱい。
11/05/28 23:27:36.07 HiI2w12Y0
>>2

748:名無しさん@お腹いっぱい。
11/06/01 05:47:51.61 ycjsTZmX0
UWSCで書くとコードの再利用性が無いから
せめてclass機能が欲しい

749:名無しさん@お腹いっぱい。
11/06/01 14:06:13.08 6Omdq0pO0
現状はモジュールなのにクラスとか名づけてるのが嫌だし、それはあるなぁ…
あとは配列で
dim list = 1, 2, 3, [4, 5, 6], [aaa:7, bbb8]
とかネストしたりキーバリューが書けたらなぁ

…上でもかかれてたけど、UWSCでやる必要ってWin32APIのウィンドウ操作と画像認識だけだよな。

750:名無しさん@お腹いっぱい。
11/06/01 15:30:46.98 pgGwEwGR0
画像認証に関してお聞きしたいのですが、どうやら画像が微妙に変化してるようで
同じような外見の画像に対して画像Aか画像Bのどちらかに反応するようです
詳細(ディスプレイ=32Bitカラー、キャプチャしたBMPイメージ=24bitカラー)

そこで
ifb (CHKIMG(画像A.bmp)or(CHKIMG(画像B.bmp))
...(以下の動作は画像AもBもほとんど同じ)


ifb CHKIMG(画像A.bmp)
...
ELSEif (CHKIMG(画像B.bmp)
...

を考えたのですが上下どちらの方がいいでしょうか?

751:名無しさん@お腹いっぱい。
11/06/01 15:41:56.14 /OG9qV2i0
>>750
変化のない部分だけを切り出す。

たとえばボタンとしては画像の全体がボタンとして機能するとしても、
ボタンの場所を探るのに必要な部分というのは、他の場所と混同しない最小限のドット数があればいいわけです。

似た感じだが全体が違う画像の場合、色を無視して形で判断するオプションをつけます。

上記2つが出来ない場合にだけ、>>750のどちらかが必要になりますが、
基本的に画像が見つからない状態でループを繰り返すならどちらでも同じなので、
シンプルに or で結ぶのがいいでしょうね。


752:名無しさん@お腹いっぱい。
11/06/01 23:26:58.20 T7q6pnZp0
質問です。

Test.uws ”C:\Test\新しいフォルダ\20110601 テストてすとTest.txt”
と実行した場合のパスの文字列を取得したいです。
PARAM_STR[0]は
C:\Test\新しい~1\201106~1.TXT
となります。
「C:\Test\新しいフォルダ\20110601 テストてすとTest.txt」という文字列を取得したいのですが、
どのようにすればよいでしょうか。

753:名無しさん@お腹いっぱい。
11/06/02 12:21:04.43 VUco/QRe0
APIのGetLongPathName()か、DOSコマンドかな。

DWORD GetLongPathName(
 LPCTSTR lpszShortPath,  ショートファイル名
 LPTSTR lpszLongPath,   受信バッファ(UWSCの場合は空白文字列)
 DWORD cchBuffer      バッファサイズ(LengthB(lpszLongPath))
);)

空文字列と言えば "" ですが、
空白文字列は "              " こんな感じで十分な長さのものです。

DOSのDIRコマンドでとる方法もあるけど、フォルダごとにやらないといけないのかな
URLリンク(www.gizcollabo.jp)


パス名をショートファイル名で表示するように設定してたりしませんか?
> UWSC.exe test.uws "ロングファイル名"
っていう呼び出し方でMsgBox(PARAM_STR[0])ってやると、普通にロングファイル名で出てきますが。


754:名無しさん@お腹いっぱい。
11/06/03 00:24:53.64 posbHy0I0
FastHash.dllを使ってハッシュ計算をやろうとしてるんだけど
とりあえず書いてエラーは出ないんだが、肝心のハッシュがデタラメ…
DEF_DLLってほとんど使ったこと無いから根本的に間違ってそうなのが怖い。
誰か何処が間違ってるのか教えて下さい…

DEF_DLL FHCreateHashEngineObject(DWORD):HWND:FastHash.dll
DEF_DLL FHComputeHash(HWND, pchar, DWORD):Bool:FastHash.dll
DEF_DLL FHGetHashValue(HWND, var pchar, DWORD):DWORD:FastHash.dll
DEF_DLL FHHashValueToHashString(var string, pchar, DWORD, BOOL):FastHash.dll
DEF_DLL FHCloseObjectHandle(HWND):Bool:FastHash.dll
DEF_DLL FHCreateHashValueObject(HWND):HWND:FastHash.dll
DEF_DLL FHInitHashValue(HWND):int:FastHash.dll
htype = $4
msg = ""
cr = "<#CR>"
fh = FHCreateHashEngineObject(htype)
ado = CREATEOLEOBJ("ADODB.Stream")
ado.Type = 1



755:名無しさん@お腹いっぱい。
11/06/03 00:25:45.42 posbHy0I0
ado.Open
ado.LoadFromFile("FastHash.dll")
fsize = ado.size
msg = msg + fsize + cr
bufsize = 512
while !ado.EOS
buf = ado.Read(bufsize)
FHComputeHash(fh, buf, lengthb(buf))
wend
hash = format(" ", 32)
hashsize = FHGetHashValue(fh, hash, htype)
out = format(" ", hashsize*2+1)
FHHashValueToHashString(out, hash, hashsize, false)
msg = msg + out + cr
msgbox(msg)
//正しい値 "BAD795FCF94AE0532B57F886205965C7"
FHCloseObjectHandle(fh)

756:名無しさん@お腹いっぱい。
11/06/03 12:57:01.66 c/BneUED0
>>754-755
buf = ado.Read(bufsize)
print LengthB(buf)
とすると、妙に小さくてランダムなサイズになってるんです。
多分NULL終端文字列扱いになってる。

UWSC自体はChr(0)を途中に含めた文字列でもデータの最後までの長さを取得できるんですが、
配列データを受け取るときに安全のために終端するんでしょう。

DEF_DLL RtlMoveMemory( string, SafeArray, DWord ):kernel32.dll
と宣言して
buf = format( " ", bufsize )
RtlMoveMemory( buf, ado.Read(bufsize), bufsize )
とやれば、受け取ったバッファを確実にコピーできるはずですが、
正しい値は得られませんでした。


ちなみに、FHComputeHash のループが終わったら
FHCreateHashValueObject でハッシュオブジェクトを作ることが必要だとか。


757:名無しさん@お腹いっぱい。
11/06/03 18:48:38.95 c/BneUED0
 bufsize = 1
 while ! ado.EOS
  buf = ""
  for i = 1 to 512
   if ado.EOS then break
   ByteData = ado.Read(bufsize)
   buf = buf + CopyB( ByteData, 1, 1 )
  next
  ifb ! FHComputeHash(fh, buf, lengthb(buf))

こうやったら512バイトのバッファが作れてファイルサイズ分だけの処理は出来るようになりましたが、
どうもデータが壊れてしまうようでうまくいきませんね。
半角はいけるんですが、2バイト文字が壊れます。
文字コード変換してるのかも。

引数に受信バッファを指定できるタイプの関数を使わないと無理でしょう。


758:名無しさん@お腹いっぱい。
11/06/03 20:37:05.72 posbHy0I0
>>756
> FHCreateHashValueObject でハッシュオブジェクトを作ることが必要だとか。

これ、最初の頃は書いてましたが、どうもFHGetHashValueを
呼べばそのときに再計算やってるらしく、1回だけ計算するときは
必要ないようで消してます。

どうもFastHash.dllをUWSCで扱うのは無理っぽいのかな…
これは今後の課題としてとりあえずはBASP21でも使ってみようかと思います。

759: 忍法帖【Lv=1,xxxP】
11/06/04 12:26:40.90 2KBRGkl70
UWSC 旧バージョンをダウンロードできるサイトってありますか?



760:名無しさん@お腹いっぱい。
11/06/04 13:49:07.48 hyDuayc40
ためしにバイナリコピーを書いてみた。

 adoS.LoadFromFile(GET_CUR_DIR + "\ReadMe.txt")
 adoS.CopyTo(adoD, -1)
 adoD.SaveToFile("copy.bin", 2 ) // adSaveCreateOverWrite

↑動く
↓動かない

 while ! adoS.EOS
  buf = CopyB("",0,0) // 本家からの引用で、文字コードをユニコードじゃなくANSIにする技。
               // buf = "" だとユニコード扱いらしい。
  for i = 1 to 512
   if adoS.EOS then break
   buf = buf + CopyB( adoS.Read(bufsize), 1, 1 )
   size = i
  next
  print size
  print buf
  adoD.Write(buf)    // そもそもCOMエラーで動かない。バリアント型に変換されないのか。
 wend
 adoD.SaveToFile("copy.bin", 2 )

UWSCがデータを触らないで済めば受け渡し自体は出来るんだよ。
型変換ができればいけそうな気はするんだけど
VARTYPE( 変数, [変換タイプ] ) とか書いてあるところがあったけどUWSCは対応してないみたいで


761:名無しさん@お腹いっぱい。
11/06/04 15:20:26.61 OZFKFCHZ0
fsize = ado.Size
buf = ado.Read
FHComputeHash(fh, buf, fsize)

全部メモリに読み込んでやってみると
エラーが出たり出なかったり…
エラー出てない時の値もランダム。

762:名無しさん@お腹いっぱい。
11/06/04 22:23:36.02 tgYxdGHc0
「指定のテキストが画面上に現れたら、
指定の画像をクリックする。」
のようなマクロを作りたいのですが、
色々試しているのですが、エラーが出てしまいます。
どなたか教えて頂けないでしょうか?

763:名無しさん@お腹いっぱい。
11/06/04 22:29:52.60 xhQE3RN+0
色々試したソースを挙げてごらん

764:名無しさん@お腹いっぱい。
11/06/04 22:34:17.05 HC7Ps71g0
>>754
画面ポチポチ以外はC#とか普通の言語でやればいいのに
なんでこういうのをUWSCで書くという苦行を選ぶんだ?

765:名無しさん@お腹いっぱい。
11/06/04 22:41:43.77 oJ7biuYS0
>762
できるが俺も>763と同意見だな。
いちから書くのはめんどい。おまえが元になるものを出せば訂正してやるよ。
偉そうにいえるほど能力は高くないが、汚く直すくらいはできる。
んで、それをおまえの好みに整えて使えばいい。

766:名無しさん@お腹いっぱい。
11/06/04 22:42:12.23 tgYxdGHc0
752です。

ifb CHKIMG("画像1.BMP",0)      // 画面上に画像があった場合以下へ

x=G_IMG_X // 画像の座標をxへ代入
y=G_IMG_Y // 画像の座標をyへ代入

BTN(LEFT, CLICK, x, y, 80)   // 画像の場所を左クリック

の辺りまでは出来ました。

767:名無しさん@お腹いっぱい。
11/06/04 23:05:06.87 tgYxdGHc0
ついでに画像認証はテキストの認証方法が分からなかったので
応用しました。
しかし、上記のスクリプトでは認証した画像をクリックすること
くらいしかできなく、私もかなり最近始めて
これ位の基礎動作しか分からなかったため、
質問を上げさせて頂きました。


768:名無しさん@お腹いっぱい。
11/06/04 23:08:35.00 xdBjojGQ0
テキスト認証ってやっぱ画像にするしかないのかな

769:名無しさん@お腹いっぱい。
11/06/04 23:09:06.32 S8RdXfJA0
で、その後の処理とエラー内容を想像しろと?

770:名無しさん@お腹いっぱい。
11/06/04 23:12:05.37 kQlUkhv60
>>766
endifが無いとかそういうエラーじゃないよな。
どんな問題がおきてるか書かないと、だれも判らないよ。
自分が書いていることを客観的に見れないのがそもそもの問題のような気がするけど。
自分の記述が、uwscにどう解釈されるのか、伝えたい相手にどう解釈されるのか。
受け取る側の立場に立てないと難しいぞ。

771:名無しさん@お腹いっぱい。
11/06/04 23:34:45.94 HC7Ps71g0
>>754
CでやりたいことをラップするDLL書いてみたよ
FastHash.dllのハッシュ値が"BAD795FCF94AE0532B57F886205965C7"になればいいんだよね?

URLリンク(codepad.org)

772:771
11/06/04 23:45:49.08 HC7Ps71g0
バイナリあったほうがいいかなと思ったりして。
VS2008でコンパイルしたもの。

URLリンク(www1.axfc.net)

773:名無しさん@お腹いっぱい。
11/06/05 02:21:08.39 g86IC7rZ0
2011/06/05 UWSC Ver4.7、 Pro版と Free版をリリースしました。

774:名無しさん@お腹いっぱい。
11/06/05 15:27:22.12 QXzudF7U0
>>773ので型変換できたのでやってみました。

  dat1 = VARTYPE(buf,VAR_BYTE or VAR_ARRAY) // 文字列→バイト配列
  adoD.Write( dat1 )

bufのサイズは512なんだけど、出力した結果は2倍近い数字に。
しかし、表示された半角文字分くらい、2倍には足りない。

サイズを見ると、LengthBなら変換前も後も512だけど、Lengthだとちょっと短い。
adoD.Write() に渡すときはデータだけであって、サイズは自動処理されるから、
どっちの長さを渡しているか分からない。多分Lengthだろう。
しかも出力結果は倍のサイズ。

いやまて、バイト配列にしたときに配列数よりバイト数が大きいと言うことは、いくつかは2バイト文字として格納されているのか。
意味が分からない。


しかし、SETHOTKEY( キーコード, [修飾子キー, Procedure名] )は便利かも。
以前リモコン動作をバッチファイル経由で・・・あ、実行ファイル指定だと意味ないか。


775:名無しさん@お腹いっぱい。
11/06/05 15:54:49.65 QXzudF7U0
>>767
よくある画像認証システム(画像を読み取ってテキスト入力)はUWSCでは対処できません。
変化のある画像を扱えないからです。

その変化が単調な変化ならPEEKCOLORで色コードで判定できます。



>>774>>760の下のコードに追加したものです。
他に試したパターンを以下に

//  dat1 = VARTYPE(buf,VAR_DISPATCH) // String型からBoolean型へのバリアント型変換はできません。

//  dat1 = VARTYPE(buf,VAR_BSTR) // (元の型) Write時にCOM Error

//  dat1 = VARTYPE(buf,VAR_VARIANT) // String型からバリアント型への変換はできません。

  dat1 = VARTYPE(buf,VAR_BYTE or VAR_ARRAY)
//  dat2 = VARTYPE(dat1,VAR_VARIANT) // Byte型からバリアント型への変換はできません。
//  dat2 = VARTYPE(dat1,VAR_DISPATCH) // Byte型からInteger型への変換はできません。

776:名無しさん@お腹いっぱい。
11/06/05 17:26:50.41 QXzudF7U0
関連する情報を検索してて、0~0xffをテストデータにする方法が載ってたんでやってみた。
0x80までは問題ないけど、その後のデータが化ける。
chr(0)とか、CRLFを扱えるからバイナリいけるとおもってた。
他にもDLLに文字列バッファを渡したりしてたけど、
受け渡しするデータが扱える文字列だったり、
UWSCではポインタの保持のみ(代入したり関数に渡したりしない)だからちゃんと扱えるように見えたのかも。

関数で使いたいときはvar で参照渡しすることで回避できるけど、
代入できないとどうにもならんよな。

結果:
 0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
80 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
3F 21 81 91 81 92 3F 5C 7C 81 98 81 4E 63 61 81
E1 81 CA 2D 52 81 50 81 8B 81 7D 32 33 81 4C 83
CA 81 F7 81 45 81 43 31 6F 81 E2 3F 3F 3F 3F 41
41 41 41 41 41 41 43 45 45 45 45 49 49 49 49 44
4E 4F 4F 4F 4F 4F 81 7E 4F 55 55 55 55 59 54 73
61 61 61 61 61 61 61 63 65 65 65 65 69 69 69 69

777:名無しさん@お腹いっぱい。
11/06/05 17:31:21.90 QXzudF7U0
>>776のコード
代入方法はどれでも一緒。

// サンプルデータの準備
//dat = CopyB("", 0, 0)   // dat = "" との違いが見られない
//dat = ""
//dat = chr(0)
dat = CopyB(chr(0), 1, 1)
for i = 1 to $ff
 dat = dat + chr(i)
next

for i = 0 to 16 - 1
 str = ""
 for j = 0 to 16 - 1
  // str = str + format( ABS(ascB(CopyB(dat, i*16+j+1, 1))), 3, -1) // ↓でも同じ
  str = str + format( VarType(ascB(CopyB(dat, i*16+j+1, 1)), VAR_INTEGER), 3, -1)
 next
 print str
next

ifb ascB(chr(0)) = 0
 print "ascB(chr(0)) = 0"   // 一致する
else
 print "ascB(chr(0)) <> 0"
endif
ifb ascB(chr($81)) = $81
 print "ascB(chr($81)) = $81"
else
 print "ascB(chr($81)) <> $81" // 一致しない
endif
sleep(10)

778:名無しさん@お腹いっぱい。
11/06/05 17:41:52.80 QXzudF7U0
>>777の条件文は、Format関数でおかしくしたのかの実験。
だが、そうではなかった。

absを使ってみたけど関係なし
しかし、ASCではFF8Aとかに変換されたりするので、AscBを使う必要がある。
どの道0x80以上の範囲でのことなので大差はないが。


779:名無しさん@お腹いっぱい。
11/06/05 17:46:20.34 sEVwMmd6O
あのさ、先にやりたいこと全部試して
まとめだけ書くって知恵は無いの?

780:名無しさん@お腹いっぱい。
11/06/05 18:32:05.88 QXzudF7U0
>>779
やりたいことは別にない。とりあえずUWSCでバイナリデータを”自由に”扱えるか知りたい。

今まではバイナリデータでも"ADODB.Stream"を使えば扱えると思ってたけど、
受け渡しすら出来ないなら選択肢からさっさと外さないと時間の無駄でしょ。

DLLならメモリに直接書き込んでくれるから文字列バッファを使って受け渡しは出来ていたけど、
COMオブジェクトは代入渡しだからUWSCが自動処理する関係でおかしくなるんだね。

で、動くコードは結論だけで済むんだけど、動かない場合は単に作った人が使い方を間違っただけかもしれない。
それを他人が検証するには「何をしたか」を書かないといけない。

>>750だってコードは出してるけど、肝心な部分がないので判断できないでしょ。

今まではバイナリデータっぽく扱うことが出来ていて不便は感じなかったんだけどね。
バイナリデータなんて実際は扱ってないから。
そもそも他アプリを操縦するのがUWSCの基本だから(以下略


781:名無しさん@お腹いっぱい。
11/06/05 18:49:30.58 QXzudF7U0
>>779
あ、やりたいことあったよ。

HSPスクリプトのDLL呼び出しが出来るけど、あれってEXECするのと変わらないよね。データの受け渡しが出来ないから。
一応管理データがあるみたいだけどHSP内部で使うものであって、スクリプトで扱うものじゃない。
あれを使ってデータのやりとりやら制御ができたらいいなと。

まあ、HSP覚えるのめんどくさいから使わないんだけどね。
HSPでも結局はDLLで全部やっちゃうらしいし。

あれを使おうと思ったのはそもそもチートするときに、食いついたゲームプログラムから
呼び出すことが可能でメモリ改ざんが可能なスクリプト実行環境だったからなわけで。
結局、実行ファイル展開後に食いつく方法とかセキュリティソフト回避する方法とか分からなくて投げ出したんだよ。
UWSCから呼んでみたのは、実際どう呼び出すのかテストと、
UWSC Free版で画面を自由に使えるかなと。


782:名無しさん@お腹いっぱい。
11/06/05 18:51:21.07 BZXWRVGgP
ひとまず深呼吸をしよう。
腹式呼吸で10秒吸って、10秒はくのを10回繰り返す。

そしてこのスレを全レス表示させて1から順に流して見ていこう。
中身は見なくても大丈夫。スレの流れる様子を見るようにして。

するとどうだろう。
君の実験は邪魔になってるのがよくわかるよね。
君の実験メモをここに書くのはやめよう。

783:名無しさん@お腹いっぱい。
11/06/05 19:29:01.77 SWS3yrb80
>>782
いや、それはどうよ。
UWSCで出来ないことがある…という情報は「誰にとっての『邪魔』」なんだ?

784:名無しさん@お腹いっぱい。
11/06/05 20:36:40.45 ni4DAQUY0
>>783
全部書くことはないと思う
先にやりたいこと全部試して結果のまとめだけ書いて
コードはcodepadにでも貼れば1レスでまとまるでしょ
それで同じことに興味がある人がいたらレスを拾うんじゃないかな
今みたくコードも含めて途中経過も全部書きこんでたら読むのめんどくせってなるよ

785:名無しさん@お腹いっぱい。
11/06/05 20:50:50.65 QXzudF7U0
>>784
確かにURLリンク(codepad.org) みたいなのは見やすくていいんだけど、
Basic系がないのはなんでなんだぜ。
C言語を選択してUWSCのソースを張るのは荒らし行為だよね?


786:名無しさん@お腹いっぱい。
11/06/05 20:59:25.58 ni4DAQUY0
>>785
シンタックスエラーになるだけだし荒らしにならないよ
てかPlain Text選べばいいだけでしょ

787:名無しさん@お腹いっぱい。
11/06/05 21:36:43.20 UpCDO7L00
Java Access Bridge for Microsoft Windows Operating System 2.0
が正しくインストールされているかどうかを調べる方法ってありますか?

と言うのも、Javaで作られたアプリを操作しようと四苦八苦しているんですが、操作できません。

GETIDは取得でき、SCKEYを利用できたりは出来るんですが、SENDSTR、CLKITEMなど直接コントロールを
操作/設定しようとしても無反応です。

例えば以下のような感じで記述しています。
SENDSTR(ID,"aaa",1,TRUE,TRUE)

なので、一番最初の文に戻りますが、Java Access Bridgeが正しくインストールされていないのでは?
と疑っています。

788:名無しさん@お腹いっぱい。
11/06/05 21:54:10.65 BZXWRVGgP
>>784
まさしくその通り。

1レス内で収まる範囲のソースコードや説明であれば誰かの役には立つとは思う。
しかし、こんな長文をダラダラ延々と続ければ続けるほど誰も見なくなり
情報価値は少なくなる。むしろマイナスだ。邪魔。荒らし行為そのもの。

一応フォローするけど、まともなコードも書けるようだし頭はいい人だとは思う。
アスペルガー症候群なんだろうか。

789:名無しさん@お腹いっぱい。
11/06/06 02:55:49.79 9zgS8WMT0
そうかな。
ホームラン級のバカだと思うけどな。
uwscの役割を理解せずに、何でもかんでも要求してるだけだろ。
v2cみたいに。w

790:名無しさん@お腹いっぱい。
11/06/06 03:07:13.75 npqVU/0S0
要求はしてないだろ。確認しただけだ。本当に馬鹿発言だな。

791:名無しさん@お腹いっぱい。
11/06/06 04:02:16.44 9zgS8WMT0
uwscに要求したじゃん。

792:名無しさん@お腹いっぱい。
11/06/06 08:50:24.84 4AVwEeJW0
>>789
いまどきバイナリファイルも扱えないスクリプトなんてw
…というレッテル張りに始終するのが賢い選択だったのかな?

793:名無しさん@お腹いっぱい。
11/06/06 12:14:20.48 8xId2Plm0
>>792
近代的なプログラミング言語は言語仕様は最小限にして
機能はライブラリで提供するのが主流だからバイト配列が扱えない言語も多いよlua、lisp、javascriptとか。
PHPやVBは時代に逆行して機能を言語仕様に詰め込むから言語としてバカにされ続ける。

794:名無しさん@お腹いっぱい。
11/06/06 12:15:55.68 npqVU/0S0
lispとか古すぎ

795:名無しさん@お腹いっぱい。
11/06/06 12:34:24.36 E8y1CT6vi
>>793
外部ライブラリを使っても、UWSCの制限でバグるのが問題なんだろ。
使える外部ライブラリを提示出来るならその指摘もありだとは思うけど…

796:名無しさん@お腹いっぱい。
11/06/06 12:47:15.73 8xId2Plm0
>>795
UWSCにライブラリ作るためのAPIなんて用意されてないだろ。

画面ポチポチやるかき捨てプログラム書くための専用ツールなんだから
どうしても必要なんだったら普通の言語使うか>>771みたくネイティブコード吐ける言語に処理させて
結果だけ受け取ったほうが圧倒的に効率いいだろ

797:名無しさん@お腹いっぱい。
11/06/06 13:24:04.29 npqVU/0S0
>>796
すでに存在するものを利用できるのがスクリプトのいいところだ。
バイナリの受け渡しさえ出来ればいいんだからUWSCが対応したらそれでこんな議論は終わりだ。

しかし、加工したはずの文字列がゴミまで一緒に渡すようになると、既存のコードに影響するからね。
>>796が主張するように自分で処理するDLLを作って文字列を加工したのに、
UWSCがそれを無視してゴミをデータとして処理したとすると、それはそれで問題がある。

> 結果だけ受け取ったほうが圧倒的に効率いいだろ
それは当たり前だよ。
だけど、スクリプトでやることに意味があるんじゃないか。
コンパイル環境がいらないとか、コンパイル言語でバグ出す前にテストしてみるとか。
WSHやJavaScriptじゃなくUWSCを使うのは、手軽にDLLを使えるからだろ。
DLLはバイナリデータを扱うことが多いんだから、バイナリがうまく扱えないのはメリットをデメリットで相殺してるようなものじゃないかな。


まあ、ハッシュ計算の問題はWindowsAPIのReadFile関数をDLLで呼び出せばたぶん解決だよ。
バイナリデータが扱えないと言うより、COMオブジェクト特有の代入演算がネックだったと。

798:名無しさん@お腹いっぱい。
11/06/06 13:33:26.37 npqVU/0S0
>>793
あと、Lispを近代的言語って表現するのはおかしいよね。
URLリンク(www.atmarkit.co.jp)
URLリンク(www.atmarkit.co.jp)

Lispがとても古い時代のものだというのはプログラミング言語一つでも使えるなら知ってて当然なんだけど。
まあ言葉の表現がおかしいだけなんだろうけど、ものの捉え方がちょっとズレてるのが原因かもね。
だからこんな議論してしまうんだよ。
何でもかんでも自分の知ってるものに当てはめてしまうとかね。
もうちょっと基礎部分を広げた方がいいと思うよ。


799:名無しさん@お腹いっぱい。
11/06/06 13:39:21.47 8xId2Plm0
>>798
登場時期が古い=レガシー言語ってお前バカだろw
C言語よりC++やD言語がモダンだと思っちゃうタイプ?

800:名無しさん@お腹いっぱい。
11/06/06 14:53:42.01 8xId2Plm0
>> 結果だけ受け取ったほうが圧倒的に効率いいだろ
>それは当たり前だよ。
>だけど、スクリプトでやることに意味があるんじゃないか。
>コンパイル環境がいらないとか、コンパイル言語でバグ出す前にテストしてみるとか。

どんだけこのマウスポチポチツールに入れ込んでるのか知らんけど
これでいいじゃん

URLリンク(codepad.org)

この話題終了

801:名無しさん@お腹いっぱい。
11/06/06 21:36:31.18 kvcA2Kfh0
ふぉーとらんを馬鹿にする奴は俺が許さん

802:名無しさん@お腹いっぱい。
11/06/06 21:52:05.67 QHLp3LcH0
>>801
科学系では現役で新規プロジェクトに使われてたりするしね

803:名無しさん@お腹いっぱい。
11/06/06 23:37:35.58 9zgS8WMT0
こんなヘンピなスレで、なんでキチガイが湧くのかなぁ。
スレ過疎化すると、スレ建てした奴が必死に成るのかなぁ。
それにしても、スレチな発言しても意味無いと思うけどなぁ。

あ、かまってほしいだけ!?

804:名無しさん@お腹いっぱい。
11/06/07 00:02:06.85 czDeR00m0
こんなの作ってみたんだけどどうかな。
URLリンク(smallbasic.com)


805:名無しさん@お腹いっぱい。
11/06/07 18:40:45.62 FpMUckDF0
クリップボードの中身によって行動を変える条件分岐はどう書いたらよいの

806:名無しさん@お腹いっぱい。
11/06/07 18:48:08.13 3DgxKyzv0
クリップボード=GETSTR(0)

IFB クリップボード = "こっち" THEN

ELSEIF クリップボード = "そっち" THEN

ENDIF

807:名無しさん@お腹いっぱい。
11/06/07 19:01:24.65 FpMUckDF0
ありがとうごじゃました!

808:名無しさん@お腹いっぱい。
11/06/07 19:32:16.65 GF8L72VJ0
>>806
変数名に日本語使うと一瞬それらしく見えなかったりしたw

809:名無しさん@お腹いっぱい。
11/06/07 20:52:53.48 aOHIWvUD0
誤動作しそうだから、使わないとココロに決めた。

810:名無しさん@お腹いっぱい。
11/06/07 20:59:35.73 czDeR00m0
MOUSEORGとか使わなくても
ifb Status( ID, ST_ACTIVE ) で表にいるときだけ操縦するようにすれば
単純な記録・再生でも使えるよ。

まあ俺も誤動作させまくってるから失敗が怖ければ使わない方がいいけど、
たとえば仮想マシン上で動かせば仮想マシンの外には影響しないよ。

逆は可能だけどね。


811:名無しさん@お腹いっぱい。
11/06/08 13:29:25.29 aqQRx2dz0
古いの使ってたのを最新にしてみたら、既存のコードでシンタックスエラーになった。

コード; if ~ then exit
っていう1行で続ける条件文がだめで、
改行したらOKになった。


812:名無しさん@お腹いっぱい。
11/06/08 23:24:42.77 LN9bd+dX0
すでになおっとる(6/5)

813:名無しさん@お腹いっぱい。
11/06/09 12:32:10.82 S+BrRx410
画像リンクがどーしても出来ないです…
IELINKやページ内の画像を取得後にaltをターゲットに検索して、などは出来るんですが。。
必ずaltが宣言されてればいいんですけどそうじゃないので困っています。
画像が小さいと認識しにくいとの事ですが
どの程度の大きさまで認識できますか?
また画像の一部分を基準に認識可能でしょうか?


814:813
11/06/09 18:35:10.26 S+BrRx410
画像クリック他の所で試したら普通にいけました…
それと目的の画像をペイントで表示する場合は認識するのですが
画像として表示させた場合は認識しません。
認識の精度を上げる事は出来ないのでしょうか?


815:名無しさん@お腹いっぱい。
11/06/09 19:09:24.75 lxNHl3xJ0
画像として表示って何かな?

画像が拡大縮小とか加工されて表示されたらそりゃ別物と認識しますよ。

色範囲を広げるオプションはあるようなので、使ってみたら?


816:813
11/06/09 20:55:58.40 S+BrRx410
画像としてはWindowsフォトギャラリーでの表示です。
オプションは一通り試しみました…
形だけでも拾えないのでpngで四隅を透過処理してあるのは無理なんですかね。
もしかして対象もbmp形式じゃないとダメなんて事はないですよね?
ヘルプには参照元はbmpとは書いてあったんで、大丈夫だとは思うんですけど。。


817:名無しさん@お腹いっぱい。
11/06/09 21:11:21.94 lxNHl3xJ0
フォトギャラリーって自動縮小でしょ。100%で表示しないと。

あと、フォトギャラリーで表示した状態でキャプチャしてそれを切り取って検索したらうまくいくはず。


818:名無しさん@お腹いっぱい。
11/06/09 21:12:52.58 yG+RHF7P0
認識の精度を上げるんじゃなくて下げるんだろ。
違う画像を認識させようってんだから。

819:名無しさん@お腹いっぱい。
11/06/09 22:09:16.44 Hr+TP2+u0
ここも、GIMPスレ並のYahoo!知恵遅れ状態だなぁ…
UWSCで何させようとしてるか判ったら、爆笑できそうだな。w

820:名無しさん@お腹いっぱい。
11/06/09 22:19:56.08 lxNHl3xJ0
>>819
知りたいならほらここに
URLリンク(dl7.getuploader.com)

821:名無しさん@お腹いっぱい。
11/06/10 08:07:51.29 RPvBhsfT0
>>820
なにこれ、こんなに書いたの?かわいそう・・

822:名無しさん@お腹いっぱい。
11/06/10 13:20:01.54 jWf5r0Hv0
>>819
物をどう使おうと個人の自由だろ
お前は他人の使い方をバカに出来る程に凄い使い方してんの?


823:名無しさん@お腹いっぱい。
11/06/10 16:18:12.59 gqJ9okoX0
そういう意味か。

てっきり、A→Bと言う方法があるのに、A→C→D→E→B と言う風にするなんてプギャーみたいな事かと思った。


824:名無しさん@お腹いっぱい。
11/06/10 19:05:04.44 cKzGyQ5z0
>>822
いや、ボクが爆笑できそうなのは>>823が近い。
どっちかって言うと、UWSCじゃ無いソフトでスコーンとやれそうな気がして、想像すると笑えるって話さ。w
>>817が結論っぽいんだけど、そうなのかどうなのか返事が無いからなんともだし。
>>それと目的の画像をペイントで表示する場合は認識するのですが画像として表示させた場合は認識しません。
こんな事書かれても、なにをどうしたのか、サッパリワカラナイヨ。
>>ペイントで表示する
>>画像として表示する
どう違うってんだ?w
バカにされたくなかったら、他人が読んでも判る文章を書くべきじゃないのかな?

825:名無しさん@お腹いっぱい。
11/06/10 22:22:40.21 yDzVvEQ00
> UWSCじゃ無いソフトでスコーンとやれそうな気がして

やれたとしてそっちを使う意味がどれほどあるかってことなんだけど。


ところでLuaっていう言語はコンパイルもできるっぽくていいね。
VM使うみたいだけど、
C言語 ⇔ Lua の相互呼び出しが可能なので、Windowメッセージでスクリプト関数を呼び出すなんてことも可能。

でもC++とか.netでも使えるかどうかが分からないな。

826:名無しさん@お腹いっぱい。
11/06/10 22:30:22.60 cKzGyQ5z0
>>825
うーむ、キミの読解力の無さに絶望したぁぁぁぁ。

例えば、UWSCを使ってIEで2ちゃんねるを巡回するより、専用ブラウザ使った方が楽だろ?

827:名無しさん@お腹いっぱい。
11/06/10 22:31:51.02 7YTvWQ+P0
メイプルでchkimg使うとき範囲指定したら認識してくれないんだけど・・
手作業でメイプルのウィンドウ内をクリックしたらなぜか認識してくれるんだけど
KBDでやっても認識してくれないんだけどなにかコツとかあるんですか?

あとsaveimgでメイプルのウィンドウ内の画像取ったら真っ白になるんだけど
これってちゃんと撮れる方法とかないんですか?



828:名無しさん@お腹いっぱい。
11/06/10 22:33:28.90 7YTvWQ+P0
訂正 KBDじゃなくてBTNでした


829:名無しさん@お腹いっぱい。
11/06/10 22:41:55.44 cKzGyQ5z0
あれ?
結局、ボットの話?

830:名無しさん@お腹いっぱい。
11/06/10 23:38:48.47 yDzVvEQ00
>>827
> KBD→BTNでやっても認識してくれないんだけど

時々クリックできないバグみたいのがあるんですよ。ボタンをあげることが出来ない場合とか。
その状態でもマウスカーソルの移動とクリック動作はしてたりします。
だからマウスカーソルが移動するのかしないのか、その上でクリックできるのか出来ないのか言ってくれないと。
まあどっちにしろ分かりませんけどね。

mouseorgで座標の基準がずれてるのかもしれないし。

もしかするとmouseorg(ID, 2)で、目的のアプリのIDとは違うものを指定しているとか。
それでイベントがあさっての方向に飛んでいっているとか。
あるいは適切なコントロールにメッセージが飛んでないとか。
>>644みたいに
> MOUSEORG(GETCTLHND(id,"Edit"),2)
ってコントロールを指定しないといけないとか。


>>826
> 専用ブラウザ使った方が楽だろ?
UWSCが使えるならUWSCで専用ブラウザをコントロールするとはかどりますけど?


831:名無しさん@お腹いっぱい。
11/06/11 01:43:47.27 KTsgiup00
>>824
>バカにされたくなかったら、他人が読んでも判る文章を書くべきじゃないのかな?

始めはなにをさせようとしてるか判ったら
って言ってるのに次は文章ですか。
論点のすり替え上手いね。


832:名無しさん@お腹いっぱい。
11/06/11 04:47:58.70 EYzj6ZLD0
メイプルの画像認識は検索範囲をウィンドウの外から始めないと上手くいかない
例えば、HP回復だと

ID = GETID("MapleStory")
MX = STATUS(ID,ST_X)
MY = STATUS(ID,ST_Y)
HPx = 500 + MX
HPy = 780 + MY
ifb CHKIMG("HP.bmp",0,MX-1,MY-1,HPx,HPy) then
KBD(VK_HOME,CLICK,100)
endif

だと上手くいくけど、
CHKIMG("HP.bmp",0,MX,MY,HPx,HPy)
にすると認識してくれなくなる

833:名無しさん@お腹いっぱい。
11/06/11 06:24:00.15 qnFNK3qZ0
>>825
>C言語 ⇔ Lua の相互呼び出しが可能なので
perl、ruby、python一般的に使われてるほとんどのスクリプト言語で可能だよ

>VM使うみたいだけど、
VMってバイトコードインタプリタのことだけど
実行方法がなんか問題あるの?JITで爆速じゃないとヤダとかなら
LuaJIT Projectとかあるよ

>でもC++とか.netでも使えるかどうか
C言語で使える=C++からも使える

人気の言語は次々にCLI(.net)に植されているよ
まだ実行速度が十分じゃないけどそれでもUWSCの100倍は速いよ
まあ結局C#が素晴らしすぎるからみんなC#使っちゃうんだけどね

IronPython - Home
URLリンク(ironpython.codeplex.com)
IronRuby.net /
URLリンク(www.ironruby.net)
Lablua - Home
URLリンク(www.lua.inf.puc-rio.br)

834:名無しさん@お腹いっぱい。
11/06/12 12:33:10.22 IEVSGnHg0
>>813
>>814
>>816
結局、この書き込みなんだったんだろう…

835:名無しさん@お腹いっぱい。
11/06/12 19:07:19.31 4/CpV7DF0
RGBのうちBの値が100<150のときに動作Aを行うようにしたいのですが、
「関数が正しく閉じていません」とエラーがでてしまいます
なにが原因なんでしょう

IFB(PEEKCOLOR(700,300) and $FF0000)/$10000 100< and <150 then
動作A
else
動作B
Endif

836:名無しさん@お腹いっぱい。
11/06/12 20:23:35.55 NIxSeDQw0
>>835
ヘルプの「関数の定義」を読めば判る

837:名無しさん@お腹いっぱい。
11/06/12 20:32:47.17 Dg1uIKsE0
>>835
IFB  (PEEKCOLOR(700,300) and $FF0000)/$10000   100< and <150 then
  ↑スペースがないから関数の括弧扱い       ↑?

> 100< and <150
こんな比較方法はありません。
こうしないと↓
 (100 < B)  and  (B < 150)

だけどPeekColorを2回も呼び出すと遅くなるから、一旦変数に入れるべき。


838:名無しさん@お腹いっぱい。
11/06/12 20:35:44.75 NIxSeDQw0
よく読んだら違うか…ifの比較文がだめなんだろ。
true,falseで判断できない式は認められない。

あと、三つの値の同時比較はuwscは対応していない。

839:名無しさん@お腹いっぱい。
11/06/12 20:40:37.13 Dg1uIKsE0
> true,falseで判断できない式は認められない。

falseでないものは全てtrueになるので問題ない

840:名無しさん@お腹いっぱい。
11/06/12 20:54:13.06 NIxSeDQw0
>>839
マジかよw …と思ってたら、
100< and <150 は1でtrue扱いだったw

841:名無しさん@お腹いっぱい。
11/06/12 20:55:34.87 4/CpV7DF0
>>836-839
ありがとうございます。
とりあえず100以上であれば大丈夫そうなのでそれでやってみます

842:名無しさん@お腹いっぱい。
11/06/12 20:57:27.21 FmPEfqxB0
なにこれ気持ち悪い・・
書けば書くほど発見されていく糞仕様

print ( 100 < and < 150 ) //=> 1

843:名無しさん@お腹いっぱい。
11/06/12 21:10:04.08 Dg1uIKsE0
100 -> 01100100
150 -> 10010110
論理積 00000100

比較演算子が無視されてるかな


844:名無しさん@お腹いっぱい。
11/06/12 21:17:37.86 fHCxpPOf0
数値 < and // 常に0
数値 > and // 常に1

100 < and < 150 → (100 < and) < 150 → 0 < 150

845:名無しさん@お腹いっぱい。
11/06/12 21:28:14.28 FmPEfqxB0
print ( and )
print ( or )
print ( and + or )

全部エラーにしてくれないよ

846:名無しさん@お腹いっぱい。
11/06/12 21:31:07.64 NIxSeDQw0
>>844
納得した。

こういうのって一般的に構文エラーにするべき物?


847:名無しさん@お腹いっぱい。
11/06/12 21:33:53.08 FmPEfqxB0
UWSCはBNFすら公開されてないしパーサが正しい文として解釈してるんだろうと想像するしかないよね

848:名無しさん@お腹いっぱい。
11/06/12 23:25:55.80 IEVSGnHg0
別に、いちいちエラーにしてくれなくても問題無いじゃん?
こうこう、こんな事したら、思ったとおりに動かないんです。
と、作者に 日本語で メールするなりすれば良い事。
結果に影響が無いなら、俺だって放置するさ。w

849:名無しさん@お腹いっぱい。
11/06/13 00:55:54.91 tupIRmvE0
例)キャラがX座標の指定の位置まで右に動き、指定の位置に着いたらジャンプをする
次に指定の位置まで左に動き、指定の位置に着いたら上に移動する
次に指定の位置まで右に動き、指定の位置に着いたら最初の位置まで左に移動する

というように条件を満たした場合、次の動作をするそして全ての動作が終わったらまた最初から繰り返す
というようなマクロを作りたいと思っていますが 作り方がわかりません
教えていただけないでしょうか? よろしくお願いします

下記のものは考えつく構成ですがこれではうまくいきませんでした
WHILE CHKIMG("自分のマーク.BMP",0,0,0,0,0)
KBD(VK_RIGHT,1,100)
KBD(VK_ジャンプキー,0,200)
WEND
KBD(VK_RIGHT,2,100)

WHILE !CHKIMG("自分のマーク.BMP",0,0,0,0,0)


850:名無しさん@お腹いっぱい。
11/06/13 01:19:09.81 1it66pKH0
>>849
そういうのはモジュール化した方がいいね。
で、グループ化(見た目的に)する。
キャラ位置の確認方法は分からん。画像判定は難しいからね。
VK_Right とかそのまま使ったけど、キーコードはグローバル変数で持った方がいいね。

// ステップ1
伽羅.→歩行()
伽羅.停止()
伽羅.跳躍()

// ステップ2
伽羅.←歩行()
伽羅.停止()
伽羅.上昇()

// ステップ3
伽羅.→歩行()
伽羅.←歩行()
伽羅.停止()

module 伽羅
 dim r_key = false  // falseはUP中、trueはDOWN中
 dim j_key = false   //
 ・・・
 function →歩行()
  ・・・
  // →に移動するには、←をキャンセルしないといけないので、それを先にやる。
  ifb l_key then
   kbd(VK_Left, UP); l_key = false; sleep(0.023)
  endif
  kbd(VK_Right, DOWN); r_key = true  // ←操作と状態は1行につなげると確実にセットで指定できる。間違えにくい。

851:名無しさん@お腹いっぱい。
11/06/14 10:43:48.94 N4XAViK70
UWSCでCOMやAPIを扱いたいのですが、
調べ方が悪いのかさっぱり理解できません。
これらを扱うには多言語から行った方がいいのでしょうか
あとこれらはオブジェクト指向というものなのでしょうか。

852:名無しさん@お腹いっぱい。
11/06/14 13:59:28.35 RsLKFePU0
>>851
APIは違うけどCOMはオブジェクト指向な技術。

ただし、いわゆるオブジェクト指向プログラミングとは違う。

APIについて知りたい時は、
「WIN32 api」と関連キーワードで検索

DLLの宣言が知りたければ
UWSCの DEF_DLL とか
VBの"Declare Function"で検索

COM オブジェクトについては
UWSCの CREATEOLEOBJ とか
VBScriptの CreateObject で検索すると使用例が出るので早い。

オブジェクトの詳細はオブジェクト名+site:msdn.microsoft.com を
「日本語で検索」オプションで検索。


853:名無しさん@お腹いっぱい。
11/06/14 14:16:56.70 N4XAViK70
>>852
簡潔で分かりやすい説明ありがとうございます。
早速検索などで調べてきます。

854:名無しさん@お腹いっぱい。
11/06/14 17:00:03.32 NrA1k+P90
ちょとすれ違いかもですが
とあるゲームでUIにほとんどKBが割り当てられてないので
Enter押したら指定座標にあるOKボタンをクリック
→キーを押したらして座標にある次のページへのボタンをクリック
みたいな機能を作りたいんですがUWSCでできますでしょうか

以前はkeybatでやってたんですが、7に変えてから使えなくなってしまったので

855:名無しさん@お腹いっぱい。
11/06/14 18:14:41.40 RsLKFePU0
> Key Batはキーボードとマウスにドライバレベルで割り込むので、
> Direct X用のソフトや、MS-DOSプロンプトのソフトでさえ、その支配下におさめ、
> 非常に強力なマクロ実行が行なえます。

ああ、UWSCは確かにキーボードやマウスを操縦できますが、
目的のソフトで使えるかどうかは分かりませんね。

> →キーを押したらして座標にある次のページへのボタンをクリック

SETHOTKEYが使えるかも。
試したら大概のキーを一つの関数に割り当てできたので、分岐したらシンプルにまとまりますね。

SetHotKey( VK_Right, 0, r_crick ) // 省略方法がよく分からないのでとりあえず0

while true
 sleep(1)
wend

function r_crick()
 ifb chkimg("OK_Button.bmp",IMG_MSK_BGR4,0,0,200,200)
  BTN( RIGHT, CLICK, G_IMG_X、 G_IMG_Y )
 endif
fend

--
VK_LEFT
VK_UP
VK_RIGHT
VK_DOWN


856:名無しさん@お腹いっぱい。
11/06/14 19:31:03.27 RsLKFePU0
SetHotKey() 意外と使えるわ。

SetHotKey( Ascb(c), , "OnKeyClick" )
とかでほとんどのキーや文字を割り当ててインターセプトしても、
そのままKBD()で操作すれば漢字入力も普通に出来るし、
コピペとかもできる。

Procedure OnKeyClick()
 kbd(HOTKEY_VK, click)
Fend

問題はカーソルキー(↑↓←→)かな。
押しっぱなしはClickじゃなくてDOWNだけど、文字で見る限りClickしてもDownしても同じに見える。

いや、それより、操縦とチャットの切り替えの判断が必要になることか。
アプリケーションの切り替えならアクティブかどうか見ればいいけど・・・
それはどのやり方でも一緒か。


857:名無しさん@お腹いっぱい。
11/06/15 13:18:18.59 sbQ8YLFV0
外部からUWSCの関数を呼び出す方法があればいいなと思ってたけど、
HotKey経由でやったらいいかもしれん。

受け渡すデータはクリップボードに入れておいて、キー入力を発行。
単純にクリップボードを監視するループでやるよりもCPU食わんし
誤作動の確率が減る。

でも、KBD()とクリップボードが扱えるならUWSCを呼び出す意味ってないかも。

別プロセスとして起動したUWSCとの通信に利用できるか。
やってみたら出来たけど、複数登録は出来ないね。
登録が一つのキーには一つ。
だから違うキーを使えばやり取りは可能。
UWSC同士でやっても混乱するだけだけど、やれなくもない。


858:名無しさん@お腹いっぱい。
11/06/15 13:20:45.80 zhjWWPW20
>外部からUWSCの関数を呼び出す方法があればいいなと思ってたけど、

全くやる必要を感じません
普通の脳の持ち主は仕様が提供されている他の処理系を使います。

859:名無しさん@お腹いっぱい。
11/06/15 14:16:43.49 sbQ8YLFV0
>>858
たとえばどれ?

860:名無しさん@お腹いっぱい。
11/06/15 14:27:24.41 wLEdGhI20
プロセス間通信をサポートしてる処理系。

UWSCでなんでもかんでもやりたい基地の人と同一だろうけど
そういった用途のスレでは無いし
あんた荒らしにしかなってないから自分のサイトでやっててってみんな思ってるよ

861:名無しさん@お腹いっぱい。
11/06/15 15:20:02.91 sbQ8YLFV0
そうは言うけど.netとVS入れたら何GBも食うでしょ。しかもC:ドライブを。
しかも別のマシンで実行するには.netとかDLLをセットアップしないと動かない。
俺は旧いPCとXPしか持ってないからきついんですよね。

スクリプトなら軽量かなとPython入れてみたら案外でっかいし
簡単そうに見えて案外難しかったし
あのときはいきなりUnity3Dを動かしてみようと思ったのが悪かったのかもしれないが。
HSPも意外とでっかいんだよね。
画面が簡単に作れるのはいいんだけど画面以外とのやりとりがいまいちよくわからなかった。
画面内だけのことならSmallBasicが出てきたからこっちのほうが文法とか含めて分かりやすいかなと。
SmallBasicはサイズは軽量な割りにIDEがアニメーション使いまくっててゲストじゃ重かったけど、
HSPだってネイティブのようには軽くないし。

確かにUWSCは文法や挙動がいまいち分かりにくかったりしますが、
一旦覚えてしまえばエディタで気楽に書けるし実行するのも本体の実行ファイルがあればいいし、
やれる範囲のことなら楽なんですよ。
そんなたいそうなことは最初からやらないしね。

こんなことをだらだら書くほうがよっぽどうざいと思うけど>>860みたいに言われたら書くしかないよね?

まあお勧めはやっぱりSmallBasic+VBかな。
HSPも初心者に優しいけど文法とかがな・・
本気でプログラマ目指すならC++。もうちょっと楽なところがよければJAVAかC#かVB。

Ruby?なにそれ。
今、Luaとか squirrel とか AngelScript とかも見てみているんだけど
やっぱりどれもいいところと悪いところとあって迷うんだよね。
中途半端に手をつけると混乱するだけだし。

昔、親指シフトをエミュで練習したことがあったけど、必ずローマ字入力のときに混乱するんだよね。
確かに入力は速いかもしれないけどそれだけで通用するわけじゃない。
特にエミュはそれを覚えた人が応急的に使うものであって、親指キーボードを持たない人がやるものじゃなかった。

862:名無しさん@お腹いっぱい。
11/06/15 15:27:38.53 wLEdGhI20
相変わらず基地外すぎワロタ

お前の環境とかオススメとか誰も求めてないんで。
お引き取りください、そして2度と来ないでください。

続きはこちらに好きなだけ書いてください、さようなら。
URLリンク(scripts.web.fc2.com)

863:名無しさん@お腹いっぱい。
11/06/15 16:04:35.95 sbQ8YLFV0
>>862
あんたはUWSC使わなくても何でも出来るんでしょ?なんでUWSCを使ってるの?
何でも作れるような人がUWSCを使う意味って何?
むしろそこが重要なんじゃね?


864:名無しさん@お腹いっぱい。
11/06/15 16:12:49.77 wLEdGhI20
>>853
今の仕事の前任の人が業務で使うものを好き勝手UWCSとかいう糞アプリで大量書いて捨てて行ったから
それを保守、メンテナンスするハメになっている縁でスレ見てるだけだよ。

俺が.net frameworkで書き換えるのは簡単だけど
UWなんとかはwebのどこ探しても仕様書なんて見つからないから
業務で一定期間使ってる以上簡単には切り替えられないんだよ。わかるでしょ?

お前みたいななんでもかんでも裏技的なテクニックを使って実装しようとしてる基地外を見て
不幸な人間を増やしたくないと思った。

865:名無しさん@お腹いっぱい。
11/06/15 16:53:47.71 q7sA7lWs0
本気で何言ってるかわからないからもう少し落ち着いてレスしてみてはどうでしょうか?

866:名無しさん@お腹いっぱい。
11/06/15 16:56:09.16 OlG7pJRRi
>>864
.net(C#,VB)でのUWSC的な
・他ウィンドウの制御のサンプル
・デスクトップ画面の画像認識の手法サンプル
を教えてくださると凄く嬉しい。

…助けて。
私はそれが出来ずに、不幸を引き継ぎそうな低レベルな人です。
事務的な足し引きは判るけど、上記の様な一つ進んだ内容になるとアリモノを使う以外に無かった。
取っ掛かりさえあれば…と毎度思っていたのです。

867:名無しさん@お腹いっぱい。
11/06/15 17:01:54.60 sbQ8YLFV0
どんな環境だって問題が複雑になれば裏技的にやるもんでしょ。
大事なことは正しく知ること。

↓に引用したのがあるけど、みんな自分に合った物を捜し求めてるんですよ。
スレリンク(tech板:270番)
> Luaはダメだ。 AngelScriptを試してみよう… 

> とりあえず実装可能っぽいけど… 呼び出しコストとかどうなんだろ?
> 試すしかないかなぁ… はぁ… 資料少ないなぁ。


.net framework だってOSが新しくなればメンテナンスは必要でしょ。
もちろん.netは開発効率はいいんでしょうけどね。

自分のHPであれが出来ないこれがダメとかやってもいいんですけど、
業務妨害とか言われたりするのがね・・・
自分が間違っていたりした場合でも、レスが返せれば間違いを訂正してくれる人がいるかもしれないけど、
そんな凝ったページ作るのめんどくさいし。
何より、人がレスくれたページをいじくって消すと申し訳ないじゃないですか?
とにかくめんどくさいんですよ。
あなたがUWSCのメンテがうざいって言うのと同じようにね。


868:名無しさん@お腹いっぱい。
11/06/15 17:16:04.68 wLEdGhI20
>>866
例えばUWSCに添付されているGuruGuru.uws(でしたっけ?)のようなものと
chkimgしてクリックするようなサンプルをC#書いてアップローダにアップしますね

>>867
>どんな環境だって問題が複雑になれば裏技的にやるもんでしょ。
しません。

Linuxのシステム管理スクリプトがなぜperlからpythonに取って変わられたのか調べてみてください。

869:名無しさん@お腹いっぱい。
11/06/15 17:24:43.36 sbQ8YLFV0
> なぜperlからpythonに取って変わられたのか

書けるけど読めないからでしょ?


870:名無しさん@お腹いっぱい。
11/06/15 17:33:58.67 OlG7pJRRi
>>868
ありがたい。
出来れば、GruGru.uwsよりかは、『サンプル.uws』のような情報取得と入力等の機械的制御が本分かと思います。

871:名無しさん@お腹いっぱい。
11/06/15 17:40:45.16 wLEdGhI20
>>869
もちろんperlはきれいに書こうと思えば書けるんですが
Perlのモットーは「やり方はいろいろある (TMTOWTDI; There's More Than One Way To Do It)」なので
100人プログラマがいたら100通りの書きかたが出来てしまいます。
裏技的に書く書きかたが許されているのでグダグダになりやすいんですよね。

対してPythonはwikipediaの頁にも書かれているように

>Pythonでは多くのユーザによって書かれた同一の仕事をするプログラムは、
>だいたいどれも同じようなコードに収束する。基本機能にないものの多くはライブラリによって提供されている。
>また、Pythonではプログラムの文書化(ソフトウェアドキュメンテーション)が重視されており、言語の基本機能の一部となっている。

ドキュメントが豊富で誰が書いてもだいたいどれも同じようなコードに収束したほうが
他人が書いたコードを再利用しやすいですよね。
どちらの言語がより一般的になっていくかは明白ですよね。


ところでUWSCはどうでしょう、ドキュメントは読みやすいですか?
バイナリを扱う仕様はありますか?扱えたところで他人から見て暗号のようなソースコードになりませんか?

872:名無しさん@お腹いっぱい。
11/06/15 17:55:25.02 sbQ8YLFV0
>>871
> ドキュメントは読みやすいですか?

ヘルプの使い方を勉強すれば使えるよ。
あと、ソースコードも日本語が自由に使えるから読みやすいよ。
コードがどんなであれ、日本語のコメントを入れれば解決。

> バイナリを扱う仕様はありますか?
それができないねえって書いてたら怒られたんですけど。

> 扱えたところで他人から見て暗号のようなソースコードになりませんか?
関数化して見えなくすれば解決しますよ。
何子供みたいなこと言ってるんですか。
中身が分からないならテストする。それで解決ですよ。

>>871
> Perlのモットーは
最もよく使われてきたC言語
今も信頼されて使われることの多いC言語も、自由に書けるようになっていますが何か。

確かにPerlの難解さは異常かもしれませんが、当時はPerl以外にありえなかったんです。
だからPerlが使われてきたんです。


873:名無しさん@お腹いっぱい。
11/06/15 18:22:25.68 u0W1DsLj0
>>855
なんとか希望通りの操作は実行できたんですが
やはりキーボードがゲームのほうに奪われてるのか
ゲームが非アクティブな状態からでしか実行されませんでした

なにか他のツール探してみます

874:名無しさん@お腹いっぱい。
11/06/15 19:11:09.84 q1hBrkaN0
言語自体の是非についてならム板あたりでやって欲しいなぁ。

875:名無しさん@お腹いっぱい。
11/06/15 19:23:05.59 DNfS8KFj0
>>873
AHKは?

876:名無しさん@お腹いっぱい。
11/06/16 18:33:49.37 VwsA5JPn0
RecIEで記録していって、うまくいっていたのですが、ある一箇所で動かなくなってしまいました。
その部分の書かれている物を抽出してみたら、下記のように書かれている部分でした。

<a onclick="javascript:loadpage('/job/start.jsp');" href="javascript:void(0)"><span>スタート</span></a>

これはjavascriptと呼ばれるものでしょうか?
こういうものをマウスクリック以外で自動で押下して先のページに進むにはどうしたらいいでしょうか?
ググって、見よう見まねで応用してみたのですが、うまく機能するサンプルがありませんでした。
どうかお願いしますm(_ _)m。


877:名無しさん@お腹いっぱい。
11/06/16 19:19:53.71 nEU2InOi0
>>876
なんかのセキュリティ制限に引っかかってるんじゃない?
OSとIE何よ

878:名無しさん@お腹いっぱい。
11/06/16 20:06:08.70 VwsA5JPn0
>>877
ありがとうございます。
IEは8.0.7600と書かれています。
OSはWindows7 Professional です。
お願いします。


879:名無しさん@お腹いっぱい。
11/06/16 20:35:29.24 K8S7LB6t0
>>876
onclickだから多分、そのボタンのIDを探して
IE.Document.all.BUTTONID.Click()
ってやったらクリックできるかも。

allでだめな場合はFormのIDか番号も必要かも。


880:名無しさん@お腹いっぱい。
11/06/17 10:12:51.09 HostJxq00
flash上でドラッグ&ドロップを行いたいのですが、
BTN(LEFT,DOWN,~
BTN(LEFT,UP,~
では出来ませんでした。
実現可能な方法がありましたら教えてください

881:880
11/06/17 10:22:59.10 HostJxq00
ドロップ側の受け取りイベントが上手く発生しなかっただけみたいです
失礼しました

882:名無しさん@お腹いっぱい。
11/06/17 10:30:21.47 RK2DsXbm0
>>879
ありがとうございます。
IDといいますと、html上でのIDでしょうか?
このアンカー自体にはIDはふられてませんが、2階層上のLOGINという名前のIDのふられたDIVの中にある唯一のアンカ-なので、特定は可能だと思います。

いちおう、
IE.Document.all.LOGIN.Click()
で走らせましたが、当該の行で、
COM:error 例外が発生しました
と表示されて終了してしまいました。

ボタン自体にIDがない場合の書式はどうすればいいのでしょうか?
どうかお願いしますm(_ _)m

883:名無しさん@お腹いっぱい。
11/06/17 11:50:51.82 BQ8MrwPV0
>>882
DIVのIDは直接扱えないっぽいですよね。
単独では使えますけど。

GetElementByID()でDIVのIDからオブジェクトを取得し、
そのオブジェクトを元に
getchildnodesやGetNextElementなどでたどっていって<a>タグのオブジェクトを取得できれば、
aタグ.click() が実行できるかも。

ちなみにUWSCの標準関数ではタグを指定してソースを取得は出来ますけど
オブジェクトを取らないとClickできないので。


UWSC的にはブラウザのアクセス方法はやめてClkItemが早いかも。
ClkItem( HNDToID(IE.HWND), "スタート", CLK_ACC, , 番号1から )


884:名無しさん@お腹いっぱい。
11/06/17 18:44:23.49 lxZwA0Pt0
>>875
AutoHotKeyでもダメでした
ドライバレベルでフックしないとだめっぽさそうです

885:名無しさん@お腹いっぱい。
11/06/19 22:59:16.65 eQCK3OW/0
PowerShellの実行が複数行行けるから、EVALで同様に出来るかなと思ったけど無理だった。
関数として記述すればいいんだけどね。
それかファイルに吐き出してExec()か。


他アプリの操縦は別としてだけど
UWSCに変わるスクリプト言語としてBooってのもいいかも。

文法は6割がPythonと共通で、.net またはLinuxのMonoのアプリケーションだけど、
ランタイム自体はUWSC並に小さくてエディタで書いていけるらしい。

実行形態は対話形式スクリプト、スクリプトファイルの実行、コンパイルしてexe単体実行ができる。


最初のうちはHTMLをローカルで実行できるHTAがいいかなと思ったけど
JScriptかVBScriptなんだよね。どっちもあんまり・・
もちろん汎用的ではあるんだけどUWSC覚えたらUWSCの範囲でやってしまう。


886:名無しさん@お腹いっぱい。
11/06/20 02:36:37.81 DEpdX2Q90
「らしい」とか「みたいだけど」とかって言うヤツは信用しちゃならねってばっちゃが言ってた。

887:名無しさん@お腹いっぱい。
11/06/20 02:48:08.49 UtQuLi1d0
新規で覚えるなら
.netが必要ならば.net環境で作るよ…

888:名無しさん@お腹いっぱい。
11/06/20 23:27:44.43 z7NNg7kU0
タスクトレイのVolumeを右クリック後の再生デバイスを選択するにはどうしたらいいですか?



889:名無しさん@お腹いっぱい。
11/06/21 00:12:23.80 oVTX5Fts0
>>888
オーディオプロパティの調整とか表示されてるメニュー?

基本的にトップレベルにないと消えるメニューだから (A)とかで指定されたキーを KBD()で送信でもいいけど、
めくら操作したくないならウィンドウクラス"#32768"でGetIDすればいい。

メニュー Class:"#32768"
ダイアログ Class:"#32770"
ツールチップ Class:"tooltips_class32"


890:名無しさん@お腹いっぱい。
11/06/21 00:37:51.47 S+8VIifV0
>>889
有り難う御座います!
書き込んでからKBD()で行ける事に気が付きました…
タイトルないので指定出来ないと思って居ましたが
クラス名#32768でもそうやって指定すれば行けるんですね
一つ勉強になりました。


891:名無しさん@お腹いっぱい。
11/06/21 13:04:45.37 u0jvZuWG0
>>883
どうもありがとうございました。
ClkItemで代用し、一応動きはするのですが、
バックグラウンドでの動作はできないようでした。
どうしてもクリックと同時に最前面に出てきてしまいます。

IDの指定と、オブジェクトの取得は、スキルが必要なようです。
もしそれについての解説サイトがあれば、お教えいただければ幸いです。


892:名無しさん@お腹いっぱい。
11/06/22 08:27:35.93 wz2XRv7P0
1ステップ1ステップ小出しにしてねーで
そもそも何をやろうとしてんだよ。 糞が。

893:名無しさん@お腹いっぱい。
11/06/22 09:44:40.57 o+QMX4X/0
そんな事書いたら、オンラインゲーム必死だな( ´,_ゝ`)プッって笑われるだろーが!!

894:名無しさん@お腹いっぱい。
11/06/22 10:29:12.69 wz2XRv7P0
あー、そっかーーーーー。
そうだったんだーーー
そっかーーーーー ごーめーんーーーー >>891

895:名無しさん@お腹いっぱい。
11/06/22 10:40:02.94 Qo85tCH30
オンラインゲームでRMTして儲けたいからマクロ書いてください
ってこと?

896:名無しさん@お腹いっぱい。
11/06/25 15:22:20.33 e2nGd7v50
マウスやキーボード入力が一定時間なかったことを確認する方法はないですか?
スクリプト起動直後に今アイドリング状態なのか判定したい


897:名無しさん@お腹いっぱい。
11/06/25 16:22:27.74 dircKt8/0
>>896
getkeystate

898:名無しさん@お腹いっぱい。
11/06/28 04:11:54.59 kXJni/fc0
CHKIMG関数で質問です

検索範囲未指定時は画面全体が対象との認識であってますか?
また最小化時にチェックすることは可能ですか?

899:名無しさん@お腹いっぱい。
11/06/28 07:51:27.17 oMsiC+dA0
>>898に質問です

どうして試さないんですか?

900:名無しさん@お腹いっぱい。
11/06/29 15:56:24.05 rcowTlhM0
UWSCというマクロツールで ランダム質問をクリックしてから”役に立った” (下URL参照)をクリックするプログラムを作りたいのですが
うまくいきません。
URLリンク(detail.chiebukuro.yahoo.co.jp)
私の作ったプログラムはランダム質問までいくのですがそこからがいきません。 何が悪いのでしょうか?
とりあえず私の未完成プログラムを書きますね^^

皆さんの回答をお待ちしております
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = true
IE.navigate("detail.chiebukuro.yahoo.co.jp/qa/rand.php")

REPEAT
sleep(0.5)
UNTIL !IE.busy AND IE.readystate = 4
ret = IELINK(IE,"役に立った!")

901:名無しさん@お腹いっぱい。
11/06/29 18:03:44.63 duIKIGLv0
バックグラウンドで動作するプロセスの起動確認をUWSCでしたいのですが、
どうすれば出来ますか?

タスクマネージャのプロセス一覧には表示されるけど、タスクバーには表示されないので、
GETALLWINでは取得できません。

ちなみにVBSでは以下の記述で使っていました。

Set objProcList = GetObject("winmgmts:").InstancesOf("win32_process")

For Each objProcess In objProcList

if objProcess.name = "aaa.exe" then
msgbox "aaa.exe は起動しています"
Exit For
end if
Next


902:名無しさん@お腹いっぱい。
11/06/29 18:29:42.27 deNe4CIU0
>>901
.length 個の.item(i) があるようです。

URLリンク(www3.bigcosmic.com)
for i= 0 to col.length-1
  objITEM = col.item(i)
  ifb objITEM.Name = "kansou" And objITEM.Value = strRADIO1[nNO]
    objITEM.Checked = True
    break
  endif
next

GETOLEITEMもあるっぽい
// c:\windows下のディレクトリ表示
fs = CreateOLEObj("Scripting.FileSystemObject")
gf = fs.GetFolder("c:\windows")
for i = 0 to GETOLEITEM(gf.SubFolders)-1 // コレクション取得
  print ALL_OLE_ITEM[i].name
next

結果だけが欲しければコピペをPOWERSHELLで処理するとか
あ、書式だいぶ違った。

qprocess | find "iexp" をDOSCMNDで実行して戻り値を見るとか
ただし、最後に改行がつくから面倒な場合もある。


903:名無しさん@お腹いっぱい。
11/06/29 21:20:55.86 DrTJUpW80
uwscファイルの修正を行っていたらわけがわからなくなってしまったので
もしよければ教えていただきたいと思い書き込みしました。

elseif CHKIMG("A.bmp", 0) then
x1 = G_IMG_X; y1 = G_IMG_Y;

質問1:G_IMG_Xとは画像のX座標のどの位置を指すのですか?(中心とか右端とか)
質問2:例えばA.bmpの中心座標x1からbだけずれた位置をxと定義する場合
どのようにx1 = G_IMG_X; y1 = G_IMG_Y;以降に書き加えればよいのでしょうか?
色々と調べてみたのですがわからなかったのでお手数おかけしますがご指導お願いします。


904:名無しさん@お腹いっぱい。
11/06/29 21:35:31.02 LB4seq1X0
この程度の事なら調べたら絶対どこかに載ってるだろ

905:名無しさん@お腹いっぱい。
11/06/29 21:38:50.36 D8kMG3Lx0
FUKIDASIを使うと発見場所をピンポイントで指してくれていいんだけどね

906:名無しさん@お腹いっぱい。
11/06/29 22:33:33.68 wC2OHX7t0
>>903
左上
G_IMG_X+b

907:名無しさん@お腹いっぱい。
11/06/29 23:11:49.90 DrTJUpW80
>>904->>906
ご指導ありがとうございました!!
特に>>906さんのヒントで修正できました!
わざわざお忙しい中教えてくれてありがとうございます!

908:名無しさん@お腹いっぱい。
11/06/29 23:15:59.86 bZrINL020
釣りさげさんw

909:名無しさん@お腹いっぱい。
11/06/29 23:28:28.31 DrTJUpW80
>>908
そうなんですww
恥ずかしい--;

910:名無しさん@お腹いっぱい。
11/06/29 23:36:29.67 bZrINL020
聞くは一時の恥と言いますしクレクレ言ってるより全然いいです

911:名無しさん@お腹いっぱい。
11/06/30 04:26:45.68 jnOygYoc0
>>902
サンクス、ずいぶん短くなった
if doscmd("qprocess | find <#DBL>aaa.exe<#DBL>") <>"" then msgbox("aaa.exe は起動しています")

912:名無しさん@お腹いっぱい。
11/06/30 12:59:42.54 KNK9iezw0
WebFlash上で該当画像が見つかったらクリック、見つからなかったらもう一度探す
ように動作させたいのですがどこを変えれば良いでしょうか

while True

if GETKEYSTATE(VK_ESC) then exit     // ESCキーを押すと終了させる


ifb CHKIMG("該当画像.bmp")      // 画面上に画像があった場合以下へ

x=G_IMG_X // 画像の座標をxへ代入
y=G_IMG_Y // 画像の座標をyへ代入

BTN(LEFT, CLICK, x, y, 80)   // 画像の場所を左クリック
endif

wend

913:名無しさん@お腹いっぱい。
11/06/30 14:18:35.54 w5XXpq2P0
見つかった場合ループ抜けるなら
endifの前にBREAKでいいんじゃないかな

もしくは

REPEAT
SLEEP(0.5)
UNTIL CHKIMG("画像.bmp")
BTN(LEFT, CLICK, G_IMG_X, G_MIG_Y,)

こんな感じでも行けるかな。


914:名無しさん@お腹いっぱい。
11/06/30 14:36:22.38 KNK9iezw0
>>913
ありがとうございます
やってみます

915:名無しさん@お腹いっぱい。
11/07/01 09:13:55.67 2szK5Hhq0
>>914
どうなった?

916:名無しさん@お腹いっぱい。
11/07/01 12:50:57.23 qr4mdfQW0
XPでは普通に動くのにwin7だとsleepの待ち時間が異常に長くなったりします。
何が原因なんでしょうか?毎回なるのではなくちょっとした変更をしたときなどに
起こります。

917:名無しさん@お腹いっぱい。
11/07/01 13:27:42.49 Ah/UJqwu0
>>916
内容も判らんのに答えれるかよ
何をどう変更した時になるか
どういった処理途中なのかぐらい書けば?


918:名無しさん@お腹いっぱい。
11/07/01 14:04:37.82 3xGHvoC70
>>916
XPでもCPU100%使っていれば1.5倍くらい長くなったりするよ。

919:名無しさん@お腹いっぱい。
11/07/02 01:06:04.52 s+nlN2GB0
>>915
最終的に座標をY軸方向に-1移動することで期待していた動きを命令できました
指導ありがとうございました

920:名無しさん@お腹いっぱい。
11/07/02 19:16:53.00 qXbEMK4g0
質問させてください。

指定する色の大きさ(領域)を取得することは可能でしょうか?

921:名無しさん@お腹いっぱい。
11/07/02 19:47:14.95 eecfVZFN0
>>920
色の領域じゃちょっと意味が分からないな。

ファイル名からサイズを取得するのを調べてたんだけど
UWSCで使えるのはまだ見つかってない。

そう言えばUWSCは比較する時に画像のサイズを持ってるんだから
真ん中とか指定できてもよさそうなもんだが


922:名無しさん@お腹いっぱい。
11/07/02 20:25:17.72 RUSRgWY+0
>>920
1ピクセルの色取得が出来るんだから、出来るに決まってるだろ。
塗りつぶしのアルゴリズムが使える…まぁ、スクリプトとしての速度の問題があるとは思うが。
それは自分で判断するしかあるまい。

>>921
UWSCに頼らず、自分でBMP用意してるんだし。
BMPのヘッダとか自前で読めばいいんじゃない?

923:名無しさん@お腹いっぱい。
11/07/02 23:50:17.27 eecfVZFN0
>>922
>>776前後で書いたけどUWSCはバイナリ読めないので、どの道他のツールを使うことになる。
ならUWSCから既存のOLEなりを呼んでもいいだろと。


924:名無しさん@お腹いっぱい。
11/07/03 00:43:08.39 TB/Oc13V0
>>923
URLリンク(d.hatena.ne.jp)
UWSC系でfsoを使わないのもおかしいからな。ADODB.Streamを使うのもUWSCとして普通だと思うがなぁ。

ADODB.Streamを
呼び出したのはUWSCから直接なので自前とするか
UWSCの基本構文にそういうのが無いから他のツールとするか

…単なる呼び方のもんだいであって、微妙なラインだ。

925:sage
11/07/04 16:33:50.58 OnV/XTnZ0
UWSCで5番目のAタグをクリックするコードを教えてください



926:名無しさん@お腹いっぱい。
11/07/04 16:39:44.94 nOTb+LoZ0
日本語でおk

927:名無しさん@お腹いっぱい。
11/07/04 20:01:40.63 iaw/LOoo0
>>925
TABキーを、何回か押して、エンターキーを、押すと、いいよ!

928:名無しさん@お腹いっぱい。
11/07/05 17:30:21.83 0iSOD3+10
UWSCで、

次回起動時刻○時○分を取得

UWSCのスケジュール機能に○時○分をセット

スタンバイ

という動作をしたいんですが、UWSC.INIファイルの「M1=」に時刻を書いても無理でした。
一度UWSCで読み直させる必要があるんですかね?
どなたか簡単に時間セットをする方法をご存知でしたら教えてください。

929:名無しさん@お腹いっぱい。
11/07/05 17:56:42.80 OsCcD/6l0
> 一度UWSCで読み直させる必要があるんですかね?

普通はそうじゃないですかね。
UWSCを再起動すればいいんじゃないですかね。

930:名無しさん@お腹いっぱい。
11/07/07 10:13:43.29 z0Ayilpv0
>>925

IElink(IE, IE.document.getElementsByTagName("a").item(4).innerText)

931:名無しさん@お腹いっぱい。
11/07/07 17:40:54.38 r3rIFyQd0
複数のウィンドウ(①と②とします)
にPostMessageAで同時にマウス操作はできませんか?

①のウィンドウのハンドルを入れた画面1.uws
②のウィンドウのハンドルを入れた画面2.uws

画面1.uwsと画面2.uwsの二つのファイルには
マウス操作の記述やifchkimgなどを記述しています。

画面1.uwsと画面2.uwsファイルを二つ起動すると、
最初に起動したウィンドウにしか正常動作せず、次に起動したウィンドウは
マウスクリックやifchkimgなどが正常に動作せず、困っています。

二つのウィンドウを同時にマウス操作を行う場合は、
PostMessageAではできないのでしょうか?


932:名無しさん@お腹いっぱい。
11/07/07 18:03:36.49 r3rIFyQd0
>>931
追記です。
すごくわかりにくいのでやりたいことを明記します。
ウィンドウ①・・・どこかに赤丸が表示される(場所、時間ランダム)
ウィンドウ②・・・どこかに赤丸が表示される(場所、時間ランダム)

このウィンドウ①とウィンドウ②に赤丸が出現したら、
その赤丸をクリックしたい場合はどうすれば良いか教えて下さい。

複数ウィンドウではなく単体ウィンドウ(たとえばウィンドウ①のみ)の
場合の.uwsファイルはできています。

試したこととしては、931に書いた通り、単体用のuwsファイルを二つ用意
してウィンドウ①とウィンドウ②のハンドルを画面1.uwsと画面2.uwsに
与えて同時に実行しました。
結果は、最初に起動したウィンドウしか正常動作がしませんでした。
ウィンドウ①起動 → ウィンドウ②起動の場合
ウィンドウ①は正常動作
ウィンドウ②は座標取得等がうまくいっていないのか赤丸クリックせず

933:名無しさん@お腹いっぱい。
11/07/07 19:00:30.76 pB1S5/Gi0
>>複数ウィンドウではなく単体ウィンドウ(たとえばウィンドウ①のみ)の場合の.uwsファイルはできています。
コレが出来たなら、どうしないとダメなんだかも解りそうなもんだけどなぁ…
なんか裏技ネタの釣り?

934:名無しさん@お腹いっぱい。
11/07/07 21:10:19.86 ryTFc5l/0
> 二つのウィンドウを同時にマウス操作を行う場合は、

ウィンドウが二つとか関係なく、同時に複数のキー入力は出来ないでしょ。

935:名無しさん@お腹いっぱい。
11/07/07 21:20:28.19 r3rIFyQd0
>>934
UWSCとWindowsAPIは、手動でできないことは自動では
できないってことですか?


936:名無しさん@お腹いっぱい。
11/07/07 22:39:59.80 ryTFc5l/0
>>935
PostMessageAの方はうまくいってもおかしくないけど
キー入力は操作性の問題で短時間の入力はアプリケーション側でキャンセルにされるでしょ。ゲームとか特に。

メッセージを処理するか無視するかはアプリケーションが判断できるんでね。
ちゃんと届いているならあとはアプリケーションの問題です。


非アクティブだから動かないとかそんなんでもなくて?


937:名無しさん@お腹いっぱい。
11/07/07 23:27:18.01 r3rIFyQd0
>>936
postmessageaのキー入力かマウス操作か何が無視されているか
調べてみます。

非アクティブだと届いたり届かなかったりするのかな?

938:名無しさん@お腹いっぱい。
11/07/09 11:33:05.22 /DWpg5Q30
exe化されたuwsファイルをソースにすることは出来ませんか?

939:名無しさん@お腹いっぱい。
11/07/09 12:08:59.56 nqq7Vzob0
パーサがノードに畳みこんだ後のバイトコードでも格納してんだろうから
ソースコードは残ってないんじゃね


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