10/08/10 17:16:16 CwYB52mM0
>>699
とりあえず表示-編集モード-VB使えば?BASIC基本構文が色分けされるだけでもだいぶ楽
CHKIMGとかのUWSC専用構文は色分けされないけど
もっと本格的にやりたきゃモード作るとか
701:693
10/08/11 19:37:03 fuFHgMGbO
再度質問させて下さい。
4種の座標
A(20.120)・B(30.130)・C(40.140)・D(50.150)
があり、A~Dの座標をランダムにクリックさせる場合にはどうすれば良いのでしょうか?
対象ウィンドウのサイズは800*640です。
また、クリック間隔は500ms程度にしようと考えています。
702:名無しさん@お腹いっぱい。
10/08/12 11:32:05 6HDVq6//0
dim a[]=1,2,3,4,5,6,7,8
r=random(4)*2
a[r]
a[r+1]
703:名無しさん@お腹いっぱい。
10/08/19 09:44:12 7ukdiQRxO
>>702
返信遅くなりました。
ありがとうございます!
704:名無しさん@お腹いっぱい。
10/08/20 18:06:08 IackKw990
PUBLIC clear_fuki = -1 // 消去する識別No.を指定する
FUKIDASI("main")
thread create_fuki(1, "aaaa", 100, 100) // スレッドにて吹出し生成
thread create_fuki(2, "bbbb", 200, 200)
thread create_fuki(3, "cccc", 300, 300)
sleep(3)
clear_fuki = 2 // bbbbbを消去
sleep(5)
// 吹出し生成 (pno=識別No.、msg=表示メッセージ、x,y=位置)
procedure create_fuki(pno, msg, x, y)
FUKIDASI(msg, x, y)
while clear_fuki<>pno; sleep(0.1); wend // 消去指定されるまで表示
Fend
公式のなんですけどこれで消さずに残すようにするにはどうすればいいですか?
705:名無しさん@お腹いっぱい。
10/08/20 18:36:15 83ayW7Fq0
>>704
むしろaaaa,bbbb,ccccを表示してbbbbだけ消す例
706:名無しさん@お腹いっぱい。
10/08/21 04:27:21 FTm8wpbq0
ネットゲームで画像を認識しようとしているのですが
用意したbmp画像をchkimgしても認識してくれません
プリントスクリーン(windowsにあるやつ)
ペイントにコピペ
24ビットマップで保存
の順に作業したのですがおかしいところはあるでしょうか
707:名無しさん@お腹いっぱい。
10/08/21 04:47:43 FTm8wpbq0
↑ペイントで開いた画像だけは認識してくれました
708:名無しさん@お腹いっぱい。
10/08/21 12:49:56 oobB5dF6i
>>706
気付かないレベルで1ドット色が変わってもだめ
動的に画像を作り出すゲームではよくある
709:名無しさん@お腹いっぱい。
10/08/21 12:52:53 sO6lLGskO
ifb CHKIMG(".bmp",-1)
endif
これで試してみては?
710:706
10/08/22 09:45:50 Y875/60n0
>>708,709
ありがとうございます
画像の用意のしかたはどうやら合ってるみたいでした
自分のPCの環境がおかしいのか
マウスを右か左クリックしているときだけ画像認証が行われることがわかりました
できれば普通に認証したいので原因など思い当たるふしがあったらアドバイスいただきたいです
OSはXPでゲーム自体はdxwndで窓化して表示しています
711:名無しさん@お腹いっぱい。
10/08/22 16:42:00 K7byzTQqP
ウィンドウ全体をキャプチャーしているのだったら、画像を切り抜いて小さくすれば(16x16とか)認識するかもしれない
もちろん切り抜く場所によって認識するか認識しないかは変わるので、良く考える
大きい画像の認識はそれなりに負荷がかかるのでいろんな意味でもキツいと思う
712:名無しさん@お腹いっぱい。
10/08/23 19:15:07 j1GIf4L/0
IE7のオプション設定を一発で変更したい。
フォントをClearTypeにし、フォントも1~2pt大きくして
IEを使用しているのですが、サイトによっては 、文字や写真が重なる
ときがあります。
その際は、デフォルトに戻す⇔再度設定 と切り替えたいのです。
具体的には
ツール→オプション→ユーザー補助→WEBページで使用されたフォント・サイズを使用しないにチェック
テンプレのURLで調べたのですが、"チェックする"はフォームでのものしかありませんでした。
713:名無しさん@お腹いっぱい。
10/08/24 13:04:18 oayi1Lr90
吹き出しで直線に近い道をゴールしてくれるのをつくりたいのですが
ifb chkimg("aka.bmp",0,1,1,2222,1000) then
a=G_IMG_X
b=G_IMG_Y
while true
ifb chkimg("siro.bmp",0,x+1,y,x+1,y) then
if x<a then x=x+1
else
endif
ifb chkimg("siro.bmp",0,x,y+1,x,y+1) then
if y<b then y=y+1
else
endif
ifb chkimg("siro.bmp",0,x-1,y,x-1,y) then
if y>b then y=y-1
else
endif
ifb chkimg("siro.bmp",0,x,y-1,x,y-1) then
if y>b then y=y-1
else
endif
print "<#CR>"+(200+x)+" "+(300+y)
wend
endif
これだと動いてくれません どうしたらいいですか
akaがゴールの色でsiroが通れる道の色です
714:名無しさん@お腹いっぱい。
10/08/24 13:06:05 oayi1Lr90
吹き出しはこの前の段階で出してスタート地点に移動しています
715:名無しさん@お腹いっぱい。
10/08/24 18:30:04 Wb+yA2C1i
>>712
ウィンドウ操作なら
タブキーで項目移動、スペースキーで項目反転が出来る
>>713
UWSCで出来ないことは無いと思うが
迷路探査アルゴリズム、でググって、考え方を理解しないと難しいだろう
716:名無しさん@お腹いっぱい。
10/08/26 00:13:14 wzBcZHfa0
712です。
>>715
ありがとうございます。
ただ、その前に オプション画面を出す方法が知りたかったのです。
717:名無しさん@お腹いっぱい。
10/08/26 08:10:07 +vvO52tv0
>>716
『インターネット オプション』のダイアログを出さずに
直にレジストリを書き換えて再読み込みさせたらいいんじゃね
実行する度に『Web ページで指定されたフォント サイズを使用しない』の
ON/OFF を切り替える例は以下
OPTION EXPLICIT
CONST HWND_BROADCAST = $ffff
CONST WM_SETTINGCHANGE = $1A
CONST SMTO_ABORTIFHUNG = $2
DEF_DLL SendMessageTimeoutA(hwnd, uint, long, uint, uint, VAR dword): long: user32.dll
DIM key = "HKCU\Software\Microsoft\Internet Explorer\Settings\Always Use My Font Size"
DIM wshshell = CREATEOLEOBJ("WScript.Shell")
DIM rsl
wshshell.RegWrite(key, !wshshell.RegRead(key), "REG_DWORD")
wshshell = NOTHING
SendMessageTimeoutA(HWND_BROADCAST, WM_SETTINGCHANGE, 0, "Software\Microsoft\Internet Explorer", SMTO_ABORTIFHUNG, 5000, rsl)
718:名無しさん@お腹いっぱい。
10/08/26 13:02:28 MdNPOjE70
質問させて下さい。
・画像A・Bが表示されたらクリックして終了。
・画像が60秒間表示されなかったら終了。
というスクリプトを作りました。
----------------------------------------
変数 = 0
while 変数 < 60
ifb CHKIMG("画像A.bmp")
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
変数 = 60
endif
ifb CHKIMG("画像B.bmp")
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
変数 = 60
endif
sleep(1)
変数 = 変数 + 1
wend
----------------------------------------
これでもちゃんと動くのですが満足してません。
※sleepとか変数を強引に60にするところとか
もっと美しく、そして応用が利く作り方はないでしょうか?
719:名無しさん@お腹いっぱい。
10/08/26 21:11:51 X8EPE0dEi
>>718
中断を表したいなら、breakに置き換えればいいだろ。ごく普通。
時間経過を表したいなら、時間取得をすればいい。関数はある。
抽象化したいという理想は何となく判るがね。
720:名無しさん@お腹いっぱい。
10/08/26 23:38:49 Pu7JT7nc0
ここは凄く勉強になるなぁ
721:名無しさん@お腹いっぱい。
10/08/28 08:38:47 oxztQxVg0
>>718
これも良く出来てると想う
722:名無しさん@お腹いっぱい。
10/08/29 05:36:14 9AX1wooV0
>>716
ありがとうございます。完璧です! まさに求めていた操作感です!
サイズに加え、フォントも変更しているので、
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Settings\Always Use My Font Face
を追加したいのですが、これはむずかしいでしょうか。
現状、UWSファイルを2つ作って、2つを実行させるUWSを走らせています。
なんにせよ感謝です!!
723:名無しさん@お腹いっぱい。
10/08/29 08:02:00 2ohpKIfP0
>>722 こんな感じ?
OPTION EXPLICIT
CONST HWND_BROADCAST = $FFFF
CONST WM_SETTINGCHANGE = $1A
CONST SMTO_ABORTIFHUNG = $2
DEF_DLL SendMessageTimeoutA(hwnd, uint, long, uint, uint, VAR dword): long: user32.dll
DIM wshshell = CREATEOLEOBJ("WScript.Shell")
DIM rsl
toggle_ie_setting(wshshell, "Always Use My Font Face")
toggle_ie_setting(wshshell, "Always Use My Font Size")
wshshell = NOTHING
SendMessageTimeoutA(HWND_BROADCAST, WM_SETTINGCHANGE, 0, "Software\Microsoft\Internet Explorer", SMTO_ABORTIFHUNG, 5000, rsl)
PROCEDURE toggle_ie_setting(obj, name)
name = "HKCU\Software\Microsoft\Internet Explorer\Settings\" + name
obj.RegWrite(name, !obj.RegRead(name), "REG_DWORD")
FEND
724:名無しさん@お腹いっぱい。
10/08/29 09:19:42 9AX1wooV0
>>723
ありがとうございます。これで仕事の効率が確実にあがります!
ところで、こういった記述、全部ゼロから書いてるんですか?
だとしたらすごいです。
725:名無しさん@お腹いっぱい。
10/08/30 22:07:44 +01WMHHg0
>>718
これ、逆に
画像が表示されなかったらクリック
画像A・Bが表示されたら終了
にしたい場合、どうすりゃいい?簡単な事でできそうなんだがうまくいかん
726:名無しさん@お腹いっぱい。
10/08/30 23:34:46 cCQi0/eo0
>>725
while true
ifb CHKIMG("画像A.bmp") or CHKIMG("画像B.bmp")
break
else
BTN(LEFT, CLICK, X, Y)
endif
wend
こういうこと?
727:名無しさん@お腹いっぱい。
10/09/01 12:55:02 gZxFjlWw0
無料版の方を使ってますが
上位バージョン(有料版)ではどのような機能が追加されているのでしょうか?
728:名無しさん@お腹いっぱい。
10/09/01 14:32:51 mcbj3OJX0
アドバイスお願いします。
ESCキーで動作終了。
画面の座標・X400~420、Y400~420のうち
1ドットでも色の変化があった場合、座標400.400をクリックというようにしたいのですが
ESCで停止はできても、クリックが動作してくれません。
IFB Countが悪いのでしょうか?アドバイスお願い致します。
729:名無しさん@お腹いっぱい。
10/09/01 14:34:17 mcbj3OJX0
// 画面サイズ
CONST X_MAX = G_SCREEN_W
CONST Y_MAX = G_SCREEN_H
DIM OldColor[X_MAX][Y_MAX];
// X座標変化範囲を指定
CONST X_START = 400
CONST X_END = 420
// Y座標変化範囲を指定
CONST Y_START = 400
CONST Y_END = 420
Total = ((X_END - X_START) + 1) * ((Y_END - Y_START) + 1)
// 起動時の指定範囲の色を得る
FOR x = X_START to X_END
FOR y = Y_START to Y_END
OldColor[x][y] = PEEKCOLOR( x, y ) // 座標(x,y)の色を得る
NEXT
NEXT
730:729続き
10/09/01 14:38:13 mcbj3OJX0
WHILE True
if GETKEYSTATE(VK_ESC) then exit // ESCキーを押すと終了させる
Count = 0
// 起動後の指定範囲の色を得て、変化をチェックする
FOR x = X_START to X_END
FOR y = Y_START to Y_END
NewColor = PEEKCOLOR( x, y )
// 変化あり?
IFB NewColor <> OldColor[x][y]
Count = Count + 1
ENDIF
NEXT
NEXT
// 指定範囲の1色が変化
IFB Count = 1
ENDIF
WEND
BTN(LEFT,CLICK,400,400)
731:名無しさん@お腹いっぱい。
10/09/01 17:30:48 61+r90Q20
色違い判定したところでループ抜けないとダメ
// 指定範囲の1色が変化
IFB Count = 1
BREAK
ENDIF
WEND
BTN(LEFT,CLICK,400,400)
732:729
10/09/01 21:08:10 mcbj3OJX0
>>731
ありがとうございます。BREAKは思いつかなかったです。
やってみましたが、反応しませんでした。
IFB Count = 1 の1を、total にして、全ドット箇所の色を変えたら反応しました。
やはり数値は使えないんでしょうか・・・
733:名無しさん@お腹いっぱい。
10/09/01 21:09:04 XX3BJheM0
色の変化が1ピクセル”だけ”の時は動くけどそれ以上だと
count=1はfalseになったままでNGだろ。
ifb count>0
break
あるいは
734:名無しさん@お腹いっぱい。
10/09/01 21:14:02 XX3BJheM0
書いてる途中で送信してしまった
ifb count>0
break
endif
あるいは見つかった段階でbrek
IFB NewColor <> OldColor[x][y]
break 3
ENDIF
もしくは最初にsaveimgで指定範囲をbmpで取得して
以後chkimgで見つからなければbreakとか。
735:名無しさん@お腹いっぱい。
10/09/02 16:26:42 LYfMKHgu0
有料と無料の違いを3行でおねがい
736:名無しさん@お腹いっぱい。
10/09/02 20:43:28 rUWrE0cY0
・ EXE化ツールが付属しています。(EXE化後は単体での実行が可能であり、ライセンスフリーにて配布できます)
・ IE(Web)用記録ツールが付属しています。(Web上の動作をUWSCのスクリプトとして記録する事ができます)
・ HTMLを利用した画面関数が使えます。 ・ EXCELシート用関数が使えます。 ・ デバッガが付属しています。
737:729
10/09/02 21:41:38 I3CZuiar0
>>734
ありがとうございます。だいぶ理想的な動作をするようになってきました。
まだ全然理解できてないとよくわかったので、またヘルプを読みこんでみます
738:名無しさん@お腹いっぱい。
10/09/07 17:34:36 yyBP3/0p0
Twitterクライアントを作っていますが。OAuth対応で、
DEF_DLLで下記にある、OAuthLib.dllを利用しようとしていますが、どうしてもうまく行きません。
URLリンク(oauthlib.codeplex.com)
C#のソースとかはあるけど、C#分からないし……
BSMTP.DLL(BASP21)のように言語依存があったりするのでしょうか。
739:名無しさん@お腹いっぱい。
10/09/08 12:51:19 h0eA5K/vi
>>738
正直DLLは鬼門だと思う。
該当DLLを使ったことがなければまず何も答えられない。
そして、貴方が何でどうダメだったのかも解らないので
レスもつけられないスパイラル。