●質問したい方へ。
「○○作れますか?」→ スクリプトを期待するのはお門違い。作れるか作れないか教えてくれる人はいるかも。
「○○が作りたい」→ 自分作ればいいんじゃない?
「○○作って下さい」→ 依頼スレじゃありません。
過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。
自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。
●スクリプトを晒す上での注意
他人が読みやすいようにインデントを付けるように。解らない人はググレ。
(タブインデントは使えないんだぜ 全角スペース等に 変換しておくべし)
言いたい事に関係無い部分は 〜○○の処理〜 や 処理A 等のようにし、
必要な部分を晒すようにする。
●他人の書いたスクリプトを安易に実行しないように。
ハードディスクをフォーマットされたりしても、自己責任。
前スレ
自動化ツールuwsc使いよ集まれ6
http://hibari.2ch.net/test/read.cgi/software/1291347103/
カウンタを「1 To 10」という表記ではなく「01 To 10」という表記で行いたい(カウンタの文字をそのまま展開して使用したいためです)のですが、なにか簡単な方法はないでしょうか?、
10より小さかったら頭に0を付ける処理を挟めば良いんじゃない?
ちなみにUWSCでは数値型→文字列型は自動変換されるから
意識する必要はない(逆はVAL関数を使って変換する必要がある)
7 :
名無しさん@お腹いっぱい。:2011/08/05(金) 08:37:55.81 ID:lT+8+LR20
↓または↑をランダムに1〜6回キーを動作させるスプリクトってないでしょうか?
8 :
名無しさん@お腹いっぱい。:2011/08/05(金) 08:43:10.98 ID:lT+8+LR20
これを応用すればうまくいきそうなんですけどうまくできずorz
// キーボードからのキーを一文字づつずらす #n45
for k = VK_A to VK_Y
SETHOTKEY(k, ,"fuckey") // AからYまでキー登録
next
Sleep(100)
for k = VK_A to VK_Y
SETHOTKEY(k) // 解除
next
// 一文字ずらす
Procedure fuckey()
KBD(HOTKEY_VK+1)
Fend
random関数で乱数作って適当に分岐させればいいんじゃないの?
画像がariになったらクリックしてnasiになったらまたワンクリックだけしたいんのですが
下の方法だとariの画像の時に連打になってしまいます
どこが間違っているのか指摘お願いします
While True
Ifb ChkImg("ari.bmp",0)
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,80)
Ifb ChkImg("nasi.bmp",0)
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,80)
ELSE
continue
ENDIF
ENDIF
WEND
>>10 ほらインデントのないネストはメンテナンス性質
12 :
11:2011/08/08(月) 01:21:33.51 ID:v8wBMKOC0
>>11 ほらインデントのないネストはメンテナンス性悪いだろ?(2chというかHTMLは基本タブ効かない)
途中でカキコしちゃった
行頭半角スペースと連続した半角スペースもな
JavaやFlashの動くブラウザゲームをしてると、たまになにかのひょうしに固まってしまう時があります。
そんな時に、何秒かフリーズしたら直前の動作をやり直す、というようなスクリプトはないでしょうか?
>>7 こんな感じ?
OPTION EXPLICIT
click_down_or_up()
PROCEDURE click_vk_down_or_vk_up(n=6)
DIM i
FOR i=0 TO RANDOM(n)
IF RANDOM(1024) MOD 2 THEN KBD(VK_DOWN) ELSE KBD(VK_UP)
NEXT
FEND
16 :
15:2011/08/08(月) 21:57:11.90 ID:4Hjil58d0
すみません、プロシージャ呼び出しのとこ間違えました
click_down_or_up() => click_vk_down_or_vk_up()
17 :
名無しさん@お腹いっぱい。:2011/08/08(月) 22:50:41.23 ID:ffkTFK4P0
>>15 思った通りの動き方してます!
すばらしいです。
どうしても手動でやらなければならないところが自動化できるようになりました。
本当にありがとうございます。
こういうの普通にできるようになりたいなぁ。
それってこれだけでいいような気が
FOR i=0 TO RANDOM(6)
IF RANDOM(2) THEN KBD(VK_DOWN) ELSE KBD(VK_UP)
NEXT
FOR i=0 TO RANDOM(n)
これって均等にランダムにならなくないか?
n に近くなるほど回る確率が下がると思うんだけど
あと、カウンタ変数の開始値を1にしないと、
引数で指定した数より1回多く回っちゃう可能性があるよ
> n に近くなるほど回る確率が下がると思うんだけど
意味不明
> 引数で指定した数より1回多く回っちゃう可能性があるよ
0≦random(n)≦n-1
ある一定回数画像(複数)を見つけられないとループを抜け出すようにする方法はありませんか?
超基本的文法レベルの質問する奴ってなんなの?
1bitな質問くらい答えてやっても
この程度が出来ないと後々質問厨になるだけだな
初心者スレ作って隔離するしかないだろ
作っていいか?
こんなに過疎ってるのにスレ分けるってのもなぁ
俺もそう思うけど、初心者レベルの質問が気に食わない奴もいるんだしな
初心者質問ってよりゲームマクロの質問する奴を分けろ。
最近のお馬鹿な質問全部ゲームマクロ関係だろ。
今時間指定でプログラムの実行をするために
常に時計を表示させておいて、コピー→if clipboard = 指定時間
みたいにしてるんだけどもっといい時間指定ないかしら
uwscのリファレンスってないの?
どこのサイト見ても中途半端で困ってる
ie操作系の命令文が全て載ってるサイト教えて
>>31 uwscのIE操作のコマンドはヘルプに全部載ってる
IEのCOM操作のことならMicrosoftのサイトを見ろ
33 :
名無しさん@お腹いっぱい。:2011/08/20(土) 18:12:11.41 ID:U5nBfC/V0
メールソフトのサンダーバードへ指定のメールを受信させた時にある動作をさせるようにがんばってるんだけどなかなか難しい。
UWSCでそもそもできるものなのですかねぇ。
特定のソフトに表示されてる数字を読み込むコマンドってありますか?
PosAcc(id,x,y,ACC_BACK)だとうまくいかないみたいで
公式FAQに
”再生時に ウィンドウが出るのをスクリプトが待ち切れずに実行されて おかしな事になる #n8
スクリプト内のGETID関数に第3引数(待ち時間指定)を付けてください。
GETID("xxxx", "xxxx", -1) // -1:画面が出るまで待つ”
とありますが待機時間を-1にするとUWSCの中ではどんな動作がされているんでしょうか。
待ち時間だので40とかを指定するべきではないのすか?
-1というのは「画面が出るまで待つ」という意味です。
例えば信号に例えてみましょう。
「信号が緑になったら横断歩道を渡る」という場合にあなたは
「緑になったら信号を渡る」
「40秒後に渡る」
のどちらですか?後者だと最悪、死にますよね。
-1はウィンドウが生成(表示)されたらIDを取得する、という事を意味します。
>>38 やばいっす
最高っす
ありがとうござまんた!
つうかそれくらいヘルプ見ろよw
>>38 なんか例えおかしくない?
待ち時間40秒ってのは最大じゃないの?
「40秒経って緑にならなければ諦める」なのでは?
>>41 あきらめた瞬間次の行に進んでる。
あきらめる、で想像する事が
「強制終了する」だったり「それはそれとしてエラー処理して回避」だったりして、
人によって想定が異なるだろうけど
uwsc書くときみんなテキストエディター何使ってるの
mery
uwscを使いこなすためには何を勉強すればいいのかな?
while true〜wendを複数作って、あちこちに飛ぶっていうのすら作れないレベルだけど・・・
NotMultiplex=を0にも-9にもしても多重起動が出来ない。
UWSCの落し物部屋でこれで駄目だったら分からないと書いてあったから
望みは薄いのだろうけど何か知ってる人いたら教えてください。
>>46 勘違いしてるかもだけど、
UWSC.exe自体は多重起動できないみたいよ。
(NotMultiplex=0でスクリプトの多重起動は可能)
完全に勘違いしてた。ありがとう
49 :
名無しさん@お腹いっぱい。:2011/08/30(火) 12:08:52.90 ID:bV6wxMUY0
3分おきくらいにあるサイトを巡回して、ある特定のキーワードが出現した時だけ、それをメールで知らせてくれるマクロは作れますでしょうか?
頑張れば作れます
uwscじゃないほうがいい
メールはどこかのWebメールを使うか、メールソフトを操縦する形になる。
自分でメールサーバー立てて転送しようと思っても、受け付けてもらえないように、ずいぶん前からなってるらしい。
つまり、プロバイダのアカウントなしに送信できない。
>>52 ありがとうございます
ウェブメール使用での簡単な作成方法はありますでしょうか?
>>53 かんたんでもないけど、有料版の試用期間を使って
IEでメール送信する操作を録画するとある程度再現できるんじゃないかな。
// ■■■設定開始■■■
URL = "
http://www.google.co.jp/" // 検索対象URL
Search = "○○○" // 検索文字
Count = 180 // 文字が見つからなかった場合の待機時間
GmailID = "○○○" // ログインID
GmailPASS = "○○○" // ログインPASS
TO = "○○○@gmail.com" // 宛先
SUB = "TEST" // サブジェクト
BODY = "テストメール" // 本文
// ■■■設定終了■■■
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate(URL)
Repeat; sleep(0.2); Until (! IE.busy) and (IE.readyState=4)
end = 5
repeat
ifb POS(Search, IE.Document.Body.InnerText) > 0 THEN
IE.navigate("
https://mail.google.com/mail/h/")
Repeat; sleep(0.2); Until (! IE.busy) and (IE.readyState=4)
IESETDATA( IE, GmailID, "Email" )
IESETDATA( IE, GmailPASS, "Passwd" )
IESetData( IE,True,"signIn")
Repeat; sleep(0.2); Until (! IE.busy) and (IE.readyState=4)
IELINK(IE,"メールを作成")
Repeat; sleep(0.2); Until (! IE.busy) and (IE.readyState=4)
Repeat; sleep(0.2); Until (! IE.busy) and (IE.readyState=4)
IESetData( IE, TO,"to")
IESetData( IE, SUB,"subject")
IESetData( IE, BODY,"body")
IESetData(IE,True,"nvp_bu_send","送信",2)
Repeat; sleep(0.2); Until (! IE.busy) and (IE.readyState=4)
end = -5
EXITEXIT
else
Count2 = Count
for i = 1 to Count
if GETKEYSTATE(VK_END) then exit
Count2 = Count2 - 1
sleep(1)
Fukidasi("リロード待機中 " + Count2 + "<#CR>ENDキーで終了", 50, 50 )
next
IE.document.location.reload(true)
Repeat; sleep(0.2); Until (! IE.busy) and (IE.readyState=4)
endif
until (end < 1)
>>53 改行大杉で2つに分かれちゃったけど。
指定したURLを監視して、特定文字列があればGmailで指定のアドレスにメール送信。
文字列が見つからなければ、指定秒数後(若干の誤差あり)にリロード。
一応動作検証はしたけど、ダメならごめんかな。
テンプレ読み直しちまったぜ・・・
59 :
名無しさん@お腹いっぱい。:2011/09/06(火) 23:07:23.46 ID:Mj6FMbea0
ところで、昔のスクリプト動かそうとしたら「次元数が合いません」とかいうメッセージが出て動かなかった。
履歴検索すると
==================== Ver 3.1 版 ======================
05/03/26
多次元配列への初期値の代入を出来るようにした
くらいしか見つからない。
たったこれだけのコードなのに
dim s[][2] = 1,2,3,4,5,6,7,8,9
同じウィンドウタイトルのアプリケーション(1-5くらいで不規則)に
ctrlキーを高速で連打するいい方法ある?
今はウィンドウタイトルを別のアプリで変えて手動で認識させてる
id1 = getid ("notepad1")
id2 = getid ("notepad2")
あとかなり高速で連打する必要があるんたけどmouseorgってスレッドで同時に使えない?
スレッドじゃなきゃうまくいくんだけど…
>>60 GetAllWin
スレッドでできるか?試せば分かるだろ。
>>61 数が毎回違うのと同じ名前のウィンドウを区別する方法が分からない…
スレッドで下の奴を呼び出すとうまくいかない
スレッドじゃなく連続的に動かすのはokだった
PROCEDURE 連打(windowID) MOUSEORG(windowID,2) KBD(VK_CONTROL,CLICK,10) FEND
>>62 は?IDが違うだろ。
スレッドでうまくいかないならプロセス分けたら?
EXECで呼び出し、ウィンドウハンドルを引数に渡す。
ハンドルはIDTOHWNDでハンドルにできる。
受け取ったほうはHWNDTOIDでIDにできる。
もしこのウインドウが出てた場合にはこうするという動作はどう打つんでしょうか。
ヘルプサイトに載ってたはずですがどうにも見つからなく、教えてくださいませ・・
IFB getstr(ID("ウィンドウタイトル")=true
みたいな感じだったと記憶してます。
またウインドウ変更時にACWを使うと最大化が解除されるため
CTRLWIN(GETID("ウィンドウタイトル"),max)
CTRLWIN(GETID("ウィンドウタイトル"),activate)
を使い二行消費させてますが一行で動作させる命令はありますでしょいか。
ACWは座標とか省略したら触らずにやってくれるんじゃない?
アクティブウインドウの件に関しては事故解決しました。
CTRLWIN(GETID("ウィンドウタイトル"),max,activate)
とすることで一行で済みました。
ACWは最小化されてるウインドウに聞かないので使いませんでした
特定色を画面から検出するのにPEEKCOLOR()ではなく
高速化のためにアセンブラレベルでの取得方法ってありますか?
FAQの「バックグランドで動かしたい」のところにあるスクリプトではうまく行きましたが
いざ自分で組んでみるとうまく動きません。
何が間違ってるか教えて下さい
id = GETID("まとめまとめ")
MOUSEORG(GETCTLHND(id,"Chrome_RenderWidgetHostHWND"), 2)
BTN(LEFT,CLICK,583,335,109)
以下のサイトの新着一覧の下の広告をクリックさせるテストスクリプトです
(
http://matome2ch.hikoneko.net/)
バックグラウンドで動作 の程度がショボカッたので辞めました
if関数で
その処理がTHENになるまでそのifを繰り返すというのはどうすればいいんでしょう?
WHILE
ifb
THEN
●●
ELESE
WEND
endif
上手くいきません
WHILE
ifb
THEN
●●
ELSE
CONTINUE
endif
WEND
多分これでいけるはず
syntax Error
WHILE
とでて上手くいきませんでした
ありがとうございました。
thenになるまでって意味不明
77 :
名無しさん@お腹いっぱい。:2011/09/13(火) 18:29:29.17 ID:aEfVB4bg0
Aの画像をクリックした後に3秒間下にスクロールしてBの画像をクリックという作業をやりたいのですが
下にスクロールさせるにはどうすれば良いでしょうか?
>>77 お前はどうやってスクロールしてるんだよ。
普通にbtn(wheel, -20000)で行けましたありがとうです
>>72 そもそも条件を満たすまで繰り返しってのは
repeat〜untilがそれそのものだろう
「timeout:busy wait」とかいう小さなダイアログが出て停止してしまうのですが、
これが出た場合、直前の処理にまで戻って再度実行するには、どう書いたらいいでしょうか?
ある特定の文字を見つけたらクリック、という作業をさせたいのですが
画像認識させる方法以外で何か良い方法ありませんか?
>>83 ごめんなさい説明が悪かったかもしれないので訂正します
検索エンジンを使って文字を検索するのではなく既に開いてあるウェブページから文字列を抽出しクリックさせたいです
85 :
sage:2011/09/14(水) 23:31:52.94 ID:pPQHWin00
tst
uwsc4.7にてMOUSEORG基準指定2でMMV()を使いたいのですが全く動きません
過去スレを見ると4.2以降は完全無視されるって書かれていますが
何か方法はありませんでしょうか。
他人が作ったゲームマクロなんですが、その中で指定している座標位置を視認したく
マウスカーソルで確認できないかと思ったのですが…
座標確認したいだけなら基準指定2を外せばいいじゃん
>>89 Flashコンテンツ上で開くウィンドウ内の座標を確認したいので基準指定2を外すと
絶対座標?になってしまって画面外にカーソルが。。
WHILE TRUE
IF GETKEYSTATE(VK_ESC) THEN EXIT
REPEAT
なんとか
UNTIL CHKIMG("画像.bmp")
REPEAT
なんとか
UNTIL CHKIMG("画像.bmp")
Call 名前.uws
ENDIF
WEND
て感じで書いてみたんですがIF GETKEYSTATE(VK_ESC) THEN EXITが発動しません
なんででしょうか?
REPEATとUNTILの間にIF GETKEYSTATE(VK_ESC)が無いから
WHILE TRUE
IF GETKEYSTATE(VK_ESC) THEN EXIT
REPEAT
IF GETKEYSTATE(VK_ESC) THEN EXIT
なんとか
UNTIL CHKIMG("画像.bmp")
REPEAT
IF GETKEYSTATE(VK_ESC) THEN EXIT
なんとか
UNTIL CHKIMG("画像.bmp")
Call 名前.uws
ENDIF
WEND
ありがとうです
call文を作って開こうとしたら
FILE Not Found
って言われるんだけど何でだろ
呼び出したいUWSは同じフォルダにあって
開くUWSは
call ○○○
だけなのに
おぉう…次はsyntaxerrorとでた
PROCEDURE:パス→ファイル名
PROCEDURE:パス→ファイル名()
どういうことなんだ…
>>95 ファイル名に、ファイル名(1)等使えないんじゃなかったかな
文字をチェックしてクリックさせたいんだが、透過してる文字を上手く認識出来ないんだ
何か良い方法ないだろうか
MMVとBTNのみで指定座標にポインタ持って行って左クリックする単純なマクロ組んでみたんだけど
マクロ動作が一回終わると、マウスポインタの位置が終了地点にあった場所のままになるのが不便です
終了時に、開始時にあった場所までマウスポインタを移動させることは出来ないでしょうか?
マウス位置は毎回決まっていないので絶対座標や相対座標での指定ではどうしても対応できません
何がわからないのかがわからない。
開始時の座標に移動すればいいだけじゃないの?
>>97 G_MOUSE_XとG_MOUSE_Yを使えば良い
100 :
97:2011/09/19(月) 16:00:25.62 ID:KLl7faDV0
わかりにくくてすみません
開始時、というかマクロ実行前にポインタがあった場所に戻したいという意味です
マクロ実行前のポインタの位置は毎回違う場所なので、MMVやG_MOUSEによる座標指定じゃ対応できないんです
>>100 開始時の G_MOUSE_X, G_MOUSE_Y の座標へ終了時にMMVで移動する
という方法で対応できないってってどういうことなのかがまずわからない
103 :
97:2011/09/19(月) 18:17:57.02 ID:KLl7faDV0
G_MOUSE_X, G_MOUSE_Yの意味を完全に勘違いしていたようです
グーグル先生にきいたらようやく望む動作が出来ました
助言ありがとうございます、お騒がせして申し訳ありませんでした
104 :
名無しさん@お腹いっぱい。:2011/09/20(火) 02:03:26.44 ID:2nDvhLTQ0
REPEAT〜UNTIL構文で、もしそれらが100回繰り返されたなら最初の行に戻るとかの操作ってできますか?
他の関数を使ったほうが楽かな?
>>104 REPEAT
for i = 1 to 100
next
UNTIL
106 :
名無しさん@お腹いっぱい。:2011/09/20(火) 04:34:15.95 ID:LIQNrKGX0
while true
if A=0 then wend
endif
wend
こんな感じの物を作ったのですが
SyntaxError ○○行目 WEND と出てしまいます
うまいことwhileに戻るためにはどうしたらいいのでしょうか?
107 :
名無しさん@お腹いっぱい。:2011/09/20(火) 04:35:52.73 ID:ABtM6c/O0
>>106 メイプルストーリーのマクロの話ならメイプルストーリーマクロスレでしてください。
if A=0 then continue
108 :
名無しさん@お腹いっぱい。:2011/09/20(火) 07:22:00.68 ID:2nDvhLTQ0
>>105 これだと普通に100回返してREPEATに戻るだけじゃない?
i = 0
REPEAT
i = i + 1
// 処理
UNTIL i = 100
>>107 最後の行以外は同意だが、スクリプトが間違ってるのはいただけない
>>109 > これだと普通に100回返してREPEATに戻るだけじゃない?
それだと普通に100回繰り返してREPEATを出るだけじゃない?
>>110 間違ってないでしょ
最初に戻りたいなら iをリセットして戻ってやる必要があるんだね。
タイムアウトのメッセが出てしまった時はどう復帰すればいいんでしょうか?
>>114 わかりません。
BusyWait(IE)
しか書いていないのですが・・・
数分固まると勝手に永久に止まるようです。
止まった直前からやり直してもらえたら助かるんですが・・
BusyWait関数はちゃんと書いたの?
どういう動作させてるの?
自作じゃないの?
なんで最近は底レベルすぎる質問ばっかりなんだ?
質問しづらい空気になりましたので失礼しますm(__)m
メイプルストーリーでほんの10行程度のマクロで大もうけできるぞって
そのマクロ公開したやつがいて、
(ゲーム内通貨的に)実際結構な儲けになるはずなんだけど
UWSCが一部規制されちゃって初心者があぶれたんですよ。
暇になっちゃった連中と、それを回避して味をしめた連中のなかから
ちょっと意欲的なやつがいろいろ質問したりするようになっちゃって。
もしかすると販売されていたマクロを改造する目的だったりするかもしれない。
同じやつかは分からないけど、販売されていたものをアップローダにアップしてばら撒いちゃってて。
僕も入手したんだけどね。
だけど自分でいろいろ調整しないとちゃんと動かないもんだから
(職業やら火力的に)
いろいろ改良しようと思ってるんじゃないかな。
このマクロ使用者はマクロのヘルプで勉強してるから
UWSCのヘルプは見てないんですよ。
だから関数の説明に書いてあるようなことも知らない。
ウゼエ。だからゲームマクロは別スレでも立てて仲間内でやれって言ってるのに。
そう言えばバージョン違いを探してる奴も居たからアレもそうか。
キーボード入力で
1→2→3・・・・9→を自動入力させたい
for i = 1 to 9
KBD(VK_i)
next
KBD(VK_変数)の形を試してみましたが駄目でした
>124
i と VK_i は別物。
i は変数で、VK_I は i のキーコードで定義済み
変数は単独で記述されるものなので、文字列のように連結したりできない。
やり方はいくつかある。
ひとつはVK_1〜VK_9 が連続していることを利用して、
VK_1 + i とする。 i は0〜8。
KBD(VK_1 + i)
もう一つは "VK_" + i という文字列連結式で "VK_1" などの文字列を作り、
それをEVAL()でコードとして処理する。 i は1〜9。
KBD(EVAL("VK_" + i))
あと、キー入力にはある程度の時間が必要。
0.023秒くらいは最低でも必要。
>>125 ありがとうございます
これから試してみます
>>126 FOR i=VK_1 TO VK_9
KBD(i)
NEXT
特定のキーをかなり早く連打だけさせたいんだけど一番早く連打出来るいい記述方法はなんなんだろう
IFb CHKIMGで指定した画像をクリックしたいんですけど
pngは無理ですかね?bmpだけ???
無理だったら予め画像サイズを取得してそれをクリックってできますか?
お願いします
後半も何が言いたいのかよくわからんな・・・
すみません
BMPだけなんですね。。。
何か根本的に誤解してるような気がするぞ?
ゲームにマクロ使うのは勝手だが自分で出来ないならやるなよな
全くわからないならせめてプログラミング言語の基礎ぐらいやったほうがいい
>>134さんのおかげで解決しました
ご指摘の通り誤解してました。。。
音量のミュート、音量ありを切り替えるツールを作ろうと思うのですが
何をどうしていいのか分かりません。
今のところ、この機能を持っているTask Volumeというソフトを入れて
そのショートカットをuwscに打たせているのですが
直接uwscから操作する方法はないでしょうか?
この手のレジストリ変更は実際に反映されるにはなんかAPIが必要だったような。
これから挑戦してみます
画像1を数字の1、画像2を数字の2、・・・、画像pをp、等とおいて
"画面内に現れた画像"を置き換えた数値がx未満ならばaの処理を、x以上ならばbの処理をさせることって可能ですか?
画像1が見つかったら変数に1代入、画像2が見つかったら変数に2代入ってすれば?
もっとキレイな方法あるかもしれんけど、上記の方法で可能は可能かと
とりあえず素直にifbで全通りの数字をパターン分けしてみます
ありがとうございました
可能だろうけど画像検索だと処理遅そうだね
147 :
名無しさん@お腹いっぱい。:2011/09/29(木) 15:34:09.82 ID:LtJOz40J0
BusyWait(IE)を設定したスクリプトでIEで動作中に、
TIMEOUT BusyWaitのメッセージボックスが出て勝手に終了してしまう場合、
どんな対策方法があるでしょうか?
できれば止まる直前まで戻したいのです。
全貌を把握できてないスクリプトなんか使うんじゃねーよ
答える力がないなら出てこなきゃいいのに。
その前に質問として成立してないんだよ。
なぜ成立してないかの理由もわかってない時点でかなり問題外。
UWSCが自身が出してるエラーメッセージ以外の
単なるスクリプトが出すメッセージボックスについて文句言われてもどうしようもないわ。
スクリプトのどっかに
msgbox("TIMEOUT_BusyWait")
って書いてあるだけの話だろうに。前後の内容隠してるから論外だわ。
BusyWait(IE) なら、有料版で録画したときに自動的に追加されるスクリプトだよ。
その中でタイムアウトしてることは、見たことがあれば知っているはずで、
名前を見ただけで分からないといけないレベル。
> タイムアウトは誰が実装したの?
っていうのがヒントで答えなので、僕はこれに関して書き込まなかった。
知らなかったやつは以後気をつけるように。
素人向けの質問スレないですか?
156 :
名無しさん@お腹いっぱい。:2011/09/29(木) 22:11:47.62 ID:BYSuqPkH0
>>155 ここは素人のあつまりですよ。本家もあるけど、敷居が高い。
対策だけど、戻るんじゃなく抜けないことだよ。ループの終了条件をいじって永久ループにする。
ほかの人も気をつけたほうがいいよ
IPA「バグを直さない開発者の氏名を公開し指名手配する。手始めに50人を公開処刑だ」
ttp://hatsukari.2ch.net/test/read.cgi/news/1317299328/ > 連絡不能開発者一覧
>
http://jvn.jp/reply/index.html > 問合せ番号. 開発者名 関連情報 一覧追加日
> DID#90902329 竹田暁彦 Akihiko Takeda's Homepage 11/09/29
> DID#59067674 ぜろちゃんねる 0ch BBS Script 11/09/29
> DID#87319672 小山浩之 11/09/29
> DID#83385455 帰宅する部活 11/09/29
> DID#37073608 鏡の国 11/09/29
> DID#46919198 K_OKADA's WebPage 11/09/29
> (他多数)
短いスクリプト中のどこをどう探してもmsgbox("TIMEOUT_BusyWait") なんて存在しないんで、路頭に迷うとこでした。
ループの終了条件ですか・・うーん。
^^;
A1 =peekcolor(57,122)
A2 =peekcolor(25,122)
A3 =peekcolor(93,122)
B1 =peekcolor(57,932)
B2 =peekcolor(25,932)
B3 =peekcolor(93,932)
IF sw = 1 and A1 = $111111 and A2 = $000000 THEN exitexit
IF sw = 2 and A1 = $111111 and A2 = $111111 and A3 = $FFFFFF THEN exitexit
IF sw = 3 and B1 = $111111 and B2 = $000000 THEN exitexit
IF sw = 4 and B1 = $111111 and B2 = $111111 and B3 = $FFFFFF THEN exitexit
sw = 0
IF A1 = $111111 and A2 = $000000 THEN sw = 1
IF A1 = $111111 and A2 = $111111 and A3 = $000000 THEN sw = 2
IF B1 = $111111 and B2 = $000000 THEN sw = 3
IF B1 = $111111 and B2 = $111111 and B3 = $000000 THEN sw = 4
このスクリプトはpeekcolorを何回行なってイますか?
A1〜B3の6回のつもりで書きました
^^;
自分ではA1〜B3の6回のつもりで書いたけど実際には無駄にpeekcolor重複していないかなっていう質問です。
>>162 どの場所がどうして重複してると怪しんでいるのかを教えてください
代入してるからとか、色々な「こう思うから怪しいと思ってる」があると思いますので。
クリックした箇所を3秒間長押しした後クリックした箇所の少し左側を長押しするのってどうやるんですか?
DOWN-UPの使い方がよくわからなくて
すいません解決しました
ヘルプも読まないゲームマクロ馬鹿は荒しだろ。
このスレ恐い
なぜそういう質問をしたか、を問い続けるとなぜか自己解決することが殆ど。
質問に対するそういうアプローチは有効なのだろう。自分で問題に気づくのは重要。
というわけで今後、質問した人へ「なぜそういう事を考えたのか?」と逆に聞きまくることを推奨してみたい。
答えたく無い質問はスルーで良いだろ
無駄に煽る奴も厨房
すいません
画面上に、ある画像が出たらそれをクリックするっていうのは
具体的にどうやったらいいですか?
chkimgで画像を探してbtnでクリックすればいいと思います
>>176 ありがとうございます
>chkimgで画像を探してbtnでクリックすればいいと思います
これはどのように記述したらいいでしょうか?
よろしくお願いします
>>177 uwsc chkimg
uwsc btn
で調べて解んなきゃ諦めろ
死ね
1たす1は3ですか? みたいな低レベルの質問する奴はマジで死んでくれ
なんなのこのスレw
知識ある奴のオナニー場?
試行錯誤しない奴が多すぎる
最初から自分でなにも試そうとしてない奴を
uwsc使いとは呼ばない
スレタイよく見ろ
プログラミングの基礎も出来ない人間が扱えるツールじゃない
みんなPro版もってるの?
持ってる人は堂々と本家掲示板で質問するだろ。
辞書を引けば分かることをわざわざ質問するやつはこっちの勉強の邪魔だから消えろとは思う
ググれる時代に生まれた意味を分からないやつも同じじゃないかな
2011/10/11 UWSC Ver4.7b、 Pro版と Free版をリリースしました。
乙乙
sleep(aTime)
ifb CHKIMG("○.bmp")
x = g_mouse_x ; y = g_mouse_y
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
この○があった場合○をクリックってのを
○という画像があった場合△という画像を探してクリック
ってやるにはどうやるの?
> この○があった場合○をクリックってのを
○を△に書き換えてみろ
>>188 お前ならその動作をどういう手順でやるのか箇条書きにしてみ?
それで余裕で組めるだろ。
・画像○を探す
↓
↓
↓
・画像△の場所をクリック
この間を埋めてみ?
>>191 ・画像○を探す
・服を脱ぐ
・正座する
↓
・画像△の場所をクリック
1カ所うまらなかった。
>>192 全部埋めてみた。
・画像○を探す
・服を脱ぐ
・コーヒーを入れる
・正座する
・塩と砂糖を間違えて吹く
・画像△の場所をクリック
>>191 ○画像を探す
△画像を探す
クリックする
できた!
ありがとう
>>194 その先のヒントをあげる
○○
x
. ▽
わかったかな?
PHPやJavascriptなんかは、あれがやりたいこれがやりたいと思って、
ヒットしそうな単語でググれば大抵は早いうちに見つかって、組めるけど、
UWSCはたいがい路頭に迷う。
道路で道順を尋ねたら、シンプルな説明力を持たない人間がゾロゾロ集まってくるようなもの。
で、仕方なくこういう所に来ると、訳知り顔の連中に氏ねと言われるだけで終わる。
ほぼオナニースレ化してる。
>>197 確かにそうかもしれんけど
質問のレベルが低すぎるのも確か
調べれば出てくる物がほとんどだろ
関数が多く全貌把握するのは難しい言語ならいい。
しかしUWSCなんてヘルプ上から下まで全部読める位に少ない。
だからヘルプ嫁って言われる。
検索するよりヘルプを上から読んでいったほうが早く解決するから。
最近のは明らかにヘルプの目次すら読んでないと思われる質問ばかり。
死ねとかいちいち言う奴は出てってくれ
>>200 オマエモナー
> ほぼオナニースレ化してる。
スレタイに質問とか初心者とか入ってるなら問題だけど、そうじゃないんだよねここは。
だからオナニーで何が悪いという見方も別に悪くない。
>>200 お前が出てけ
嫌なら初心者の馴れ合いスレでも立てろ
いやいや、1ソフトは1スレまでってルールがあるんだから
初心者相手にスレ立てろとか言ってマジで立てられたら困るでしょ。
ゲームマクロとしてのスレならいくら立てても問題ないからそっちに行って。
勉強がしたいんなら、今はUWSCよりもっとすばらしい言語がたくさんあるからそっちで勉強して。
「初心者」というのはこの場合、スクリプトを書くことを始めたばかりの人であるはず。
質問するならまず、書いてみたけどうまくいかなかったそのスクリプトを貼ってくれないと。
>>188なんかかなりレベルの低い質問ではあるけど、ちゃんと実際のスクリプトを提示した上で
自分で何とかしようという気もありそうな感じだったからあまり叩かれてない。
拾い物をよくわからず改造しようとするやつが叩かれてるだけじゃないの?
だからゲームマクロ関係はどっか別の板なりスレなりたててそっちでやれって。
最近のアホな質問全部それ関係だろ。やたらchkimg多いし。
>>207 chkimgの説明とか凄い詳しくググレば出てるからなぁ。
後はそこで取得した値をどう弄り回すかだけだしな…
さすがにfor文とかif文を理解していない体の質問はどうしようもない。
なんかプログラム初歩学習に使えそうな、ロボット移動のゲームがあったような気がする。
繰り返しブロックでくくって動作を繰り返すとかそんなの。
知識がなくて独学で学ぶ気がないならautomouseとかで我慢すべきだと思うの
簡単なマクロならググればいくらでも出てくるし
211 :
名無しさん@お腹いっぱい。:2011/10/15(土) 02:10:30.08 ID:pVwTdrqg0
@座標Aをクリックする。
A10秒待つ。
Bi)画像Aが現れた場合
座標Bをクリックしてから、@に戻る。
ii)画像Aが現れなかった場合
座標Cをクリック。
というマクロをくみたいんですが、
Bがうまくいきません。
どうすればいいか教えてください
どういう風に書いたかちょっと貼ってみて
213 :
名無しさん@お腹いっぱい。:2011/10/15(土) 02:25:53.50 ID:pVwTdrqg0
座標Aをクリック
SLEEP(10)
while
Ifb ChkImg("retry.bpm") = true then
座標Bをクリック
座標Aをクリック
SLEEP(10)
else
break
endif
wend
座標Cをクリック
これを実行しようをすると三行目のwhileがエラーになりました
214 :
名無しさん@お腹いっぱい。:2011/10/15(土) 02:44:43.06 ID:pVwTdrqg0
Aクリック
SLEEP(10)
while true
Ifb ChkImg("retry.bpm")=true then
Bクリック
Aクリック
SLEEP(10)
else
break
endif
wend
Cクリック
これでいけそうです!
>>213 おお、書いてたら自己解決してるw 無事動いてよかった。
なんか一応動くみたいだけど ×bpm ○bmp ね
あと、ifbの行は = true を削っても問題ないよ
ifb chkimg("retry.bmp") = true
↓
ifb true = true
↓
ifb true
ifb chkimg("retry.bmp")
↓
ifb true
開いても文字化けしてしまうUWSファイルがあり、とても困っています。
どうしたら開けるでしょうか?
メモ帳、TeraPad、stringsは試してみましたが、文字化けするばかりです。
IEでエンコードを見ようとしても、開けるファイルじゃないと言われてしまいます。
ちなみに、UWSCからこのUWSファイルを呼び出して実行すると、想定通りの
動作をします。
ただ、もらい物なのでちょっとだけ変えたいところがあるのですが、上記の通り
編集以前の状態です。
どうか教えてください。
スクランブルかかってるだけでは?
>>216 むりです。
UWSCの機能としてスクランブルがあり、それが施されていると予測されます。
スクリプト製作者の意向なのでおとなしくあきらめるのがいいでしょう。
>>217,218
レスありがとうございます!
スクランブルなんてこともできるのですね。
よく理解できました。
でも解決できないのか…。残念です。
自分でフルスクラッチ。
貰い物なら貰った人に頼めばいいだけだわ。
222 :
名無しさん@お腹いっぱい。:2011/10/16(日) 19:20:56.83 ID:l+TG99F+0
ifb文のandの記述ってもっとスマートなやり方あるの?
以下の方法だとなぜかfalseのはずなのに反応してしまう事があるんだ
//画面上にAAAとBBBとCCC全てあり、さらに変数(hensu)が0の場合だけCCCをクリック
ifb (CHKIMG("AAA.bmp",0) and CHKIMG("BBB.bmp",0) and CHKIMG("CCC.bmp",0) and hensu=0)
x=G_IMG_X
y=G_IMG_Y
BTN(LEFT, CLICK, x, y, 80)
endif
どんな原因が考えられます?
>>222 chkimgの判定にかかる時間とかじゃないの?
aaa = chkimg("aaa.bmp", 0)
bbb = chkimg("bbb.bmp", 0)
ccc = chkimg("ccc.bmp", 0)
print aaa +":"+ bbb +":"+ ccc +":"+ hensu
ifb aaa and bbb and ccc and hensu=0
以下略
とでもやって、本当に全部falseなのか確かめろよ。
224 :
名無しさん@お腹いっぱい。:2011/10/18(火) 11:14:11.81 ID:e+Rjls+f0
IEの読み込みラグはどうやって解決するのでしょうか?
よく止まるのでフリーズするので
お願いします
修正方法あればごご教授くださいーー
>>224 回線を光回線する事や良いプロパイダを選ぶ等の対処が必要です。
>>224 ヘルプに載ってるコレじゃ駄目なの?
Procedure BusyWait(ie)
repeat
Sleep(0.2)
until (! ie.busy) and (ie.readyState=4)
Fend
227 :
名無しさん@お腹いっぱい。:2011/10/21(金) 07:41:33.94 ID:7TaJE2/80
メイプルでUWSCがハッキング検地ひっかかるんだが回避法しらん?
Firefox上のFlashコンテンツに表示されている文字や数字をACC経由で読んでいると、
よく、ビジー状態で固まります。回避方法はありますか?
231 :
名無しさん@お腹いっぱい。:2011/10/21(金) 16:59:32.38 ID:hpkyVi5P0
ひとつのUWSファイルを2つのファイルに分けて、
CALL文で一方がもう一方のUWSファイルを読もうとすると、
変数○○が定義されていません、と表示されてしまいます。
元通りくっつけると正常に機能します。
phpなどのように簡単にはいかないようです。
かなり長く色々試行錯誤したりググったりしてるんですが、わかりません。
どうか教えてくださいm(__)m
>>231 呼び出す元の変数をpublicで宣言しろ
>>233 ありがとうございます。数日間探したのが、一発で解決しました!
これでやっと先に進めます。ありがとうございましたm(__)m
あとの人がgoogleでヒットしやすいようにキーワードをまいておきます(^^)。
UWSC,ファイル読み込み,CALL,エラー,変数が定義されていません,dim,public
235 :
名無しさん@お腹いっぱい。:2011/10/21(金) 20:01:44.90 ID:ZX8ZuSOZ0
△△へ移動の横にあるOKボタンをクリックしたいのですが
表示されたページ内にOKボタンが複数あり、ページ移動するたびにその数が変わります。
どのページでも特定の文字の横にあるOKボタンをクリックするにはどうすれば良いでしょうか?
1ページ目
○○へ移動 <input type=submit value="OK" class=button>
△△へ移動 <input type=submit value="OK" class=button> ←クリックしたいボタン
2ページ目
○○へ移動 <input type=submit value="OK" class=button>
□□へ移動 <input type=submit value="OK" class=button>
△△へ移動 <input type=submit value="OK" class=button>←クリックしたいボタン
>>235 inputタグを持つものを順次調べてOKだったらクリックが普通と思うけど
ClkItem で "へ移動" をCLK_MUSMOVEオプションつけてフォーカス移動し、
CLK_CONTINUE でその続きから検索するように指定して
"OK" をクリックすれば、右のボタンをクリックできると思う。
237 :
名無しさん@お腹いっぱい。:2011/10/21(金) 21:07:06.58 ID:ZX8ZuSOZ0
>>236 ClkItem で "△△へ移動"という文字列に移動するという事なんでしょうか?
やってみたんですが反応無しでした
”△△へ移動”の文字列の横をクリックという事はできないのでしょうか?
>>237 ie限定だし、出来る範囲は限られている。
ヘルプの、IE操作関連、を読めばわかる。
239 :
名無しさん@お腹いっぱい。:2011/10/21(金) 23:15:36.46 ID:qGV5nF3y0
pro版を割れで使っていたのだが、最新版で対策されたようだな
UWS2EXE使うと、「L22が存在しません」とエラーが出るようになった
>>239 ざまぁ! …としか言いようが無い事だな。馬鹿な事をしてるもんだ。
exe化は、pro版のほとんど唯一の利点だからな。
ドラッグ&ドロップの単体受付可能、他DLL等不要で単体500kb程度(圧縮込み)での可搬性、何の言語?程度のコード隠蔽。
そこらへんはpythonやruby等の一般的LL系言語よりはWindows特化で結果として扱いやすい。
会社とかで業務アプリを自動操縦しようとするのが主体で
業務外で自分のためだけにラフに扱いつつ色々なめんどくさい事に巻き込まれないようにする事がメインの機能の様な気がする。
pro使う理由があるなら安い買い物だと思うがなぁ。買ってやれよ…
日本語でOK
242 :
名無しさん@お腹いっぱい。:2011/10/22(土) 08:25:14.52 ID:BQCgFdbI0
>>240 販売促進しているようだけど、一つ前のUWS2EXE使ってれば良いだけw
犯罪行為を公衆の面前で自慢するアホ…
そんなことよりAHKやろうぜ
245 :
sir sie:2011/10/22(土) 15:16:51.14 ID:SGFp5L7x0
光夜星月
世界をおとそう
世界の中に
一つになれば
☆
いつでもいっしょになれる。
おきる人もねむる人も
愛とにくしみは
声になって
私達の世界は
絵になるの
☆ 明日のいたみは
はじめての音になる。
信じたい
中が同調するって。
UWSC本体を起動しないでスクリプトを関連付け起動させた時の
printウィンドウってディスプレイの左上に出ますが、この位置を変えることは
出来ないですかね?
タスクバーを縦にして左に置いているので、printウィンドウがこの下に出てほとんど
見えない状態になっており、少々不便です。
>>246 ひょっとしたらini設定あたりで変更できるのかも?しれないけど
力技でもOKなら、出たスクリーンを動かしてやれば良いのでは?
監視系にするか関数に書いておくか…
>>247 iniでは無理な模様。
スクリプトで自分のウィンドウを動かすのは今試してみたのですが
タスクバーの上には出るもののウィンドウの位置大きさの変更は出来ない模様。
とりあえずタスクバーの下に隠れるって状態が改善したので当座の問題は解決ですが。
他のアプリケーションの助けを借りずにUWSC単体で何とかならんもんだか。
間違って2つ連続で起動したら一方が他方のスクリプトのウィンドウを変更する形で
ウィンドウの位置・大きさ変更が出来た…
どうも自プロセスのウィンドウ操作は出来ないような感じですね。
>>248 ん?当方では動くみたいだけど…
print "testtest"
sleep(1)
acw(Getid(get_logprint_win),100,0)
sleep(5)
タイトルマッチで探してました…
1つ起動してNGで2つ起動したらOKということは
自分のウィンドウはタイトルマッチしないのだろうか?
GET_LOGPRINT_WINでいけましたね。ありがとうございます。
252 :
名無しさん@お腹いっぱい。:2011/10/23(日) 20:30:03.17 ID:dBa/BKyq0
//アクティブになうちはログ表示継続
id = getid(GET_LOGPRINT_WIN )
ACW(id, 500, 500, 800, 200 )// x, y, 幅, 高さ
while status(id,ST_ACTIVE) <> 0
sleep(0.2)
wend
253 :
名無しさん@お腹いっぱい。:2011/10/23(日) 22:14:25.90 ID:5DAdTKnk0
60分経ったらループから抜け出したいんだけど、
どう記述すればよいでしょうか?
while True
if ???? then exit
〜
wend
>>253 sleep(3600)を使うのが確実。
マジレスとしては、gettimeの戻り値を好きなタイミングで確認しまくれ。
255 :
名無しさん@お腹いっぱい。:2011/10/24(月) 18:31:29.29 ID:sYeEqCI20
ネトゲのTERAを自動でログインするようにしたいのですが、下記の******の部分にログインボタンを押下する命令が必要
だと思うのですが、HPのソース見てもこのログインボタンを自動で押下するようにできません。
【ソース】
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("
http://tera.hangame.co.jp/index.nhn")
PUBLIC id=GETID("TOP - 次世代MMORPG「TERA」メンバーズサイト - ハンゲーム")
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate=4
IESETDATA( IE, "[自分のID]", "strmemberid" )
IESETDATA( IE, "[自分のPASS]", "strpassword" )
******←ここ
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate=4
EXITEXIT
どなたかわかるかた教えてください。
>>255 その処理に限らずだけど、最初はいろんなスクリプト見て勉強したら?
大体継ぎ接ぎや組み合わせで何とかなるよ
自動ログインのスクリプトなんてそこら中にあると思うよ
>>256 このソース自体継ぎ接ぎで、どうしてもログインクリックだけできないのです
259 :
名無しさん@お腹いっぱい。:2011/10/26(水) 17:46:02.41 ID:lGqBzR1S0
EXE化したものを呼び出すにはどうすればいいでしょうか?
call xxxx.exeにしたのですが
xxxx.exe.uwsは存在しませんといわれてしまいます
261 :
名無しさん@お腹いっぱい。:2011/10/26(水) 19:42:35.40 ID:lGqBzR1S0
>>260 ありがとうございます
早速使わせていただきます
262 :
名無しさん@お腹いっぱい。:2011/10/26(水) 20:29:13.64 ID:lGqBzR1S0
>>260 ありがとうございましたexeを起動させることができました
execに渡すxxx.exeに変数による引数を持たせたいと思っています
TIMES = 3
exec("xxx.exe TIMES")
とやると引数は持っていくのですが
変数の中身の3ではなく TIMESという文字列を持ってきてしまいます
http://uwsc.dohow.jp/blog/exec.html などをみるとexe自体に引数を持たせることはできないのでしょうか?
call xxx.uws(TIMES)の様な感じで
引数に変数を持たせたいときはどのように書けばいいのか教えていただけないでしょうか?
よろしくお願いいたします
>>262 " "内のTIMESは変数じゃ無いから当たり前かと
exec("xxx.exe "+TIMES)
正直、ネタなのか?と思える質問の連続だけど…
ググレば答えが出るんじゃないかと思ったが
お前等にもそういう時期あっただろ
この子は頑張ってる感じがしてまだ許せるよ
頑張れよ
頑張って調べたけどな
本家の過去ログ漁ればいくらでも出てきそうだし
267 :
名無しさん@お腹いっぱい。:2011/11/01(火) 21:52:35.08 ID:TqXK22AL0
ループで20作業ぐらいマウスクリックする作業なんだが、
5〜6時間で動かなくなってしまう。
プログラムには問題ないと思うのだが、
他に考えられる理由はありますか?
メモリとか設定とか??
スクリプトはってみ
スクリプトも貼らずにそんな質問されてもな・・・
ループを抜けてるか、負荷で処理が遅れてる間に判定過ぎたとか。
スクリプトも見ずに答えられるとでも思っているのか・・・
動かないってどう動かないのかも書けよなー。
PC丸ごとハングorUWSCだけ異常停止なのか、操作を受け付ける状態でUWSC本体は無事なのかとかさー。
質の低い聞き方と内容で単発
完全に釣りとしか思えない
結構見てる奴いるんだな
はじめまして。
このようなツールは初めてなんですが、
このuwscは画面を読み取ったりできますか?
例えば、画面が黄→赤になると反応して動作するといったことはできますか?
できますよ
276 :
名無しさん@お腹いっぱい。:2011/11/03(木) 15:42:46.14 ID:uJFyB9d80
>>275 ありがとうございます。
プログラミングも全くの初めてなので手探りで頑張ってみます。
>>276 初心者に対する親切で言うけど、ヘルプ(つーかUWSCにおけるリファレンス)は数回読んでおけ。
一回通しで読んでおくとマジで捗る。ここで質問して聴ける答えの殆どが実はヘルプに載ってる。
色 = PEEKCOLOR(x,y)
Red = 色 and $FF
Green = (色 and $FF00) / $100
Blue = (色 and $FF0000) /$10000
たぶんゲーム用なのだろうけど、色を分解するfunctionをこさえる→元の色を変数に保存→変わったかWhile True〜wendループでひたすら比較し続ける。
むしろRGBではなくBGRなところに注意かと
>>278 これの意味がいまいち分からなくてやめたな
クリップボードに1という数字が入っていて
クリップボードの数字に1を足したい時
sendstr(0)+1
とするとgetstr(0)=11になってますのだけど
和を出力するにはどうしたらよいのでしゅか
sendstr(val(getstr(0)))+1
とかでできるのでは
文字を数値に置き換える行動が必要だのですね
あざっすあざっす
すいません、質問です。
>>55-57をchromeで行うにはどのようにしたらよろしいでしょうか?
メールを送る部分は他の方法で出来たのですが、
検索の部分だけうまくいきません。
どうかご教授お願いますm(_ _)m
>>284 IE用だから無理
自分で記録してみたら?
286 :
284:2011/11/07(月) 14:50:13.46 ID:x7j5kCs30
chrome17betaで、clkitemが使えるようになってたよ
call で 呼び出したマクロから更に別のマクロを呼び出したいのですが
FILE NOT FOUND 〜 下.uws といわれて呼び出せません。
どうしたら呼び出せるようになるでしょうか
全て同じフォルダの中です。
上.uws
CALL 中.uws
中.uws
CALL 下.uws
下.uws
KBD(VK_1,0,0)
普通に何も問題は無い。
できないとしたら、実はそんなスクリプトじゃないってことだろうな。
FLASH内のテキストボックスにペーストする場合
sckey(0,vk_ctrl,v)
が何故か効かないんだけど
kbd(vk_ctrl,down)
kbd(vk_v,click)
kbd(vk_ctrl,up)
てダラダラ書かなきゃいけないの?
291 :
288:2011/11/15(火) 22:10:52.76 ID:uWoZxfD60
自己解決しました。
問題無いとの返事で、過去ログに()が有ると云々というのを見た気がしたので
なにげなくC:\ にぶち込んだら動きました。
フォルダ名の()が原因でした。
中を読み込んでも問題無いのに上からだとエラーが出たので混乱しちゃいました。
>>291 > なにげなくC:\ にぶち込んだら動きました。
君やめた方がいいよ。
せめてC:\tempとかにしないと。サブディレクトリが消えていくスクリプトで死ぬよ。
今日、急にタイマーが効かなくなりました。
「一回だけ実行」をよく利用してるのですが、スタンバイ状態から復旧はするものの
スクリプトの実行が行われません。
Windowsとか、UWSC以外の部分がおかしいのかなと思いますが、確認ポイント等
教えてもらえないでしょうか?
294 :
293:2011/11/16(水) 14:40:52.55 ID:Pa8MTtHo0
すみません、自己解決しました。
なんとパソコンの時計がちょうど一ヶ月ズレて10月になってました。
295 :
名無しさん@お腹いっぱい。:2011/11/17(木) 00:04:49.12 ID:o1oina1g0
ご相談
ブログを閉鎖するのでローカルにバックアップしたいです。
サンプル//掲示板のスレをテキストファイルとして保存する #n27//
を利用して複数ページの保存ができますが、
長い記事は、記事タイトルをクリックして全表示するつづらになってます。
ソースを調べると、アンカーの中の文字がブログのタイトル名になっていて、
記事ごとに違い#n27が使えません。
一旦テキストを取得して編集し題を配列で渡すことも考えましたが、
あまりにおぼこじゃないですか・・・
当方スクリプトはわかるのですが、HTMLのタグ構造や指定に弱く、
もっとスマートな方法やコードがあると思いますが、アドバイスください。
>>295 ブログサービス名 エクスポート
とかで検索かけたほうが早くね? いまどきそれぐらいの手段は用意されてるだろ
297 :
名無しさん@お腹いっぱい。:2011/11/17(木) 00:54:17.24 ID:o1oina1g0
>>296 ありません。SNSのおまけで、利用者が少ないのです。
昨日見つけたんだけど
call 変数+""(引数)
ってやるとcallのファイル名に変数使えるね
>>295 再利用のありえない使い捨てスクリプト決定なんだから
その方針で適当に書けば?
300 :
名無しさん@お腹いっぱい。:2011/11/18(金) 17:01:53.15 ID:owZ/y+zq0
CHKIMGってセカンダリモニタの画像は認識できない?プライマリに画像がある時しか反応してくれない
認識する方法があるなら教えて欲しい・・・
301 :
名無しさん@お腹いっぱい。:2011/11/18(金) 17:08:29.20 ID:owZ/y+zq0
ごめん自己解決
範囲指定を-1920,1080にすればいいだけでした
302 :
名無しさん@お腹いっぱい。:2011/11/18(金) 17:34:30.04 ID:P8lubUql0
x分に1回aを押すってどうすればいいですか?
ループでwaitをその数字にする、というのではなく
基本は他の行動をしていて、時間になったらaを押し、
また基本の行動をして、時間になったらaを押す、
というように使いたいのですが
お知恵をお貸しいただければ幸いです。
基本的に使っているスプリクトは
ACW(GETID("バックグラウンド.UWS - メモ帳","Notepad"),553,385,848,543,0)
id = GETID("メモ帳")
MOUSEORG(GETCTLHND(id,"edit"), 2)
While True
Call xxxx.uws // xxxx.uws 記録保存したスクリプト名
Sleep(2) // 10秒の間を取る
Wend
xxxx.uws の中身
KBD(VK_RIGHT,DOWN,31)
KBD(VK_RIGHT,DOWN,31)
KBD(VK_RIGHT,DOWN,32)
KBD(VK_RIGHT,DOWN,31)
およそこのようになっております。
thread
まだこんなの使ってる情弱がいんのかよ
Sleep(2) // 10秒の間を取る
どういうことなの!?
開始時間を取得して格納して、適当にそれと比較して時間経過したら実行すればいいとか。
>>304 本体exeとスクリプトだけの簡単な配布とセットアップは手放しがたい…それだけかもしれんが。
情強はどうしてるの?
>>305 すまない公式から拾ってきて
10秒が長かったから2秒に書き換えたんだ、
説明書き書き換えるの忘れていた
>>308 数分ぐらい待つのならラーメンタイマ(ramen.uws)作って使いまわしてる
ramen.uwsの中身
tabegoro(180) //3分後に設定(秒数)
SOUND("C:\Windows\Media\ding.wav") //XP用 他は知らんw
Procedure tabegoro(t)
t1=Nowtime();t2=t1+t //t1に現在時刻 t2に指定時刻(秒数)
While t2 > t1;sleep(5);t1=Nowtime();Wend //5秒おきにチェック
Fend
Function Nowtime()
GETTIME(0);Result=G_TIME_HH*3600+G_TIME_NN*60+G_TIME_SS //現在時刻(秒数)
Fend
GETTIMEにその時間書いて
IFBで時間越えたら行動。でまた時間書いて閉じる
>>310 これって日をまたぐとうまく動かないんちゃうかな。
年月日時分秒を合算して完全な秒数を出せばOKだろな
//gettime()の戻り値をそのまま使えばいいのでは
t=180 //3分後に設定(秒数)
t2=gettime()+t //t2に指定時刻(秒数)
While t2 > gettime();sleep(5);Wend //5秒おきにチェック
SOUND("C:\Windows\Media\ding.wav") //XP用 他は知らんw
//こんな感じで。試してないけど
>>310と同じ動作になるよね?
t=180
sleep(t)
uwsc のプログラムの
sleep() って
PCが()内の数字を読み込むまでの時間で
PCのスペックによって時間が上下してしまいますよね?
PCのスペックに左右されずに一定の時間止める命令ってありませんか?
>>317 sleep(1)で、0.990秒か1.010ぐらいの誤差は出るという話か?
Windows自体がリアルタイムOSじゃないんだからあきらめろよ…
for i=1 to 180
sleep(1)
next
みたいなことやったら誤差がでかくなるけど
sleep(180)と実際の180秒との誤差なんて気にしてたらきりがない。
320 :
317:2011/11/20(日) 21:32:34.82 ID:mnucJeUQO
やっぱりそういうものですよね……
繰り返しやってるとどんどん誤差が出てくるのでどうにかならないかと思っているのですが
あと
sleep() って1秒単位でしか止められないですか?
0.1秒とか細かく止めることは出来ませんか?
なぜ試さない
それ以前になぜヘルプすら読まないのかと。
お前はその関数の使い方どこで知った。
またゲームマクロ厨か?
ヘルプ呼んでないのはスルーで良いだろ。
sleepだけを繰り返すスクリプトなわけないんだから
蓄積される誤差の主成分はsleep以外の処理時間だろうに。
そしてその場合はgettimeを使えって話が直前に出てるのに。
変数の名前の中に変数を入れることってできませんか?
名前1=50
名前2=60
名前3=70
名前4=80
名前5=90
とした場合に
i=1+random(5)
print 名前i
というような感じのことができる方法ってありませんか?
iに応じて変数1などに格納してる数値を引き出してきたいです
配列でできるのでは
dim 名前[4]
名前[0]=50
名前[1]=60
名前[2]=70
名前[3]=80
名前[4]=90
i=random(5)
print 名前[i]
Fukidasiを二つ同時にだすことは可能ですか
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
これしか方法ないか
ループ処理で使うカウンターが勝手にインクリメントされるから、
ディクリメント・ループが書けない。ゴミ言語だな。
言語といえば言語だけど…そこまで行ったら自分で組む方が早くね?
UWSCでtwitterに自動で呟けたりしますか?
>>333 どういう意味? step -1 とかじゃダメなの?
デフォルトが step 1 になってるだけだよね。
他にカウンタがインクリメントされるループなんかあったっけ?
無いよそんなもん
ヘルプを読まない馬鹿がいるだけ
>>333 既にこれは「ヘルプを読まない奴」として否定されているわけだが…
n = 100
for i = 0 to n
x = n - i
print x
next
別にデクリメントループが構文として用意されないと誤解してても
『(不恰好ながら)書ける』だろ…とか思うわけで
っていうかいつも while ばかり使ってると
for の存在なんて思い出しもしないw
n=100
while 0 < n
n=n-1
print n
wend
とある掲示板でPro4.2+尻ってファイル見つけたんだけど、このkeygenで4.7aまでならいけるかな
試した?
ウインドウを閉じるんでは無くブラウザまるごと終了する方法ありますか
プロセスから切るにもchromeだからいっぱい出ちゃう
344 :
名無しさん@お腹いっぱい。:2011/11/25(金) 13:00:12.48 ID:p+EqYULU0
>>343 窓タイトル = "Google - " //ウインドウのタイトル(の一部)を指定
def_dll PostMessageA(hwnd,int,int,int):user32.dll
PostMessageA(idtohnd(getid(窓タイトル)),$10)
ドラッグ&ドロップの方法を教えてください
『余分な時間、マウス〜』のチェックを外してAからGまでD&Dさせたら、点A,B,C,D,E,F,Gを移動して記録させる方法は知ってるんですが、
点AとGだけを残してB,C,D,E,Fを省略する事は出来ますか?(BCDEFも表示させると時間が掛かるため)
よろしくお願いします
チェック入れて記録したらいいだろ
初歩的な質問ですみません。
UWSファイルを難読化もしくは中の構文を見られないようにするには
どうすればいいですか?ご教授お願いしますm(_ _)m
ヘルプは一度上から下まで全部読んどけよ…そんなに量あるわけじゃないし。
ヘルプ→スクリプト→その他
スクランブルってどうやるんでしょうか。
コマンドプロテクトで/A と打っても認識不可能なバッチと出るだけで何も
起きないです
まさかと思うが、パスに半角スペースがあるというオチじゃないよな…
>>347 Btn(LEFT,CLICK, A_X, A_Y, 0)
Btn(LEFT,DOWN, A_X, A_Y, 50)
Btn(LEFT,UP, G_X, G_Y, 50)
単純にこれでできたが・・・
コマンドプロテクトでuwsc47bをcdで指定して
ディレクトリ移動する所までは分かったんですが
指定されたパスが見つかりませんとでます
uwsc47bはProgram Filesにあって
cd C:\Program Files\uwsc47bと打っても
そのフォルダに移動しないんです。
何故ですか?
スクランブルかけたいモノをC:直下に置くとかで良いじゃない。
ここまでパスに関して無頓着だとスクリプトの実行にも問題が出てこないか?
ファイル触りたいとかいう時困るだろうに。
っていうかコマンドプロテクトって何さ
知らない単語が出たら適当に自分の知ってる単語に置き換えてみるんだろうか?
知ってる単語でも音だけ知ってて意味は分からない単語なんだろうけど。
意味わからない言葉を適当に使ってみるって行動が理解できないよ。
無知ですみません
C:直下のProgram Filesをcdで指定してもやはり指定されたパスが見つかりません。
って出ます
cd C:\Program Files で合ってますか?
コマンドプロテクトじゃなくてコマンドプロンプトですね。すみません
それ自体はあってるよ。
それ以外の要因が説明不足でエスパーが必要なんだろうね。
判るものも判らん。
散々適当書いてた経緯からして、ここに書いてあるパスと
実際入力したパスが違う可能性が否定できない…
あと、ブートドライブがCじゃない可能性も…
解決しました
どうやら C:\のc:の部分がいらなかったようです.
コマンヂプロンプトのサイトの構文にはc:が入っていたので分かりませんでした;
どうしてもわからないなら、>355 の言うとおり
UWSC.exe と 対象スクリプトをC直下に置けば良いじゃない。
なんか自分で見てても文章が稚拙ですね〜^^;
支離滅裂ですみません;
ずばり、Cドライブじゃなかったってオチか
CD C:program files じゃムリでしたが
CD \Program files でいけました^^
まずDドライブっていうやつがないので;w;
でもDVD-RWっていうのがありましたがこれがDドライブなんでしょうか?
やったーーーーーーーー
出来ました^^
3時間も掛かっちゃったpwq
>>366さん
書き忘れましたすみません;
暗号化出来ました^^
でもORGファイルっていうのが出来たんですがこれは何ですか?
^^;
これ素でやってんの?
ここまで超弩級の初心者がスクリプトの内容を隠したがる理由って何?
またゲームマクロ関係の臭いがしてきた…
だからこそだろw
ソース見られたら恥ずかしいじゃん
自分を大きく見せるためだよ
>>353 教えて頂いたとおりにやってみたのですが、1行目でファイルを開いてしまいます
2行目でドラッグをしてる筈なんですが、Gまでカーソルが移動してもファイルは移動しないのです
A-G間を一気に移動出来ると良いのですが
>>373 具体的に何がやりたいんだ?
一応dropfileならコマンドあるような…
>>373 353の一行目で何してるかわかってる?
一行目のクリックと二行目の間にsleep置くか
一行目省くかで出来るだら
質問です。
グローバル・スコープに組込み関数と同じ名前で関数がユーザ定義できてしまいますが、
コードが大きくなってしまい、組込みなのかユーザ定義なのか明示したくなってきました。
コード内で組込みであることを明示する書き方はあるのでしょうか?
例えば、
function Random() ←ユーザ定義されたランダム関数
・・・・・
fend
procedure Shuffle(var OBJ[], TIMES=100)
len = Length(OBJ)
for times = 1 to (len * TIMES)
c1 = Random(len) ←こちらは組込みのRandom()を使いたい
c2 = Random(len)
ifb !(c1 = c2) then
this.Swap(OBJ[c1], OBJ[c2])
endif
next
fend
>>377 逆にユーザー定義の方をuser_RANDOMとかにして区別すれば?
ユーザ定義のRandomも複数箇所で使っているので、
組込であることを明示できた方が変更箇所が少なくて済むんです。
だからBuiltin.Random()などと記述できればなーと思ったんですが・・・ヘルプを見る限りできなさそうですねぇorz
>>379 そりゃ、求める方がおかしいからな
諦めて別名を使えよ
予約語&関数一覧にある関数名がユーザで使える方がおかしくない?
別におかしくないよ
関数をユーザーが上書きしたり改変したりといった具合にフックできる言語もある
>>381 使えない予約語もあった気がする 具体名忘れたけど
randomはjs、javaを考慮して制約を外してあるとかじゃないかな…?
>>382 それは引数の型や個数で判別できる場合じゃないの?それで区別してくれれば問題ないんだけど、
UWSCは引数が違うといってエラーになるだけだからなぁ・・
自作関数をrandomという名前にしなければならない理由はないだろ
ちょっと変更すれば済む話。
俺は自作関数で上書きすることで、スクリプトに手を加えることなくデバッグ出力とかできたらいいなと試してみたけど、
いったん上書きしたらもう標準関数を呼び出せなくなるんだよね。
だから
>>379が言うような方法があればいいなと探してみたことはあったけどあきらめた。
けど今ちょっと思いついたぞ。
Withを使う方法だ。
DEBUGというモジュールとRELEASEというモジュールを用意して切り替えることで、
スクリプト本文に手を加えることなくデバッグモードの切り替えができる。
With DEBUG
.関数()
問題はWithがどの範囲で使えるかだけど、関数内で宣言が必要だろうな。関数ごとに・・・
変数が使えればいいけど無理だよな。
C言語のDEFINEみたいのがあればヘッダを書き換えるだけだけど・・・
>>385 世間一般的な使いこなし術、とは違って
「他言語で実現できてる事」を工夫して提唱しても虚しいぞ。
結論として他言語に移れば良い。
別にWindowsの操作制御はUWSCの専売特許でもない。
ただ、初心者でも使いやすい記述とインターフェースがあるだけ…そこはものすごい利点なのだが。
その初心者向けにヘルプが充実してるところか。
悲しいのは敷居が低いからいろんなのがヘルプ読まずに質問するところか。
ヘルプや例だけでは仕様が曖昧な記述も多いよ。
そういう質問なら別にかまわん。
しかしそれ以前の質問多すぎるだろ…
ビットテストしたくて下みたいに書いたんだけど、もっとシンプルで実行速度が速そうなの組みたいんだけど
どうしたらいいんだろうか?
Procedure bittest(test)
for i=0 to 3
test2=test and power(2,i)
select true
case test2=8
print test2
case test2=4
print test2
case test2=2
print test2
case test2=1
print test2
selend
next
fend
>>390の補足
それぞれ立ってるビットによって別の操作をしたい
selectが条件一致したら抜けるんじゃなくて条件に一致した部分全部を実行して欲しい
bittest(6) で呼ぶと
2
4
って感じで表示して欲しい
チェックボックスのビット判定の例を見ると参考になると思う。
>>392 レスありがとう
そう言えばSLCTBOX()のチェックボックス指定した時ってビット演算で戻り値取ってましたね
早速例題ググってみます
>>390 その4ビットだけならこれでいいのでは
procedure bittest(test)
if test and 1 then print 1
if test and 2 then print 2
if test and 4 then print 4
if test and 8 then print 8
fend
>>390だけど
Procedure bittest(test)
if test and 8 then print test and 8
if test and 4 then print test and 4
if test and 2 then print test and 2
if test and 1 then print test and 1
fend
にした
流しそうめんみたいに上から全部判定して別処理するんだったらこれが一番シンプルだと思った
答えてくれた
>>392さんありがとう。サンプルコード見て閃いた
やっぱ素直に書くのが一番でした
>>394 おお!レスくれてたのか。ありがとうございます。リロしてませんでした。ごめんなさい
仰るように書き直しました。これに気付くまで数時間かかったのでありがとうございます
32ビットとか使いたくなった時のために
こんな感じにしといたほうが無難ではないだろうか
procedure bittest(test)
bit = 1
for i = 1 to 32
if test and bit then print bit
bit = bit * 2
next
fend
並列して似た作業をループさせたいんだが
内容としては、ChromeA、ChromeB、ChromeCってウィンドウがあるとして
AもBもCもループさせてる作業内容は同じで、そのループを同時進行で実行させたい。
知識ないから、単純にA、B、C用にそれぞれスクリプトを組み同時に実行させてるんだけど
なぜだかAウィンドウがCウィンドウの位置にワープしたり、BウィンドウがAウィンドウと重なる位置にワープしたり
わけわかめなんだ。
原因として、何が考えられるのか。改善は可能なのか。
ちなみに、スクリプトの内容は
FOR 回数 = 1 TO 5
ACW(GETID("〜-〜- Google Chrome","Chrome_WidgetWin_0"),-1,319,263,761,0)
BTN(LEFT,CLICK,176,794,1000)
BTN(LEFT,CLICK,176,794,1000)
BTN(LEFT,CLICK,176,794,1000)
BTN(LEFT,CLICK,176,794,1000)
BTN(LEFT,CLICK,176,794,1000)
BTN(LEFT,CLICK,176,794,1000)
BTN(LEFT,CLICK,176,794,1000)
NEXT
こんな感じのを、A、B、C用それぞれ作ってバッチでスクリプトを同時に実行させてる。
ちなみに、全部で12ウィンドウ分。
そりゃ毎回getidしてるからだろ。
どうせIDがかぶってるオチじゃねーの
>>399 その通りだったみたいです。
GETIDの所無くしたら問題なく動きました。
これ、クリックする部分は絶対座標だから対象としてるウィンドウ達はスクリプトで指定してる座標から動かしちゃダメって事ですよね。
とりあえず、これで手動クリックから抜け出せましたw
1時間弱12個のウィンドウの決まった所をひたすらカチカチ作業を6時間おきにやるのがマジキチだったので
助かりました!
>>401 なんか勘違いしてるっぽいな?
同じタイトルのウィンドウが複数ある場合1回目のgetidと2回目のgetidで
同じウィンドウを取得できるとは限らんって事だぞ。
一つのウィンドウに対して複数回操作をするなら
getidを1回だけやってIDを変数に取って以降その変数でやる
どう考えてもまともな使用目的じゃなさそう
ま、その程度ならたいした実害はなさそうだけどな…
マクロのまともな使用目的ってなんだよ
405 :
403:2011/12/03(土) 00:19:27.25 ID:/eCiHqMi0
>>404 だからさ、マクロ目的ならこれよりAHKの方が良いって…w
ルールを正規に定めている範囲内でそのルールに違反しないこと
IF (test_flag xor PEEKCOLOR(446,182))=($FFFE or (test_flag xor 1)) then その後の処理
って感じでtest_flagの状態によって切り替えて判定してるんだけどもっとシンプルに書きたい
norが有ればもう少しましに
IF (test_flag xor PEEKCOLOR(446,182))=($FFFE nor test_flag) then その後の処理
って感じで書けるんだろうけどnotすらないようなので・・・
○PEEKCOLORの取りうる値は$FFFFかそれ以外
○test_flagは0か1の値を取る
○検出したいのは$FFFF
やりたいことは
○test_flagが0の時、$FFFF=PEEKCOLOR(446,182)を検出するとthenを実行
○test_flagが1の時、$FFFF=PEEKCOLOR(446,182)を検出出来なければthenを実行
頑張って一回で両方を判定しようとして2,3時間悩んだ結果がこれなんだ
実際にはthread処理してて別のルーチンでtest_flagの状態を変えてるからタイミングが悪い時に
2回判定するとタイミングずれて結果が変わる
両方を同時に判定しないといけないんだけどもっといい方法無いかな
○test_flagが1の時、$FFFF=PEEKCOLOR(446,182)を検出出来なければthenを実行
↑間違えた
○test_flagが1の時、$FFFF=PEEKCOLOR(446,182)を検出するとthenを実行
普通は判定で処理が変わるけど、処理が同じで判定の方が変わる
それ、test_flag で何も切り替わってない気がするけど
if peekcolor(446,182)=$FFFF then 〜
ではダメな理由は何?
それと、一行にまとめたからって同時に実行されるわけじゃないかと
this_test_flag = test_flag
this_PEEKCOLOR = PEEKCOLOR(446,182)
共有変数を直接参照し続けなければ良いだろう…とは当然考えてしまうのだが。
>>409 test_flagは別ルーチン(thread処理で別のが切り替えてる)
ダメな理由は
if peekcolor(446,182)=$FFFF and test_flag=0 then 〜
if peekcolor(446,182)<>$FFFF and test_flag=1 then 〜
って書くとifとifの間の実行中に別スレッドがtest_flagの値を切り替える可能性があるから
>>410 これも同じ理由です。そもそも状態を記憶するためにフラグを使ってるのですから
直接参照した上でないと代入や判定の際にタイミングずれて誤作動しました
>>411 別スレッドで動作させるなら
>IF (test_flag xor PEEKCOLOR(446,182))=($FFFE or (test_flag xor 1))
最初のフラグと最後のフラグが同じ値である保証は無いのだが。
俺が誤解してるのかなぁ…
まぁ、そこまで動作を把握してるなら自分で聞いた答えは自分で出してるんだろうな。
もっとシンプルには書けない、で終わりだ。
>>408が間違いです。ほんとすみません
test_flagが1の時、$FFFF=PEEKCOLOR(446,182)を検出出来なければthenを実行であってました
どうも混乱しててごめんなさい
>>413 ほんとうにごめん。
>>415です。
>>408が間違ってました
気分を害したのならあやまります。ただ、こう言ったロジックの話は
チェスとかパズルとか将棋みたいで知的遊戯な気がするので聞いてみました
詰め将棋やってて解けたと思ったら実は他に逃げ道が有って・・・みたいな感じですね
>>412なんですがその通りなんですよね
完全に回避しようと思ったらuwsc自体にthread処理を一旦止める実装がないと無理だと思います
ただ、
if peekcolor(446,182)=$FFFF and test_flag=0 then 〜
if peekcolor(446,182)<>$FFFF and test_flag=1 then 〜
と書くよりは誤作動する確立が減るので、一回でなるべく高速に判定したいと思った結果なんですよ
いや、実際の動作的に試したことは無かったので面白いと思いますわ。
で、実際に書いてみた…num=numでfalseが出るよねw
確実性を求めるなら、処理が外部に出る前に必ず別フラグを参照して止める必要性があるねぇ。
----
public num
thread _set()
while 1
ifb num = num
print "true"
else
print "false"
endif
sleep(0.1)
wend
procedure _set()
while 1
num = random()
wend
fend
----
私が
>>409を書いた理由も
>>408が原因だぞ。充分に反省するように。
とりあえず、条件式を1行にまとめたからって全てが同時に判定されるわけじゃなく
優先度の順にビット演算されていくだけなので、IFを多重にした方が高速な場合が多い。
そして実はあるシンプルな回答
if peekcolor(446,182)=$FFFF xor test_flag then 〜
たぶんこの1行で行けるんじゃないかな
スケジュール設定で12:00〜15:00まで3分毎ってどういう式にすればいいんですか?
>>418 求めるものはそういう回答なのでしょう。
ずれた話しててごめんね。
>>417 わざわざ試して頂いてありがとうございます
ちょっと自分なりに条件を考えてみたのですが
IF (test_flag xor PEEKCOLOR(446,182))=($FFFE or (test_flag xor 1))
のフラグが最初と最後で書き換えられていない場合でPEEKCOLOR(446,182)が$FFFFを返す場合
フラグ1の時
1 xor $FFFF=$FFFE or (1 xor 1)これが判定式に入るので
if $FFFE=$FFFE then〜 の式になる
フラグ0の時
0 xor $FFFF=$FFFE or (0 xor 1)
if $FFFF=$FFFF then〜 の式になる
これは思った通りの動作です
改行が多いと怒られたので
途中で切り替わってしまった場合は
フラグ1の時
1 xor $FFFF=$FFFE or (0 xor 1)これが判定式に入るので(もしくはその逆で0 xor $FFFF=$FFFE or (1 xor 1)かもしれない)
if $FFFE=$FFFF then〜 の式になる
フラグ0の時
0 xor $FFFF=$FFFE or (1 xor 1)同上
if $FFFF=$FFFE then〜 の式になる
IFの判定の瞬間に切り替わっちゃうとどうしようもないけど、頑張って考えたて
安全性を求めるなら、この条件を数回実行するって言うのしか方法はなさそうなんですよね
>>418 はい、ほんとうにごめんなさい。反省してます
自分でも必死に考えて試行錯誤の結果なのできっちり理解できてませんでした
if peekcolor(446,182)=$FFFF xor test_flag then 〜
なんですけど試したらちゃんと動きました。ありがとうございます
ビット演算が実は逆に時間がかかる場合もあると聞いてビックリです
>>420 いえ、ありがとうございます。勉強になりました
>>418で答えていただいたのを理解してました。遅レスですが皆さん本当にありがとうございます
あと、事後報告なんですが、
>>418で回答頂いたのをコードに組み込んで
printで確認したら、やっぱり何回かに1回の割合で誤判定してるみたいです
3、4回走らせると、誤作動はしてないみたいなので、本当にthen以降を実行するかはループを回してチェックする事にしました
ありがとうございました
>>422 >ビット演算が実は逆に時間がかかる場合もあると聞いてビックリです
そういう意味じゃなくて、条件式というのは全てビット演算なのですよ。
マッチしたら1 しなかったら0 という1ビットの値として扱われるものなので
ビット演算子で条件を繋いだりできるわけです。
そしてたとえば
if 超重い関数() and クソ重い関数() and 死ぬほど重い関数() then 〜
このような条件式があった場合、andなので一つが0ならそれで確定するのに
ビット演算を全部終わらせようとして常に関数3つとも実行されてしまうので
一つの長い条件式にするよりは多段IFの方が無難なのです。
でも今回の場合は関係なかったかも。
>>424 そうなんですか
最終的にはif ビットが立ってるか? thenって言う判断なんですね
凄く参考になったので今if文全部見直してます
ところで、
>>407の1行目ってやっぱり
test_flagがどっちであっても同じ動作をするように見えるんだけど・・・
つまり
>>409に書いた通り
if peekcolor(446,182)=$FFFF then 〜
これと全く同じ動作になってるような?
>>426 >>407 の一行目は完全にフラグ無視の動作だねw
動いていたのは彼の勘違いか、コードの別の部分が変にフラグ書き換えてバグってるんだよ。
別の部分の原因を把握してないから
>>423 みたいな事を言ってるんだと思うわ。
>>426 if peekcolor(446,182)=$FFFF then 〜 だと複数回チェックする時に状態反転してるのに同じ物を検出条件にしてますよね?
その間に状態が変わって反転してるかもしれないのでこれだと誤作動です
フラグが反転すると今度は$FFFFを検出しない状態でthen〜を実行して欲しいんです
フラグの状態を無視してると言うのが力不足で理解出来ません。良ければその理由を指摘いただけませんか?
>>427 画面の更新タイミングがずれる時(他アプリの起動や描画時間がかかるアプリ、windowsの画面更新そのものが止まる状況、画面上に別アプリを起動した時にそのウインドウが(446,182)の座標に被った場合など)
描画が止まったりすると1回の判定だと当然誤作動するんです。誤動作のタイミングがそれ以外にも色々あるので不定です
then〜はエラー復帰と考えていただければ分かりやすいと思います
その判定の為に何回かPEEKCOLOR(446,182)を繰り返してます
>>428 いい加減に自分でテストコードぐらい書いて確認しろよ。
以下の4パターンで、この二つの判定式はまったく同じboolを返す
今までこれで正しく動いていたと思うなら、ほかの部分がおかしいままだ。
flag = true; pc = $FFFF; print _a(flag, pc) +":"+ _b(flag, pc)
flag = false; pc = $FFFF; print _a(flag, pc) +":"+ _b(flag, pc)
flag = true; pc = $1111; print _a(flag, pc) +":"+ _b(flag, pc)
flag = false; pc = $1111; print _a(flag, pc) +":"+ _b(flag, pc)
function _a(test_flag, pc)
ifb (test_flag xor pc)=($FFFE or (test_flag xor 1))
result = true
else
result = false
endif
fend
function _b(test_flag, pc)
ifb pc = $FFFF
result = true
else
result = false
endif
fend
>>429 thread処理じゃないのでこのコードが同じになるのは分かります
実際に動かしました。仰るようにthread処理でフラグが変えられた場合のテストコード書いてみます
っていうか
>>421に自分で書いてるだろう
色が$FFFFの場合に
>フラグ1の時
>if $FFFE=$FFFE then〜 の式になる
>フラグ0の時
>if $FFFF=$FFFF then〜 の式になる
つまりフラグがどっちでもIF条件を満たして同じ動作をしてる
>IF (test_flag xor PEEKCOLOR(446,182))=($FFFE or (test_flag xor 1)) then その後の処理
は
>if peekcolor(446,182)=$FFFF then 〜
と全く同じ動作しかしてない。
今必死に理解に勤めてます
threadであろうがやっぱり同じになると思います。でも何故そうなるか分かりません
数学の証明問題を解いてる気分です
もうちょっと頑張りたいと思います。皆さん本当にありがとうございます
ごめんなさい。やっと理解できました。根本的に間違ってたようです
IF (test_flag xor PEEKCOLOR(446,182))=($FFFE or (test_flag xor 1)) then その後の処理
は単に
IF peekcolor(446,182)=$FFFF then
を分かりにくくしただけで、式そのものが間違いと言う事に気付きました
ちゃんと動いた事があるのはうまい具合に(意図したように)誤作動してたんだと思います
本来チェックしたい条件とは逆の判定をflagによって行ってた
threadだろうが、そうでなかろうが結果が同じになるということがやっと分かりました
IF peekcolor(446,182)=$FFFF thenを因数分解した様な式で分かりにくくなっただけでflagの値が何であれ判定条件は同じ
if peekcolor(446,182)=$FFFF xor test_flag then 〜
じゃないとまともに動かない。何故間違ってるのかに気付くまで時間かかりましたがご指摘、本当にありがとうございました
連投失礼します
今回、if文は本来チェックしたいものをチェックして、フラグで条件が違うならそれでテストする
if 真xor真 これは偽
if 真xor偽 これは真
と言う事を改めて学ばせていただきました。本当にありがとうございます。上みたいにもっとシンプルに考えればよかったんですね
基本に立ち帰りました
理解に協力していただいた皆様に本当に感謝いたします。ありがとうございます
嬉しい事があると話が長くなるタイプなので長文失礼致しました
ファイル(主にmp4,flv)が壊れているかいないかを判断するのにバイナリの先頭部分を少しみてチェックしたいんだけど、
何か良いwshかAPIあったら誰か教えて下さい。GetDetailsOfでやってみたら駄目だったのでがっくりきた。
APIのReadFileとかCOMのADODB.Streamとかで読み込むことはできるかも知れないけど
そもそもuwscはバイナリを扱えるようにできてないからかなり大変なのでは
というか、壊れているかがヘッダーだけで判別できないだろ…
後ろ全部のバイナリチェックが「壊れている」かの本分だと思うけど。
動画のバイナリチェックなんて事前にハッシュでもとってない限り
実際に見てみるしかないと思うが。
uwscで直接チェックするなんて、どこにも書いてないと思うが・・?
そうだね。UWSCとは一言も書いてないからただの誤爆かも知れないね。
いずれにせよ先頭を見ただけでは壊れてるかどうかの判別はできないだろうけど。
ckfol="D:\hoge"
dim filetype[]="*.mp4","*.flv"
for y=0 to RESIZE(filetype)
count=Getdir(ckfol,filetype[y])
for z=0 to count-1
file=GETDIR_FILES[z]
ifb POS("(sm",file)>0 AND POS("[nico]",file)=0 AND POS("%%エラー",file)=0
DIM objStream = CREATEOLEOBJ("ADODB.Stream")
objStream.Open()
objStream.Type = 1
objStream.LoadFromFile(ckfol+"\"+file)
str=""
for i=0 to 30
str = str + objStream.Read(1)
next
objStream.Close()
ck=POS("FLV",str)+POS("ftypi",str)
ifb ck=0
doscmd("REN <#dbl>" + ckfol +"\" + file + "<#dbl> <#dbl>%%エラー "+ file +"<#dbl>")
else
doscmd("REN <#dbl>" + ckfol +"\" + file + "<#dbl> <#dbl>[nico] "+ file +"<#dbl>")
endif
endif
next
next
>>437-441 先頭部分にFLV or ftypi がなければ破損と考えてるだけで、そこまで複雑にチェックしようとしているわけでないです。
PCがしょぼいせいで、ニコニコ動画で作業用BGMとかのファイルをirvineで落としてから聞いてるのですが
たまに開けないのが先頭部分がおかしかったりします。
厳密には修復可能かもしれないですけど、落とし直した方がはやいですし、簡易なチェックでいいと思ってます。
適当に作ったのが↑ですがファイル全部をロードしてしまうので30-100Mあるので動作がもっさりしてます。
ロードするバイトを指定できるCOMかAPIを教えて下さい。書かれてたReadFile関数がそれっぽいのですが、
記述方法がよくわかりませんでした(引数の型の辺り)ので、できればソース御願いします。
COMはよくわかんないのでReadFileの方をかなり適当に。
読めなかった場合の対策とか何もしてない。
def_dll CreateFileA(string,dword,int,int,int,int,int):hwnd:kernel32.dll
def_dll CloseHandle(hwnd):kernel32.dll
def_dll ReadFile(hwnd,var int,int,var int,{int,int,int,int,int}):kernel32.dll
ファイルのパス="C:\いかがわしい動画.mp4"
読むバイト数=4
読み開始位置=0
dim 内容[読むバイト数-1] //この配列に1バイトづつ入る
buffer=0
hFile = CreateFileA(ファイルのパス,$80000000,0,0,3,0,0)
for i=0 to 読むバイト数-1
ReadFile(hFile,buffer,1,0,0,0,読み開始位置+i,0,0)
内容[i] = buffer
next
CloseHandle(hFile)
あー、すまねぇ。
>>445 早い回答ありがとです。問題なくできました。これからAPI使うときの参考にさせてもらいます。
448 :
名無し@カレイライス:2011/12/06(火) 19:57:13.13 ID:3iAYuHHz0
uwsc4.7bって4.2のkeygen使えない・・・・
使うとEROOR2ってでちゃう
どうしてる?
keygenって何? 不正利用の奴?
キーゲンっていう人の名前
きっと機ー嫌がよくなかったんだろう
A、B、C、3つの画像のいずれかが表示されたら(複数同時には表示されない)クリックするというのを作りたいのですが
いずれかというところはどういう命令文を使えばいいのでしょうか
画像を認識したらクリックするサンプルをいじって作ろうと思うのですが
ヒントをもらえないでしょうか
fib 画像
あたりでググる
ふぃ・・ fib・・・。
ありがとうございます
後で調べてみます
ifb chkimg("画像")
btn(left, 0, g_img_x, g_img_y)
endif
いずれかっていう条件には当てはまらないけど
こんな感じのを画像ごとに3つ並べて外側をループで囲むってのはだめ?
ありがとうございます
帰ったら頑張ってみます!
fibとか恥ずかしすぎるミスしてたのかw
ifib 画像1
btn
else
ifb 画像2
btn
else
ifb 画像3
btn
endif
みたいな形でもいける
外出中なもんで、スペルは忘れた
素直にelseif
ifb chkimg(画像1)
btn
elseif chkimg(画像2)
btn
elseif chkimg(画像3)
btn
endif
それとも1行で
if chkimg(画像1) or chkimg(画像2) or chkimg(画像3) then btn
if使わずにやるとか
repeat
until chkimg(画像1) or chkimg(画像2) or chkimg(画像3)
btn
orで繋ぐのは無用に重くなるんであんまりよくない。
見た目はいいけどね。
>>462 先頭からどれか一つ真になった段階で残りは打ち切らなかったっけ
>>463 dim i = 1
print "start"
ifb i=1 or test1() or test2() = 1 or 1 or test3()
print "ifb実行"
elseif test4()
print "elseif実行"
endif
FUNCTION test1()
print "test1開始";sleep(5)
RESULT=1
print "test1終了"
fend
FUNCTION test2()
print "test2開始";sleep(5)
RESULT=1
print "test2終了"
fend
FUNCTION test3()
print "test3開始";sleep(5)
RESULT=1
print "test3終了"
fend
FUNCTION test4()
print "test4開始";sleep(5)
RESULT=1
print "test4終了"
fend
465 :
459:2011/12/10(土) 02:36:04.03 ID:GmQNgHM/O
皆さんありがとうございます
たぶん思ってたものが出来たと思います(まだちゃんと動作検証してない)
PCが規制で書き込めないので書いたスクリプトは張れませんが
大変助かりました
ありがとうございました
466 :
名無しさん@お腹いっぱい。:2011/12/10(土) 15:04:07.85 ID:U+5trVSR0
どこで聞けばいいのか分からず質問させていただきます
数ヶ月前より今まで使えてたUWSCマクロが動かなくなりました
原因を調べてみるためマクロが動かなくなったソフト(MMO)で「記録」をしてみると
クリック、キータイプ、マウス移動もすべて無視されます
唯一ウィンドウ(ウィンドウ表示状態)だけはアクティブにしてくれるのですが…
これはソフト側が対策をした、という事なのでしょうか?
以前もこのソフトに関しては何度か動かないときがあったのですが(アプ
デ後など)しばらくすると問題なく動いていたのでスルーしていたのですが
今回は長く、困っております
いくら調べても同じ症状の記事を見つけられず質問させていただきました
誘導、もしくは対策方法をご存知の方お願いします
467 :
名無しさん@お腹いっぱい。:2011/12/10(土) 15:05:49.95 ID:U+5trVSR0
追記…
記録するとマウス移動のみ記録されます
それを実行するとマウス移動も無視されます
>>466 対策です。無理です。
ゲームバランスを著しく崩す行為ですので。
将棋のようなシミュレーションゲームができないか考えてるんだけど、
コマの画像を表示するソフトってない?
MSペイントだとタイトルバーなんかが表示されちゃうんで具合がよくない。
画像のみを出せる方法ないかなあ
470 :
463:2011/12/10(土) 18:25:26.87 ID:nbVIkp880
ちょっとスレ違い気味かもしれませんが有識者がいるかもしれないので質問です
ネトゲにてUWSCで解像度を変更したい&しています
別ゲと同時起動して放置してるのですが、その別ゲではUWSCに反応して蔵落ちしてしまう為
途中で何度も解像度を上げ下げする事ができません
UWSC以外でこのようなソフトの解像度を強制的に変更できるようなソフトに心当たりないでしょうか?
調べても大抵がデスクトップの解像度をソフト起動に合わせて変更する、といったものしか見つかりません
もしご存知の方いたら教えて頂ければと思います
すいません、総合質問スレがあったようなのでそちらにします
お騒がせしました
>>471 完全にスレチじゃねえか
どういう調べ方したかしらんが
某ソフトウェア配布サイトで簡単に見つかったぞ
これだからネトゲ厨は嫌われるんだよ
という、どーでもいいレスはいらない。
あと。基礎も分からないミジンコ消えろとかいう自称上級者の煽り
ホントどうでもいい
単純に基礎からやってる奴には文句は言わんが
身の丈に合わんことやろうとしてる奴は帰れと言うしかないな。
基礎も知らずに他人のスクリプト弄ろうとしてる奴とか。
>>476 まぁ、他人の書いたものを弄り倒す事こそ基礎だがな。
…諦めが早くて、弄る事すら碌にやってないと嫌な感じがするけど。
基礎ってのはヘルプを読むことだよ。
ヘルプを読むという手段を知らないかのような質問が多いでしょ?
ちょっと教えて
exe化させるときにアイコンつけたいんですが
iconのフォーマットは何にすればいい?
32x32で24bit 256色 16色のbitmapやったらどれもアイコン無しになりました
ちょっと教えて
exe化させるときにアイコンつけたいんですが
iconのフォーマットは何にすればいい?
32x32で24bit 256色 16色のbitmapやったらどれもアイコン無しになりました
当然 .ico だと思うが…
しかもそんなに人いるスレとは思えないから、そんなに催促しても…
てs
てs
スレチすみません。
Rocketmouseの試用版をインストしたんですが、
ブラウザとかアプリでは使用できないんですか?なにも記録されないんですが・・
デスクトップとかでは記録されます。
487 :
名無しさん@お腹いっぱい。:2011/12/16(金) 02:30:50.74 ID:Tapsec3+0
OSがWindows7 Home Premiumなんだが、Windows Update来てたのでUpしたら、
Up前に問題なく動作していたスクリプトに不具合が出てしまった。
CHKIMGで認識しなくなったbmpが幾つか出るようになってしまった。
しかし認識してるのもある。
同じような現象になった人、いないかい?
だれか uwscでネットから日付取得する
サンプルを貼ってくれないか?
既にどこかで公開されてるならURL頼みます
探してもみつからん・・・
実際探してないのに探したといってクレクレする落ち
>>488 そりゃ普通に誰も必要ないからだろう
NTPで定期的に同期させたPCの時計から取得すればいいだけ
ネットから正確な日時取得したところでUWSC内部で誤差出まくり
サンプルってなんだよ。
誤魔化すな
>>491 ありがとう できました
>>490 必要か必要でないかは作成者が決める訳で
>>490ではないと思うよ
俺が頭悪いから
>>490に教えて欲しいんだが
uwscでexe作って それを知り合いに配布し
たとえば2011/12/20になったら起動不可に
したい場合どうすればいい?
PCから取得する方法だと時刻を過去に設定すれば
すり抜けられるし、設定ファイルやRegに書き込んでも
変更されたら終わる
>>NTPで定期的に同期させたPCの時計から取得すればいいだけ
この方法で 解決策を教えてくれ
知り合いなら単に使うなって言えばいいじゃん。
PC時計をずらしてまで使うようなある意味敵対的な奴が
要ネット接続な怪しいアプリ使うのか?
そういうのは知り合いって言うのか?
もう子供ばっかりで話にならんわ
問題定義のすり替えばかりで
俺の質問の意味わかってるのか?
使うなっていって終わりってw
プログラムじゃないだろうよ
いちいち人にプログラム渡すときに
このボタンは押さないでくれ 数字は10以上入力しないでくれって
いうのか?
そんなPG会社でようくばらんわ
PC系の処理と人間系の処理の意味を間違えてるぞ
もういいわ
教えてくれた人ありがと
時刻設定を変えてまですり抜けようとする人が
ネットからの取得だとすり抜けようとしない前提なの?
教えてくれないからって癇癪起こすお子様が現れたと聞いて
ああ、もう冬休みはじまったんだな
会社でシステム時間を変えて使うとかそっちの方があり得ないだろ…
それにw32tmはシステム時間を変更するってことだぞ。
変更されたものを戻すという事だが
勝手に変更するという意味ではこっちも正直あり得ない。
嘘ばかり言ってないで正直にアングラスクリプトだと言えよw
起動時に毎回現在時刻を取得とか発想が馬鹿なんだよ
発想の転換をしたほうがいいね
>>494がやりたいのはサンプル渡して金もらって制限解除だろ。
それも割りと少人数で。
しかもそれがUWSCのスクリプト。
ゲームマクロでは取り込み詐欺が横行してるからそれくらいは基本だろう。
>>495 知り合いっていうのはコミュニティの仲間ってことだろ。
で、マクロとかチートとかを普通にやってて、
マルチ起動のために改造したり仮想マシン使ってたりするので
時刻操作は回避の基本。
そういう相手だからネットでの確認したいわけだろう。
ただ、チートやってるやつは鯖の偽装とかもすぐにできるわけで、
確実に防げるわけではない。
要約するとゲームマクロ用なので教える必要はない
たとえゲームマクロに使うんだろうなと思えるものであっても
まともな姿勢での質問であれば普通に対応するけどね。
手法の相談とかならともかく、最初から「サンプル貼ってくれ」で始まって
欲しいものがもらえないと大暴れするなどという態度では
むしろこちらが批判以外の反応を封じられた気分だ。
上のほう見るとまともな態度での質問も普通に対応されてないけどな
口だけ達者な自称上級者はこれだから困る
>>504 たとえばどれ? 別に返事する義務があるわけじゃないんだから
まともな姿勢なら批判しないってだけで興味が持てなければスルーするよ。
それに上級者を自称してる人なんて見当たらないような。
あと態度じゃなくて姿勢ね。丁寧で礼儀正しくてもスレ違いとかは相手したくない。
threadで動かしている関数から全体の動作を一時的に停止させることって出来ますか?
msgbox等を出せばメインの動作は止まるようなのですが
別のthreadで動かしている物は動作を続けてしまうのです。
>>507 公式でtread間はpublic変数でフラグ建ててやるしかないとの回答だった気がス
>>504 口調だけを繕って内容が伴っていない慇懃無礼な質問ばかりだろ。
口調はどうでもいいんだよ。馴れ馴れしくったって別にいい。
いくら礼儀正しくてもヘルプの目次すら読んでないのが明白な質問は論外だ。
>>506 スルーなんてしないでケチばっかつけてるよ
スルーするのならまだいいよ
>>510 だからその、まともな質問なのに答えてもらえず批判だけ浴びたってのはどれ?
どれも何も大半じゃねーかよ
読み返せば分かることを何故聞く訳?
具体的に挙げろって言われてるんだからその大半とやらを全部挙げればいいだろ。
ただしその大半が内容の伴ってない上辺を取り繕った質問ばかりと思うがな。
>>508 そうですか、ゴリ推し気味にやるしかないんですね。
少し試してみます。ありがとうございました
>>512 読み返した上で訊いたんだけど・・・
このスレには見当たらないような気がするけど
もしかしてネットゲーム系の板での話とか?
大半とか言ってる奴はヘルプ見ないのが当然とか思ってる奴だろうよ。
質問なんですが最近PC買い換えて7のhomepremiumにしたんですが
とあるゲームでクリックやボタンを押すなどがちゃんと記憶できないんですがどうすれば直りますか?
動きを保存して内容みてもクリックやボタンの記憶がまったくされず直接かいてもちゃんと働いてくれません
それだけで答えられたらエスパー
>>517 winXPでは適用されてなかったゲームガードの機能が
win7で100%発揮されるようになっただけ。
XPのCD無いなら諦めろ
アルならほかで聞け
>>517 エスパーじゃなくてもわかるわこんなの
どうせ、C:\Program Filesとかセキュリティが固い場所に置いたんだろ
Cドライブ直下などにuwscが入ったフォルダを丸ごと移動して使え
>>521 いっぱいいましたね^^ じゃねえよ 死ね
って言われる、に1票
必死だな
お礼だけ言えばいいのになんで無駄に煽るのか
CHKIMGで画像Aが見つかったならばAを押しさらにBを探してBを押す
もし見つからなければCを探してCを押すというのを作りたいのですが
どうやったらいいのでしょうか
今は
ifb chkimg A
btn A
else chkimg C
endif
ifb chkimg B
btn B
とやっていますが出来れば↓のようにしたいのです
ifb chkimg A
btn A
(ここでBのチェックして押す)
else chkimg C
endif
ご教授いただければ幸いです
ifb chkimg A
btn A
ifb chkimg B
btn B
endif
elseif chkimg C
btn C
endif
説明がわかりにくい。
「もし見つからなければ」というのは、何が見つからなければ、なの?
「Aが見つかって、Bが見つからない場合」なのか、
「Aが見つからない場合」なのか。
ってもう答出てたか。
>>526 なるほど
ifbは多重構造にしてよかったんですね
ありがとうございます
>>529 ifbに限らずブロック構文はどれも入れ子にできるよ
これってオブジェクト指向なコードは書けますか?
>>531 継承が出来ない、インスタンスが作れない
メソッドっぽくは書ける
オブジェクト指向とは言えないだろう
アプリケーションの制御を行う際に、アイテム名が分からない場合には、
どのような方法で調べれば良いのでしょうか?
UWSCの誘惑さんのところにあった、UWSCコードの断片生成器は
使用させていただいたのですが、他の方法はありますでしょうか?
UWSCコードの断片生成器の結果では、アクセシビリティ用
インターフェース経由のクリック対象に出てくるのですが、
残念ながらクリックできず・・・
→クリック出来るものとできないものがあった
よろしくお願いします。
>>533 getitemで出てくるものしか触れません。
getitemで総当りして、さらに総当りでクリックしてみる等の試行錯誤が必要です。
また、クリックできないものも当然ありますので、諦めることも必要です。
ここでこれを出すのもなんだが、AutoItのWindow Spyを使ってみるのも。
>>534 やはりそうですよね。getitemのmenuは何も出ずに、全てACCのようで・・・
諦めも重要ですね。ショートカットキーで対応できるのでそちらを検討します。
>>535 使ったことがありませんが、調べてみます。
最近覚え始めた初心者なので分からないことがあるんですが
peekcolorを使ってx,y座標にある色が黄っぽい色のとき○○をしてそれ以外なら何もしないというのを
作ろうとしているのですが、書き方が分かりません。
黄色っぽい色の範囲のもたせかたと書き方を教えてもらえるとうれしいです。
あいまいさを表現するのはかなり難しい
そもそも「黄色っぽい」ってのを数値化出来ないと難しいと思う
>>537 RGBで、
RとGが一定以上
Bが一定以下
これでいけないかな
これ画像認識ってどうやってるんですかね
理屈分からず使ってますけど
空きスペースに動画いくつか開いてても
一瞬で見つけて処理するのが凄いと思いました
よくあるクリックしてチェックを入れるタイプのアンケートに使いたいのですが、「○」みたいなチェック欄がitmとして認識できず困っています
チェック欄の横に文章を用意し、chkimgで検索しクリックしようとしたのですがうまくいかず…
検索した画像の特定部分をクリックさせることって可能でしょうか
可能ですよ
>>544 ありがとうございます
もっと探して試してみます
>>543 向こう側としてはまず歓迎できないと思うけど
どっかに自動ツール使用は発見次第ポイント没収とか書いてあるんじゃ無いの?
>>546 アンケート設置者も私です
紙媒体で行った分をまとめるのに、また今後のために可能であればつくってみようと取り掛かっている次第です
手入力ですとミスの可能性が捨てきれないので
>>547 アンケート側でもうちょっと上手い実装しろよw
このスレって本当にちゃんとした態度ならアドバイスくれる人と単に茶化すだけの人が分かれるね
>>548もそうだけど単に言うだけなら誰でも出来る。そう思うならちゃんと例を示して指摘してみろと言いたい
仮に設置するアンケートがパソコン使えない高齢者だったり障害持ってる人だったらどうするんだと
まぁ色んな可能性を考慮できないから例も示せないんだろうけどね
年賀状の印刷しようとEP901Aを起動したらガタガタいってハガキを吸い込まなくなった
よりによってこの時期にストライキかてめえコノヤロウ
手書き年賀状なんてやってられねーんだよ
あぁスマン誤爆した
>>550 誤爆なんだろうが、俺もちょっと不安になってきた。
去年はインクが固化して印刷できなかったんだよね…ちょっとチェックするか
どんなにググっても原因が見つからなかったので、ここで質問させて下さい
whileを入れ子にすると、ループ処理が上手く行かないんです
dim g = 0
while true
処理 1
ifb a = 50
Sound("beep")
g = 1
endif
while g = 1
処理2
If GetKeyState(Vk_C) then g = 0
wend
wend
というスクリプトなのですが、while g = 1がループする時としない時があります
・ループする時は、処理2の実行を繰り返す
・ループしない時は、処理2の実行を1回だけ実行して、Cキーを押していないのにループを抜けて処理1を繰り返す
スクリプトの内容はまったく変えていません
原因をご存知の方が居ましたら、対策方法を教えて頂けないでしょうか
>>553 GetKeyState のループは、ループを抜けた直後にテストすると前回の結果が残ってる場合がある。
GetKeyStateが繰り返される場合は、処理を分岐する前にSleepを入れる必要がある。
If GetKeyState(Vk_C) then g = 0
ifb a = 50
g = 1
while g = 1
If GetKeyState(Vk_C) then g = 0
↑の順番で実行されるときに前回の結果が残ってて抜けちゃう。
GetKeyState〜GetKeyStateの間のどこかで、0.5秒〜1秒くらいの休みが必要。
ただし、キーを長く押すとSleepを入れても引っかかる。
それをキャンセルしたかったら自分でKBDを送信して上書きするとかが必要。
もっとスマートに解決するなら、キー入力イベントを使うといいよ。
そしたら長く押すとかSleepとか関係なくなる。
>>554 目から鱗です!
確かにキー入力を使った時に現象が多発していました。
早速キー入力イベントを使ってみます。
本当にありがとうございます!
横から聞くけどキー入力イベントってなんぞ?
GetKeyState以外でキー感知できるのか
WinAPIかなにかなのかな
将棋板の升目のように配置された図形がありそのすべてを中クリックし、
次のページがあれば次のページへ移り、次へがなければ終了というものを作成途中です。
以下のマクロですと横一列をクリックして、たて一列をクリックして次のページに行ってしまうのですが、
どこを改良すればよいかアドバイスお願いします。
sleep(5)
//続ける
if GETKEYSTATE(VK_ESC) then exit // ESCキーを押すと終了させる
while true
//座標(0,X)から右(3840,3200)の範囲
X=0
while CHKIMG("枠_01.bmp",-1,X,0,3840,3200)//画像があればループ
//画像の左上端から30px右、30px下の座標をクリックする
BTN(MIDDLE,CLICK,G_IMG_X+30,G_IMG_Y+30,3)
X = G_IMG_X+1
sleep(1)
wend
Y=0
while CHKIMG("枠_01.bmp",-1,0,Y,3840,3200)//画像があればループ
//画像の左上端から30px右、30px下の座標をクリックする
BTN(MIDDLE,CLICK,G_IMG_X+30,G_IMG_Y+30,3)
Y = G_IMG_Y+1
sleep(1)
wend
KBD(VK_BACK,CLICK,100) //BS
sleep(1)
KBD(VK_BACK,CLICK,100) //BS
sleep(1)
//次へがなければページ送り
ifb CHKIMG("枠_01.bmp",-1,0,Y,3840,3200) = false then
KBD(VK_NEXT,CLICK,100) //PAGEDOWN
sleep(1)
Y=0
endif
ifb CHKIMG("次へ_01.bmp",-1,0,Y,3840,3200) = false then//範囲内に次へ_01.bmpが無ければ
//次へがあったらクリックする
ifb CHKIMG("枠_01.bmp",-1,0,Y,3840,3200) then
//画像の左上端から30px右、30px下の座標をクリックする
BTN(MIDDLE,CLICK,G_IMG_X+30,G_IMG_Y+30,3)
sleep(2)
else
//次へがなければ終了する
exit//終了
exit//終了
endif
endif
wend
>>557 XとYをまとめてこんな感じにするとか
if条件の3840は画像の幅の分減らさないとだめだろうけど
X=0
Y=0
while CHKIMG("枠_01.bmp",-1,X,Y,3840,3200)//画像があればループ
//画像の左上端から30px右、30px下の座標をクリックする
BTN(MIDDLE,CLICK,G_IMG_X+30,G_IMG_Y+30,3)
X = G_IMG_X+1
ifb X > 3840
X = 0
Y = G_IMG_Y+1
endif
sleep(1)
wend
>>559 でいいと思うけど普通に二重forループにすればもっと簡潔に書けるな。
っていうかこれでいいのでは
n = CHKIMG("枠_01.bmp",-1,0,0,3840,3200,-1)
for i = 0 to n-1
BTN(MIDDLE,CLICK,ALL_IMG_X[i]+30,ALL_IMG_Y[i]+30,3)
sleep(1)
next
>>561 ALL_IMG_XとALL_IMG_Yはどこから出てきたんだ
>>562 とりあえず最新版のヘルプ位嫁と。
昔はこんなの無かった気がするがな。
chkimgなんか使わんから俺も知らんかった。
>>563 ああなるほど。理解した。ありがとう。
でもall_img_xとall_img_yでうまくいくような画面構成なのかな。
いやよくわからんが。
565 :
名無しさん@お腹いっぱい。:2012/01/06(金) 12:31:16.18 ID:VuDmH/f50
どうにも解決しないので質問させてください。
当たりと外れのリンクが並んでおり、
(1)当たりのリンクを画像で判別
(2)別タブで開く
(3)表示されている当たりリンクをクリックし終えたらスクロール
(4)1から繰り返す
(5)ページ内の当たりリンクを一度ずつクリックし終えたら終了
3と5の処理が解決せず、現状2までの段階でつまづいています。
以下が2までのスクリプトです。
While true
SLEEP(1)
IFB CHKIMG("atari.bmp") //atari.bmpを検索
KBD(VK_CTRL,DOWN,10) //別タブで開く
BTN(LEFT,CLICK,G_IMG_X+5,G_IMG_Y+5,3)
KBD(VK_CTRL,UP,10)
Else
KBD(VK_NEXT,CLICK,40) //atari.bmpが無ければスクロール
ENDIF
Wend
どうかアドバイスをお願いいたします。
IE叩けばもっときれいにできそうな気がする
567 :
名無しさん@お腹いっぱい。:2012/01/06(金) 18:43:50.67 ID:jkZMFLuo0
0時 1.UWS
3時 2.UWS
6時 3.UWS
翌日
3時 1.UWS
6時 2.UWS
9時 3.UWS
時間をずらしてループさせていく方法教えてください
ループ部分だけ、やっつけ回答(検証もしてない)ww
dim interval[2]=10800, 10800, 75600
Time1=gettime()
While true
for i= 0 to 2
repeat
sleep(60)
Time2=gettime()
until Time2 - Time1 >= interval[i]
Time2= Time1
exec("フルパスuwsc.exe "+i+1+".uws")
next
wend
ファイルの中身を全消去したいと思っています。
下記のように書きましたが、動きません・・・
どこがおかしいでしょうか?
よろしくお願いします。
fid = FOPEN("C:\log.txt", F_READ or F_WRITE)
For line = 1 to FGET(fid,-1)
FDELLINE(fid,line)
Next
FCLOSE(fid)
EXITEXIT
>>569 ヘルプによると
>F_WRITE // 書き専用モード(既にファイルがあれば前の情報は消去)
モードにF_READいらないんじゃない?
開いて閉じるだけ。
>>570 F_READを消したらうまくいきました!
ありがとうございます!!
ブラウザ開いて画面をスクロールしたいと考えていますが
最後のスクロールだけできません。
間違いを教えていただけないでしょうか?
Dim ObjIE = CreateOleObj("InternetExplorer.Application")
ObjIE.Visible = True
ObjIE.Navigate("
http://www.yahoo.co.jp/")
Repeat
Sleep(0.2)
Until !ObjIE.Busy and ObjIE.ReadyState = 4 // IEの表示待ち
TITLE = GETID("yahoo")
CTRLWIN(TITLE, ACTIVATE)
CTRLWIN(TITLE, MAX)
Sleep(0.2)
KBD(VK_NEXT,CLICK,3) //PAGEDOWN
>>572 書いてある操作を実際に自分の手作業でやってみろよ。
なぜだかわかる。
574 :
572:2012/01/08(日) 16:33:48.81 ID:Rn7jJzWy0
>>573 レスサンクス。
手作業でも同じ事象になるのは理解しました。
ページクリックすればPAGEDOWNする。
ページクリック=アクティブにするって事・・・じゃなくて?
わからない事がわからない…
そんな時代もありました。
>>572 PageDown キー押下をクライアント領域一つ分下にスクロールさせる事と解釈した場合
OPTION EXPLICIT
OPTION SHORTCIRCUIT
DIM ie = CREATEOLEOBJ("InternetExplorer.Application")
ie.Visible = TRUE
ie.Navigate("
http://www.yahoo.co.jp/")
REPEAT
SLEEP(0.2)
UNTIL !ie.Busy AND ie.ReadyState = 4
DIM document = ie.Document
DIM h = document.documentElement.clientHeight
document.parentWindow.scrollBy(0, h * 3)
scrollBy メソッドの詳細は以下
ttp://msdn.microsoft.com/ja-jp/library/cc428160.aspx
>>576 訂正します
クライアント領域一つ分下に
=> クライアント領域の高さ一つ分下に
また KBD 関数の第三引数を回数と勘違いしていましたので
document.parentWindow.scrollBy(0, h * 3)
=> document.parentWindow.scrollBy(0, h)
として下さい
まことに申し訳ありませんでした
578 :
572:2012/01/09(月) 05:43:50.93 ID:f0eW8W0qP
>>576-577 ご指導ありがとうございました。
早速、試してみたいと思います。
ありがとうございました!
uwscで現在開いているページのhtmlソースを取得することは出来ますか?
キャッシュの保存場所からの取得を試みたんですがうまくいかなくて。(fgetで1行しか取得出来ない)
なおブラウザはchromeです。何かよい方法はありませんか?
>>579 右クリック、ソース表示
uwscはIEのみ割合融通が効く
あとは道が用意されているかで、大半はベタに手作業をやるしかない
581 :
名無しさん@お腹いっぱい。:2012/01/11(水) 03:46:28.70 ID:g75gj0wE0
>>568 さっぱりわからんかったからあきらめた(´・ω・`)
メイン関数内でsleepしてると別スレッドでGETIDした時にやたら時間がかかるんだけど、これは仕様?
メインとスレッドの関係を入れ替えれば問題ないんだけどそれ以外に回避方法ないかな
UWSC初心者なのでサンプルを見ながら応用しているのですが、
伺いたいことがありカキコします。
エクセルのセルA1のURLをIEで開き、ある時間が経ったらA2のURLをIEで開く・・・
そんなプログラムを検討しているのですが、当方エクセルがありません。
そこで、Open Officeで製作したxlsファイルで同様の事ができないかググッているのですが、
なかなか見つかりません。
下記のプログラムを応用したいのですが、Open Officeへ変更できないものでしょうか・・・
EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
Excel.WorkBooks.Open(FileName :="C:\abc.xls")
Excel.Range("A1").select
URL = EXCEL.selection.value
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate(URL)
>>583 エクセルに拘らないなら
テキストファイルの読み出しで良いんじゃない?
>>584 そうですね、その手もあるのですが最終手段で・・・
おそらくOpen Officeのxlsファイルはexecで開くだろうと目星付いているのですが、
そのxlsファイルのA1セルを選択してURLとする関数が分からないんです。
エクセルのサンプルはよく見かけるんですが・・・
Open OfficeってCOMインターフェイスあるの?
あるなら
>>583
途中で送信しちゃった
COMインターフェイスないなら
>>583みたいなCOM経由の操作はできないよ
uwscのgetstrとかで取得してかなきゃダメだとおもう
スクリプトで株の自動注文とか恐ろしい事考える奴いるんだな・・・
>>590 やるなら、API直接叩けるならまだ理解出来る
ブラウザやエクセルの人間的動作を通してなら、不確実過ぎて泣ける
>>581 ちょっと見直してみたら間違い発見 スマン
9行目 ×Time2= Time1 -> ○Time1= Time2
というか、このループだと24時間365日PCシャットダウンNGだから実用的でないよw
テキストファイル等にlog落としてやらないと無理だと思う
(UWSCのイニシャルファイルを毎日書き換えるスクリプト書くとか…)
>>587-589 なるほどですね、ココらへん少し調べてみます。
情報有り難うございます!
最新版でもSLIDER関数こわれてない?
>>567 3時間ごとに起動して1日に3時間ずらすなら24時間+3時間の27時間後に再度起動すれば良いよ
スクリプトは適当に組めばいい
ADOを使ってuwscからDBにインサートをかけましたが、
エラーになります。in1を'bbb'など、文字列にすると
DBにインサートをかけることができます。
in1が変数だとエラーになってしまうみたいですが、
何が原因でしょうか?
Dim in1 = "abc"
cn.OPEN()
cn.Execute("INSERT INTO test (test1,test2) values(in1,'aaa');")
文字列の中に変数名を書いてるから
>>597 ご回答ありがとうございます。
cn.Execute("INSERT INTO test (test1,test2) values(in1,'aaa');")を実行
させるには、
cn.Execute("INSERT INTO test (test1,test2) values(" + in1 + ",'aaa');")
とやるしかないでしょうか?
ADOなんてさわったことないからわかんないけど
こうすれば動くのでは?
cn.Execute("INSERT INTO test (test1,test2) values("+in1+",'aaa');")
uwscでIEを複数開くとき、一つ一つを新規セッションで開く方法があれば教えてください
uwscでIEを複数開くとき、一つ一つを新規セッションで開く方法があれば教えてください
comインスタンスをその度生成しろ
ラダーの歩進回路のような
入力Aなら処理1
続いて入力notAなら処理2
続いて入力Bなら処理3
続いて入力notBなら次へ
という感じのを作るのに
各処理をwhile〜 if 〜elseCONTINUE〜endif〜wendでやると
すごく長たらしいのですがスッキリできませんか?
「指定した文字の10ピクセル上を左クリック」
うまい方法を教えていただけないでしょうか?
606 :
605:2012/01/15(日) 13:30:10.86 ID:QrGo7/5p0
すいません自己解決しました
607 :
名無しさん@お腹いっぱい。:2012/01/15(日) 16:26:16.85 ID:iv4Sgz2W0
ここ数日マクロ作りにハマって、割と長いのを作ったんだけど、
画像認証が多すぎて、uwscの窓がずっと点滅してる状態なんだけど、長時間ループさせてても大丈夫ですか?
極力sleepを多く入れたんだけど。pcに負担になってるような気がしてちょっと怖い。暴走しそうなオーラが漂っている。
>>607 それぞれの環境・スクリプト・実行時間があるので、実際に試す以外は無いだろう。
制御できる暴走は例外処理と呼ばれるからな。ちゃんとエラーをチェックして対処できるようにしておけよ。
609 :
名無しさん@お腹いっぱい。:2012/01/15(日) 16:59:27.23 ID:kFD794I50
保存押しても保存すべき有効なデータがありませんって表示されるのですがなんででしょうか?
>>609 保存すべき有効なデータがないからじゃね?
611 :
名無しさん@お腹いっぱい。:2012/01/15(日) 20:35:48.49 ID:hkfzc5TE0
>>608 あり^^
いやープログラム作るの楽しいわw
間違いをみつけるのも楽しいし思った通りに動いたときの快感は凄いね。
プログラムって、最初不可能に思えたことでも、粘り強く考えて調べてやってれば、必ず正解に辿り着けるね。
ちょっとでも間違ってたら動いてくれないけどバッチリ作ればその通り動いてくれるところが好き。やりがいがある。
すげーな。俺なんて
「間違ってる筈無いのに!」←確実に間違ってる
と言う事を悟って尚同じ言葉を繰り返してるぞ
最初は間違ってるか合ってるかわかりやすいんだけど
しばらくやってると合ってるんだけど思い通りには動かないって箇所が出てくるんだよな…
sendstrとかボタンのクリックとか、書いた通りに確実に動くとは限らないってのが
出てくると困る。sendstrの検証とか余計な動作書かなきゃならなくなるのがなんとも。
マクロ作り出したばっかりとかプログラムやった事が無い人のために1つ助言をしておいてやろう
「あれ?バグ?」っていう風なおかしな動作を見つけたなら、まずその処理がどんな所にありそうか見当をつける
そして式や処理内容自体を自分が勘違いしてないか確認する
もちろん変数のウォッチはprint文などでチェック
言うまでも無くトレース実行出来る機能があるならそれを使う
そして変数の代入や処理の勘違いも無く全部正常に書き直す作業をする
これだけで驚くほど他のバグが見つかる
IEでclkitem関数が同じボタンでも機能する時としない時があるのはなんでなんでしょう
文法は
clkflg = ClkItem(IEid, btn_name, CLK_ACC or CLK_BACK) //btn_nameのボタンをクリック
であってますよね?同じボタンでもクリックできる時とできない時があります
CLK_BACKを指定すると不安定になるのかしら
>>615 ieでなぜにckitem使うのかいな?素朴な疑問…
comをほぼ全く把握してないから&別のやつ用のスクリプト流用してるからです^q^
その回答だとcom使ってボタン叩けるってことですよね、面倒だけどMSドキュメント漁ってきます
618 :
名無しさん@お腹いっぱい。:2012/01/16(月) 09:26:47.08 ID:nMIpHxy10
>>567 3時間毎に起動はするけど、
対象外の時間の起動を無効にする処理を入れるとか。
(3時間ごとの時刻生成)+日数×3 mod 24
これでいける。
>>614に大体賛同だな
あと付け加えるなら処理を行いたいウィンドウがアクティヴになってるか常にチェックを入れておくことかな
>>66 >CTRLWIN(GETID("ウィンドウタイトル"),max,activate)
>とすることで一行で済みました。
こんな書き方って出来るっけ?最初の命令、カンマ以降は利かないようだけど
622 :
名無しさん@お腹いっぱい。:2012/01/18(水) 00:46:22.03 ID:R0g/Jmmn0
ifbに対しendifが無い って今日1日で70回くらい言われた
多分
>>66を書いた人は
RestoreかMinimizeかhideのウィンドウがmaxでMaximizeされて同時にアクティブになったのをactivateが利いたんだと勘違いしたんだと思う
元々Maximizeのウィンドウはmaxでアクティブにはならない
そこで作者様に要望、max命令ひとつであらゆるウィンドウをVisibleでアクティブにしてほしいです
624 :
名無しさん@お腹いっぱい。:2012/01/18(水) 12:25:33.22 ID:R0g/Jmmn0
endifが抜けてたのにエラーにならず教えてもらえなかったんだけどこんなことってあるんですか?
そのスクリプトを別のメモ帳にコピペしてやってみたらエラーになって気付いた。
一体なんだったんだ
626 :
名無しさん@お腹いっぱい。:2012/01/19(木) 08:05:37.69 ID:/5HHXckmO
uwscってもしかしてノートPC上じゃ動かない?
動くが?
動かないと思う理由が理解出来ない。
まぁ画面サイズが違うとか、その辺が現実的か。
629 :
626:2012/01/20(金) 07:48:15.93 ID:PlIm9VKvO
すまない
Windows7のノートPC上でマウスの動きを記録してくれないんだ
どうなっているんだろう?
Windows7のノートPC上で、ネトゲマクロ作ろうとしてるんだけど
マウス操作記録できないわけですね。わかります
631 :
名無しさん@お腹いっぱい。:2012/01/22(日) 17:32:28.60 ID:wwwfNGh70
INPUTBOXをproを購入する前にhtmlで複数窓でFORMを出したい。
↓html
<Form Method='Post'>
入力1:<input type="text" name="aaa" size=50 maxlength=30">
入力2:<input type="text" name="bbb" size=50 maxlength=30">
<input type="button" name="okbtn" value=" OK " onClick=" value='OK終了'">
<input type="button" name="cancelbtn" value="CANCEL" onClick="value='CANCEL終了'">
632 :
名無しさん@お腹いっぱい。:2012/01/22(日) 17:33:57.62 ID:wwwfNGh70
続き
// 以下は実行用スクリプト
IE = CreateOLEObj("InternetExplorer.Application")
IE.Width=600; IE.Height=400; IE.Visible=True
IE.Navigate(GET_CUR_DIR+"\test.html")
while True
sleep(1)
ifb IE.document.all["okbtn"].value = "OK終了"
print "OK"
print IE.document.all["aaa"].value
print IE.document.all["bbb"].value
break
elseif IE.document.all["cancelbtn"].value = "CANCEL終了"
print "CANCEL"
break
endif
wend
IE.Quit
でCOMエラーがでるんだけど何でだろ?TextBlockでくるんでも同じ。
>>632 httpのステータスコードかとおもったが…
>IE.Navigate(GET_CUR_DIR+"\test.html")
これはなんだw ローカルサーバでも立ち上げてるのか
直接ローカルファイル指定するのにしても、プロトコルが違うだろw
>>633 プロトコルとか関係なくね?
そのままローカル開くようにIEが操作するだろ
インターネットもファイルの1つだし
textblockってどういう時に役立ちますか?
マニュアルには
複数行にわたる文字列を変数として定義します
とありますが、どういった時に使うんだろう?
num1 = "123<#CR>456<#CR>789"
こういう表記が
TextBlock num1
123
456
789
EndTextBlock
これで済むってことじゃね?
ファイルにテキストを書き込む時に
一行毎にFPUTとかで書くんじゃなくて
変数に全部突っ込んだ後に一気に書き込む方が便利。
639 :
名無しさん@お腹いっぱい。:2012/01/23(月) 14:35:37.99 ID:cOA0Xe6m0
textblockってコメントアウトのことだと思ってた
>637 >638
ご回答ありがとうございます。理解できました。
random関数で、30以上60未満の間の数をランダムで返す
といったような事はできるんでしょうか?
例も無しか
初心者な質問で申し訳無いですが、
1) 手動でカーソルを画面任意の位置へ移動
2) マクロスタート
3) クリック
4) 3)でクリックしたところから、20pix右もクリックする。
こんなマクロを製作したいのですが、
3)クリック+座標を取得
4)取得位置から20pix右をクリック
のような方法しかないのか?もしくは
座標取得せず、3)のクリックした位置から相対的な移動で20pix右をクリック
なんて関数はあるのでしょうか?
説明ベタでスイマセン・・・
ヘルプ見てないなら無い。
既にわかってる座標を取得って意味不明
まあ、関数が欲しいというのなら関数にすればいいw
procedure 20ピクセル右をクリック()
btn(left,click,g_mouse_x+20,g_mouse_y)
fend
SLCTBOXでSLCT_RDOの項目の3番目以降を選択すると
戻り値が倍倍になります
1番目=1
2番目=2
3番目=4
4番目=8
なんでなん
ret=slctbox(slct_rdo,0,"めっせじ","項目1","項目2","項目3")
msgbox(ret)
事故解決
ドラッグ&ドロップでuwscスクリプトに引数としてファイルのパスを渡す方法はありませんか?
batファイルを経由したりすればできるのかな
初心者も初心者なんですが
Repeat
gettime()
Dim 分 = G_TIME_NN2
Fukidasi(分)
Until 分 = 数字
一時間の(数字)分時になったら実行させたいのですが、0〜9分の間だけ上手く動きません
数字の前に0を付けるのかな、と思っても無理でした。お願いします。
G_TIME_NN2 だと数値じゃなくて数字の文字列になるから
数値が入る G_TIME_NN の方を使うか
NN2を使うなら比較対象側を 分="05"のように文字列にする
uwscproのexe化についてですが
人に渡したとき使用期間に制限はあるのでしょうか
試用版では人に渡しても二週間しか使えなかったので聞きたいです
>>657 こいつはそのままググル事も出来ないのか
人の手を借りなきゃ指一本動かす事の出来ない脳死患者なのさ
>>660 UWSC用の解説ページが消えてるんでどうしようもないです本当
>>662 解説が無いwwww
紹介されたソフトのヘルプも読まないのかw
引数の説明はUWSCのヘルプに書いてあるし…なんだそれw やばいぞw
脳が動作停止してる奴にかまうなって
テキストファイルに、
今日は本屋行った。
明日も本屋に行く。
本は面白い。
といった文章があったとします。
「本屋」を「ほんや」に置換して、テキストファイルに
保存したいと思います。ただし、本屋の前が「も」、本屋の後が「に」
の本屋のみ置換して保存したいと思います。
ファイルを開いて、betweenstr関数とreplace関数で置換
できるのはわかります。その後、「も」本屋「に」の本屋のみ
置換する方法がわかりません。fput、f_alltextだと全て置換を
してしまいますので・・・どのようにしたらよいでしょうか?
>>663 向こうのヘルプは読んだけどさっぱりわからんですたい
uwscのヘルプはキーワードでも検索でも引数の説明引っかからないけどどこにあります?
>>665 「も本屋に」 を 「もほんやに」 に置換すればいいだけでは?
もしくはifでもがあるかどうか判定するとか。
>>666 ヘルプの起動時パラメーターの項目。
バッチファイルで行けるよ。
すみません、どなたか教えて下さい。
Windows XPで、複数のプロバイダを設定しています。
「ネットワーク接続」にいくつかの接続先が並んでいて、どれかひとつにだけ繋がっています。
今繋がっているところの通信継続時間を監視して、一定時間が経過したら切断を行うスクリプトを書きたいのです。
672 :
670:2012/01/27(金) 11:32:07.49 ID:crT0cLRd0
タスクバーにある接続中アイコンをクリックして「状態」ウインドウを出せばよいと思うのですが、困っています。
そのときによって接続中のプロバイダが異なるので、名前で指定することが出来ません。
IMGCHKで接続中アイコンを画像認識するしかないでしょうか。
とにかく現在の接続先の「状態」ウインドウを、ピンポイントで出したいのです。
673 :
670:2012/01/27(金) 11:34:45.17 ID:crT0cLRd0
マウスの座標を用いることはしたくありませんが、例えばキー操作だけで何とかなりますでしょうか。
設定されている接続先の「状態」ウインドウを片っ端から全部開けてみるという総当たりも考えましたが、もっといい方法はありませんでしょうか。
それとも、もっと別の方法(DOSのコマンドを入れるとか)で通信時間の取得や切断の処理ができるものでしょうか。
よろしくお願いします。
>>670 読みづらい。死ね。
文章力無いならせめて箇条書きにしろよ。死ね。
レスを分割するなうぜえ。死ね。
UWSCじゃないとだめなの?既存のツールじゃだめなの?
ここはコマンドプロンプトの使い方を教わるスレじゃないぞ。死ね。
ルーターのステータスで確認できない?
悪態をつきながら教えてあげているところが泣ける
>>669 ありがとうございますー さっそく読んできます
678 :
670:2012/01/28(土) 12:06:25.78 ID:AjtIKbzJ0
>>674 ありがとうございます。
UWSCで書いてるマクロのなかの一部で処理したいんです。
ルータのステータスって、どこから参照するんでしょうか。
すみません、もう少しだけヒントいただけませんか。
>>678 その前にルーター使ってるの?
だらだら書いてる割にどういう環境かさっぱりわからん
680 :
670:2012/01/28(土) 13:11:57.92 ID:AjtIKbzJ0
>>679 ルータを使っていて、そのパソコンもLANに入っていますが、インターネットへの接続はパソコンから直接PPPoEで繋いでいます。
(ルータはブリッヂしているだけです)
683 :
670:2012/01/29(日) 15:26:51.64 ID:XFzSeAgf0
>>681 ありがとうございます。
色々とググってみてはいるのですが、rasdialでのdisconnentって、接続先の名前を指定しないといけないんじゃないでしょうか。
>>683 いい加減死ねって言われる理由を考えろよ・・・
ここはパソコン教室じゃないんだからさ
下手に教えると、
自分の欲求どおりに際限なく教えてもらえる事が当然のように振舞い始める、好例だな。
callで呼び出したスクリプトで本体スクリプトのループをブレイクしたいんですけど
やっぱりcall の中身を直接本体にかいておくしか方法はないですか?
PosACCで取得した、「1,000件」という文字列を、
「1000」という数値にしたいのですが、どうすれば可能でしょうか?
688 :
687:2012/01/30(月) 01:49:44.09 ID:rjQY1lwU0
申し訳ありません。自己解決しました。
自己解決したら内容を書く、これ基本な
あまりに低レベルなのは書かんでもよろし。
>>688 書くべきだろ
でなきゃ一体何のために出て来たんだ?
低レベルだからいらんよ
>>691 分かったから。他所の質問スレで「先ずスペック書けよ」って罵る作業に戻るんだ
チラ見だけで文字置換してvalなりで終わりだなってわかる低レベルなんて
書かれてもどうしようもないしな。
regexpぐらいまで引き上げて…やらねーなww
すんません質問なんですが、
記録ボタンを押して何もせずに終わらせたマクロを見てみたら、
KBD(255,CLICK,1000)
KBD(255,CLICK,1031)
KBD(255,CLICK,1000)
KBD(255,CLICK,1031)
…
というのが延々と記録されるんですが、このKBD(255,CLICK)って、なんのキーを押したことになってるんですか?
調べてもわかりませんでした。
>>697 仮想KeyコードがたしかFF(255)までだった気がする
あまり自信ないけど、常駐物で割込みを常に行ってるようなソフト起動してないか?
キーコードFFはつかちゃダメなコードだろ
いずれにしてもまともなプログラムじゃなさそう
ウイルスチェックして検知出来なければクリーンインストールオヌヌメ
インターネットに出た個人情報などは核戦争起きても延々と残りつづけるからな
すみません、質問です。
アルファベットが書かれた画像を認識して
そのアルファベットを入力するといった事は可能でしょうか?
アカウント作る時とかに入力するようなやつです。
やはり、別のソフトを経由して値を取得するような事をしない限り出来ないでしょうか?
>>700 画像のサンプル作らないと厳しいんじゃない?
特にゲーム画面に定期的に出てくるbot規制用のパス入力とかは。
CAPTCHAはそーいう自動化スクリプトとの戦いの歴史だからな。
程度にもよるが、まず突破は無理。
>>701 >>702 ありがとうございます。
やはり厳しそうですね…
ちょっと別の方法を考えてみます。
すみません、文字列の&ってどう処理したらいいのでしょうか?
<#dbl>で括ってみたり&&にしてみたりしてみましたが上手くいきませんでした
fn = "C:\test\a&b.txt"
DOSCMD(fn,TRUE)
>>704 半角の & はコマンドプロンプトでは区切り文字だからファイル名には使わないほうがいいよ
どうしても使いたければ、&の前に ^ を入れればいけると思う
fn = "C:\test\a^&b.txt"
DOSCMD(fn,TRUE)
連投ごめん
^ を入れるのは&を指定するときだけで実際のファイル名は a&b.txt ね
708 :
まさる:2012/02/07(火) 13:04:59.49 ID:oV3sxonH0
ネットで色々調べてgoogle chrome上に
特定の画像があったらクリックするというスクリプトを作りました。
が、画像を見付けられません。
他に以下アドレスのモグラ叩きのスクリプトも試しましたが、ゲームを開始してくれますが、
モグラを叩いてくれません。
http://jichan.blog91.fc2.com/blog-entry-28.html#more bmpのファイルは認識してくれるのですが、同じ画像を画面上から探せていないようです。
パソコンはXPと、Windows7 32ビット2台で試しましたが状況は同じです。
画像を探してくれない理由はパソコンの環境でしょうか?
どなかた教えてください!
お願いします。
今モグラ叩き試してみたけど、普通に動作してたなぁ
sleep(1) // 1秒待機
ifb CHKIMG("画像.bmp") // 画像.bmpをサーチ
msgbox("発見") // 発見した場合のメッセージ
else
msgbox("画像無し") // 発見できなかった場合のメッセージ
endif
適当に3x3位の画像用意して↑試してみては?
>>708 そのスクリプトのwhileループの所
While Status(mog_id, ST_ACTIVE)
Ifb ChkImg("mogura.bmp", 0, px, py, sx, sy)
を以下に書き換えてみ。俺の環境じゃ1回大体33ms
t0s = gettime()
t0m = G_TIME_ZZ
While Status(mog_id, ST_ACTIVE)
Ifb ChkImg("mogura.bmp", 0, px, py, sx, sy)
t1s=gettime()
t1m=G_TIME_ZZ
print (t1s-t0s)*1000+(t1m-t0m)
t0s=t1s
t0m=t1m
712 :
名無しさん@お腹いっぱい。:2012/02/07(火) 18:50:56.73 ID:oV3sxonH0
713 :
712:2012/02/07(火) 19:43:38.09 ID:oV3sxonH0
解像度を変えたり色々やっていたら動作しました!
ありがとうございました!
714 :
名無しさん@お腹いっぱい。:2012/02/07(火) 20:27:22.85 ID:xWJyw+DS0
皆さんこれを何に使ってますか?
私は予約商品の為に使ってます。
ブラゲのマクロ自作。
は、冗談として。毎日繰り返してる日課とかでウィンドウの操作とか諸々。
いつの間にかマウスの作業じゃなくてファイル操作に使い始めてたり。
スタートアップ制御なんかにも使えそう
ブラゲって何ですか?
ブラゲ=ブラウザゲーム では?
ありがとうございます。
ブラゲにこれ使ったらまずいの?
ゲームによるけど一般的にオンラインゲームは規約でマクロの使用を禁止してるからね
マクロ使ってるのってばれるものなの?
ばれるかどうかじゃなくて、やらないの。
723 :
名無しさん@お腹いっぱい。:2012/02/08(水) 01:11:55.62 ID:lERe0dws0
このツールは軽くていいよね。
最近ユーザーも急激に増えた気がする。
初心者が使うならRocketMouseの方が簡単だけど
カスタマイズ性は圧倒的にこちらの方が上だからねえ
RocketMouse的なエディタが付いたら、末恐ろしいツールになりそうだけど
>>714 ・タイトルバー消したり出したり
・液晶モニタのモード変更
・ウインドウをリサイズして配置したり
・自動ログイン
・他は単純作業
これぐらいか…余り大した事はやってない
このツールより使いやすいソフトってある?
あるといえばある。
すみません質問です
指定回数指定キーが入力されたら終了するという文を書きたいと思い、
d = 0
Repeat
KBD(VK_down)
ifb
KBD(VK_down)
d = d+1
endif
ifb d=20
exit
endif
Until GETKEYSTATE(VK_ESC)
exit
こう書いたのですが
IFB-ENDIF:String型からDouble型へのバリアント型変換はできません
7行目:IFB KBD(VK_DOWN)
と出てしまいます。
どうしたら良くなるのでしょうか?
>>728 GETKEYSTATE(VK_DOWN)
複数の数値を比較し、指定した値と近いものを探す事は可能でしょうか。
例えば、
A = 10
B = 15
C = 20
とそれぞれの関数に数値が入った状態で、00〜59と値が変動する関数"D"に
現時点で一番近いものを表示といった感じです。
"D"の値は時刻から持ってくる為、00→59→00→59…と変動していきます。
a'=(b-a)/2+a
b'=(c-b)/2+b
d'=d
f d'|a'<d' = a
|b'<d' = b
|上記以外= c
逆だった
a'>d'
b'>d'
>>731-732 ありがとうございます
f d'|a'<d' = a
|b'<d' = b
|上記以外= c
の部分が理解できなかったので、調べてみたいと思います
また、例では省略しましたが、A〜Cの様に値の入った関数は
10〜15個程度使用するので中々大変そうです
関数と変数の区別はしてもらいたいものだが…
>>728 kbd()はキーを入力する関数であって検出するのはgetkeystate()の方。
でもループ内で使うと1回の入力で複数回検出することが多々発生すると思うので
sethotkey()を使うのがよさそう。
>>730 数値はまず配列[]に入れといて
最小絶対値 = 60
for i=0 to length(配列)-1
差の絶対値 = abs(D - 配列[i])
ifb 最小絶対値 >= 差の絶対値
最小絶対値 = 差の絶対値
近いの = 配列[i]
endif
next
print 近いの
動作確認してないけどこんな感じ?
変数の値をキーにしたソート指定の連想配列を作り
順列読み出しでDの順位を取得、その前後の変数との絶対値比較とか。
変数に同じ値が無いとか前提があるけどね。
あと近いのは2つ出ることもあるし。
それやるなら差の絶対値をキーにして1個目を取り出せばいいのでは
739 :
名無しさん@お腹いっぱい。:2012/02/10(金) 17:41:37.73 ID:KoLNAXJK0
firefoxで作業してて、読み込んだflash内をクリックしたいんですがうまくできません。
flash読み込むまではクリックしてくれるんですが、どうしたらいいでしょうか?
うまくいかなかったので
TITLE = status(GETID(GET_ACTIVE_WIN),st_title)
MOUSEORG(GETID(TITLE))
BTN(LEFT,CLICK,255,654,1750)
とかやってみたんですが、絶対座標をクリックしてしまいます。
>>739 UWSC Proの中にflash操作のサンプルがあるから
それ見るとわかりやすいよ
741 :
730:2012/02/11(土) 07:51:33.25 ID:brqGoC6I0
>>730 で現時刻からA,B,C…の中で次に訪れる物(時刻)を探す必要が出た為、
下記のような形で対応しました。
// ■ --------------------- ■
gettime
v1 = G_TIME_NN2
v2 = val(v1)
A=10
B=20
C=40
次 = "N/A"
確認 = "偽"
Dim 数値[2] = A,B,C
for i = 0 to 2
if v2 < 数値[i] THEN 確認 = "真"
next
ifb 確認 = "真"
else
v2 = 0
endif
742 :
730:2012/02/11(土) 07:52:41.99 ID:brqGoC6I0
for t = 0 to 59
for i = 0 to 2
if 数値[i] - v2 = t THEN 次 = 数値[i]
next
ifb 次 = "N/A"
else
break
endif
next
print 次
// ■ --------------------- ■
743 :
730:2012/02/11(土) 07:54:25.26 ID:brqGoC6I0
あまりスマートな形ではありませんが、
何とか形になった感じです。
色々ご教授下さった方々、ありがとうございました。
ifb hoge=hage
else
fuga
endif
なんて変な構文使わずに
if !(hoge=hage) then fuga とか
if hoge<>hage then fuga とかやった方がスマートで見やすいぞ。
>>744 えー、表記によってその二つのifをtrueで通る可能性を排除できるから
ブロック表記は否定できないなぁ
見やすいかはおいといて、バグを埋め込みやすくなると俺は思うわ。
ブロック表記うんぬんじゃなく、elseだけ使うって点のことだと思う
>>745 二行同じものを書くって言ってるわけじゃないぞw
!(hoge=hage) と hoge<>hage は同じものなんだから可能性どころの話じゃないしw
式が偽の時の処理だけなら真の時のelseを使うなんてまどろっこしい事をするんじゃなくて
ストレートに偽の時の処理と書けばいいって話。
スマートで見やすいって言ってるけど
俺には冗長で汚いコードとしか思えない
>>741,742
最大60回の総当たりループはさすがに力技すぎると思うw
同じ機能を私ならこう書くかな
A=10
B=20
C=40
Dim 数値[2] = A,B,C
最小差 = 60
gettime()
for i=0 to length(数値)-1
if G_TIME_NN > 数値[i] then 数値[i] = 数値[i] +60
時間差 = 数値[i] - G_TIME_NN
ifb 最小差 > 時間差
最小差 = 時間差
次 = 数値[i] mod 60
endif
next
print 次
2012/02/13 UWSC Ver4.7c、 Pro版と Free版をリリースしました。
753 :
名無しさん@お腹いっぱい。:2012/02/16(木) 20:18:22.14 ID:L1XFskmv0
教えてくださいな!
エクセルの大量のデータを、HTML等の枠内に入力する方法なんですが
例えば、エクセルのAの住所と電話番号を社内システムのHTMLの
入力欄の入力する方法なんですが。。。。。。
>>753 XLGETDATAしてIESETDATAする
755 :
名無しさん@お腹いっぱい。:2012/02/16(木) 22:05:04.88 ID:L1XFskmv0
>>754 初心者なんで、もうちょっとだけヒントくれませんか?
初心者向けのツールじゃないんで
これ以上ヒントの出しようがないだろ
あとは答えじゃん
758 :
名無しさん@お腹いっぱい。:2012/02/18(土) 16:41:37.57 ID:RcFEam1e0
mixiに自動ログインするマクロを作ったのですが、
メルアドとパスワードまでは入力できているのですが
イメージのボタンを押すことができません
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("
http://mixi.jp/")
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate=4
759 :
名無しさん@お腹いっぱい。:2012/02/18(土) 16:43:42.52 ID:RcFEam1e0
IESETDATA( IE, "
[email protected]", "email" )
IESETDATA( IE, "hogehoge", "password" )
IESETDATA( IE, 1, "image", "image" )
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate=4
そうですか
日記はmixiでやってくれ
762 :
名無しさん@お腹いっぱい。:2012/02/18(土) 17:54:45.34 ID:RcFEam1e0
>>761 答えられない方は良いのです
そのようなコメントならしない方が良いのではないですか?
質問が無いのに答えとはこれいかに
確かに日記状態でワロタw
ここの住民ってアレだよな
まともな質問者には優しいが、それ以外にはホント厳しいw
それじゃわからん、と「答え」を聞くために際限なく甘えてくるのが通例だしね。
ヘルプを一読するだけで大半解決するのがわかってるし。
そもそも「答え」なんて質問者にしかわからんし。エスパーして答えてやる義理も無い。
767 :
名無しさん@お腹いっぱい。:2012/02/18(土) 20:20:34.11 ID:Iu9zCfNZ0
768 :
名無しさん@お腹いっぱい。:2012/02/18(土) 20:23:03.15 ID:Iu9zCfNZ0
ヒント
operaでCtrl+Enter
あれ?
>エスパーして答えてやる義理も無い
そのくせ茶々だけは入れたがる
771 :
名無しさん@お腹いっぱい。:2012/02/19(日) 06:10:31.37 ID:elFcxog40
>>758 確かにこれだとログインできない
でもできる方法はわからん
document.login_form.Submit()
>>753 ホームページビルダー買うかWordにコピペしてHTML吐き出させて<TABLE>〜</TABLE>を手作業でコピペすればいいじゃん
774 :
730:2012/02/19(日) 13:44:19.77 ID:9mCOB16E0
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("
http://www.○○")
repeat
sleep(0.1)
until !IE.busy AND IE.readystate=4
Excel = XLOPEN("△△.xls")
XLACTIVATE(Excel, "△△")
後はXLGETDATAとIESETDATA
名前そのままになってたw
まぁ、こんな感じで後は応用かな
>>771 RECIEで記録してみるだけでわかるだろ
わからんなら答えるな
777 :
名無しさん@お腹いっぱい。:2012/02/19(日) 16:50:05.02 ID:EAH3ovgp0
公式掲示板で質問しないで、ここで質問する意図が分からん。
公式の方がどう考えても親切に教えてくれる。
公式と比べて、ここで質問するメリットって何だろう。ゲーム関係が禁止されてないこと位しか思い浮かばない。
ログインなんてSNSなんぞに使うわけないわな
ゲーム用のをSNSに変えて質問してるだけなのはバレバレ
>>753 スレチだけど俺ならuwsc使わないでperl使うな
エクセルのモジュールあるし
結局ほとんどの質問はuwscは簡単そうだからとなめてる奴ら
第一ここは質問スレじゃねーから答えることで甘やかすことになる
質問したいやつは公式に行けと
781 :
774RR:2012/02/20(月) 23:03:52.48 ID:dcFtBDzy0
なんだ、またあげぽよがきてるのか。
784 :
名無しさん@お腹いっぱい。:2012/02/21(火) 20:07:03.41 ID:FXH/hmR60
uwscは簡単そう!
785 :
名無しさん@お腹いっぱい。:2012/02/22(水) 14:06:17.69 ID:GluLXQjl0
すみません初心者です。 FUNCTIONのサンプルで、
public G = 0 // グローバル変数
a = 1 // ローカル変数
b = 2
c = 計算(a, b)
print c // 3
print G // 99
Function 計算(ka, kb) // 関数名 2バイト文字でもOK
Result = ka + kb // 関数の戻り値は Result変数
G = 99 // グローバル変数
Fend
とあるのですが、fonctionのなかの k はいったいどういう意味なんでしょうか?
せめて簡単なプログラミングが出来ないと使えないよね
>>785 その関数の呼び出しで、a,b を引数にしてるだろ
ka=a, kb=b になってて、その関数の中では引数の値をコピーして使う
名前空間、とかそこら辺が関係してくる話
マジレスしちまったよ…
変数 a と ka は全くの無関係だってことがわかってないとこういう疑問が出てくるんだろうな。
無料で高機能な海外のマクロツールが他にもいろいろあるし日本語マニュアルも存在してるのに
未だにuwscを使う人は情弱なのかね?
どれちょっと紹介してみろ
以下AHK禁止でゲソ
止むを得ずOSを初期化したんだが、
今まで使えていたuwscが何故かネトゲでだけ使えなくなっちまったんだけど
何か原因わかるやついる?
(たぶん4.6辺りから)4.7cにバージョンアップしたらchkimg部分がヒットしなくなったのでいろいろ試したんだが
座標指定x1,y1, x2,y2辺りがおかしい気がする
指定しなかったらヒットするし、指定すれば明らかに範囲内でもヒットしない
y1の指定がおかしいような
うーむすまん勘違いだったみたい
特定のアプリだけだった
試行錯誤しながら使ってるんだけど、事細かく説明してるサイトなどありませんか
ありますん
uwscのヘルプはわかりにくい。
検索性能は悪いとは思う
>>802 確かに。普通にwebでリファレンス欲しいよな。
これってswfゲームで
ボタンクリック時に通信待ちのアニメ画像表示されて次のクリック不可能な場合
どういう制御使えばいいの?
そのアプリ待機中とかのフラグ拾えるの?
クリック可能な場合にクリックしたらクリック音は出るけど
自動処理後にクリック音が出なかったら、出るまでクリック作業繰り返しでやるのがスマート?
>>806 むりな場合が殆ど
普通のゲームですらフラグは拾えない
アニメ画像を検索すればいいんじゃないかなかな
809 :
名無しさん@お腹いっぱい。:2012/02/27(月) 13:09:30.91 ID:cf8l7sb10
810 :
名無しさん@お腹いっぱい。:2012/02/27(月) 13:20:35.14 ID:BP4JMpSv0
UWSCにおいてprocedure、functionは処理の最後に入れないと駄目ですよ。
なのでまずは
----------
procedure ...
〜
fend
while true
〜
wend
----------
を
----------
while true
〜
wend
procedure ...
〜
fend
----------
に変えてみましょう
>>810 返答ありがとうございます早速試してみます
812 :
809:2012/02/27(月) 18:19:35.26 ID:cf8l7sb10
変数が定義されてませんとでます
px,py,left_edge,right_edge 座標変数定義はどのような感じにしたらよいでしょうか?
またゲームスクリプトか…対処は簡単だけど説明する気が失せる
809「ココまで作ったけど後わからないから完成させて」
815 :
809:2012/02/27(月) 19:58:36.30 ID:cf8l7sb10
>>813 すみません
何回もテストして捨てる、書き換え繰り返してHELP読んでググって
サンプルもなくここにたどり着きました
独学で動きが成功したりし楽しくてプログラムにはまってしまい
いろんなパターンで勉強したいです
もしかして、procedure/fend と while true/wend を置換しただけなんじゃ
817 :
809:2012/02/27(月) 21:12:43.92 ID:cf8l7sb10
>>816 置き換えもしました
変数もG_IMG_Xを追加してみたり、DIM宣言してみたり今自分の考えれるパターンはすべて試しました
動きのない画像座標のクリックは調べたらあったのですが
動きのある座標をどう表現できるかメモに書いてみたりと・・・
818 :
809:2012/02/28(火) 13:02:24.94 ID:Gcj7bHMw0
>>818 10・11 行目の初期値代入で , で区切ってるのに左辺が配列じゃない
おまけに右辺で未定義の関数 x() と 未定義の変数 y が使われてる
あと 10 行目の変数名が left_edge じゃなくて leftedge になってる
両端の判定に Y 座標は必要なのか?
必要なら left_edge_x left_edge_y とかに変数を分けたら?
820 :
809:2012/02/28(火) 19:14:15.47 ID:Gcj7bHMw0
>>819 アドバイスありがとうございます
独学なので頭がぱにくってますががんばってみます
大体みんな独学だが
独学アピールとかコピペ厨かよ
アドバイスっても実際のゲームもなしにどうしろと
こんなもんに教本や講師なんかねーよ
全員独学に決まってるわ。
A(クリック)→B(クリック)→A→Bの行動を繰り返し続けさせて、ランダムに現れるCの選択肢が出た時にA→Cを行わせる。
A→Cが終わったら再びA→Bを繰り返させるにはどうしたらいいでしょうか?
if使えばいいだけ
while true
クリックA
ifb C出現
クリックC
else
クリックB
endif
wend
みんな厳しいな
毎回画像が違う場所にある場合に読み込みと書き込みをiniでさせたいのですが
どういう風にかけばいいのでしょうか?
まず自分で書いて、それからYahooで質問しろ
Thread 座標()
WHILE TRUE
Dim x_max,y_max
x_max = 1000
y_max = 1000
IFB CHKIMG("画像.bmp",0,0,0,x_max,y_max)
BTN(LEFT, CLICK,G_IMG_X, G_IMG_Y)
Endif
//
Procedure 座標()
IFB ("画像1,bmp",0,0,0,x,y)
x = G_IMG_X
y = G_IMG_Y
Print "画像位置 ="+ x +"," + y
Endif
//
fid = FOPEN("画像位置.INI",F_READ or F_WRITE)
For 行 = 1 to FGET(fid,-1)
画像位置 = FGET(fid,行)
FPUT(fid,画像位置,行)
next
FCLOSER(fid)
アドバイスお願いします
FCLOSER(fid) x
FCLOSE(fid) ○
アルゴリズムどうこうする以前に文法エラーで全く動かないスクリプトを
堂々と出す奴ってなんなんだろう。
コメントもわざと消してるからな
おおかた、どこかからのコピペが大半なんだろ
走らせて、エラーぐらい直せばいいのに
ときどきreadiniでちゃんと読み込んでくれません。
原因はwriteiniでunicode専用文字を書き込んだとき
iniがutf-8になってしまうからです。
なので、writeiniで書き込むときunicode専用文字がないかチェックするようにしました。
>>836 自分はAPI使ってる
DEF_DLL GetPrivateProfileStringA(string,string,string,string):long:Kernel32.dll
DEF_DLL WritePrivateProfileStringA(string,string,string,string):long:Kernel32.dll
(AppName,KeyName,Value,FileName)
アルゴリズムどうこうする以前に文法エラーで全く動かないスクリプトを
堂々と出す奴
だから自分の書いたもの見てもらえればと思ったけど
コピベだの動かないだのって・・・わからないからアドバイス求めるし
かける人や覚えた人は簡単だろうけど初心者が質問しちゃ悪いですか?
ってそんな空気じゃなかったですね
>>838 一回動かせばエラーがどこにあるかをuwscが教えてくれるのに
そのエラーメッセージの意味を聞くでもなく
わからない、を隠れ蓑に単にぜんぶ手取り足取りを望んでしまえは…それは駄目だ。
質問は、
自分は何を希望して、何をやってみて、どんな結果が帰って来て、どうして駄目だと思ったか
を伝達してからだろうに
結局、ゲームマクロだろうから質問者が隠してる点も多すぎ
>>838 ただ、書いた全文を示す事はいいと思うよ
初心者を免罪符にする奴はカス以外いないのはなんでだろうな
努力しないことを正当化するために使うからだろうか
.NET Frameworkのクラス使いたいとです。COMだけじゃ嫌だとです。
ひろしです、ひろしです・・・
>>842 何がしたいのか知らんが、
VBとかCでコマンドラインから.NET Frameworkを使う簡易的なプログラムを組んで、
それをdoscmdで呼び出せばいいんじゃね?
.net側からウィンドウ操作したほうが早いな
845 :
名無しさん@お腹いっぱい。:2012/03/01(木) 10:29:02.44 ID:zEc+DEks0
ID:VXXthDtP0
こいつ煽ってばかりだな会社でいやなことでもあったのか?
ほんとネットの社会は努力しろだの自分で調べろとかなぜここに張り付いてレスしてる?働かないニートでしたか
出来る相手書き込みを自分のスキルUPのために張り付いてるだろうけど
初心者やできない人がいると努力しろだの調べろだのってアホか
初心者を免罪符に出来るような優しいインターネッツじゃないんで
初心者を免罪符にしてんし調べて動作させてHELP見て
それでもわからないから聞いてるだけだしアドバイスか
聞いてって言ったら顔真っ赤にしそうだからな
煽ることしかしてないみたいだからかわいそうな人だね
古参なんだろうけどインターネッツがんばってね
不自由なくUWSC使ってるからアディオス
見事に糞な初心者様を体現してて吹く
くそワロタwww
配列をコピーしたいときどうすればいいのでしょうか?
function FN( 配列[] )
result = 配列
fend
とかはダメみたいだし。
>>851 配列のサイズ揃えて
for文で一つずつコピー
>>852 それしか無いすかね、やっぱ。
何かでJOINして、SPLITで受ける位しか思いつきませんでした。
最近使い始めた者だけど、色々な解説サイトを巡回して勉強中
まだまだ初歩の域を出ないけど、結構楽しくなってきた
uwscのまとめサイトとかがあればもっと楽に覚えられるんだが
それっぽいものはすでになかった?
あれ以上やっちゃうとコピペばっかになるし
色々調べてると結局UWSCのヘルプに戻ってしまいますねw
サンプルとか応用とかで参考になるサイトはあるけど…
excelのa1からa10の内容を
b10からb1へ順番を逆に書き出したいんだけど
ググっても見つからずここへ来ました。
ヒントでもいいので教えてもらえませんか?
>>858は
「excelのa1からa10の内容をb10からb1へ順番を逆に書き出す方法」をググって
そのままの情報がヒットするとでも思っているのだろうか
「逆」って言葉が罠
昔俺も嵌まったわw
862 :
858:2012/03/02(金) 11:20:33.45 ID:7ZSdOiTi0
>>859-861 例えば順繰りでa1の値をb1に書きだすのなら
分かるのですが、
for r = 1 to 10
val= Excel.ActiveSheet.Cells(r,1).Value
Excel.ActiveSheet.Cells(r,2).Value = val
a1の値をb10から逆さまに書きだす構文、関数がわかりません。
よろしくおねがいします。
>862
r は1,2,3...10と変化する
なら、その r をつかって10,9,8...1と変化する式を作ればいい
モバゲー用にポチポチ作りながら調整している間に
モバゲーに飽きて終わり
>>862 for i = 1 to 10
Excel.Cells(11-i,2).Value = Excel.Cells(i,1).Value
next
>>863、
>>865 ああ、なるほどですね。
ちょっとした気付きなのでしょうね・・・。
助かりました。
ありがとうございました!
お金払うので誰かスクリプト組んでくれませんか?
時間ないので勉強代払って色々覚えたい。
スレ違いですいません。
868 :
名無しさん@お腹いっぱい。:2012/03/02(金) 22:33:08.86 ID:JyDXimkk0
○△■xls = XLGETDATA(Excel, "A1")
でセルの値がコピーできないんだが。。。。
左クリック(座標は指定しない)されたらF4を押すというスクリプトを教えて下さい。
WHILE TRUE
IF GETKEYSTATE(VK_LBUTTON) THEN KBD(VK_F4)
SLEEP(0.1)
WEND
while 1;if getkeystate(vk_lbutton) then kbd(vk_f4);wend
とりあえずですが
■firefoxでのWEBページ読込待ち
■WEBページ内のHTMLを検索し該当テキストリンクをクリック
■SIKULIというマクロソフトと平行して使いたい
スレ違いだと思いますので一応メールアドレスを載せておきます。
orbit_call_future★yahoo.co.jp(★を@に変えてください。)
もし、ご興味があればメールお願いいたします。
基本的にスクリプトの動作確認後、3日以内に振込みます。
(土日祝日除く 都合がつけば即日OK)
UWSCは情報が少ないし、スクリプトをいじれば少しずつは進歩すると思いますが、
時間が惜しいので作成してもらい、それを見て学びたいです。
ですので勉強代としてお金をお支払いするので、
ご協力いただけないでしょうか?
連投&スレ違い失礼いたしました
>>876 相場は、期限なしの80万円、動作保障なしです。
動かない、と永遠に難癖をつければ「動作確認後」の振込みなんて無いに等しいw
お前の環境なんてしらねーしww
>>878 それはお互いに言えることです。
動かないスクリプト送られても困ります。
スレ違いですし、怪しいと思われる気持ちも十分に分かりますので
叩かれるのは仕方がありませんが・・
これ以上は荒れると思いますのでメールでお願いいたします。
>>879 スクリプトを書く側としては既に渡してしまっているので書き損じゃねーかww
お互いに、とはいえないだろww
目0ルアドレスから言って頭おかしい
80万も予算があるなら業者に依頼すればいいのでは?
UWSCである必要もないし。
>>871 >>872 ありがとうございます。もう一つ質問なのですがスクリプトを少し変えて、
1.(100,100)をクリック
2.左クリックされるまで待つ
3.左クリックされたら2秒後にF4を押す
4.終了
という風にしたいのですがうまくいきません。
下のスクリプトを実行すると(100,100)をクリックすると終了してしまいます。
どこがダメなのでしょうか?
BTN(LEFT,CLICK,100,100)
IF GETKEYSTATE(VK_LBUTTON) THEN KBD(VK_F4,CLICK,2000)
画像A(a.bmp)と画像B(b.bmp)の位置を入れ替えたい時には、どのように記述したら良いのでしょか
意味がよく分からないけどスクリプト上の位置って事ならファイル名を変数に入れてif文で替えればいいんじゃない?
887 :
名無しさん@お腹いっぱい。:2012/03/06(火) 23:29:26.18 ID:0q6gNr5a0
UWSCを使用してトピックが埋まってしまってもまた次の同じトピックに行く方法わかりますか?
例えば
トピック1が1000の投稿があったら投稿できなくり、自動でトピック2が作成される仕組みになっていましたらどのような文字を加えれば次のトピックに行くようになりますか?
説明分かりづらくてすいません
おねがいいたします^^;
編集のときどこまでループしてるのかわかりにくいです
インデントつけるのめんどくさいです
とりあえずループの始めと終わりに番号振ってます
>>888 そういうのを自動的に解消するために
エディタの機能がプログラマ向けに発達してきた。
メモ帳で編集はやめておけww
uwsc用のエディタ設定がないって言いたいんじゃないの
BASIC系の設定をいじってuwscの予約語とか入れないと補完やコードテンプレもろくに使えないし見づらい
秀丸はあったよね
\4,200もするのか
Meryもある
サクラエディタで、関数・構文・定数で色分けしたけど
4.5の時代だった…
xyzzyもある
Emeditorもある
vim/emacsないなあ
GETID(GET_FROMPOINT_OBJ)だとそのオブジェクトの上にマウスカーソルを
移動しないとIDを取得できませんよね。マウスを動かさずに、指定した座標の下の
オブジェクトのIDを取得する方法があれば教えて下さい。
文字列を引数として渡す方法はないでしょうか。
test="click"
btn(left,test,x,y)
のように。
マウスボタンに文字列をどうやって扱わせるんだよ…
やりたいことが合ってるのかわかんないけど
test=click
でおk
click up down は中身に数字が入った変数だから→msgbox(click)で確認できる
""で括って文字列にしちゃうと駄目だと思うよ
>>901 ありがとうございました
おかげで解決できました!
いい加減ゲームでマウス操作できるように対応してくれよ・・・
CREATEOLEOBJで動かせるブラウザって、IE、プニル、ルナくらいかな?
なんか他にない?
y = 10
For x = 1 to 1000
y = y + x
NEXT
という文があったとします。
xが20,30,40の時はyに値を代入しないとしたいです。
y = 10
For x = 1 to 1000
ifb x = 20 or 30 or 40 Then
break
endif
y = y + x
NEXT
とするとループを抜けてしまいます。
ループを抜けずに特定の値の時は処理をしないとするにはどうしたらいいでしょうか?
ifb x = 20 or 30 or 40 Then
else
y = y + x
endif
そりゃxが20,30,40の時はループを抜けろ(break)、それ以外の時は代入を実行せよって書いてあるんだから
まったくその通りに実行されてるだけじゃん。
breakの意味わからず使ってんの?
またヘルプも読まないゲームスクリプト厨?
ああ一つミスった。
x=20 or 30 or 40 って (x=20) or (30) or (40) と同じだから
まったくその通りにってわけではないな。
代入は一回も実行されずループを抜けるわけだ。
>>907 ご回答ありがとうございました。勉強になります。
>>908 breakを使ってループを抜けてしまったのでヘルプは読んでいました。
ただ、そこまでやりましたがどうやって解決すればいいかわからなかったので
質問しました。大変失礼しました。
>>910 そもそもなぜbreak使おうと思ったのか
ヘルプ読んでれば使わないと思うけどな
つまり死ね
y=10
for x=1 to 1000
if !(x=20) and !(x=30) and !(x=40) then y=y+x
next
こんな感じにしないと
条件次第ではselect文の方が見た目も分かり易くてスッキリする事がある
y=10
for x=1 to 1000
select x
case 20,30,40
default
y=y+x
selend
next
breakじゃなくてcontin・・・うわなにをする
ヘルプ見てればbreak使わないよな
contry使ったらforのカウンタ回るのか覚えとこう
>>915 何の命令かと思ったら
cont(ry の略かw
インデントなしのコードは見る気しないわw
なるほど、構造が分かりにくいな。
けど、普通にコピペだとインデントって書き込みに反映されるんだっけ?
まぁ、その手間を省いたら駄目か。
タブやスペースのインデントはデータとして残るが表示されない。
ブラウザ上の見た目は一緒だがデータとしてある奴はエディタ等に
コピペしたらインデントも復元される。
最初からインデントしてない奴は…
913だけど普段はもちろんタブでインデントは入れてる
面倒だからそのまま2chブラウザで書いただけだよw
922 :
名無しさん@お腹いっぱい。:2012/03/17(土) 09:41:17.31 ID:jrFj+ocL0
すみません初心者の質問です。よろしくお願いいたします。
遷移先のhtmlの中のある値が100以下の時のみ動作するif文を書きたいのですが、下記のような場合どう条件設定すればいいでしょうか?
<span class="atai">売上</span>:248<br />
<span class="atai">元値</span>:100<br />
<span class="atai">差益</span>:148<br />
上記で「元値」が100以下の時だけを指定したいのですが、htmlの中のどこどこ、と指定する部分からすでにわかりません。
どうかご教授お願いいたしますm(__)m
初心者だからというのは免罪符にならん
ヘルプ読めよ
俺も平素からヘルプ嫁と連呼しているが
これをヘルプ嫁というのはちょっと違う気がするが。
>>922 htmlのどこそこと指定するような便利な関数はないから
ソースを読み込んだうえで文字列を解析することを自前で考えなくてはならない。
UWSC単体でもできなくはないが、regexpオブジェクトでも呼んで正規表現マッチさせるのが早いだろうな。
難しく考えすぎだろそれ
そうかね。
まあ俺はweb関連の自動化なんて全然やらんから
こうなりがちだ。
簡単な方法もあるのかもしれないけど。
BETWEENSTR()でいいのでは
戻値 = IEGETDATA( IE, Name, [Value, 番号] )
でいいのでは
この場合ではその方法は使えないからどうするかって話をしてるんだと思うぞ
こんな感じなら行けるはず
if val(betweenstr(iegetsrc(IEオブジェクト,"body"),"元値</span>:","<")) <= 100
IEGETDATAにしろIEGETSRCにしろBETWEENSTRにしろヘルプに書いてあるだろ・・・
全関数がヘルプに書いてあるのは当たり前だと思うけど、それがどうかしたの?
>>932 だから、ダイレクトな回答を書く必要はないってこった。
本人に頭使わせろ
>>933 おまえが何のためにここに張り付いているの
アホだなw
XPSP3 IE6で下記のerrorが出てスクリプトがほとんど動きません。
神様教えてください。
↓
COM_Error: OLE Object1への型変換が出来ません。
5行目;IE.visible = TRUE
1カ月ぶりに来たらいつもの流れの繰り返しでわろたwww
無限ループってこわいよね
神様とか言ってる所におちょくりみたいなものを感じる
939 :
935:2012/03/18(日) 21:58:45.19 ID:0e5lJmcM0
助けてくださいお願いします。
初心者なんです。詳しい人お願いします。
とりあえずその動かないスクリプトを出さないことには
>>939 助けてあげたくても、それだけの情報ではエスパーしか答えられないぞ
あと自分で初心者と言うな。いつもの釣りだと思われる
942 :
名無しさん@お腹いっぱい。:2012/03/18(日) 22:51:04.16 ID:NAen7kHm0
ちょっと聞きたいんだけど、
例えば、3つのUWSファイルを同時に起動した場合、これを順番に実行させるためには
どうしたらいいの?
UWSC.INIのNotMultiplexを-9にしても、うまく処理できないんだが。
callで順番に呼ぶのじゃ駄目なのか?
>>943 3つのファイルはランダムで選ばれたファイルなんだよ。
execで順番に呼ぶのはどう?
>>945 うーん、それは.exe専用じゃないの?
.UWSの複数ファイルを順番に処理したいのだが・・・
Dosバッチで書いてやるとか、或いはWshとか
exe専用じゃないみたいだよ
scriptPath = "D:\hoge\fuga.uws"
exec("<#DBL>" + GET_UWSC_DIR + "\uwsc.exe<#DBL> <#DBL>" + scriptPath + "<#DBL>", TRUE)
呼ばれる可能性のあるファイルが決まってるなら、callをいっぱい書いといて分岐するとかね
>>948 そうなんだ。ありがとう。
これなら・・・ちょっとやってみる。
chkimgを使って起動させると
UWSCがアホみたいに点滅するんですけど
これって画像認識してないってことですか?
でも普通に動いてるんですよね
なんででしょうか
(´・ω・`)
どうやら仕様みたいですね
chkimgがどういう動作をするのか、もう一度良よ〜く考えてみる事を勧める
>>956 UWSCがアホみたいに点滅するということは、わざわざお前がアホなスクリプトを書いたということをまず理解しろ
理解できたら次に何をすればいいのか分かるはずだ
スクショの撮影に邪魔にならないよう一時的に非表示にするのはUWSCに限ったことじゃないよな
「アホみたいに点滅」してるってことは、sleep入れてないか短すぎるかだろ
>>960 仕様だと決め付けてみたり、同じ人だと思ったり
思い込みが激し過ぎるんじゃないのか?
print関数使う機会ある?
デバッグ用
ガリガリ使ってるけど
fukidasiのほうがいいのか?
裏で起動させる事出来ないの?
俺はfukidasi派だぜ
それと画面検証用のプログラム自前で作って画面情報たんまりfukidasiにぶち込んでる
printだと後でログを見返せる
オイラはfukidashi派。こっちのほうが手軽で。
デバッグモードで動かそうと思ったらL18が存在しませんって出てきてなんのこっちゃ・・・・・・・・
>>971 一度アンインストールしてインストールしなおせ
それでもダメなら公式に問い合わせ
割れなら消えろ
>>970 一瞬で過ぎてしまう部分のログとか見れないじゃん。
適材適所
スクリプトによる
終わり
975 :
名無しさん@お腹いっぱい。:2012/03/22(木) 21:32:25.61 ID:nVr7ugRI0
こんなスレあったのか…
これ買えばよかった
マウスレコーダーっての買っちまったよ…
ステマうぜえなwwwwwwwwwwwwwwwwww
有料の価値ないからwwwwwwwwwwwwwwwwwww
サポートも上から目線だしよwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
AutoITかAHKのほうが出来ることの幅も広がるしはるかに幸せになれるのにwwwwwwwww
裏で起動させられないのか、と聞いてるのだが
何を何の裏で起動するのかがイミフなんだが…
.uwsを関連付けすればUWSC本体の起動は不要だけど、それで答えになってるのか?
>>978 触るなよ阿呆
その行動が長期的な迷惑になるんだよ
>>979 それは公式にいるアホのところに書いてきてくれw
複数のxlsファイルを開き、それぞれのセルの値を順にメモ帳へコピペしたいと考えていますが、
それぞれのxlsファイルのセルを読み込む文章がわかりません。
EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
Excel.WorkBooks.Open(FileName :="C:\xxx.xls") //xxx.xlsファイルを開く
Excel.WorkBooks.Open(FileName :="C:\yyy.xls") //yyy.xlsファイルを開く
id = EXEC("notepad.exe") //メモ帳起動
for r = 1 to 10
val1= xxx.xls のセル (r,1) の値 //不明な箇所
val2= yyy.xls のセル (r,1) の値 //不明な箇所
以下省略
以上です。不明な箇所の文を教えていただけないでしょうか?
>>942 です。
EXECやcallで実験してみたけど、なかなかうまくいかないです。
他にいい方法あればお願いします。
While
SLEEP( X分 )
msgbox("X分経過しました")
Wend
X分ごとに起動するキッチンタイマーもどきを作ろうとしたのだが、OK押さないと次のタイマーが起動しない。
メッセージボックスの確認が遅れればどんどんズレていく。
スレッド使ってX分ごとのほうを独立させないと駄目でしょうか?他にいい方法ありませんか?
GETTIMEとFUKIDASI使え