【マクロ】 UWSC Part3 【シェアウェア化】
179 :
名無しさん@お腹いっぱい。 :
2007/07/02(月) 14:08:33 ID:J+7axvp80 ありがとうございます。 それは ifb PEEKCOLOR(320, 320) = $00FF00 サンプルのこの構文でしょうか? これだと320,320の座標に指定の色があるかどうかを 確認するものだと思うのですが、 指定ウインドウにて指定の色があるかどうかを確認するにはどうしたら よいか教えてください・・ いろいろやったのですができません;;
>>179 某オンラインスロットゲームの奴か…?
とりあえず↓は色があるかどうかじゃなくて、RGB(UWSだとBGR)の
座標x=320、y=320の緑の値を求めている。(0〜255)
ifb PEEKCOLOR(320, 320) = $00FF00
181 :
名無しさん@お腹いっぱい。 :2007/07/02(月) 16:40:33 ID:J+7axvp80
ありがとうございます。 エクセルでちょっとやってみたいことがありまして・・・ 緑の値を求めているいるですか? これってつまりX,Y(320,320)に緑があるか、を確認している でいいのでしょうか? 理解力なくてすいません ウィンドウ全体を検索し、指定した色があるかどうかを確認するには どう書けばよいのでしょう・・・? Ifb PEEKCOLOR(x,y) = 色A then クリック右 else クリック左 endif これだとXYに色があったら、右クリック、なかったら左クリック なんですよね? そうではなくて、初めの行で指定してあるウィンドウ内全体を検索して、 その色があったとき右クリック、左クリック、とするにはどうかけばいいのでしょうか?
182 :
180 :2007/07/02(月) 16:48:27 ID:NYKQONZJ0
ごめん。ちょっと勘違いしてた。
183 :
名無しさん@お腹いっぱい。 :2007/07/02(月) 16:50:37 ID:J+7axvp80
そうですか。 ちょっと考えたんだけど、181のはなかったことにしてください。 色を指定しても他にもたくさんあったら、 一個一個検索していると時間かかりそうでだめっぽいので
184 :
180 :2007/07/02(月) 17:01:01 ID:NYKQONZJ0
MOUSEORG使って相対座標化してからPEEKCOLORで 色の判別といった感じかな?
固定色だろうから1ドット画像のchkimg使えばいいじゃん
A.UWSの中身(B.UWSからCallされる)
.
IE.Navigate("
http://yyy.com/zzz.html ")
.
BusyWait(IE)
// IE.Quit // IE終了
//------
Procedure BusyWait(ie)
Sleep(1) // Wait
Const TIME_OUT = 90
tm = Gettime()
repeat
Sleep(0.8)
ifb Gettime() - tm > TIME_OUT
MsgBox("Time Out:BusyWait")
ExitExit
endif
until (! ie.busy) and (ie.readyState=4)
Sleep(0.5)
Fend
Time Out:BusyWaitで停止してしまう時があるのです、回避作教えて下さい。
07/07/03 00:00 Uスクリプト: COM_Error:例外が発生しました。
X:\UWSC\A.UWS: 46行目: UNTIL (! IE.busy) AND (IE.readyState=4)
B.UWSの中身(A.UWSをCallする部分)
for 回数 = 1 to 1
Call A.UWS
print 回数
next
ブラウザで対象の読み込みが一定時間内に完了しない場合、この作業を諦めて
エラーで停止することなく次の作業へ進ませたいのです。
よそのサイトのコピペならそう書けばいいやん
もし次スレがあるとしたら質問テンプレを入れるべきだなと思いました
文字列 → 数値はVALを使いますが、 数値 → 文字列はなにを使えばいいのですか?
value= 0+”123”
str= ""+123
"abc.txt中のX行目の文字列をコピーしてSENDSTR(ID, 文字列)に送る" もしくは "abc.txt中のX行目の文字列をコピーしてクリップボードにコピー" ってどうすればいいでしょうか? ってどうす"ればいいでしょうか?
(^ω^;)
rocketmouse みたいなもんか?
>194 sendstr(0,fget(fopen("a.txt",f_read),x行目)) fopenでヘルプを見てみてください。
198 :
名無しさん@お腹いっぱい。 :2007/07/15(日) 04:34:38 ID:T2G6Z18L0
Ifb Chkimgで指定した範囲に 画像があるかどうかを調べるときに その画像の一部分だけを調べさせるために ほかの部分を透過させる方法があったと思うんですが、 Ifb Chkimg("a.bmp",1,5,53,167,65) これだと(5,53)から(167.65)の間にaという画像が あるかどうか、と調べることになるのでしょうか? あと、透過画像ってどうやって作るんでしたっけ? 教えてください
199 :
名無しさん@お腹いっぱい。 :2007/07/15(日) 04:35:14 ID:T2G6Z18L0
塗りつぶすんでしたっけ? 塗りつぶす色とかってきまってました?
質問する前にヘルプぐらいみたら?
もう画像認識だけで動くようにした方がよさそうだな。
202 :
名無しさん@お腹いっぱい。 :2007/07/15(日) 22:39:10 ID:ACyUmQe80
透過についてはわかりました。 画像の左上の色が灯火の色になるんですね。 しかし、探したい画像が、半透明で背景によって色がそのたびに 変わってしまうので透過させても 色が違うから探せません。 このような場合って対処法あるのでしょうか? 形で探す、とあるのですが、形ってどういうことですか? 画像の形って基本的に四角ですよね? どういうことなんでしょうか?
203 :
名無しさん@お腹いっぱい。 :2007/07/15(日) 22:59:57 ID:ACyUmQe80
説明がわかりにくいですね -1で形で検索、にした時って画像の 透過処理ってどうなってるんでしょうか? 左上の1ピクセルが透過色になるとかでしょうか?
はー
,.、 ,.、 i,!'; ,!i'; ; lj: ;,リ;' ;' "´゙ヽ ;' ;. ‘,,λ ) ;' ( ^ω^) ふわふわだお ,.;゙; (ノ ';) `'ヾ;,(つ;,;,(つ
206 :
名無しさん@お腹いっぱい。 :2007/07/16(月) 17:43:22 ID:dtS6GvNW0
結構真剣に聞いたんですが^^;
^^
>>197 ,.、 ,.、
i,!'; ,!i';
; lj: ;,リ;'
;' "´゙ヽ
;' ;. ‘,,λ )
;' ( ^ω^) ありがとうございました^^
,.;゙; (ノ ';)
`'ヾ;,(つ;,;,(つ
209 :
名無しさん@お腹いっぱい。 :2007/07/17(火) 21:56:58 ID:W6Ucar9X0
色判定でこの色〜この色までを、っていう風に 範囲を持たせたいときって 構文はどうやって書けばいいんでしょうか? 普通は ifb peekcolor(x,y) $123456 then だと思うんですが・・・ なんか色の系統によって違うんでしょうか? 赤色っぽい場合UWSCはBGRらしいので 0000FFまでですよね
,-、 ,.-、 ./:::::\ /::::::ヽ /::::::::::::;ゝ--──-- 、._/::::::::::::::| /,.-‐''"´ \:::::::::::| / ヽ、::::| / ヽ| l l .| ● | l , , , ● l ` 、 (_人__丿 、、、 / `ー 、__ / /`'''ー‐‐──‐‐‐┬'''""´
>>209 /ニYニヽ
/( ゚ )( ゚ )ヽ
/::::⌒`´⌒::::\
| ,-)___(-、|
| l |-┬-| l |
\ `ー'´ /
ある画像が現れるまで sleepをかけ続けることってできますか? 時間設定無しで
213 :
名無しさん@お腹いっぱい。 :2007/07/18(水) 02:33:23 ID:y76ISSxX0
209ですけど説明がわかりませんか?教える気がないんですか?
質問する気がないんですか?
めちゃくちゃFAQだし、もちろんこのスレでもさんざん既出。 皆同じことを何度も答える気にはなれないんだと思うよ。 自分で調べる気はないんですか?
なんで質問する側が偉そうなんですか?
煽るだけの奴は(ry
>>209 某スレにあがってたやつの抜粋だけど↓みたいに関数を作って
if GetColor(x座標,y座標,1) < 200 then とかすればいいんじゃないの。
function GetColor(x, y, z)
c = PeekColor(x, y)
ifb z = 1 then
result = (c and $FF)
elseif z = 2 then
result = ((c and $FF00) / $100)
elseif z = 3 then
result = ((c and $FF0000) / $10000)
elseif z = 7 then
result = (c and $FF) + ((c and $FF0000) / $10000) + ((c and $FF00) / $100)
endif
fend
カスにレスするやつもしねばいいのに^^ カスレスwwwwww
221 :
名無しさん@お腹いっぱい。 :2007/07/18(水) 20:52:10 ID:pGmqI86R0
バックグラウンドで動かすことってできないんですか? やるときはこれしかできないって大きなウィークポイントですよね
>>221 > バックグラウンドで動かすことってできないんですか?
俺はできてるけど、できないの?
ネトゲ厨の窓閉じた状態で動かしたい〜うんぬんだろw
あアナルほど
>>221 何がしたいのか分からんが
バックグラウンドでキーイベント検知ループとか
画像検知ループとかプロセス検知ループとか組んでおけば
ずーっと動いてるだろ
226 :
名無しさん@お腹いっぱい。 :2007/07/18(水) 22:40:44 ID:pGmqI86R0
え?できるんですか?
指定してあるウインドウを最善に表示しておかないとだめじゃないの?
クリックするような構文を書いたとしても
実行したときにそのウインドウが前面にないと意味ないですよね?
>>225 それやるにはどういう構文を書けばいいの?
あなたのいうバックグランドで実行が、何の言語だったら 出来るのか知りたい。
228 :
名無しさん@お腹いっぱい。 :2007/07/18(水) 23:48:35 ID:pGmqI86R0
バックグラウンドっていうの勘違いしてるかも・・・ せんブラとかIEみながら、対象ウインドウが裏に回ってるときでも 動作してくれるとうれしいってことなんですが・・・
動作にもよるけど、それは別にUWSに限った話ではない。
>>228 > せんブラとかIEみながら、対象ウインドウが裏に回ってるときでも
> 動作してくれるとうれしいってことなんですが・・・
メッセージ直接送れば動くでしょ。
231 :
名無しさん@お腹いっぱい。 :2007/07/19(木) 10:07:30 ID:bJWhKgyU0
>>229 どれでも特別に裏でも動作するような
やり方市内と物理的というか、クリック判定送るだけですからね・・・
>>230 その直接送る構文ってどれなんでしょうか?
GETIDは違いますよね
裏に回るとクリック動作だけ前面に来るし・・・
ヒントだけでも教えてください
ヒント: 過去ログ嫁
関数が糞なのは確か。
教えてやれよw
44 名前:おかいものさん[sage] 投稿日:2007/07/18(水) 18:28:58
ハ ハ ニャー
('A`,,),,)〜 ニャー
46 名前:おかいものさん[sage] 投稿日:2007/07/19(木) 00:07:34
>>44 元気出せよ…なっ?
47 名前:おかいものさん[sage] 投稿日:2007/07/19(木) 00:58:21
,-'"ヽ
/ i、 / ̄ ̄ ヽ, _/\/\/\/\/\/|_
{ ノ "' ゝ / ', \ /
/ "' ゝノ {0} /¨`ヽ{0} <
>>46 ニャーン!! >
/ ヽ._.ノ ', / \
i `ー'′ '.  ̄|/\/\/\/\/\/ ̄
/ }.
i' /、 ,i..
い _/ `-、.,, 、_ i
/' / _/ \`i " /゙ ./
(,,/ , ' _,,-'" i ヾi__,,,...--t'" ,|
,/ / \ ヽ、 i |
(、,,/ 〉、 、,} | .i
`` ` ! 、、\
!、_n_,〉>
236 :
名無しさん@お腹いっぱい。 :2007/07/19(木) 17:40:28 ID:2ISjkxaj0
吹いたw 過去ログ読みたいんですけど、dat落ちしていて読めません ご教授願えないでしょうか・・・
>>236 DEF_DLL SendMessageA(hwnd, uint, uint, long): long: user32.dll
次は使い方がわかりませんと言われるに100ガバス
238 :
名無しさん@お腹いっぱい。 :2007/07/19(木) 18:26:34 ID:ltXJ/pfH0
いえ、ありがとうございます。 調べてきますね^^
Win32apiだけで作っとけ。
幾らAPIだからって何でも出来るワケじゃないからな。 何でもかんでも裏で動かせると思わないことだ。
少なくとも組み込み関数>>>>Win32APIだろ? 掃除機Win32APIは絶対必要。裏表の話じゃない。
WIN32API >>>> 組み込み関数 肝心なとこ間違えた俺は相当馬鹿。
243 :
名無しさん@お腹いっぱい。 :2007/07/19(木) 20:58:34 ID:ltXJ/pfH0
さっぱりわかりませんでしたorz 聞きにくいですけどどう使えばいいのでしょう・・・ 探してるときにWin32apiというのも目に付いたのですがさっぱり・・・
JOUTAI = SLCTBOX(SLCT_BTN,0,"状態","わからない","やっぱりわからない","それでもわからない")
ifb JOUTAI = 1
EXEC("hh "+GET_UWSC_DIR+"\uwsc.chm")
elseif JOUTAI = 2
SCKey(GetID("【マクロ】 UWSC Part3 【シェアウェア化】"),VK_Ctrl,F)
elseif JOUTAI = 4
SendMsg(GetID("","Shell_TrayWnd"),401)
SendStr(0,"
http://www.google.co.jp/ ")
MouseOrg(GETCTLHND(GetID("ファイル名を指定して実行","#32770"),"ComboBox",1),2)
KBD(VK_Ctrl,1); KBD(VK_V); KBD(VK_Ctrl,2);
MouseOrg(0)
SendMsg(GetID("ファイル名を指定して実行","#32770"),1)
endif
Procedure SendMsg(WID,CID)
DEF_DLL SendMessageA(hwnd, uint, uint, long): long: user32.dll
SendMessageA(IDTOHND(WID), 273, CID, 0)
FEnd
わからない七大理由 1. 読まない ・・・説明書などを読まない。読む気などさらさらない。 2. 調べない ・・・過去スレ、ググるなど最低限の内容も自分で調べようとしない。 3. 試さない ・・・めんどくさいなどの理由で実行しない。する気もない。 4. 理解力が足りない ・・・理解力以前の問題で理解しようとしない。 5. 環境のせいにする ・・・自分が悪いのではなく環境が悪いと責任転嫁する。 6. 人を利用することしか頭にない ・・・甘え根性でその場を乗り切ろうとする。 7. バカだから ・・・バカだから。
すごくくだらない質問なのかもしれませんが uwsc.exeというファイル名になってるのを、試しに別のTest.exeという風に変えてみたら起動しませんでした これ回避できないのですか?
できる。 バイナリ書き換えで改造するか それかPro買ってexe化しる。 つーか升厨乙。
どういたしまして
初心者は一切質問せず自分で調べろってこったな
250 :
名無しさん@お腹いっぱい。 :2007/07/20(金) 13:46:17 ID:8lQCaYfO0
態度と内容いかんでは教えてあげてもいいと思う じゃなきゃ意味がないだろ
その前に画像を調べてなにしたいの?
ネトゲです^^;
わらた こんなソフトまでシェア化されるんんだ 作者必死すぎw
シェア版には、IEの記録なんてのがあるヨ。
シェア版はデイトレ専用。
256 :
名無しさん@お腹いっぱい。 :2007/07/22(日) 22:20:34 ID:57E8QY6C0
頭いい人教えて 画像判定で判定したい画像がないときは右を押し続ける あったらF1を押すみたいな構文 ifb CHKIMG("wanko.bmp",1) // 画像があった BTN(RIGHT,CLICK,G_IMG_X+1, G_IMG_Y+45,1) // 右クリック sleep(0.05) KBD(VK_F1,DOWN,55) KBD(VK_F1, UP,55) else KBD(vk_right,DOWN,1000) endif これじゃなかったら右おして終わっちゃうし・・・
257 :
名無しさん@お腹いっぱい。 :2007/07/22(日) 22:30:42 ID:57E8QY6C0
あと33行目に戻る って言う構文を教えてください
259 :
名無しさん@お腹いっぱい。 :2007/07/22(日) 22:33:15 ID:57E8QY6C0
それってその間を無限に繰り替えずってことですよね?
試すことを知らない阿呆は嫌いです。
261 :
名無しさん@お腹いっぱい。 :2007/07/22(日) 23:04:43 ID:57E8QY6C0
今試したんだけど、よくわからない
やっぱり間のを無制限に繰り返しちゃうきがする・・・
画像があったらA,なかったら33行目に戻る
っていうのをやりたいのだけど・・・
ifb CHKIMG("wanko.bmp",1) // 画像があった
BTN(RIGHT,CLICK,G_IMG_X+1, G_IMG_Y+45,1) // 右クリック
sleep(0.05)
KBD(VK_F1,DOWN,55)
KBD(VK_F1, UP,55)
else
while true
>>256 wend
endif
こんな感じですか?むずかしい・・
262 :
名無しさん@お腹いっぱい。 :2007/07/22(日) 23:15:10 ID:57E8QY6C0
意味わからないね も8うちょっと整理して考えて見ます。。
263 :
名無しさん@お腹いっぱい。 :2007/07/22(日) 23:18:28 ID:57E8QY6C0
やっぱり画像があったら〜〜 なかったら33行目に戻る、 ってのをやりたいので、 その構文教えてもらえないでしょうか? それがわかれば解決するんですが・・・
264 :
名無しさん@お腹いっぱい。 :2007/07/22(日) 23:28:13 ID:57E8QY6C0
ifb CHKIMG("wanko.bmp",1) // 画像があった BTN(LEFT,CLICK,550,450,1) // 右クリック else while true ifb CHKIMG("wanko2.bmp",1) BTN(RIGHT,CLICK,G_IMG_X+1, G_IMG_Y+90,111) // 右クリック sleep(2) KBD(VK_F2,DOWN,55) wend endif endif これだとwhileの間を延々と繰り返してしまいます 行のはじめと最後にwhileとwendをおけば 確かにできるんですけど、今度はこれ全体をを延々と 繰り返すことになります。 はじめの BTN(LEFT,CLICK,550,450,1) // 右クリック が実行されたらこのループ構文を終えて、次の構文に移行する ってことはできますか?
265 :
名無しさん@お腹いっぱい。 :2007/07/23(月) 01:24:52 ID:Rn1NyrYb0
CLICKITEM関数でCLK_BACK設定すると バックでも動くと聞いたのですが、 CLICKITEM関数ってどうやるのですか?
もうそのゲームやめとけよ。無駄だろ? コンピュータゲームなのにわざわざ手で 操作しなきゃいけないようにしてあるんだぜ? この意味を良く考えろよ。
267 :
名無しさん@お腹いっぱい。 :2007/07/23(月) 19:55:37 ID:8CQqVflP0
ふみゅう・・・
>>266 > この意味を良く考えろよ。
ゲーム中にゲーム内のキャラでオナヌー出来ないようにするためだな!だな!
>>266 なんていうか、UWSの存在を否定する書き込みw
>>264 ifb chkimg("wanko1.bmp",1) = true //- 画像1があった時の処理
btn(RIGHT,CLICK,g_img_x+?,g_img_y+?,50) // 右クリックで画像+?の場所
else //- 画像1がなかった時の処理
while true //// ループ処理(画像2を見つけるまで)
ifb chkimg("wanko2.bmp",1) = true //- 画像2があった時の処理
kbd(VK_F2,UP,50) // 一応離しておく
btn(RIGHT,CLICK,g_img_x+?,g_img_y+?,50)
break // ループ処理を抜ける
else // 画像2がなければ↓の2行をループ
kbd(VK_F2,DOWN,50)
sleep(1)
endif
wend //// ループ処理(画像2を見つけるまで)
endif
暇だったから考えてみたけどこういう事かな?いまいち何がしたいのかわからん
272 :
名無しさん@お腹いっぱい。 :2007/07/24(火) 23:22:22 ID:pIiBkqYt0
>>270 ,271
ありがとう!
BREAKでループ抜け出せるんですか
ということは書いてもらったとおりにすれば、
うまくいきそうです。
わざわざ書いてまでもらって感謝です
初心者です スクリプトを開始から10分後に終了させるには どのようにしたらいいのですか スケジュールでA→Bと実行させたいのですが Aが終了しないため、Bが実行できません
help gettime()
POFF(P_POWEROFF) したら外付けHDDが強制切断されるっぽい 次回OS起動時にチェックディスクがはじまる 俺だけかな?
>>273 gettime()
start_time = (g_time_hh * 3600) + (g_time_mm * 60) + g_time_ss
repeat
gettime()
now_time = (g_time_hh * 3600) + (g_time_mm * 60) + g_time_ss
timer = start_time + 6000 - now_time // 開始時間+6000秒 - 今の時間
sleep(1)
until timer < 0 // 変数が0になるまでループ
まぁヘルプみりゃ一発なんだろうけど、10分を正確に判断しないならfor文で3行か
それにしてもパズルを解くマクロってなかなか難しい・・
>>275 今試してみたけどチェックディスクはなかった
強制切断は確認するの忘れた・・外付けHDDはずして起動してみるとか?
>>276 273です、ありがとうございます。
質問させていただいたAのスクリプトはrepeat文で
条件を満たせば自動的に終了するのですが
それ以外ではループしています
ループしている場合のみ10分で止めたいのです
貼っていただいたスクリプトは理解できるのですが
この場合でも使えるのですか?
>>278 自分で考えない奴は何をやっても無駄といういい見本