自動化ツールuwsc使いよ集まれ6at SOFTWARE
自動化ツールuwsc使いよ集まれ6 - 暇つぶし2ch450:名無しさん@お腹いっぱい。
11/02/23 14:36:39.18 g0LdOnZF0
>>448
6万円
式あるわけねぇ

451:名無しさん@お腹いっぱい。
11/02/23 16:25:32.69 uJcWwtLV0
質問したいんですけど、高レベル記憶をしたときに
行っている作業が、どこをクリックしたかとかいうより

id = GETID("ファイル", "MsoCommandBarPopup", -1)

こういう風にどのウィンドウのどの場所を開いたかみたいな表示が出るんですけど、
これって今時点で、UWSCで記録してから出してみないとどういう名称の場所を開いたか
確認できない私なのですが。

何かソフトを使って、ここのファイルFを開くのはMsoCommandBarPopupを開くんですよ
っていうのがリアルタイムでわかるような方法ってあるんでしょうか?
それがあればスクリプト文を作るのが非常に楽になってくるんですけど
わかる人います?


452:名無しさん@お腹いっぱい。
11/02/23 17:03:17.60 33Is7HqF0
ゆとりってホント怖いな
これでキレたりするんだろう

453:名無しさん@お腹いっぱい。
11/02/23 17:09:11.51 K80NvdSH0
AHKだったかもしれんけど、リアルタイムでマウスカーソル下の
オブジェクト情報を表示するスクリプトがあったなあ。

454:名無しさん@お腹いっぱい。
11/02/23 17:24:24.60 33Is7HqF0
>>451
学校行って国語勉強しなさい

455:名無しさん@お腹いっぱい。
11/02/23 21:07:27.66 uJcWwtLV0
>>453
ありがとうございます。そのAHKというのは
MouseGesture.ahk というマウスジェスチャー用のソフトであってるんでしょうか?


456:名無しさん@お腹いっぱい。
11/02/23 22:07:33.80 uJcWwtLV0
失礼、AutoHotkeyのことですね。
調べてみます。

457:名無しさん@お腹いっぱい。
11/02/25 01:12:25.61 pEzNEft60
すみません質問です。

 EXITEXIT [終了コード]

この 終了コード って、どういう使い方ができるんでしょうか?

DOS窓などでエラーメッセージ出力したりするのに使えると思ってたんですが、違うみたい?で。
ご存知の方、教えて下さい。

458:名無しさん@お腹いっぱい。
11/02/25 01:44:23.88 O0ep4wN50
>>457 つまり現状、貴方は使えなくても何一つ困ってないんだろうに。 気にするなよ。

459:名無しさん@お腹いっぱい。
11/02/25 01:52:55.82 PyhuiW4m0
>>458
いや実はそうでもなくて、、
過去の別アプリの代替を作ろうとしてるのですが、そいつが
終了コードを吐いてて、そのコードを使うアプリがその後ろに控えているのです。
ですのでUWSCで終了コードを吐けるか判断したいです。

過去にも幾度か 終了コード が話題になってるみたいですが、
大概は根本からの別の方法を指南されて有耶無耶になっているように見えました。
で、そもそもこのUWSCでの 終了コード って、どういう動きをして、
どういう使い方を想定しているのかな、と思った次第です。
わかる方、ご教授よろしくお願いします。

460:名無しさん@お腹いっぱい。
11/02/25 07:49:56.52 rjoO539ji
>>459
取り合えず、自分で3~4行のサンプルコード書いて
欲しい動作の想定と現状との差異を挙げてみては

461:名無しさん@お腹いっぱい。
11/02/26 00:35:31.95 GWVWm/kw0
>>459
バッチファイル挟んだら?

462:名無しさん@お腹いっぱい。
11/02/26 16:27:15.93 SJecAYHF0
画像認識とループの処理を並列で進めて画像見つけた瞬間にループ終わらせるっていう処理をしたいんですが、
処理を並列に進める方法ってありますか?

ループの中の処理に画像認識混ぜるのが妥当何でしょうか?

463:名無しさん@お腹いっぱい。
11/02/26 18:40:34.16 NETz7lVI0
>>459
DIM uwsc = GET_UWSC_DIR + "\UWSC.exe"
DIM uwsname = GET_CUR_DIR + "\test_exitexit.uws"

DOSCMD("ECHO EXITEXIT VAL(PARAM_STR[0])> " + uwsname)

PRINT EXEC("cmd /C EXIT 0", TRUE)  // => 0
PRINT EXEC("cmd /C EXIT 1", TRUE)  // => 1
PRINT EXEC(uwsc + " " + uwsname + " 0", TRUE)  // => 0
PRINT EXEC(uwsc + " " + uwsname + " 1", TRUE)  // => 1

DOSCMD("DEL " + uwsname)


Windows XP Home Edition SP3 / UWSC 4.6c で確認

終了コードの比較の仕方がマズかったんじゃないの?

| START /WAIT UWSC.exe test_exitexit.uws 1
| IF ERRORLEVEL 0 (ECHO exit code ZERO) ELSE (ECHO exit code NON-ZERO)
だとダメで

| START /WAIT UWSC.exe test_exitexit.uws 1
| IF %ERRORLEVEL% EQU 0 (ECHO exit code ZERO) ELSE (ECHO exit code NON-ZERO)
ならイけた

464:名無しさん@お腹いっぱい。
11/02/27 03:14:40.31 48LXtTwe0
>>463
ありがとうございます459です。自分がいろいろ間違ってました。XPsp2+4.6で動いてます。

EXITEXIT 5555

って書いただけのファイル(tmp.uws)作って、uwsc tmp.uws → echo %ERRORLEVEL% で、5555が表示されました。

ちょっと条件次第で想定動作してくれませんが、たぶん自分のDOS知識の不足と思うので出直してきます。
ありがとうございました。

465:名無しさん@お腹いっぱい。
11/02/27 11:55:13.26 3u7XYYUl0
ifb CHKIMG("hoge.bmp") // 画像があった
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) // 左クリック

こうすると画像の左上を左クリックしてしまうのですが、画像の真ん中をクリックさせる方法ってありませんか?

466:名無しさん@お腹いっぱい。
11/02/27 12:37:07.97 drl51Y7g0
hoge.bmpの大きさが10x10だとしたら
BTN(LEFT, CLICK, G_IMG_X+5, G_IMG_Y+5)

467:名無しさん@お腹いっぱい。
11/02/27 12:38:34.64 FpeUvakQ0
自分は馬鹿だから素直に

sx = G_IMG_X + 元画像横ピクセルの半分の値
sy = G_IMG_Y + 元画像縦ピクセルの半分の値
btn(left, sx, sy)

ってやっちゃってるなぁ

468:名無しさん@お腹いっぱい。
11/02/27 12:38:34.79 3u7XYYUl0
>>466
ありがとうございます
<center>的なものはやっぱりないか・・・

469:名無しさん@お腹いっぱい。
11/02/28 15:08:45.82 aT3W7fvl0
初歩的な事で恐縮ですが、どうかお教え下さい。

IEのあるサイトの画面に現れる文字列リンクの特定文字列を指定して探し、有ればその文字列リンクをクリックさせたいのですが、どのように書けば宜しいでしょうか?

IFB POS("特定の文字列",?1,?2)?3
x=?4
y=?5
BTN(LEFT,CLICK,x,y,60)

上記のやり方が合っているようでしたら、?1~?5のそれぞれの意味と記述方法が分かりません。
上記のやり方が根本的に間違えているようでしたら、恐れ入りますが記述方法を教えていただけますと助かります。

どうぞご指導の程、よろしくお願い申し上げます。

470:名無しさん@お腹いっぱい。
11/02/28 15:39:33.19 wXlFMld70
>>469
// Web上(IE)のリンクの選択
戻値 = IELINK( IE, リンク表示文字, [番号, 完全一致フラグ] )
引数
 IE: IEオブジェクト
 リンク表示文字: 表示されているリンク項目 (一部分だけでも可)
 番号: リンク表示文字が同じ場合に順番指定 
 完全一致フラグ: Trueの時は完全に一致するものだけを (デフォルト:False)
戻値
 TRUE:正常、 FALSE:処理不能 


471:名無しさん@お腹いっぱい。
11/02/28 17:17:33.72 aT3W7fvl0
>>470
ご丁寧にありがとうございます、早速、記述してみます!

472:名無しさん@お腹いっぱい。
11/02/28 18:00:12.41 q7qgBPm30
>>471
ヘルプは全部読んでからのほうが早くていいぞ。
全部眺めなおしたって、質問文書くより労力は少ない。

473:名無しさん@お腹いっぱい。
11/02/28 21:54:21.08 pym/PSOo0
純正のヘルプはわかりにくいよ…
あれを読みこなすには訓練が必要だから、ヘルプのが早いとは言い切れない

474:名無しさん@お腹いっぱい。
11/03/01 19:26:37.20 QVxp3wTT0
確かにあのヘルプは・・・ググったほうが早かったりするw

475:名無しさん@お腹いっぱい。
11/03/01 21:08:43.70 nhFDLun90
某言語の非公開仕様と格闘したことのある漏れには
簡潔にして十分な仕様解説があってありがたいと思うんだけどね

確かに別チュートリアルがあったほうがいいかもしれない

476:名無しさん@お腹いっぱい。
11/03/01 23:30:32.67 Ts9OXSDE0
別チュートリアルはもはやグーグル先生でいい気がする。
あのヘルプは嫌いじゃないぜ、気軽に全部目を通せる量で。

477:名無しさん@お腹いっぱい。
11/03/01 23:51:38.75 nxctqptv0
チュートリアルというか、事例紹介的には
>>2 の「UWSCサンプル集」が重宝した。

ヘルプを読んで使い方が判らなければ、
該当関数を検索して実例を漁ると効率がよい。

478:名無しさん@お腹いっぱい。
11/03/02 23:15:48.98 LWCcCXFv0
ifb CHKIMG("a.bmp")
の画像有無判定って、対象のウインドウが最小化されていたり、他のウインドウの裏に隠れていると、機能しないんですか?

479:名無しさん@お腹いっぱい。
11/03/02 23:59:07.30 7E2VWVQg0
なぜ試さないのでしょうか?

480:名無しさん@お腹いっぱい。
11/03/04 01:56:46.14 toTqpa9v0
>>478
見ための画面が、指定した画像みたいになったら、実行したい。
っていう要求に応える機能だからなぁ。
どうしてもってんなら、対象ウィンドウを前に引っ張り出すよう記述すればいいかと。

481:名無しさん@お腹いっぱい。
11/03/05 02:21:41.87 w5JOaDs90
>>480
なるほどです、対象のウインドウをアクティブにしてから画像有無判定をすればいいんですね。

あと、別な質問なのですが、IEですと、ビジー判定というか、IEがビジーでなくなってから動作する、旨の方法があるようですが、IE以外のソフトを自動化したい場合、同様にビジーでなくなるまで待機させるような方法はあるのでしょうか?

482:名無しさん@お腹いっぱい。
11/03/05 02:25:30.42 d1HtN7pP0
他のソフトにとっての「ビジー」とはどういう動作を指すのか
それが判るのは、そのソフトをもっているお前しかわからない。

483:名無しさん@お腹いっぱい。
11/03/05 16:47:42.53 72PsHpHY0
人間様から見て ビジーだな、っていう判断を、そのままUWSCにやらせりゃいいワケで。
ボタンの凹みを見てもいいし、画像で見てもいいし。
応答が帰ってこないような困ったソフトならウィンドウを動かしてみて動いてなかったらダメとか。

484:名無しさん@お腹いっぱい。
11/03/06 11:45:02.72 1ZTi4wZL0
だめだだめだだめだw
画像認証の範囲指定がうまくいかねー

とりあえずXY座標を確認するスプリクトはみつけて使ってるんだが
まず、全画面じゃなくゲームの指定された大きさの画面だってのが
あやしい。

だが、そのゲームの画面のXY座標がわからん。

ひんとくれ

485:名無しさん@お腹いっぱい。
11/03/06 12:59:07.61 HC5zz7XC0
ヘルプ見ればいいと思うよ
MOUSEORGで躓いてるのかな?

// マウス座標を相対座標にする、 またはマウスとキー情報を直接ウィンドウへ送る
MOUSEORG( ID, [基準指定 ] )
引数
 ID: Windowを識別するID
 基準指定 : 
   0: ウィンドウ位置 (デフォルト)
   1: クライアント領域の位置を基準にする
   2: 指定ウィンドウ(オブジェクト)へマウス、キー情報を直接送る(第1引数はウィンドウIDでもハンドル値でも可)

 以降のMMV()、BTN()、PEEKCOLOR()、CHKIMG()関数の座標を指定ウィンドウを基準にしたものにする
 基準指定にて 2が指定された場合は KBD()、MMV()、BTN()関数の情報は直接ウィンドウ(オブジェクト)へ送る
 スクリーン座標に戻す時はゼロを指定 MOUSEORG(0)

だからこれ使った後はx=0、y=0はそのゲームの座標になるよ

486:頭痛い
11/03/06 19:35:19.34 jfbn3qA00
UWSCでメイプルストーリーのマクロを作っているのですが、HP回復の設定がうまく出来ません。
内容としては、HPの色(赤系)を認識させて、違う色の場合特定のキーを押すように
したいのですが、何回かやっても、HPが十分にあるにも関わらず、回復、してしまいます。
ちなみにこんな感じです。
While 1
ACW(GETID("MapleStory","MapleStoryClass"),235,13,806,627,0)
RGB=PEEKCOLOR(298,598)
R=RGB AND $FF0000
G=(RGB AND $000000)/$100
B=(RGB AND $000000)/$10000
IFB (R>$88 AND R<$FF) AND (G>$00 AND G<$00) AND (B>$00 AND B<$00)
  Kbd(VK_S, DOWN,30) //「1」キーを押す
Kbd(VK_S, UP,30) //「1」キーを離す
  else //赤色じゃない時
  Kbd(VK_Y, DOWN,30) //「2」キーを押す
  Kbd(VK_Y, UP,30) //「2」キーを離す
  Endif //判定終了
Wend

487:名無しさん@お腹いっぱい。
11/03/06 21:30:27.69 n1dpFHMi0
>>486
それ赤いときにボタン押すんじゃね?

ちなみに、メイプルストーリーは点滅するからそれが影響しないようにしないと。
つまり、赤じゃなくてグレーで判定するべきじゃね?

488:名無しさん@お腹いっぱい。
11/03/06 21:56:48.35 9nDDicWu0
よく判らないんだけど、

 赤だったら1を押す。ちがったら2を押す。

をノーウェイトでひたすら繰り返してるみたいだけど、やりたい事ってソレであってる?
HPが減ってない時に2を押すのがよく判らんというか。攻撃か何かなのかな。。

とりあえずデバッグとして、IFの中の条件をバラして fukidasi() とかで表示させてみたらどうかと。
あと ACW() の行は While より前でに1回でたぶんいい。
KBD()には UP/Down の他に、CLICK って引数があるよ。

489:頭痛い
11/03/06 22:29:51.01 jfbn3qA00
えっと、 今考えているのは
移動しながら攻撃するスプリクトの中にHP,MPを10秒毎事にチェックするようなもの物(上記のような感じのやつ)
を組み込みたいと思っているのですが、
返信を見る限り、これではだいぶダメなようなので、どんなふうに書いていけば良いのでしょう?
自分もちょっと書き直してみます。

490:名無しさん@お腹いっぱい。
11/03/07 01:31:21.20 HKPZrQmJ0
>>489
メイプルのシステム全く知らないけど、

while True
if GETKEYSTATE(VK_ESC) then exit
id = GETID("MapleStory")
MOUSEORG(id, 1)
thread A()
thread B()
 while 1
  sleep(0.1)
 wend
wend
procedure A()
 ifb PEEKCOLOR(298,598) = $0000FF then // 298.598のRGB値がFF0000(赤)だった場合
  KBD(VK_S, CLICK,50) //「1」キーをクリック
   sleep(10)
 endif
fend
procedure B()
 移動と攻撃の命令文
fend

こんなんでどうだろう?
回復キーがVK_Sなのはゲームの仕様かな?

あと298.598が赤(0000ff)になったらSクリックにしてるけど、
>>487のいうグレー色が分からないので正しい色を調べてくれ。

491:名無しさん@お腹いっぱい。
11/03/07 04:08:18.90 l/EQ6McV0
>>489
なんか変っぽいね。486が。PEEKCOLORは左から順にBGRなのでそこ間違えてないかな。
あと察するになんでGとBでシフトしてるか判ってないのかな。どっかからコピってきて弄った?

まずは「色データ収集」で間違ってるのか、「アルゴリズム」で間違ってるのか見分けた方がいい。

cdntX = 298
cdntY = 598
while 1
 RGBdt = PEEKCOLOR(cdntX,cdntY)
 Rdt = RGBdt AND $0000FF
 Gdt = (RGBdt AND $00FF00)/$100
 Bdt = (RGBdt AND $FF0000)/$10000
 c = ""
 c = c + "座標 = " + cdntX + "," + cdntY + "<#CR>"
 c = c + "RGB = " + FORMAT(RGBdt,0,-1) + "<#CR>"
 c = c + "R = " + FORMAT(Rdt,0,-1) + "<#CR>"
 c = c + "G = " + FORMAT(Gdt,0,-1) + "<#CR>"
 c = c + "B = " + FORMAT(Bdt,0,-1) + "<#CR>"
 fukidasi(c,100,100)
wend

これでRGB各値がどうなってるか随時表示されるから、まずそこが想定通りか確認かな。

492:名無しさん@お腹いっぱい。
11/03/07 04:49:05.77 l/EQ6McV0
てぇかよく見たら
 (G>$00 AND G<$00)
って、、そりゃ永久にelse実行するだろうよ。

493:名無しさん@お腹いっぱい。
11/03/07 08:22:22.18 HKPZrQmJ0
RGBで識別するなら、↓で赤っぽいとかって判断でも良い気がするね

while True

fb CheckColorScope(298, 598, "R", 255, 20) Then
ifb CheckColorScope(298, 598, "G", 0, 10) Then
ifb CheckColorScope(298, 598, "B", 0, 10) Then
 msgbox("赤っぽい") // 298.538のRGB値が255.0.0(16進数表記)
 // Rの誤差+-20まで GBの誤差+-10まで
endif
endif
endif

wend

Function CheckColorScope(PosX, PosY, Element, BaseValue, Scope)
select element
case "R"
ElementValue = PeekColor(PosX, PosY) And $FF;
case "G"
ElementValue = (PeekColor(PosX, PosY) And $FF00) / $100;
case "B"
ElementValue = (PeekColor(PosX, PosY) And $FF0000) / $10000;
default
Result = False;
selEnd
ifb (ElementValue >= BaseValue - Scope) And (ElementValue <= BaseValue + Scope) Then
Result = True;
else
Result = False;
endif
Fend

494:名無しさん@お腹いっぱい。
11/03/07 10:02:38.47 l/EQ6McV0
色合いを見るなら、YCbCr系に変換して判定するのもいいよ。まぁ赤なら要らないかな。

495:名無しさん@お腹いっぱい。
11/03/07 10:21:17.72 LRFsFWV50
MapleStoryマクロスレ part1
スレリンク(mmosaloon板)

496:頭痛い
11/03/07 16:13:38.89 Gyb1foJQ0
みなさんいろいろ指摘してくださってありがとうございます。
495さんのご指摘してくださったレスに同じような項目があったにも関わらず、
今回質問してしまい、すみませんでした。
どうやら色設定を間違えてしまったようなのでそこを中心に直していこうと思います。

497:名無しさん@お腹いっぱい。
11/03/07 16:31:31.42 sjwaGV8L0
CHKIMGってウィンドウが隠れていたりするとチェックできないのでしょうか?
必ず見えるところに画像が出てないと見つけられませんか?

498:名無しさん@お腹いっぱい。
11/03/07 16:33:36.94 JArSkgQw0
>>497
>>487-

499:名無しさん@お腹いっぱい。
11/03/07 16:34:47.21 JArSkgQw0
まちがえた
>>478-

500:名無しさん@お腹いっぱい。
11/03/07 19:34:33.99 K8oUnL5h0
>>497
>>479


501:名無しさん@お腹いっぱい。
11/03/07 20:02:31.31 l/EQ6McV0
>>500
試した上で諦めがつかないから聞いてるんじゃねーかなぁ。

502:名無しさん@お腹いっぱい。
11/03/07 22:30:26.89 y2o622td0
CHKIMGって今この瞬間モニタに表示されている映像を1ドット単位で比較してる
っていうイメージ。

503:名無しさん@お腹いっぱい。
11/03/09 10:56:30.08 Rw33hT0M0
>>502の通りだとするとgifアニメには反応出来ないのかな
何度か試したが処理が進まない

504:名無しさん@お腹いっぱい。
11/03/09 12:27:56.15 NeCpIiHF0
GIFアニメのコマより早くスキャンすれば出来なくもないかも。
まあ、実質無理だけどね。

505:名無しさん@お腹いっぱい。
11/03/11 07:34:32.39 AuZ32a8F0
POFF関数でスリープさせたい時ってどのコマンド使えばいいの?
スタンバイので行ける?

506:名無しさん@お腹いっぱい。
11/03/13 07:29:19.53 DvaXkZk40
指定範囲内に特定の色を発見→行動A
はどのようにすればいいのでしょうか

507:名無しさん@お腹いっぱい。
11/03/13 08:22:43.66 J5ZXDwCr0
>506
画像認識のbmpを該当色1ドットのものにすれば問題はないはず

508:名無しさん@お腹いっぱい。
11/03/13 13:57:44.15 tR/f36Oi0
いろんなサイト見て多重起動しようと思ったけど出来ない。pcの環境とか新しいバージョンだからとかあるんですか?もし良ければやり方教えて下さい。

509:名無しさん@お腹いっぱい。
11/03/13 16:05:46.60 DvaXkZk40
>>507
うーん、なんと言えばいいか・・・
指定範囲内に1ドットでも指定した色がある→行動A

みたいな感じが理想なんです

510:名無しさん@お腹いっぱい。
11/03/13 16:42:04.05 twzRaf1n0
507を100回音読しろよおまえの理想にちゃんと答えてあるだろ
それとも自分で考えるのはめんどくさいから全部書けって言ってるのか?

511:名無しさん@お腹いっぱい。
11/03/13 17:01:14.18 4DtCIfXC0
ご名答
そういうことです
わかったらはやくしてください
そろそろ時間なんで

512:名無しさん@お腹いっぱい。
11/03/13 17:34:12.12 R9FqzmsW0
ウィンドウ内じゃなくて指定範囲内って事じゃないの?

513:名無しさん@お腹いっぱい。
11/03/13 19:07:58.79 DvaXkZk40
>>512
そういうことですね
x,y(30,30)の枠内で1ドットでもあれば・・・ということです
一つの座標に対してはできているのですが
範囲の場合はどうすればいいのか・・・

514:名無しさん@お腹いっぱい。
11/03/13 20:01:37.98 XQPOhFsC0
>>513
その範囲の色を調べればいいだけだろ
何が難しいのかわからん・・・

515:名無しさん@お腹いっぱい。
11/03/13 21:33:26.48 MaOFkEcO0
>>513
>>507でchkimg

516:名無しさん@お腹いっぱい。
11/03/14 05:52:06.78 TUT2yAAJ0
範囲指定の方法が分からないんじゃねいの?

517:名無しさん@お腹いっぱい。
11/03/14 08:34:35.60 QN+OYXg20
2ちゃんねるのスレッドを取得する単純なマクロ
効率的な取得のため、スレ一覧で「レス」項目をクリックし、1000に達したものから取得してください。

自動といっても特定の板しか取得できないので、各種情報を収集するなら
各板で「勢い」項目をクリックし、勢いの高いものに絞って上から数件だけ手動で取得しておくといいでしょう。

スレッド一覧を表示すれば自動的に「↓」とEnterをクリックするだけの単純なマクロを置いておきます。
スレッド一覧とスレ内容を同時に表示していないと使えません。
スレッドの項目をクリックするとフォーカスがスレ内容に移動するので動きません。
スレッドのタブをクリックしてフォーカスをスレ一覧にしてください。

JaneDoe View   URLリンク(www.geocities.jp)
ダウンロード直リン URLリンク(www.geocities.jp)

UWSC        URLリンク(www.uwsc.info)
ダウンロード直リン URLリンク(www.uwsc.info)

自動化ツールuwsc使いよ集まれ6
スレリンク(software板)

==== ここから下を、テキストエディタで"Janeスレ一覧巡回.uws"というファイル名で保存。ファイルの種類が”テキスト”なら見えない拡張子になってるからなんとかしろ ====
ID = GETID("JaneDoe View","TMainWnd")
ACW( ID, 77, 0)
MOUSEORG( GETID("JaneDoe View","TApplication") , 2 )

while true
 ifb Status( ID, ST_ACTIVE )
  KBD(VK_DOWN,CLICK,40)
  KBD(VK_RETURN,CLICK,40)
 endif
 sleep(20)
wend

518:名無しさん@お腹いっぱい。
11/03/14 12:02:17.02 YoBEio9H0
>>517
それ一発でバーボンになる
使えない

519:名無しさん@お腹いっぱい。
11/03/14 12:40:58.22 QN+OYXg20
>>518
まじすか。
普段、数日置きにニュー速+のスレ取得してるんだけど。

520:名無しさん@お腹いっぱい。
11/03/14 13:56:54.96 EUSQE4c90
数日おきと20秒おきじゃ全然違うだろ。

短い時間の過剰アクセス=バーボンまっしぐら

521:名無しさん@お腹いっぱい。
11/03/14 16:10:33.07 QN+OYXg20
いや、数日置きに、ニュース速報+の板の全スレ(700程度)を、8秒単位で取得してる。
で、みんながスクリプトを使うと混雑するので、8を20に書き換えて公開した。

俺は今日もまちBBSの東北、東海、東京でMAXに達したスレの一覧をスクリプトで取得したけど、バーボン来てない。

スレの更新を何度も取得しようと思ったらだめだし、同じスレを何度もF5するのも駄目だぞ。
あくまでも板一覧を巡回に使えるって話。

もしかすると鯖、プロバイダによって規制具合がちがったりするのかな?


522:名無しさん@お腹いっぱい。
11/03/14 16:51:32.35 AyQZ7eSu0
>>517
そもそもこれをUWSCで(GUIボタン押させたりして)やる必要性ってなんなの?
例えばcygwin入れて シェルスクリプト書いてcronでやったほうが100倍便利そうなんだけど。

523:名無しさん@お腹いっぱい。
11/03/14 18:08:36.31 QN+OYXg20
>>522
直接HTTPたたいたりしたら2ちゃんねるから排除されるじゃん。
偽装の仕方とか知らないし。
JaneView自身にスクリプトがあるけどよくわからん。
他人の書いたスクリプトは信用できんが、キークリックだけならコード見たら一発でわかる。

全自動スクリプトは便利だけど、そうすると登録した全ての板を巡回したくなるもので、
そうすると件数が増えすぎて普通にバーボンに飛ばされ、
飛ばされてもなおスクリプトが動き続けるとIP焼かれ、二度とアクセスできなくなる。

作るのが簡単、ソースの理解が簡単、動作も直観的でわかりやすい、ちょっと便利。
そのくらいがちょうどいいんですよ。


524:名無しさん@お腹いっぱい。
11/03/15 17:07:30.47 0sTjr/hX0
俺もある板に出現した荒らし追跡の為に板のスレ根こそぎDLしたことあるが
datをDLしたからかバーボンは食らってないがな。

525:名無しさん@お腹いっぱい。
11/03/16 16:30:33.37 ySUrVoIc0
win7になってからbeep音が鳴らずスピーカーから音がでるように
なったんだけどbeep音を鳴らすことはできないの?

CPU変換機を使ってるほかのPCいじくってるときスピーカーからだと
音がならずに困ってるんだが。

526:名無しさん@お腹いっぱい。
11/03/16 17:23:56.81 uRkLh+Jk0
>>525
Windows7のサウンドをのっとらない限り無理じゃね?

527:名無しさん@お腹いっぱい。
11/03/16 19:02:54.84 N1X9Rwjq0
>>523
アホすぎワロタ

528:名無しさん@お腹いっぱい。
11/03/16 21:11:37.03 ySUrVoIc0
>>526
それは今の段階では無理?
本家できいてみるか。

訊く前に検索したわけだが同じようなことを書いてる人がいたw
解決策などは一切出てこなかった。無理なのかしらねー

529:名無しさん@お腹いっぱい。
11/03/17 03:47:39.71 hmwLu0e/0
多分それは俺が書いた奴だと思うけど、俺が調べた限りでの結論は
自分でドライバを書いて直接ハードを叩かない限り無理ということだった。

このスレではスレ違いになるんで書いてないけど。

530:名無しさん@お腹いっぱい。
11/03/17 16:01:24.28 K+UgtmWb0
試さずに書くけど、これじゃだめなの?

DEF_DLL BEEP(以下略

531:名無しさん@お腹いっぱい。
11/03/17 16:51:31.82 hmwLu0e/0
ダメ。そもそもの俺がやりたかった事というかXPで使ってたスクリプトというのが
Win32APIを使ってbeepを鳴らすものだった。

こっちの方がsound関数より反応が速いから使っていたんだが、7になってからこれが
エミュレートになって反応速度ガタ落ちで使い物にならなくなった。

532:名無しさん@お腹いっぱい。
11/03/23 14:14:22.02 Xeavlajf0
・・・

533:名無しさん@お腹いっぱい。
11/03/23 21:19:14.75 u5wJnuUr0
デバッガ起動しようとすると
「L22が存在しません」
ってダイアログ出てきて使えないんだけどどなんで?

ユーザ登録済みにはなっているはずなんだけど

534:533
11/03/23 21:29:04.87 u5wJnuUr0
ちなみに4.4から4.6cにバージョン上げたら使えなくなった

535:名無しさん@お腹いっぱい。
11/03/23 21:44:51.00 XeZCMK740
ちゃんとインストールした?
アンインストールからやり直したほうがいいかも。

有料版なら本家掲示板で聞いたほうがいいよ。


536:名無しさん@お腹いっぱい。
11/03/24 17:32:48.69 ZGUmuAAH0
こんなもんに金払うやついるんだな

537:名無しさん@お腹いっぱい。
11/03/25 01:15:38.96 SGR7u1ax0
なんだかんだで便利だしー。
払ってもいいかなって思えたんで払ったよ。

538:名無しさん@お腹いっぱい。
11/03/25 08:00:52.09 BkNPP4P2P
簡単なツールを実行ファイルとして配布したかったのでレジストした
パソコンに詳しくない方にも簡単に使ってもらえるし

あと今まで相当uwscにお世話になってたし感謝の意図もこめてってのもあるかな

539:名無しさん@お腹いっぱい。
11/03/25 08:02:35.99 YppZDri+0
ここは自分語りの激しいいんたーねっつですね

540:名無しさん@お腹いっぱい。
11/03/26 12:42:19.04 wSFqRGjR0
配列の操作で困っています。
配列内の最小値の「位置」を知りたいのですが、うまくいきません。

(例)
Dim a[7]
 a[0] = 9
 a[1] = 5
 a[2] = 10
 a[3] = 2
 a[4] = 6
 a[5] = 2
 a[6] = 10
 a[7] = 3
この例だと最小値の2が格納されている3もしくは5を戻り値として受け取れるような操作を行いたいです。
最小値は「min_a = CALCARRAY(a,CALC_MIN)」で取れることは確認済みなのですが、位置がわかりません。
条件として、
 ・配列数が不定(最大10)
 ・格納される数値は最大3桁の整数(実際は3文字のString型をval)
です。
連想配列で「Dim a[7]」を「HASHTBL a」に置き換えて、位置をキーとして数値を値として格納してみましたが、最小値を得る方法がわかりませんでした。

今現在の処理方法として、
min_a = 1000
For b = 0 to 7
  ifb a[b] < min_a then
   c = b
   min_a = a[b]
  endif
Next
fukidasi(c)
という処理を行っていますが、変数を多く使わなくてはいけないため、もっと簡単な方法がないか教えてください。

541:540
11/03/26 12:43:50.55 wSFqRGjR0
追記
条件の追加として、上記の例だと、得られる戻り値は3でも5でも構いません。

542:名無しさん@お腹いっぱい。
11/03/26 14:17:29.22 HVD3eaFSP
充分簡単な処理だと思ってしまったオレは馬鹿なのか・・・orz

543:540
11/03/26 14:40:47.00 wSFqRGjR0
>>542
おそらく頭がこんがらがっているんだと思います。
VBのMatch関数を実装するか、配列を連結させてPOSで位置を取得するか、とか。

544:名無しさん@お腹いっぱい。
11/03/26 14:54:03.46 cxbLBiMa0
>>540
m = 0
For i = 1 to 7
  if a[i] < a[m] then m = i
Next
print a[m] //最小値
print m   //最小値のインデックス


計算中の最小値は、仮の最小値なんだから、どれでもいいから放り込めばいい。
下手に特定の数値を放り込むのはバグのもと。
変数を減らすには、最小値を配列から直接取り出せばいい。
残りの全てと比較なので、比較回数は配列数-1。


545:名無しさん@お腹いっぱい。
11/03/26 15:05:31.02 VmVdg4GL0
min_a = CALCARRAY(a,CALC_MIN)
for i=0 to length(a)-1
 ifb a[i]=min_a
  print i
  break


546:名無しさん@お腹いっぱい。
11/03/26 15:09:44.30 VmVdg4GL0
途中で書き込んでしまった。タブでインデントしたつもりが…

min_a = CALCARRAY(a,CALC_MIN)
for i=0 to length(a)-1
 ifb a[i]=min_a
  print i
  break
 endif
next

547:名無しさん@お腹いっぱい。
11/03/26 15:13:49.14 VmVdg4GL0
最小値の添え字を複数取りたきゃbreakしないで続行すればよし。

548:540
11/03/26 15:15:48.78 wSFqRGjR0
>>544
レスありがとうございます。
やはり回して比較するしかないようですね。

HASHTBL a
番号 = a[CALCARRAY( a, CALC_MIN), HASH_KEY]

こんな感じで一発で出せたら良かったのですが、連想配列ではCALCARRAYはできないようで困ってました。
ありがとうございました。

549:名無しさん@お腹いっぱい。
11/03/26 18:47:12.62 Bi96EqyL0
>>540
7個の要素を持つ配列として宣言してるのに8個代入してるのはいいの?

550:540
11/03/26 19:00:24.80 wSFqRGjR0
>>546
レス遅くなってすみません。
For~Nextで回すにしても、その方法はいいですね。
参考にします。
ありがとうございました。

>>549
JavaScriptとかではそうですよね。
自分も趣味でいろんな言語を扱うので最後に「;」とか入れそうになりますw
UWSCではDim a[7]はa[0]~a[7]の8個の配列になるはずです。

551:名無しさん@お腹いっぱい。
11/03/26 20:45:22.24 HVD3eaFSP
uwscの配列表記はすごく気持ち悪いよね
これってどの言語の影響なの?

552:名無しさん@お腹いっぱい。
11/03/26 21:15:56.27 VmVdg4GL0
普通だろ

553:名無しさん@お腹いっぱい。
11/03/26 21:16:37.52 7qyeOjZo0
>>551
プログラム言語界では一般的仕様
添字が1からのほうが少数派

554:名無しさん@お腹いっぱい。
11/03/26 21:34:42.51 p9U+8skL0
>>551
普通じゃね

555:名無しさん@お腹いっぱい。
11/03/26 22:15:30.54 HVD3eaFSP
えええ普通?

Dim a[7]
ってさ、入れ物的なイメージだと7個作られそうだけど
実際は8個作られてるじゃん

C言語の配列と比べるとすごく気持ち悪いと思うんだが・・・

あれ?むしろCとかのほうが変なんだろうか?
よく分かんなくなってきた・・・

556:名無しさん@お腹いっぱい。
11/03/26 22:21:58.00 bIC0kbUd0
Cも0からじゃなかったか?
お前の認識の問題だろ

557:名無しさん@お腹いっぱい。
11/03/26 22:55:44.25 p9U+8skL0
まあ、初心者の頃によく陥る事だ
すぐ慣れるよ

558:名無しさん@お腹いっぱい。
11/03/26 23:02:24.98 tfWV05nbi
配列が0から始まらない言語ってあるのか?

559:名無しさん@お腹いっぱい。
11/03/26 23:05:30.34 HVD3eaFSP
>>556
いや、先頭の話ではなく末尾の話。

Cだとたとえば
char a[7]
って書くとa[0], a[1], ..., a[6]まで作られる。a[7]なんて生成されない。
つまり宣言時の7は確保する場所の個数に相当している。
「7個確保して!」って感覚。

一方、uwscは
Dim a[7]
って書くとa[0], a[1], ..., a[7]が確保されるわけじゃないですか。
「a[7]まで作って!」って感覚なのかな。

Cみたいにa[7]はないくせに、宣言時にa[7]が出てくるのは確かに直感的ではないな。
これはいわゆる「ポインタ」とか「アドレス」の概念が関わってくるからこんな記述なわけで
Cを勉強したての頃は何で?って悩んだような気がしてきた。

まあ慣れですね。

560:名無しさん@お腹いっぱい。
11/03/27 00:00:26.85 Ayx4G1Q80
それはVB系の特徴か?

561:名無しさん@お腹いっぱい。
11/03/27 00:04:15.57 Ayx4G1Q80
VBっていうかBasicだな

562:名無しさん@お腹いっぱい。
11/03/27 16:19:01.42 0Wid0DaV0
You とにかく良いとこ取りしちゃいなYO

563:名無しさん@お腹いっぱい。
11/03/28 21:53:17.30 NovdZ+jOP
BasicでもCでも7って値を入れたら、0~7だろ普通。

564:名無しさん@お腹いっぱい。
11/03/28 22:33:54.08 mUFnMrgu0
このカオスな仕様の処理系に良いとこ取りもクソも無いだろ
書き殴りで書いて動けばおkそんな感じ

syntaxhighlighterのUWSC用のプラグイン書いてたんだけど
今までただの定数だと思っていたものが全て予約語ってことを知った
こんなもんいちいち覚えてたら頭がフットーしちゃうよお

565:名無しさん@お腹いっぱい。
11/03/29 11:16:13.79 8FD6i0K/0
>>563
Cは違うだろ…
宣言時は要素数で、添え字は0から始まるから要素数-1まで。

566:名無しさん@お腹いっぱい。
11/04/01 04:53:55.15 JdFGtEYJ0
firefoxでバックグラウンド処理って無理?

567:名無しさん@お腹いっぱい。
11/04/02 16:39:44.26 OxQ+uKln0
メイプルストーリーというネトゲで使ってるんですけど、
たまに「ご不便をおかけして申し訳ありません、終了します」的な感じのが表示されて
落とされてしまいます。

スクリプトに問題はないはずなのですが・・。
わかる方いますでしょうか?

568:名無しさん@お腹いっぱい。
11/04/02 17:50:09.43 B3J2dw4J0
>>567
一般的にゲームバランスの崩壊を招くチート扱いなのでゲーム側でブロックが基本です。
回避は出来ません。どうしてもと言うなら、ゲームの運営会社に陳情してください。

569:名無しさん@お腹いっぱい。
11/04/02 19:14:08.80 C3jbud180
>>566
もしかしてXPCOM経由でできるかも
漏れなら素直にIE使うけどw

570:名無しさん@お腹いっぱい。
11/04/02 21:59:22.74 OxQ+uKln0
>>568
ありがとうございました。

571:名無しさん@お腹いっぱい。
11/04/02 22:04:13.13 tpUH5v170
チート扱いっていう言い方はよくないな。

まさにチートそのものなんだから。

572:名無しさん@お腹いっぱい。
11/04/03 05:09:30.39 lmjIK/mm0
チートってのはデータを書き換えたりすることだろ

573:名無しさん@お腹いっぱい。
11/04/03 06:10:43.87 MtEQc8F40
広い意味ではカンニングみたいなもんだ。ずるをすること。

チーターからみれば、直接メモリを見たり書き換えたりするのがチートで、
画面キャプチャしたりキャラを通常の操作でコントロールするのがbotとかスクリプト。

ただ、botにはスパイウェアを仕込んで操るものと言う意味もあるから、botと言えば普通はウィルスみたいなものを意味する。


574:名無しさん@お腹いっぱい。
11/04/03 15:58:11.32 987DPAwi0
>>572
そっちはチートの内だがクラッキングの類

575:名無しさん@お腹いっぱい。
11/04/03 16:44:49.94 xDlkAXep0
広義の「ズル」で「不正行為」でいいと思うがね。

576:名無しさん@お腹いっぱい。
11/04/03 18:59:38.89 tSSBIKdG0
>>569
しかしUWSCにクロスプラットフォームCOMもどきを扱う機能などない罠
まずDLL自作するところから始めるしかないかと

577:名無しさん@お腹いっぱい。
11/04/05 21:20:22.25 EYqgeuHz0
x = G_MOUSE_X
public x = G_MOUSE_X

上二つで値が違ってくるんだけど、どうすればいい?

x = G_MOUSE_X
public mx = x

の記述だと怒られる

578:名無しさん@お腹いっぱい。
11/04/05 21:33:43.56 YrBRihpj0
public mx
mx = x

579:名無しさん@お腹いっぱい。
11/04/05 21:40:02.80 WtbuGLyK0
>>577
そりゃぁ実行時間差でマウスを動かしていれば違うこともあるだろう。

あとpublicでは、宣言と代入を二行に分けるといい。

580:名無しさん@お腹いっぱい。
11/04/05 21:59:17.98 EYqgeuHz0
>>579
言葉が少なかった。上2つってのは

CLKITEM(id, "hoge", CLK_ACC or CLK_MUSMOVE)
x = G_MOUSE_X

のファイルと


CLKITEM(id, "hoge", CLK_ACC or CLK_MUSMOVE)
public x = G_MOUSE_X

のファイルで2回試した場合ね。

ちなみに>>578-579の方法で取得できた。ありがとう。
ググったらpublicの初期値に変数の指定ができないのか。


581:名無しさん@お腹いっぱい。
11/04/05 22:57:13.27 rFAkWawR0
ネトゲでuwsc使ってる間にネットサーフィンなどしたいのですが、
uwsc使用中はできないのでしょうか?

582:名無しさん@お腹いっぱい。
11/04/05 23:09:07.31 HTUKprjD0
できますよ

583:名無しさん@お腹いっぱい。
11/04/06 02:25:51.91 PNATdSFk0
>>581
仮想マシンのゲストでゲームとUWSCを動かす。

ホストで別のことする。以上。

584:名無しさん@お腹いっぱい。
11/04/06 04:30:23.30 j75+zTjLi
まうすあいでぃー=2にしてやればいいじゃない

585:名無しさん@お腹いっぱい。
11/04/06 04:32:10.87 PNATdSFk0
>>584
透明窓があったりコンポーネントになってたりしたらうまくいかん。

586:名無しさん@お腹いっぱい。
11/04/06 10:28:13.62 ufVEeoClP
uwsc使用不可なネトゲなんてないですよね?

587:名無しさん@お腹いっぱい。
11/04/06 10:31:28.43 MltQIlY60
UWSCを起動してるとゲームが起動しないってのがなんかあったよ

588:名無しさん@お腹いっぱい。
11/04/06 10:35:57.06 Gl2iME0f0
>>586
けっこうある

589:581
11/04/06 14:01:00.10 xV0+fb4w0
>>583
ありがとう
自分が使いたいネトゲは仮想だとプレイできないんです..
逆でもできますかね

590:名無しさん@お腹いっぱい。
11/04/06 19:50:41.57 /S48kY8i0
>>590
理屈を考えてみろよ

591:名無しさん@お腹いっぱい。
11/04/06 20:05:39.27 dqh7ncND0
>>590
頑張れ

592:名無しさん@お腹いっぱい。
11/04/06 20:07:17.17 /S48kY8i0
>>591 あらいやだ。 オーバーフローしますた ノノノ

593:名無しさん@お腹いっぱい。
11/04/07 13:34:21.73 RxALrKwf0
procedure test()
fukidasi("test")
fend

while true
test()
sleep(0.5)
wend

これ動かすとwhileループ入る前にスクリプトが終了してしまうんですが、原因は何でしょうか。

594:名無しさん@お腹いっぱい。
11/04/07 14:24:12.81 RxALrKwf0
自己解決
後に置かないとダメなのね

595:名無しさん@お腹いっぱい。
11/04/07 14:25:26.22 7On9PLrr0
ヘルプは読もうな

596:名無しさん@お腹いっぱい。
11/04/07 22:47:00.50 DXHRhLqW0
FF14で漁師マクロを作ろうとしているのですが上手くいきません。
釣り糸を垂らしてアタリがあるとコマンド欄の枠がちょっと広がるので、
その広がった枠を画像判定させようとしてみたのですが、
文章がおかしいのか判定がおかしいのか「↓キーを押す」を実行してないようです。

ACW(GETID("FINAL FANTASY XIV","RAPTURE"),200,0,1286,992,0)
while TRUE
 ifb PEEKCOLOR(849,885) = $C1C3C3 then //アタリがあった時のゲージ枠が出現した時
 sleep(1)

 KBD(VK_DOWN, DOWN,40) //↓キーを押して「釣る」にカーソル移動
 KBD(VK_DOWN, UP,30) //↓キーを離す
 sleep(1)

 KBD(VK_RETURN, DOWN,40) //リターンキーを押して「釣る」を選択
 KBD(VK_RETURN, UP,30) //リターンキーを離す

  釣り作業予定地

 else //枠が出ない時
 sleep(5)
 Endif //判定終了
wend

597:名無しさん@お腹いっぱい。
11/04/08 01:45:57.78 ks4Tt9ZU0
>>596
1
 KBD(VK_DOWN, DOWN,40) //↓キーを押して「釣る」にカーソル移動
 sleep(0.1)
 KBD(VK_DOWN, UP,30) //↓キーを離す

2
 KBD(VK_DOWN) //↓


598:名無しさん@お腹いっぱい。
11/04/08 18:05:27.36 OjqCEka70
>>597
動きました
御指導ありがとうございました

599:名無しさん@お腹いっぱい。
11/04/08 18:16:05.43 Fc5gmSPI0
メイプルストーリーのピラミッドマクロで
Fがテレポート
Vがヒール
NがHP回復
MがMP回復
そのボタン配置でマクロのスクリプトの作り方がわかりません。
どなたか作っていただけませんか?
お願いします。

600:名無しさん@お腹いっぱい。
11/04/08 18:30:17.79 +4DaRd/T0
>>599
ピラミッドマクロくらいならネット落ちてる

そもそもお前勉強する気ねぇだろwwwww

601:名無しさん@お腹いっぱい。
11/04/08 18:32:56.74 8OVS6MFr0
>>595
ヘルプに書いてないぞ

602:名無しさん@お腹いっぱい。
11/04/08 20:16:18.98 xUY9fcWU0
>>601
「関数の定義」のところに書いてあるよ

><関数の定義>
> ※ 関数はメインルーチンの後に書いて下さい。
>   (メインルーチンは関数前までであり、関数後にメインルーチンを書いても実行されません)

603:名無しさん@お腹いっぱい。
11/04/08 20:19:36.73 xUY9fcWU0
まあとんでもない糞仕様だよね

604:名無しさん@お腹いっぱい。
11/04/08 22:59:59.35 8OVS6MFr0
>>602
そこか、なるほど。

605:名無しさん@お腹いっぱい。
11/04/09 00:09:03.52 oHTb27s10
599の物ですが、どうしても作れないのでお願いします。

606:名無しさん@お腹いっぱい。
11/04/09 00:30:43.99 14fTLDrO0
出来てるとこまであげてみ

607:名無しさん@お腹いっぱい。
11/04/09 00:32:09.61 B3RgossG0
>>2
>  「○○作って下さい」→ 依頼スレじゃありません。

608:名無しさん@お腹いっぱい。
11/04/09 00:51:36.15 oHTb27s10
599と605は自分でやること諦めて
URLリンク(makuroman.blog94.fc2.com)
こいつからでも買っとけ(笑)
ちなみに俺はこいつに売ってもらい毎日ピラミッド放置で稼いでる☆

609:名無しさん@お腹いっぱい。
11/04/09 00:51:44.49 oHTb27s10
599と605は自分でやること諦めて
URLリンク(makuroman.blog94.fc2.com)
こいつからでも買っとけ(笑)
ちなみに俺はこいつに売ってもらい毎日ピラミッド放置で稼いでる☆

610:名無しさん@お腹いっぱい。
11/04/09 01:04:09.29 eviBn5dS0
地震前ならスルーできたけど、なんかスゲームカツク自分がいる…

611:名無しさん@お腹いっぱい。
11/04/09 01:08:22.72 B3RgossG0


612:名無しさん@お腹いっぱい。
11/04/09 01:43:48.50 oHTb27s10
599と605の物です。

僕はUWSCというやつで記録してマクロしていましたがピラミッドだと3分記録したはずなのに
2分30秒で終わったりして時間が合いません。
なので誰かおしえていただけたらと思っています。

613:名無しさん@お腹いっぱい。
11/04/09 01:43:56.48 oHTb27s10
599と605の物です。

僕はUWSCというやつで記録してマクロしていましたがピラミッドだと3分記録したはずなのに
2分30秒で終わったりして時間が合いません。
なので誰かおしえていただけたらと思っています。

614:名無しさん@お腹いっぱい。
11/04/09 11:53:27.12 JGDPvqkQ0
こりゃどういう自演なんだ?

615:名無しさん@お腹いっぱい。
11/04/09 13:35:36.59 mabctlI00
ID:oHTb27s10

616:名無しさん@お腹いっぱい。
11/04/09 14:37:13.07 U4/Ili1P0
マクロを売りたいから作ってくださいってことか

617:名無しさん@お腹いっぱい。
11/04/09 14:57:51.17 Eiv3foUwP
なるほどそういう事か
死ねばいいのにね

618:名無しさん@お腹いっぱい。
11/04/09 20:03:51.92 5hMUfEUI0
みんな、もう少しスルーだ
久々の痛い逸材だ、楽しもうぜ

619:名無しさん@お腹いっぱい。
11/04/10 17:36:04.98 DWfU3x9f0
スルーしたら楽しめないだろ
ちゃんとレス付けてあげなきゃ

620:名無しさん@お腹いっぱい。
11/04/10 18:59:20.09 QMSVt8wO0
DEF_DLLについて教えてください。
2010VB.netで

Public Class Class1
Public Function A() As String
Return "テスト成功!"
End Function
End Class

のみのTest.DLLを作成し、それをUWSファイルと同じフォルダに入れて
DEF_DLL A():string:Test.DLL
print A()

とやってみたのですが NULL としか表示してくれません。
今まであまりDLLを使うことはなかったけれども、なんでNULLを表示するのでしょうか?

よろしくお願いします。

621:名無しさん@お腹いっぱい。
11/04/10 19:48:51.87 lJZPf4RN0
ぬるぽーーーーー

622:名無しさん@お腹いっぱい。
11/04/10 22:29:27.60 ICekZUeP0
がっーーー



 これ何て発音だろ???

623:名無しさん@お腹いっぱい。
11/04/13 12:08:06.31 CA3sVpNS0
firefoxでmouseorg(,2)指定だとBTN、KBD使えないなー
と思ってスレ見に来たら>>566,569,576で出てた
やっぱ無理なのね

624:名無しさん@お腹いっぱい。
11/04/13 17:10:10.86 N/tb5+Pq0
>>620
VB.NETで吐くコードは.NET Framework上じゃないと動かない。
てゆうかUWSCが.NET Frameworkに勝るものなんて1つもないんだから全部VBで書けばいいのに。

625:名無しさん@お腹いっぱい。
11/04/13 17:14:30.12 v1Zenszti
>>624
vbで比較して、他プログラムのウィンドウ制御は同じ程度に出来るの?
メニュー項目へのアクセスやら、ボタンのテキスト取得や、ドラッグ&ドロップ等々

626:名無しさん@お腹いっぱい。
11/04/13 22:38:56.96 qzGj6cSJ0
できる

627:名無しさん@お腹いっぱい。
11/04/14 06:29:36.28 1ZehtnP10
>>625
UWCSなんてWindows APIの出来の悪いラッパーみたいなもんなんだから
.NET Frameworkでできないわけないだろ。

628:名無しさん@お腹いっぱい。
11/04/14 13:37:17.52 JcJwElNs0
Chromeでマクロ実行しながらsleipnirで他の作業をしたいのですが、
MOUSEORGを使用することで可能になるというのを見つけ、
MOUSEORG(id, 2)は、MOUSEORG(id, 0)でもいいが、
"0"だと強制的に操作対象のウィンドウがアクティブになってしまう
となっておりましたので2にしたところ、裏で作業しててもマクロ実行側がアクティブになってしまいます。
どのように対処したら宜しいでしょうか?
他の対処法はありますでしょうか?

629:名無しさん@お腹いっぱい。
11/04/14 19:41:00.94 nNVecxcD0
>>627
スクリプト言語全般を否定ですか?

630:名無しさん@お腹いっぱい。
11/04/14 20:36:42.03 x7W7EX3M0
>>628
仮想で動かせ

631:名無しさん@お腹いっぱい。
11/04/14 21:19:45.41 1ZehtnP10
>>629
ごめん意味わかんない。

632:名無しさん@お腹いっぱい。
11/04/15 03:54:49.07 /G3KVCHf0
>>624
Vista以降なら.NET Frameworkは標準搭載だからいいかもしれんな。
問題はバージョン。

633:名無しさん@お腹いっぱい。
11/04/15 07:36:54.68 Dg09tSY30
「ID」と「タイトル」が同じダイアログが2 つ存在する時、切り分けってどうしたら良いでしょうか。

一例です。
秀丸エディタで、既に存在するファイル名で保存すると、既に存在する旨のメッセージダイアログが出ます。
この時、「名前を付けて保存」ダイアログと「メッセージ」ダイアログの ID とタイトルが同じなのです。

自動記録では、以下でした。
ACW(GETID("名前を付けて保存","#32770"),229,187,675,463,0) <- 名前を付けて保存
ACW(GETID("名前を付けて保存","#32770"),817,434,290,222,0) <- メッセージダイアログ

「2 つ目のメッセージダイアログが存在した場合、そのメッセージダイアログのボタンを押す」と言う処理をしようとしています。

634:名無しさん@お腹いっぱい。
11/04/15 07:40:40.43 Dg09tSY30
>>633
訂正

× 「ID」と「タイトル」
○ 「タイトル」と「クラス」


です。

635:名無しさん@お腹いっぱい。
11/04/15 08:51:12.59 Dg09tSY30
>>634

自己解決できそうです。
URLリンク(www3.bigcosmic.com)

レス汚しすいません。

636:名無しさん@お腹いっぱい。
11/04/20 11:08:56.21 I6VLD9wj0
While True

ifb PEEKCOLOR(25,335) = $CFCFCF or PEEKCOLOR(25,335) = $B0B0B0 or PEEKCOLOR(25,335) = $FFFFFF then
KBD(VK_Z,DOWN)
else
KBD(VK_Z,UP)
Endif

Wend
上記のはZキーだけを叩くものですが、
これを色判定条件は同じでZキーとAキーを交互に叩くようにするにはどうすればいいでしょうか?

637:名無しさん@お腹いっぱい。
11/04/20 12:07:09.99 qEj91tsg0
>>636
Dim VKey = VK_Z

while true
 KBD(VKey)
 ifb VKey = VK_Z
  VKey = VK_A
 else
  VKey = VK_Z
 endif
 sleep(1)
wend


638:名無しさん@お腹いっぱい。
11/04/20 14:24:02.40 I6VLD9wj0
>>637
できました。ありがとうございます^^

639:名無しさん@お腹いっぱい。
11/04/20 23:00:20.51 jO6T61Fm0
while true
ACW(GETID("○○○),133,11,1050,974,0)
IFB CHKIMG("①.bmp")= TRUE THEN
ELSE
 BTN(LEFT,CLICK,800,371,250)//再選出ボタンを押すスクリプト
ENDIF
Ifb chkimg("②.bmp") = true then
  BTN(LEFT, CLICK, G_IMG_X+200, G_IMG_Y+40,100)
endif
Ifb chkimg("③.bmp") = true then
  BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10))
endif
Ifb chkimg("夢試合開始!2.bmp") = true then
BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10))
endif
wend

①が出るまで左クリックをし、見つかれば②、③の作業に移りたいのですが、
①が出た後は常に②、③の作業をループしたい(①はもう見つけなくてもよい)したいとき
どういったスクリプトの組み方をすれば宜しいのでしょうか?
行き詰まってしまったのでご教授御願い致します。

640:名無しさん@お腹いっぱい。
11/04/20 23:32:29.66 jO6T61Fm0
自己解決、簡単なミスでした、申し訳ありません。

641:名無しさん@お腹いっぱい。
11/04/22 01:20:48.59 sGUpvqgm0
chkimgでの画像判定ですが、画像が認識される時とされない時があって困ってます。
10*10くらいの小さな画像なのですが、小さすぎると認識に失敗することがあるのでしょうか?

642:名無しさん@お腹いっぱい。
11/04/22 02:09:54.97 D1Vkkmmg0
1ドットでもちゃんと動くので微妙に色が変わってるとかじゃないだろうか

643:名無しさん@お腹いっぱい。
11/04/22 02:46:36.41 kU+vUJli0
最近覚え始めたんですが、裏で動かすためにmouseorgを使おうと思ってますが
うまくいきません。

id=GETID("新しいテキスト ドキュメント (2) - メモ帳","Notepad")
ACW(id,-8,-8,1936,1056,0)
MOUSEORG(id,2)
while 1
BTN(LEFT,click,1266,93,109)
KBD(VK_A,CLICK,359)
KBD(VK_A,CLICK,219)
KBD(VK_A,CLICK,187)
MMV(1269,94,78)
wend

バックグラウンドでメモ帳にひたすらaaaを入れるだけのものなのですがどこが悪いか
アドバイスお願いします
idのとなりを0や1にするとうまくいくけど2だと反応しません

644:名無しさん@お腹いっぱい。
11/04/22 04:22:40.47 NkGZRzTn0
>>643
id=GETID("メモ帳")
MOUSEORG(GETCTLHND(id,"Edit"),2)
while 1
KBD(VK_A,CLICK,100)
wend


645:名無しさん@お腹いっぱい。
11/04/22 12:51:35.73 kU+vUJli0
>>644
ありがとうございます。一つ勉強になりました。

646:名無しさん@お腹いっぱい。
11/04/22 15:10:30.95 brg2zLT60
いつも参考にさせていただいてます。
以下のスクリプトの組み方を教えていただけナでしょうか。

①「画像A」が出るのを待つ
②出たら「1」のキーを押す
③数秒から数分で「画像B」が出るので待つ
④出たら「2」のキーを押す
※画像Aと画像Bは画面に出たままだが、もう押さない
⑤数秒から数分で「画像C」が出るので待つ
⑥出たら「3」のキーを押す
⑦画像A・B・Cが消えるので①に戻る

よろしくお願いします。



647:名無しさん@お腹いっぱい。
11/04/22 15:13:29.36 DgOL/gJc0
参考にした結果どこまでできたん?

648:名無しさん@お腹いっぱい。
11/04/22 15:38:26.54 Rbjr3RvM0
>>646
> ①「画像A」が出るのを待つ
> ②出たら「1」のキーを押す
> ③数秒から数分で「画像B」が出るので待つ
> ④出たら「2」のキーを押す
> ※画像Aと画像Bは画面に出たままだが、もう押さない
> ⑤数秒から数分で「画像C」が出るので待つ
> ⑥出たら「3」のキーを押す
> ⑦画像A・B・Cが消えるので①に戻る

組み方ってのはコレ自体の事。

この次やることは単に関数調べて書き写すだけ。
頭使わない単純作業。

そんなもの自分でやれ。

649:名無しさん@お腹いっぱい。
11/04/23 21:42:07.67 6YOXa8ZZ0
while true
ACW(GETID("Google Chrome","Chrome_WidgetWin_0"),133,11,1050,974,0)
KBD(VK_NEXT,CLICK,40)
Ifb chkimg("1.bmp") = true then
  sleep(181)
endif
Ifb chkimg("2.bmp") = true then
  BTN(LEFT, CLICK, G_IMG_X+150, G_IMG_Y+10,100)
endif
Ifb chkimg("3.bmp") = true then
  BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10))
wend

調べたのですが、中々見つけることが出来ないので質問させて下さい。
指定の画像が現れた場合にバックグラウンドでクリックを実行するということは可能でしょうか?
MOUSEORGを使用するところまではわかったのですが、その先が・・・
お願い致します。

650:名無しさん@お腹いっぱい。
11/04/23 21:47:16.14 WTYNWcLE0
画像の出る場所もバックグラウンドなら不可能

651:名無しさん@お腹いっぱい。
11/04/23 22:09:12.38 6YOXa8ZZ0
>>650
ありがとうございます。

id=GETID("Google Chrome")
MOUSEORG(GETCTLHND(id,2))
while true
Ifb chkimg("A.bmp") = true then
  BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10))
endif
Ifb chkimg("B.bmp") = true then
  BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10))
endif
Ifb chkimg("C.bmp") = true then
  BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10))
endif
wend

上記の状態だとクリック時にマウスポイントが移動し
アクティブ状態になってしまいます・・・
これを非アクティブで実行するにはどうしたら宜しいでしょうか?
もちろん画像は見える状態にあります。

652:名無しさん@お腹いっぱい。
11/04/23 22:57:15.99 HDl2pAxn0
>>651
クリック=アクティブ化

653:名無しさん@お腹いっぱい。
11/04/23 23:15:07.85 kr3w3hsZ0
非アクティブクリックは出来る

654:名無しさん@お腹いっぱい。
11/04/23 23:38:39.36 6YOXa8ZZ0
>>653
是非ご教授願いたい

655:名無しさん@お腹いっぱい。
11/04/25 19:35:22.03 jsRtYAq90
今日UWSCをDLしたばかりの初心者です。質問に答えていただけるとうれしいです。

1つ目:UWSCでキーボードの↑(Pg Up)と↓(Pg Dn)とAを同時に押すことは可能でしょうか
2つ目:例として KBD(VK_RIGHT,DOWN,500) を挙げるとします。
VKとかなんでしょうか。
RIGHT,DOWNとはどこのキーでしょうか。

なかなか調べてもキーや言語については書いておらず、困っております。
ぜひわかりやすい回答をよろしくお願いします。

656:名無しさん@お腹いっぱい。
11/04/25 19:52:44.01 LXyFlfS/0
down キーを押しっぱなし
up で戻す
click で普通に押す
組み合わせれば同時押しができる

vk_A Aボタン押す
right はカーソルの右

ヘルプ読んで後はネットで調べるそれでわからなければここで聞けばいい

657:名無しさん@お腹いっぱい。
11/04/26 11:09:45.35 B0OZFNNp0
次は1111ですよ!!!!

魔法少女まどか☆マギカ 第1110話
スレリンク(anime2板)

658:名無しさん@お腹いっぱい。
11/04/27 18:11:34.36 f5XMQTIb0
フリー版ですが、スクリプトが再生、スケジュールのどちらで起動されているかを得る方法はありますか?

659:名無しさん@お腹いっぱい。
11/04/27 21:53:28.64 lcY/5+Xo0
>>658
知らないけどスケジュールの方でコマンドラインオプション使えるならそれの有無で

660:名無しさん@お腹いっぱい。
11/04/28 11:34:29.35 WUQnwKcg0
F3キーを押したいんですけど
KBD(VK_F3,click)
じゃ無理だったのですが
押し方教えてもらえませんか

661:名無しさん@お腹いっぱい。
11/04/28 14:11:31.33 vFhukH4p0
>>660
URLリンク(www.geocities.jp)

662:658
11/04/28 14:24:10.79 LtzVx3ZJ0
>>659
遅くなりましたが、ありがとうございます。
その方法でやってみます。

663:名無しさん@お腹いっぱい。
11/04/30 18:57:50.26 32Rd07IC0
UWSCで、開き済みのEXCELから「検索」ってできますか?
.Cells(y,x).Value = "A"のように、セル自体に読み書きまでは出来てますが、
それ以上のことは出来てません。できれば、検索して完全一致があればその座標を入手、
完全一致がなければ「なかった」ことを知りたいです。
判る方、ご教授宜しくお願いします。

664:名無しさん@お腹いっぱい。
11/04/30 19:39:07.42 eZ2yNS1b0
>>663
VBAじゃだめなの?
Excelファイルにコード埋め込めないなら、アドインにしちゃうとか

665:名無しさん@お腹いっぱい。
11/04/30 19:40:33.61 U1T3CdW50
>>663
条件抽出できるExcel関数をそのセルに書き込んで結果を得るとか

666:名無しさん@お腹いっぱい。
11/04/30 22:42:36.75 Lz9PHktt0
複数のIDであるサイトに順番にログインし、同じ動作を実行させたい。
下記Aのようにすると動作を何箇所も修正するのが面倒なので、Bのようにできますか?
可能でしたらどのようにすれば良いのかお願いします。

A  ID1
   動作
   ID2
   動作
   ID3
   ・
   ・
   ・

B  ID1
   ID2
   ID3
   ・
   ・
   ・
   動作

667:名無しさん@お腹いっぱい。
11/04/30 22:53:26.60 0hS3NNEM0
>>666
PROCEDURE

668:名無しさん@お腹いっぱい。
11/05/02 11:04:53.85 qBRsL1H/0
お世話になります。

テンキーの「0」を1秒間隔でずっと押させつつ、
画面にAの画像が出たら画像をクリック。
これをループさせたいのですが、下記のように記述しても動いてくれません。
どこが間違っているのでしょうか?

thread A()
thread B()
While 1
sleep(0.1)
Wend

procedure A()
While 1
Sleep(1)
KBD(VK_NUMPAD0,CLICK,)
Wend
fend

procedure B()
While 1
IFB CHKIMG("A.bmp",-1 )
Sleep(1)
BTN(LEFT,DOWN,G_IMG_X+96,G_IMG_Y+99)
Sleep(1)
BTN(LEFT,UP)
ENDIF
Wend
fend


669:名無しさん@お腹いっぱい。
11/05/02 11:18:54.79 01KJj1Qr0
過去ログから見ると、同じような質問が続いてるなぁ。
しかも、自分で書いておきながら自分のロジックがわからないというものばかり。
単なるこぴぺスクリプターにありがち。成長してくれない。

…同じゲームのスクリプトを分割して聞いていても不思議ではない。

670:名無しさん@お腹いっぱい。
11/05/02 16:37:03.35 7SLqK3kT0
ゲームをスクリプトで補助させるのって、それ楽しいのかな、、といつも思う。

> 1秒間隔でずっと押させつつ

正直ニホンゴが意味わからん。
つーか、どこの行でダメなのか、くらいは自分で追い込もうぜ。
fukidasiでもPRINTでもいいから、ログとりながらデバッグすりゃあできるっしょ。

671:名無しさん@お腹いっぱい。
11/05/03 22:36:49.05 TOMSdzPx0
UWSC proでEXE化されたファイルからUWSファイルを取り出す事って出来ますか?

672:名無しさん@お腹いっぱい。
11/05/03 23:33:56.70 lzlWmIAX0
ゲームとかでの座標認識ってどうやるんですか?
サイト探しまくったんですけどどこにも乗ってないです。

673:名無しさん@お腹いっぱい。
11/05/03 23:41:41.19 K/oATwn20
ん?

674:名無しさん@お腹いっぱい。
11/05/03 23:53:32.91 P1jCGFNh0
座標は、ゲーム画面でそれっぽいところ動かすのを記録して
保存して、ファイル開けばだいたいわかる。
画像使う場合はCHKIMGとか使えばいいし

675:名無しさん@お腹いっぱい。
11/05/04 04:32:41.34 +YeOY92h0
>>672
全画面またはゲーム画面の左上から何ドットかは普通にわかる
ゲーム内でのそのゲーム特有の座標とかは判るわけがない
どうも後者を要求されてる気がする 前者を探しまくってわからないとかありえないし

676:名無しさん@お腹いっぱい。
11/05/04 07:10:21.56 Lkfr5Qr/0
おおおお
ありがとうございました!!!!

677:名無しさん@お腹いっぱい。
11/05/04 09:08:54.76 ZO72V00x0
後者でも前者との位置関係から割り出せるでしょ

678:名無しさん@お腹いっぱい。
11/05/04 09:55:57.41 AHgCiz+A0
後者ってウィンドウ外まで広がるゲームマップの何処かっていう座標だろ

679:名無しさん@お腹いっぱい
11/05/04 13:20:58.46 5+/6h24a0
メイプルストーリーでマクロやってる人いませんか?
もしよければマクロでログインするときどうやって
パスワード欄に文字を打ち込んでるか教えてほしいんですが・・
sentstrとかKBD関数で打ち込めないんです

680:名無しさん@お腹いっぱい
11/05/04 13:34:40.85 5+/6h24a0
すいません誤字です
sentstrじゃなくてsendstrです

681:名無しさん@お腹いっぱい。
11/05/04 15:07:47.36 CCPjytin0
> パスワード欄に文字を打ち込んでるか教えてほしいんですが・・
> sentstrとかKBD関数で打ち込めないんです

>>2
●質問したい方へ。
 「○○作れますか?」→ スクリプトを期待するのはお門違い。作れるか作れないか教えてくれる人はいるかも。
 「○○が作りたい」→ 自分作ればいいんじゃない?
 「○○作って下さい」→ 依頼スレじゃありません。
 過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。
 自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。

682:名無しさん@お腹いっぱい。
11/05/04 19:59:28.41 wzOMUAlp0
>>671
もってないからよくわかんないけどたぶんEXE化は
エンジン+スクリプトの構成のはずだからバイナリエディタ使えれば不可能ではない

683:名無しさん@お腹いっぱい。
11/05/05 10:53:17.33 KWLdYo9I0
>>681
IDの入力は問題ないんですけどメイプルのパスワード入力欄が特殊だと思うんで
なにかヒントとなるような助言でも頂ければと思ってます><


684:名無しさん@お腹いっぱい。
11/05/05 12:36:30.03 kQwnCdgV0
ゲームチートに使う奴ネトゲ板とか裏技板とかで別スレ立ててやってくんないかな。

そもそも低レベルで自助努力ナッシングな質問ばかりだし、まともな用途に使ってる
人間としてはウゼエこと限りないんだが。

685:名無しさん@お腹いっぱい。
11/05/05 13:51:21.44 xWeC0mco0
マクロにまともも糞もないけど低レベルなのは確かだわ

686:名無しさん@お腹いっぱい。
11/05/05 17:57:07.42 /PNt3n6G0
UWSC自体が糞処理系だから仕方ない

687:名無しさん@お腹いっぱい。
11/05/05 18:03:17.26 KWLdYo9I0
ところでretってなんですか?

688:名無しさん@お腹いっぱい。
11/05/05 19:03:29.90 ptYc63U80
>>684
カナッシングな質問ふいた

689:名無しさん@お腹いっぱい。
11/05/05 20:59:27.18 W1f6vZlh0
特定の場所をクリックさせたいんですがうまくいきません。


KBD(VK_ESC,DOWN,80)
SLEEP(2)

ifb CHKIMG("a.bmp",-1)

x=G_IMG_X
y=G_IMG_Y

MMV(X,Y,80)
ENDIF

SLEEP(1)
BTN(LEFT,CLICK,X,Y,80)
SLEEP(1)
BTN(LEFT,CLICK,X,Y,80)
KBD(VK_ESC,UP,80)


690:名無しさん@お腹いっぱい。
11/05/05 21:12:08.45 KWLdYo9I0
画像は問題ないの?
ifb~endifをループで囲んでbreak入れれば?

691:名無しさん@お腹いっぱい。
11/05/05 21:45:58.53 xWeC0mco0
xyって大丈夫なの?

692:名無しさん@お腹いっぱい。
11/05/06 06:38:18.95 l+r+xGqX0
>>689
XとYの座標って絵の左上だから
XとYの座標に+5するとか。
あとどんな作業してるのかわからないけど
ボタンのクリックはENDIFの内側に入れるんじゃないの?
あとはループで囲うとかかな。

詳細が良くわからないので頓珍漢なアドバイスかもしれないけど

693:名無しさん@お腹いっぱい。
11/05/06 11:35:56.64 nxcWJScI0
ウィンドウの特定の入力欄に英数字を入れたいんですがうまくいきません。

直前のID欄の入力までは出来て、タブキーを押してパスワード入力欄をアクティブにした状態でやりました
一応マウス操作でパスワード欄をアクティブにしたりもしましたが出来ませんでした
click部分をdown,upに分けたり、
KBDとKBDの間にsleep(1)を入れたり、
40の部分を1000にしたりもしましたが出来ません
sentstrで変数や英数字などをウィンドウidをちゃんと取得した状態でやりましたができません
(そもそもID欄とPW欄にコピペできない仕様なので無理だと思います)
それとなぜかID欄では半角状態では入力できないみたいです、
なのでIDは全角で「お」を打ち込んで変換で半角数字にしました

KBD(VK_o,CLICK,40)
KBD(VK_1,CLICK,40)
KBD(VK_5,CLICK,40)
KBD(VK_7,CLICK,40)
sleep(0.8)
KBD(VK_RETURN,CLICK,40) //エンターキーでログインします
パスワード欄は強制的に半角入力になるみたいです



694:名無しさん@お腹いっぱい。
11/05/06 11:40:25.08 nxcWJScI0
ID入力は「お」という文字に事前にIDの数字を辞書登録した状態でやりました
KBD(VK_O,down,40) //「お」キーです
KBD(VK_O,up,40)  //「お」キーです
KBD(VK_space,down,40) //変換キーです
KBD(VK_space,up,40)  //変換キーです
sleep(0.8)
ログイン() //複数IDでログインしたいので「お」の後ろに条件に応じて数字を打ち込むようにしてますがパスワード欄の入力には影響はないです
sleep(0.8)
KBD(VK_space,down,40) //ログイン()も全角で入力なので変換で半角にします
KBD(VK_space,up,40)  //ログイン()も全角で入力なので変換で半角にします
sleep(0.8)
KBD(VK_RETURN,CLICK,40) //全角入力なのでエンターキーで確定します
KBD(VK_TAB,down,40) //パスワード欄に移るタブキーです
KBD(VK_TAB,up,40)  //パスワード欄に移るタブキーです
sleep(0.8)
~ここからパスワードの入力~
KBD(VK_o,CLICK,40)と続きます

たぶん全角でないと入力できないんだけどパスワード欄では半角入力になってしまう
この問題を解決する助言をください

695:名無しさん@お腹いっぱい。
11/05/06 18:00:10.05 IS08JZpr0
ディレイ40って0.04秒だからもっとしっかりゆとりを持たせたら?
あとパスワード欄の入力可否はそのソフト依存だと思う

696:名無しさん@お腹いっぱい。
11/05/06 19:36:03.00 nxcWJScI0
>>695
レスどうもです
これと同じようなことをuwscでやってる人がいるので
出来ないことはないと思うんですけど
なにかわかりませんか?
ディレイのところも1000などに変えたりしたんですけど無理でした・・

697:名無しさん@お腹いっぱい。
11/05/06 21:44:51.39 IS08JZpr0
すまん上で書いてたな

698:名無しさん@お腹いっぱい。
11/05/06 21:49:43.70 IS08JZpr0
記録ボタン使ってみたら?
記録→保存→動作確認→中身を簡素化する
でいいかと

699:名無しさん@お腹いっぱい。
11/05/06 22:11:03.11 9RnaXZtt0
>>693
辞書とかパスワードに影響ないとか、正直何したいのか分かり辛い。
入力段階ごとにIDとパスワードの状態を例として示した方が良いよ

700:名無しさん@お腹いっぱい。
11/05/07 00:12:30.26 mHIAImGa0
メイプルストーリー
…自動ログインで多重ログインか…ひどいもんだ。

701:名無しさん@お腹いっぱい。
11/05/07 00:32:43.15 uxg9/bzD0
>>694
URLリンク(scripts.web.fc2.com)

自動ログインスクリプト。
先にIDとパスワードのテキストファイル(MSLogin.dat)を作っておく必要がある。


-- MSLogin.dat ここから--
MapleStory ID List
名前, ID, パスワード // この行は変更してもかまいません。データは次の行から開始。
漢字名(表示用),ID,pass,メモ
-- MSLogin.dat ここまで--


KBD()で入力する場合はシフトとか特殊文字の処理が必要。
// UNICODE?文字を、キー送信用ASCIIキーコードに置き換える
Function CnvCCode( char )
 if !CHKNUM(char) Then char = STRCONV(char, SC_UPPERCASE)
 select char
  case "."
   code = VK_OEM_PERIOD
  case "@"
   code = VK_OEM_3
  default
   code = ASC(char)
 selend
 result = code
Fend

702:名無しさん@お腹いっぱい。
11/05/07 00:34:42.23 uxg9/bzD0
// Webページの入力コントロールにデータをセットする
Procedure InputData( ID, Info[], Data )
 Select Info[ID_Type]
  case ID_TEXT // テキスト
   SENDSTR( ID, Data, Info[ID_No], true, true )
  case ID_CLIP // クリップボード経由でテキストを貼り付け
   SendStr( 0, Data )
   SENDSTR( ID, "", Info[ID_No], true, true )
   SCKey( ID, VK_SHIFT, VK_END )
   sleep( 0.03 )
   SCKey( ID, VK_CTRL, VK_V )
  case ID_CLICK // クリック
   CLKITEM( ID, Data, CLK_ACC or CLK_SHORT or CLK_CONTINUE )
  case ID_KBD // 手入力エミュ
   SENDSTR( ID, "", Info[ID_No], true, true )
   SCKey( ID, VK_SHIFT, VK_END )
   sleep(0.1)
   for j = 1 to length(Data)
    sleep(0.03)
    SCKey( ID, CnvCCode(Copy( Data, j, 1 )) )
   next
   sleep(0.2)
  case ID_LIST // リスト選択
   CLKITEM( ID, Data, CLK_ACC or CLK_SHORT or CLK_CONTINUE )
   sleep(0.1); SCKey( ID, VK_TAB )
   sleep(0.1); SCKey( ID, VK_UP )
   sleep(0.1); SCKey( ID, VK_DOWN )
  default
   msgbox("i:" + " No." + Info[ID_No] + " Data:" + Data )
 Selend
Fend

703:名無しさん@お腹いっぱい。
11/05/07 00:44:22.39 uxg9/bzD0
PUBLIC   ID_NONE = 0
PUBLIC   ID_TEXT = $10 // テキスト(貼り付け)
PUBLIC   ID_KBD = $11 // キー入力をエミュ(ASCII文字限定)
PUBLIC   ID_CLIP = $12 // クリップボードから貼り付け
PUBLIC   ID_CHKBOX = $20 //
PUBLIC   ID_LIST = $30 // リストを選択
PUBLIC   ID_LISTCsr = $31 // カーソルキーによる選択
PUBLIC   ID_CLICK = $40 //

PUBLIC   ID_Type = 0
PUBLIC   ID_No   = 1 // テキストボックス, チェックボタンの番号
PUBLIC   ID_Key = 2

PUBLIC HASHTBL Data
================
 Dim GooP[][2] = _
_ // タイプ、番号、キー
 ID_TEXT, 2, "ID", _
 ID_TEXT, 3, "パスワード", _
 ID_TEXT, 4, "パスワード", _
 ID_TEXT, 5, "漢字姓", _
 ID_TEXT, 6, "漢字名", _
 ID_CLICK, 0, "性別", _  //(選択不可能)
 ID_LIST, 0, "生年", _
 ID_LIST, 0, "生月", _
 ID_TEXT, 13, "", _  //手入力なのでラスト
 "", "", "" // dummy

  s = //データの準備
  InputData( ID, GooP[i], s ) // データの入力

>>701-702 にこんな感じで定義したやつをぶち込む

704:名無しさん@お腹いっぱい。
11/05/07 14:27:44.63 eurEFH6h0
>>701-703
レスありがとうございます!
参考にさせていただきます

705:名無しさん@お腹いっぱい。
11/05/11 19:26:37.29 BXjDl7Fe0


706:名無しさん@お腹いっぱい。
11/05/17 18:35:31.01 UGhxi4pW0
So-netのポイントポンというゲームを自動でやりたいのですが、
SWFを認識してクリックすることって出来ますでしょうか?
このサイトです。
URLリンク(www.so-net.ne.jp)

707:名無しさん@お腹いっぱい。
11/05/17 19:57:43.12 +1xad/lQ0
できますよ

708:名無しさん@お腹いっぱい。
11/05/17 21:03:31.59 D0y9Fx350
>>706-707
見事なまでのテンプレだな。

709:名無しさん@お腹いっぱい。
11/05/17 22:07:48.63 UGhxi4pW0
>>707
どうやってやればいいのでしょうか?
ご教授いただければ・・。

710:名無しさん@お腹いっぱい。
11/05/17 22:09:43.86 UGhxi4pW0
CHKIMGではBMPしか駄目みたいなので、他にどういうアプローチが
あるか教えていただけるとうれしいです。

711:名無しさん@お腹いっぱい。
11/05/18 05:30:38.30 m+Qpbqgg0
>>710
BMPで十分だろ
それが気に入らんならMSAAで直接flashの操作するといい

712:名無しさん@お腹いっぱい。
11/05/18 13:22:28.74 iywQxWyC0
>>706って会員登録しないとダメなのかw

面倒だから見てないけど、この手のゲームだったらCHKIMGを使うのが1番確実だよ。
スクリーンショットとペイントだけで十分だ。

713:名無しさん@お腹いっぱい。
11/05/18 18:31:24.99 6WrbT/z10
調べても分からないので教えて下さい。
アクティブウインドウでは指定した所をクリックするのですが、
バックグランド(最小化)の時は違う所をクリックしてしまいます
両方で同じ場所(座標)をクリックするには、
どのようにすれば良いでしょうか?

wnd_id = GETID("○○○)
MOUSEORG(wnd_id, 2)

MMV(1100,585,1500)
BTN(LEFT,CLICK,1100,585,30)

714:名無しさん@お腹いっぱい。
11/05/18 18:35:02.50 mKLDAazC0
>>712
ありがとうございます。
これは一旦スクリーンショットをBMPとして保存して
それと照合させるってことですか?

715:名無しさん@お腹いっぱい。
11/05/19 08:56:01.85 IZxJh+aQ0
スクリーンショットで撮った画像を必要な部分だけ切り取る。
それをCHKIMGで探させてクリックさせる。

ifb CHKIMG("画像.bmp")
BTN(LEFT, CLICK, G_IMG_X+10, G_IMG_Y+20)
endif

画面上に"画像.bmp"があったら、その画像の左上から
右(X)に10ピクセル、下(Y)に20ピクセルの部分をクリックするというもの。

基本中の基本です。

716:名無しさん@お腹いっぱい。
11/05/19 09:23:24.83 T1Div3Tj0
ググってすらねーだろ

717:名無しさん@お腹いっぱい。
11/05/19 09:33:40.58 v/LFKHK/0
こんな親切なスレだと思わんかったよw
質問する前に試せば良いだろうに。

718:名無しさん@お腹いっぱい。
11/05/19 15:56:48.62 hu5TkwSm0
UWSCで詳細なデバックをしたいと思っています
コマンドプロンプトに返り値などを表示せる方法は無いものでしょうか?

Msgboxだと中断されてしまうので
print でコマンドプロンプトに表示される感じがいいのですが
方法がありましたら教えていただけないでしょうか
よろしくお願い致します

719:名無しさん@お腹いっぱい。
11/05/19 16:00:25.81 FaBEFFZI0
使ってて思ったんだけど他の言語の拡張ライブラリにChkImgとPeekColorを自分で実装したら
UWSC使う必要無くね?

720:名無しさん@お腹いっぱい。
11/05/19 17:15:11.68 BLUQoRtCP
車輪の再発明って知ってる?
敢えて作りたいのなら作ればいいと思うよ

721: 忍法帖【Lv=1,xxxP】
11/05/21 10:58:30.97 BbMPCqlJ0
2ちゃんねるの忍法帖切り替えツールが一応でけた。
こないだ3回目くらいのすいとん食らったときに思い立って複数作ってみたが、
IEへの反映方法がリストアか直接編集しかなくて意外と大変だった。

722:名無しさん@お腹いっぱい。
11/05/21 11:35:34.46 bBt6sr/x0
画像が認証できないのですがなぜでしょうか?


sleep(1)
ifb CHKIMG("ban.bmp",0)     
x=G_IMG_X // 画像の座標をxへ代入
y=G_IMG_Y // 画像の座標をyへ代入
BTN(LEFT, CLICK,x,y, 80)   // 画像の場所を左クリック
endif
wend

まず一段階でこれをしたいのですが
画像の形式もbmpです。切り取ってやりましたが
作動しません。
お手数ですがzipで準備しました。
暇のある方見てやってください(´・ω・`)
URLリンク(u9.getuploader.com)


723:名無しさん@お腹いっぱい。
11/05/21 12:00:24.99 BbMPCqlJ0
>>722
同じ部分を何度かキャプチャして違いがないか調べてみてください。
見た目で分かればそれでいいし、分からなければ色コードを・・・
同じエリアで切り取ってバイナリの一致をするかどうか見てもいいです。

変化がある場合は変化に対応するオプションが必要です。
(色ではなく形で見るというあれ)

キャプチャするときにJPEGとかで保存するようなソフト使ってないですか?
もし使ってたらその時点で色が変化しているので一致しません。
確実なキャプチャはAlt+PrintScreenです。
(ただし画面の色数によって違ってくるかも)

ビットマップファイルの形式はフルカラーじゃないといけません。
それ以下だと減色されて違う色になります。
もちろん画面の色数もフルカラーじゃないと。

724:名無しさん@お腹いっぱい。
11/05/21 17:36:36.83 bBt6sr/x0
>>723
お忙しい中見て頂いてありがとうございます
色変化してるんですかね
やって見たけどダメでした。もっと扱いに慣れてからこの手に触れようと思います

725:名無しさん@お腹いっぱい。
11/05/21 17:44:31.96 TY+fLqtTi
vistaやwin7だと、管理者で実行してやると解決するかも

726:名無しさん@お腹いっぱい。
11/05/21 18:33:30.38 eBttpOx+0
>>719
UWSCのドキュメントが少なく複雑で謎な言語仕様と戦う必要が無くなるから
ほとんどの人はそうしてる

727:名無しさん@お腹いっぱい。
11/05/21 19:00:45.33 N8mj71oS0
>>726
オーソドックスなBASIC的文法

最近主流のC的文法に慣れてると最初面食らうかもしれない

728:名無しさん@お腹いっぱい。
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


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