自動化ツールuwsc使いよ集まれ7at SOFTWARE
自動化ツールuwsc使いよ集まれ7 - 暇つぶし2ch275:名無しさん@お腹いっぱい。
11/11/03 15:25:45.20 FtPbq5vm0
できますよ

276:名無しさん@お腹いっぱい。
11/11/03 15:42:46.14 uJFyB9d80
>>275
ありがとうございます。
プログラミングも全くの初めてなので手探りで頑張ってみます。

277:名無しさん@お腹いっぱい。
11/11/03 15:58:53.99 LquvWkC90
>>276
初心者に対する親切で言うけど、ヘルプ(つーかUWSCにおけるリファレンス)は数回読んでおけ。
一回通しで読んでおくとマジで捗る。ここで質問して聴ける答えの殆どが実はヘルプに載ってる。

278:まぁRGBってなに?だと躓くだろうから
11/11/03 16:06:10.29 LY6UbNub0
色 = PEEKCOLOR(x,y)
Red = 色 and $FF
Green = (色 and $FF00) / $100
Blue = (色 and $FF0000) /$10000

たぶんゲーム用なのだろうけど、色を分解するfunctionをこさえる→元の色を変数に保存→変わったかWhile True~wendループでひたすら比較し続ける。

279:名無しさん@お腹いっぱい。
11/11/03 17:39:31.98 H/V4sxV30
むしろRGBではなくBGRなところに注意かと

280:名無しさん@お腹いっぱい。
11/11/03 19:28:13.49 qzNineYM0
>>278
これの意味がいまいち分からなくてやめたな

281:名無しさん@お腹いっぱい。
11/11/03 19:46:07.68 RRLNM+5x0
クリップボードに1という数字が入っていて
クリップボードの数字に1を足したい時
sendstr(0)+1
とするとgetstr(0)=11になってますのだけど
和を出力するにはどうしたらよいのでしゅか

282:名無しさん@お腹いっぱい。
11/11/03 19:53:16.19 o3L2nQSM0
sendstr(val(getstr(0)))+1
とかでできるのでは

283:名無しさん@お腹いっぱい。
11/11/03 21:22:26.71 RRLNM+5x0
文字を数値に置き換える行動が必要だのですね
あざっすあざっす

284:名無しさん@お腹いっぱい。
11/11/06 09:18:02.88 bL6PlzVI0
すいません、質問です。
>>55-57をchromeで行うにはどのようにしたらよろしいでしょうか?
メールを送る部分は他の方法で出来たのですが、
検索の部分だけうまくいきません。
どうかご教授お願いますm(_ _)m

285:名無しさん@お腹いっぱい。
11/11/06 13:28:38.40 nXDiYYhf0
>>284
IE用だから無理
自分で記録してみたら?

286:284
11/11/07 14:50:13.46 x7j5kCs30
>>285
ありがとうございました。

287:名無しさん@お腹いっぱい。
11/11/12 02:50:26.32 645URtN60
chrome17betaで、clkitemが使えるようになってたよ

288:名無しさん@お腹いっぱい。
11/11/15 11:10:45.69 uWoZxfD60
call で 呼び出したマクロから更に別のマクロを呼び出したいのですが
FILE NOT FOUND ~ 下.uws といわれて呼び出せません。
どうしたら呼び出せるようになるでしょうか
全て同じフォルダの中です。

上.uws
CALL 中.uws

中.uws
CALL 下.uws

下.uws
KBD(VK_1,0,0)

289:名無しさん@お腹いっぱい。
11/11/15 14:32:00.24 +IyJ8OFm0
普通に何も問題は無い。

できないとしたら、実はそんなスクリプトじゃないってことだろうな。

290:名無しさん@お腹いっぱい。
11/11/15 20:46:48.47 npPJPKmo0
FLASH内のテキストボックスにペーストする場合
sckey(0,vk_ctrl,v)
が何故か効かないんだけど
kbd(vk_ctrl,down)
kbd(vk_v,click)
kbd(vk_ctrl,up)
てダラダラ書かなきゃいけないの?

291:288
11/11/15 22:10:52.76 uWoZxfD60
自己解決しました。

問題無いとの返事で、過去ログに()が有ると云々というのを見た気がしたので
なにげなくC:\ にぶち込んだら動きました。

フォルダ名の()が原因でした。

中を読み込んでも問題無いのに上からだとエラーが出たので混乱しちゃいました。

292:名無しさん@お腹いっぱい。
11/11/15 23:12:11.19 zwVIVEhe0
>>291
> なにげなくC:\ にぶち込んだら動きました。

君やめた方がいいよ。

せめてC:\tempとかにしないと。サブディレクトリが消えていくスクリプトで死ぬよ。


293:名無しさん@お腹いっぱい。
11/11/16 14:10:24.59 Pa8MTtHo0
今日、急にタイマーが効かなくなりました。
「一回だけ実行」をよく利用してるのですが、スタンバイ状態から復旧はするものの
スクリプトの実行が行われません。
Windowsとか、UWSC以外の部分がおかしいのかなと思いますが、確認ポイント等
教えてもらえないでしょうか?

294:293
11/11/16 14:40:52.55 Pa8MTtHo0
すみません、自己解決しました。
なんとパソコンの時計がちょうど一ヶ月ズレて10月になってました。

295:名無しさん@お腹いっぱい。
11/11/17 00:04:49.12 o1oina1g0
ご相談 
ブログを閉鎖するのでローカルにバックアップしたいです。
サンプル//掲示板のスレをテキストファイルとして保存する  #n27//
を利用して複数ページの保存ができますが、
長い記事は、記事タイトルをクリックして全表示するつづらになってます。
ソースを調べると、アンカーの中の文字がブログのタイトル名になっていて、
記事ごとに違い#n27が使えません。
一旦テキストを取得して編集し題を配列で渡すことも考えましたが、
あまりにおぼこじゃないですか・・・
当方スクリプトはわかるのですが、HTMLのタグ構造や指定に弱く、
もっとスマートな方法やコードがあると思いますが、アドバイスください。



296:名無しさん@お腹いっぱい。
11/11/17 00:08:41.30 YXuxk+jS0
>>295
ブログサービス名 エクスポート
とかで検索かけたほうが早くね? いまどきそれぐらいの手段は用意されてるだろ

297:名無しさん@お腹いっぱい。
11/11/17 00:54:17.24 o1oina1g0
>>296 ありません。SNSのおまけで、利用者が少ないのです。

298:名無しさん@お腹いっぱい。
11/11/17 05:51:47.75 9mCggz7q0
昨日見つけたんだけど
call 変数+""(引数)
ってやるとcallのファイル名に変数使えるね

299:名無しさん@お腹いっぱい。
11/11/17 18:58:31.51 wSlJbc0w0
>>295
再利用のありえない使い捨てスクリプト決定なんだから
その方針で適当に書けば?

300:名無しさん@お腹いっぱい。
11/11/18 17:01:53.15 owZ/y+zq0
CHKIMGってセカンダリモニタの画像は認識できない?プライマリに画像がある時しか反応してくれない
認識する方法があるなら教えて欲しい・・・

301:名無しさん@お腹いっぱい。
11/11/18 17:08:29.20 owZ/y+zq0
ごめん自己解決
範囲指定を-1920,1080にすればいいだけでした

302:名無しさん@お腹いっぱい。
11/11/18 17:34:30.04 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)

およそこのようになっております。

303:名無しさん@お腹いっぱい。
11/11/18 17:57:45.56 CAQMUOv40
thread

304:名無しさん@お腹いっぱい。
11/11/18 18:07:33.65 rMdqs55T0
まだこんなの使ってる情弱がいんのかよ

305:名無しさん@お腹いっぱい。
11/11/18 19:49:43.23 Gvg50/vl0
Sleep(2) // 10秒の間を取る
どういうことなの!?
開始時間を取得して格納して、適当にそれと比較して時間経過したら実行すればいいとか。

306:名無しさん@お腹いっぱい。
11/11/18 19:55:53.32 zdv1k3LZ0
>>304
本体exeとスクリプトだけの簡単な配布とセットアップは手放しがたい…それだけかもしれんが。

307:名無しさん@お腹いっぱい。
11/11/18 20:28:50.68 7sqHdXCs0
情強はどうしてるの?

308:名無しさん@お腹いっぱい。
11/11/18 20:53:03.99 tA/M4Oum0
>>305
わざわざそんなの書くの?

309:名無しさん@お腹いっぱい。
11/11/19 02:32:33.11 5MwJvGq00
>>305
すまない公式から拾ってきて
10秒が長かったから2秒に書き換えたんだ、
説明書き書き換えるの忘れていた

310:名無しさん@お腹いっぱい。
11/11/20 00:14:06.23 wbSUsuvr0
>>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

311:名無しさん@お腹いっぱい。
11/11/20 02:08:52.14 iRi/ZYWT0
GETTIMEにその時間書いて

IFBで時間越えたら行動。でまた時間書いて閉じる

312:名無しさん@お腹いっぱい。
11/11/20 05:16:50.35 eTwtgE2k0
>>310
これって日をまたぐとうまく動かないんちゃうかな。

313:まぁRGBってなに?だと躓くだろうから
11/11/20 08:01:18.06 hstN1dtV0
年月日時分秒を合算して完全な秒数を出せばOKだろな

314:名無しさん@お腹いっぱい。
11/11/20 08:28:17.14 Nu5fqISu0
//gettime()の戻り値をそのまま使えばいいのでは

t=180 //3分後に設定(秒数)
t2=gettime()+t //t2に指定時刻(秒数)
While t2 > gettime();sleep(5);Wend //5秒おきにチェック
SOUND("C:\Windows\Media\ding.wav") //XP用 他は知らんw

//こんな感じで。試してないけど>>310と同じ動作になるよね?

315:名無しさん@お腹いっぱい。
11/11/20 09:39:13.93 k3wr1Xk/0
t=180
sleep(t)

316:名無しさん@お腹いっぱい。
11/11/20 10:42:56.88 /7ROQBl70
>>315
よく読め

317:名無しさん@お腹いっぱい。
11/11/20 14:11:10.77 mnucJeUQO
uwsc のプログラムの
sleep() って
PCが()内の数字を読み込むまでの時間で
PCのスペックによって時間が上下してしまいますよね?
PCのスペックに左右されずに一定の時間止める命令ってありませんか?


318:名無しさん@お腹いっぱい。
11/11/20 14:51:36.10 37TjzIAA0
>>317
sleep(1)で、0.990秒か1.010ぐらいの誤差は出るという話か?
Windows自体がリアルタイムOSじゃないんだからあきらめろよ…

319:名無しさん@お腹いっぱい。
11/11/20 20:26:16.19 NBuVEZGy0
for i=1 to 180
 sleep(1)
next
みたいなことやったら誤差がでかくなるけど
sleep(180)と実際の180秒との誤差なんて気にしてたらきりがない。

320:317
11/11/20 21:32:34.82 mnucJeUQO
やっぱりそういうものですよね……
繰り返しやってるとどんどん誤差が出てくるのでどうにかならないかと思っているのですが

あと
sleep() って1秒単位でしか止められないですか?
0.1秒とか細かく止めることは出来ませんか?


321:名無しさん@お腹いっぱい。
11/11/20 21:50:16.24 UjA32dPa0
なぜ試さない

322:名無しさん@お腹いっぱい。
11/11/20 22:08:12.02 NBuVEZGy0
それ以前になぜヘルプすら読まないのかと。

お前はその関数の使い方どこで知った。
またゲームマクロ厨か?

323:名無しさん@お腹いっぱい。
11/11/20 22:36:51.73 wKQBEoG/0
ヘルプ呼んでないのはスルーで良いだろ。

324:名無しさん@お腹いっぱい。
11/11/21 01:48:02.86 cK4FDRBG0
sleepだけを繰り返すスクリプトなわけないんだから
蓄積される誤差の主成分はsleep以外の処理時間だろうに。
そしてその場合はgettimeを使えって話が直前に出てるのに。

325:名無しさん@お腹いっぱい
11/11/21 22:32:56.01 95iY67le0
変数の名前の中に変数を入れることってできませんか?

名前1=50
名前2=60
名前3=70
名前4=80
名前5=90

とした場合に

i=1+random(5)
print 名前i


というような感じのことができる方法ってありませんか?
iに応じて変数1などに格納してる数値を引き出してきたいです


326:名無しさん@お腹いっぱい。
11/11/21 22:59:29.69 cK4FDRBG0
配列でできるのでは

dim 名前[4]
名前[0]=50
名前[1]=60
名前[2]=70
名前[3]=80
名前[4]=90
i=random(5)
print 名前[i]

327:名無しさん@お腹いっぱい。
11/11/22 13:45:48.19 nY2IDWqE0
Fukidasiを二つ同時にだすことは可能ですか

328:名無しさん@お腹いっぱい。
11/11/22 13:57:29.23 nY2IDWqE0
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


これしか方法ないか

329:名無しさん@お腹いっぱい。
11/11/22 14:00:46.07 0Vz8p5PL0
>>327
できますよ

330:名無しさん@お腹いっぱい。
11/11/22 14:18:22.87 nY2IDWqE0
>>329
おしえていただけますか

331:名無しさん@お腹いっぱい。
11/11/22 19:40:28.55 5GYKnaiu0
>>330
だからできますって

332:名無しさん@お腹いっぱい。
11/11/22 20:13:51.19 aqyjJSd30
>>326
出来ました。どもです

333:名無しさん@お腹いっぱい。
11/11/23 19:59:47.06 WW8lFYXg0
ループ処理で使うカウンターが勝手にインクリメントされるから、
ディクリメント・ループが書けない。ゴミ言語だな。

334:名無しさん@お腹いっぱい。
11/11/23 20:17:47.72 dKKZTPir0
言語といえば言語だけど…そこまで行ったら自分で組む方が早くね?

335:名無しさん@お腹いっぱい。
11/11/23 21:18:24.83 wzzmYU4J0
UWSCでtwitterに自動で呟けたりしますか?

336:名無しさん@お腹いっぱい。
11/11/23 21:24:58.35 d6sk/n4+0
>>333
どういう意味? step -1 とかじゃダメなの?

337:名無しさん@お腹いっぱい。
11/11/23 21:40:50.79 4KoCrPGW0
デフォルトが step 1 になってるだけだよね。
他にカウンタがインクリメントされるループなんかあったっけ?

338:名無しさん@お腹いっぱい。
11/11/23 23:01:11.80 +wgWgFMDP
無いよそんなもん
ヘルプを読まない馬鹿がいるだけ

339:名無しさん@お腹いっぱい。
11/11/24 00:41:18.47 iwgJn0yc0
>>333
既にこれは「ヘルプを読まない奴」として否定されているわけだが…

n = 100
for i = 0 to n
 x = n - i
 print x
next

別にデクリメントループが構文として用意されないと誤解してても
『(不恰好ながら)書ける』だろ…とか思うわけで

340:名無しさん@お腹いっぱい。
11/11/24 13:01:18.76 Xjdue0Ae0
っていうかいつも while ばかり使ってると
for の存在なんて思い出しもしないw

n=100
while 0 < n
n=n-1
print n
wend

341:名無しさん@お腹いっぱい。
11/11/24 15:02:19.21 Rk+VpmeE0
とある掲示板でPro4.2+尻ってファイル見つけたんだけど、このkeygenで4.7aまでならいけるかな

342:名無しさん@お腹いっぱい。
11/11/24 19:23:17.57 GPYvU7K20
試した?

343:名無しさん@お腹いっぱい。
11/11/25 06:22:00.11 9/umpwPe0
ウインドウを閉じるんでは無くブラウザまるごと終了する方法ありますか
プロセスから切るにもchromeだからいっぱい出ちゃう

344:名無しさん@お腹いっぱい。
11/11/25 13:00:12.48 p+EqYULU0
>>335
botでいいだろが


345:名無しさん@お腹いっぱい。
11/11/25 16:40:11.51 6JjYuI9o0
>>343
窓タイトル = "Google - " //ウインドウのタイトル(の一部)を指定
def_dll PostMessageA(hwnd,int,int,int):user32.dll
PostMessageA(idtohnd(getid(窓タイトル)),$10)

346:名無しさん@お腹いっぱい。
11/11/28 05:12:01.88 /CGzuT+y0
>>345
ありがたや

347:名無しさん@お腹いっぱい。
11/11/28 11:28:49.79 ZZDnddLi0
ドラッグ&ドロップの方法を教えてください
『余分な時間、マウス~』のチェックを外してAからGまでD&Dさせたら、点A,B,C,D,E,F,Gを移動して記録させる方法は知ってるんですが、
点AとGだけを残してB,C,D,E,Fを省略する事は出来ますか?(BCDEFも表示させると時間が掛かるため)
よろしくお願いします

348:名無しさん@お腹いっぱい。
11/11/28 11:32:33.96 t/VZjk9M0
チェック入れて記録したらいいだろ

349:名無しさん@お腹いっぱい。
11/11/28 15:35:56.57 lNj7q3Yn0
初歩的な質問ですみません。
UWSファイルを難読化もしくは中の構文を見られないようにするには
どうすればいいですか?ご教授お願いしますm(_ _)m

350:名無しさん@お腹いっぱい。
11/11/28 15:39:27.19 CoKoKKvM0
ヘルプは一度上から下まで全部読んどけよ…そんなに量あるわけじゃないし。

ヘルプ→スクリプト→その他

351:名無しさん@お腹いっぱい。
11/11/28 18:30:38.88 lNj7q3Yn0
スクランブルってどうやるんでしょうか。
コマンドプロテクトで/A と打っても認識不可能なバッチと出るだけで何も
起きないです

352:名無しさん@お腹いっぱい。
11/11/28 18:51:27.35 jqFQ2BSr0
まさかと思うが、パスに半角スペースがあるというオチじゃないよな…

353:名無しさん@お腹いっぱい。
11/11/28 18:59:44.19 pCPDtoar0
>>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)

単純にこれでできたが・・・

354:名無しさん@お腹いっぱい。
11/11/28 19:17:09.94 lNj7q3Yn0
コマンドプロテクトでuwsc47bをcdで指定して
ディレクトリ移動する所までは分かったんですが
指定されたパスが見つかりませんとでます
uwsc47bはProgram Filesにあって

cd C:\Program Files\uwsc47bと打っても
そのフォルダに移動しないんです。
何故ですか?

355:名無しさん@お腹いっぱい。
11/11/28 19:42:24.08 NT6h79Cr0
スクランブルかけたいモノをC:直下に置くとかで良いじゃない。

356:名無しさん@お腹いっぱい。
11/11/28 19:49:30.66 CoKoKKvM0
ここまでパスに関して無頓着だとスクリプトの実行にも問題が出てこないか?
ファイル触りたいとかいう時困るだろうに。

357:名無しさん@お腹いっぱい。
11/11/28 19:53:24.52 CoKoKKvM0
っていうかコマンドプロテクトって何さ

知らない単語が出たら適当に自分の知ってる単語に置き換えてみるんだろうか?
知ってる単語でも音だけ知ってて意味は分からない単語なんだろうけど。

意味わからない言葉を適当に使ってみるって行動が理解できないよ。

358:名無しさん@お腹いっぱい。
11/11/28 20:12:24.70 lNj7q3Yn0
無知ですみません
C:直下のProgram Filesをcdで指定してもやはり指定されたパスが見つかりません。
って出ます
cd C:\Program Files で合ってますか?
 コマンドプロテクトじゃなくてコマンドプロンプトですね。すみません

359:名無しさん@お腹いっぱい。
11/11/28 20:26:17.68 rSlze9qY0
それ自体はあってるよ。

それ以外の要因が説明不足でエスパーが必要なんだろうね。
判るものも判らん。

360:名無しさん@お腹いっぱい。
11/11/28 20:26:51.15 CoKoKKvM0
散々適当書いてた経緯からして、ここに書いてあるパスと
実際入力したパスが違う可能性が否定できない…

あと、ブートドライブがCじゃない可能性も…

361:名無しさん@お腹いっぱい。
11/11/28 20:27:07.92 lNj7q3Yn0
解決しました
どうやら C:\のc:の部分がいらなかったようです.
コマンヂプロンプトのサイトの構文にはc:が入っていたので分かりませんでした;

362:名無しさん@お腹いっぱい。
11/11/28 20:27:17.46 rSlze9qY0
どうしてもわからないなら、>355 の言うとおり
UWSC.exe と 対象スクリプトをC直下に置けば良いじゃない。

363:名無しさん@お腹いっぱい。
11/11/28 20:28:09.48 lNj7q3Yn0
なんか自分で見てても文章が稚拙ですね~^^;
支離滅裂ですみません;

364:名無しさん@お腹いっぱい。
11/11/28 20:28:40.75 CoKoKKvM0
ずばり、Cドライブじゃなかったってオチか

365:名無しさん@お腹いっぱい。
11/11/28 20:32:59.42 lNj7q3Yn0


CD C:program files じゃムリでしたが
CD \Program files でいけました^^
まずDドライブっていうやつがないので;w;
でもDVD-RWっていうのがありましたがこれがDドライブなんでしょうか?

366:名無しさん@お腹いっぱい。
11/11/28 20:35:27.03 B+rdzsPG0
>>365
上のなんで\無くなってるん

367:名無しさん@お腹いっぱい。
11/11/28 20:38:39.97 lNj7q3Yn0
やったーーーーーーーー
出来ました^^
3時間も掛かっちゃったpwq
>>366さん
書き忘れましたすみません;
暗号化出来ました^^
でもORGファイルっていうのが出来たんですがこれは何ですか?

368:名無しさん@お腹いっぱい。
11/11/28 21:14:35.02 DelMMb6d0
^^;

369:名無しさん@お腹いっぱい。
11/11/28 21:24:57.65 CiLErwXn0
これ素でやってんの?

370:名無しさん@お腹いっぱい。
11/11/28 21:39:49.84 CoKoKKvM0
ここまで超弩級の初心者がスクリプトの内容を隠したがる理由って何?

またゲームマクロ関係の臭いがしてきた…

371:名無しさん@お腹いっぱい。
11/11/28 21:43:24.09 65S6433R0
だからこそだろw
ソース見られたら恥ずかしいじゃん

372:名無しさん@お腹いっぱい。
11/11/28 21:50:24.68 rSlze9qY0
自分を大きく見せるためだよ

373:名無しさん@お腹いっぱい。
11/11/28 21:52:16.25 ZZDnddLi0
>>353
教えて頂いたとおりにやってみたのですが、1行目でファイルを開いてしまいます
2行目でドラッグをしてる筈なんですが、Gまでカーソルが移動してもファイルは移動しないのです
A-G間を一気に移動出来ると良いのですが

374:名無しさん@お腹いっぱい。
11/11/29 00:22:34.51 6f1ikZrG0
>>373
具体的に何がやりたいんだ?
一応dropfileならコマンドあるような…

375:名無しさん@お腹いっぱい。
11/11/29 13:54:39.76 Wf2HEEvG0
>>373
353の一行目で何してるかわかってる?

376:名無しさん@お腹いっぱい。
11/11/29 13:56:36.68 Wf2HEEvG0
一行目のクリックと二行目の間にsleep置くか
一行目省くかで出来るだら

377:名無しさん@お腹いっぱい。
11/11/29 17:13:28.90 7tsIYmjQ0
質問です。
グローバル・スコープに組込み関数と同じ名前で関数がユーザ定義できてしまいますが、
コードが大きくなってしまい、組込みなのかユーザ定義なのか明示したくなってきました。
コード内で組込みであることを明示する書き方はあるのでしょうか?

例えば、
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

378:名無しさん@お腹いっぱい。
11/11/29 17:41:41.51 JvceVNuB0
>>377
逆にユーザー定義の方をuser_RANDOMとかにして区別すれば?

379:名無しさん@お腹いっぱい。
11/11/29 18:00:40.49 7tsIYmjQ0
ユーザ定義のRandomも複数箇所で使っているので、
組込であることを明示できた方が変更箇所が少なくて済むんです。
だからBuiltin.Random()などと記述できればなーと思ったんですが・・・ヘルプを見る限りできなさそうですねぇorz

380:名無しさん@お腹いっぱい。
11/11/29 19:19:34.10 hLtj59jYi
>>379
そりゃ、求める方がおかしいからな
諦めて別名を使えよ

381:名無しさん@お腹いっぱい。
11/11/30 00:00:55.66 7tsIYmjQ0
予約語&関数一覧にある関数名がユーザで使える方がおかしくない?

382:名無しさん@お腹いっぱい。
11/11/30 00:24:34.22 vxsaB//g0
別におかしくないよ
関数をユーザーが上書きしたり改変したりといった具合にフックできる言語もある

383:名無しさん@お腹いっぱい。
11/11/30 00:31:31.53 Xo98chVK0
>>381
使えない予約語もあった気がする 具体名忘れたけど
randomはjs、javaを考慮して制約を外してあるとかじゃないかな…?

384:名無しさん@お腹いっぱい。
11/11/30 01:15:31.15 v4l4hkwp0
>>382
それは引数の型や個数で判別できる場合じゃないの?それで区別してくれれば問題ないんだけど、
UWSCは引数が違うといってエラーになるだけだからなぁ・・

385:名無しさん@お腹いっぱい。
11/11/30 06:53:29.22 08SXj0TB0
自作関数をrandomという名前にしなければならない理由はないだろ
ちょっと変更すれば済む話。

俺は自作関数で上書きすることで、スクリプトに手を加えることなくデバッグ出力とかできたらいいなと試してみたけど、
いったん上書きしたらもう標準関数を呼び出せなくなるんだよね。
だから>>379が言うような方法があればいいなと探してみたことはあったけどあきらめた。

けど今ちょっと思いついたぞ。
Withを使う方法だ。

DEBUGというモジュールとRELEASEというモジュールを用意して切り替えることで、
スクリプト本文に手を加えることなくデバッグモードの切り替えができる。

With DEBUG
  .関数()

問題はWithがどの範囲で使えるかだけど、関数内で宣言が必要だろうな。関数ごとに・・・
変数が使えればいいけど無理だよな。
C言語のDEFINEみたいのがあればヘッダを書き換えるだけだけど・・・


386:名無しさん@お腹いっぱい。
11/11/30 22:18:17.27 8ezR9SNv0
>>385
世間一般的な使いこなし術、とは違って
「他言語で実現できてる事」を工夫して提唱しても虚しいぞ。
結論として他言語に移れば良い。

別にWindowsの操作制御はUWSCの専売特許でもない。
ただ、初心者でも使いやすい記述とインターフェースがあるだけ…そこはものすごい利点なのだが。

387:名無しさん@お腹いっぱい。
11/11/30 22:37:21.30 yLeiwQBs0
その初心者向けにヘルプが充実してるところか。
悲しいのは敷居が低いからいろんなのがヘルプ読まずに質問するところか。

388:名無しさん@お腹いっぱい。
11/12/01 00:43:31.29 8QVbGduq0
ヘルプや例だけでは仕様が曖昧な記述も多いよ。

389:名無しさん@お腹いっぱい。
11/12/01 00:47:03.60 n0XSScXj0
そういう質問なら別にかまわん。

しかしそれ以前の質問多すぎるだろ…

390:名無しさん@お腹いっぱい。
11/12/01 12:15:23.09 GRaVA5bs0
ビットテストしたくて下みたいに書いたんだけど、もっとシンプルで実行速度が速そうなの組みたいんだけど
どうしたらいいんだろうか?
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


391:名無しさん@お腹いっぱい。
11/12/01 13:49:09.37 GRaVA5bs0
>>390の補足
それぞれ立ってるビットによって別の操作をしたい
selectが条件一致したら抜けるんじゃなくて条件に一致した部分全部を実行して欲しい
bittest(6) で呼ぶと
2
4
って感じで表示して欲しい


392:名無しさん@お腹いっぱい。
11/12/01 14:32:22.84 AEqpRIzn0
チェックボックスのビット判定の例を見ると参考になると思う。

393:名無しさん@お腹いっぱい。
11/12/01 14:58:53.56 GRaVA5bs0
>>392
レスありがとう
そう言えばSLCTBOX()のチェックボックス指定した時ってビット演算で戻り値取ってましたね
早速例題ググってみます

394:名無しさん@お腹いっぱい。
11/12/01 16:08:10.80 1uXdCRi30
>>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

395:名無しさん@お腹いっぱい。
11/12/01 16:09:56.53 GRaVA5bs0
>>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さんありがとう。サンプルコード見て閃いた
やっぱ素直に書くのが一番でした

396:名無しさん@お腹いっぱい。
11/12/01 16:11:25.72 GRaVA5bs0
>>394
おお!レスくれてたのか。ありがとうございます。リロしてませんでした。ごめんなさい
仰るように書き直しました。これに気付くまで数時間かかったのでありがとうございます

397:名無しさん@お腹いっぱい。
11/12/02 17:53:16.31 wLnc7Jgd0
32ビットとか使いたくなった時のために
こんな感じにしといたほうが無難ではないだろうか
procedure bittest(test)
bit = 1
for i = 1 to 32
if test and bit then print bit
bit = bit * 2
next
fend

398:名無しさん@お腹いっぱい。
11/12/02 18:18:35.14 nzM92MKJ0
並列して似た作業をループさせたいんだが
内容としては、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ウィンドウ分。

399:名無しさん@お腹いっぱい。
11/12/02 21:21:05.08 79OuEhei0
そりゃ毎回getidしてるからだろ。

400:名無しさん@お腹いっぱい。
11/12/02 21:38:40.01 k1G8oZ+i0
どうせIDがかぶってるオチじゃねーの

401:名無しさん@お腹いっぱい。
11/12/02 22:02:28.32 nzM92MKJ0
>>399
その通りだったみたいです。
GETIDの所無くしたら問題なく動きました。
これ、クリックする部分は絶対座標だから対象としてるウィンドウ達はスクリプトで指定してる座標から動かしちゃダメって事ですよね。
とりあえず、これで手動クリックから抜け出せましたw
1時間弱12個のウィンドウの決まった所をひたすらカチカチ作業を6時間おきにやるのがマジキチだったので
助かりました!

402:名無しさん@お腹いっぱい。
11/12/02 22:59:30.81 79OuEhei0
>>401
なんか勘違いしてるっぽいな?

同じタイトルのウィンドウが複数ある場合1回目のgetidと2回目のgetidで
同じウィンドウを取得できるとは限らんって事だぞ。

一つのウィンドウに対して複数回操作をするなら
getidを1回だけやってIDを変数に取って以降その変数でやる

403:名無しさん@お腹いっぱい。
11/12/02 23:57:44.63 fkbuA7P+0
どう考えてもまともな使用目的じゃなさそう
ま、その程度ならたいした実害はなさそうだけどな…

404:名無しさん@お腹いっぱい。
11/12/03 00:00:36.60 X9b56wfw0
マクロのまともな使用目的ってなんだよ

405:403
11/12/03 00:19:27.25 /eCiHqMi0
>>404
だからさ、マクロ目的ならこれよりAHKの方が良いって…w

406:名無しさん@お腹いっぱい。
11/12/03 00:19:31.71 i8U652yV0
ルールを正規に定めている範囲内でそのルールに違反しないこと

407:名無しさん@お腹いっぱい。
11/12/03 10:57:34.98 mXU25fWD0
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回判定するとタイミングずれて結果が変わる
両方を同時に判定しないといけないんだけどもっといい方法無いかな

408:名無しさん@お腹いっぱい。
11/12/03 11:25:51.48 mXU25fWD0
○test_flagが1の時、$FFFF=PEEKCOLOR(446,182)を検出出来なければthenを実行
↑間違えた
○test_flagが1の時、$FFFF=PEEKCOLOR(446,182)を検出するとthenを実行

普通は判定で処理が変わるけど、処理が同じで判定の方が変わる

409:名無しさん@お腹いっぱい。
11/12/03 11:52:21.95 9zFEGBoU0
それ、test_flag で何も切り替わってない気がするけど
if peekcolor(446,182)=$FFFF then ~
ではダメな理由は何?
それと、一行にまとめたからって同時に実行されるわけじゃないかと

410:名無しさん@お腹いっぱい。
11/12/03 11:52:50.87 1rpOnUv/0
this_test_flag = test_flag
this_PEEKCOLOR = PEEKCOLOR(446,182)

共有変数を直接参照し続けなければ良いだろう…とは当然考えてしまうのだが。

411:名無しさん@お腹いっぱい。
11/12/03 12:08:59.69 mXU25fWD0
>>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
これも同じ理由です。そもそも状態を記憶するためにフラグを使ってるのですから
直接参照した上でないと代入や判定の際にタイミングずれて誤作動しました

412:名無しさん@お腹いっぱい。
11/12/03 12:14:18.13 1rpOnUv/0
>>411
別スレッドで動作させるなら
>IF (test_flag xor PEEKCOLOR(446,182))=($FFFE or (test_flag xor 1))
最初のフラグと最後のフラグが同じ値である保証は無いのだが。

413:名無しさん@お腹いっぱい。
11/12/03 12:17:11.88 1rpOnUv/0
俺が誤解してるのかなぁ…

414:名無しさん@お腹いっぱい。
11/12/03 12:18:53.23 1rpOnUv/0
まぁ、そこまで動作を把握してるなら自分で聞いた答えは自分で出してるんだろうな。
もっとシンプルには書けない、で終わりだ。

415:名無しさん@お腹いっぱい。
11/12/03 12:26:58.10 mXU25fWD0
>>408が間違いです。ほんとすみません
test_flagが1の時、$FFFF=PEEKCOLOR(446,182)を検出出来なければthenを実行であってました
どうも混乱しててごめんなさい

416:名無しさん@お腹いっぱい。
11/12/03 12:34:58.12 mXU25fWD0
>>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 ~
と書くよりは誤作動する確立が減るので、一回でなるべく高速に判定したいと思った結果なんですよ

417:名無しさん@お腹いっぱい。
11/12/03 12:42:03.86 1rpOnUv/0
いや、実際の動作的に試したことは無かったので面白いと思いますわ。
で、実際に書いてみた…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
----

418:名無しさん@お腹いっぱい。
11/12/03 12:45:34.02 9zFEGBoU0
私が>>409を書いた理由も>>408が原因だぞ。充分に反省するように。

とりあえず、条件式を1行にまとめたからって全てが同時に判定されるわけじゃなく
優先度の順にビット演算されていくだけなので、IFを多重にした方が高速な場合が多い。

そして実はあるシンプルな回答
if peekcolor(446,182)=$FFFF xor test_flag then ~
たぶんこの1行で行けるんじゃないかな

419:名無しさん@お腹いっぱい。
11/12/03 12:51:03.91 ohnwLlPk0
スケジュール設定で12:00~15:00まで3分毎ってどういう式にすればいいんですか?

420:名無しさん@お腹いっぱい。
11/12/03 12:51:56.72 1rpOnUv/0
>>418
求めるものはそういう回答なのでしょう。

ずれた話しててごめんね。

421:名無しさん@お腹いっぱい。
11/12/03 13:29:11.91 mXU25fWD0
>>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~ の式になる

これは思った通りの動作です

改行が多いと怒られたので

422:名無しさん@お腹いっぱい。
11/12/03 13:29:31.63 mXU25fWD0
途中で切り替わってしまった場合は
フラグ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で答えていただいたのを理解してました。遅レスですが皆さん本当にありがとうございます

423:名無しさん@お腹いっぱい。
11/12/03 13:33:29.83 mXU25fWD0
あと、事後報告なんですが、>>418で回答頂いたのをコードに組み込んで
printで確認したら、やっぱり何回かに1回の割合で誤判定してるみたいです
3、4回走らせると、誤作動はしてないみたいなので、本当にthen以降を実行するかはループを回してチェックする事にしました
ありがとうございました

424:名無しさん@お腹いっぱい。
11/12/03 14:55:45.80 9zFEGBoU0
>>422
>ビット演算が実は逆に時間がかかる場合もあると聞いてビックリです

そういう意味じゃなくて、条件式というのは全てビット演算なのですよ。
マッチしたら1 しなかったら0 という1ビットの値として扱われるものなので
ビット演算子で条件を繋いだりできるわけです。

そしてたとえば
if 超重い関数() and クソ重い関数() and 死ぬほど重い関数() then ~
このような条件式があった場合、andなので一つが0ならそれで確定するのに
ビット演算を全部終わらせようとして常に関数3つとも実行されてしまうので
一つの長い条件式にするよりは多段IFの方が無難なのです。
でも今回の場合は関係なかったかも。

425:名無しさん@お腹いっぱい。
11/12/03 16:28:49.35 mXU25fWD0
>>424
そうなんですか
最終的にはif ビットが立ってるか? thenって言う判断なんですね
凄く参考になったので今if文全部見直してます

426:名無しさん@お腹いっぱい。
11/12/03 20:26:44.32 9zFEGBoU0
ところで、>>407の1行目ってやっぱり
test_flagがどっちであっても同じ動作をするように見えるんだけど・・・
つまり>>409に書いた通り
if peekcolor(446,182)=$FFFF then ~
これと全く同じ動作になってるような?

427:名無しさん@お腹いっぱい。
11/12/03 21:58:02.73 1rpOnUv/0
>>426
>>407 の一行目は完全にフラグ無視の動作だねw
動いていたのは彼の勘違いか、コードの別の部分が変にフラグ書き換えてバグってるんだよ。

別の部分の原因を把握してないから>>423 みたいな事を言ってるんだと思うわ。

428:名無しさん@お腹いっぱい。
11/12/04 15:19:27.08 /9Bgp8pL0
>>426
if peekcolor(446,182)=$FFFF then ~ だと複数回チェックする時に状態反転してるのに同じ物を検出条件にしてますよね?
その間に状態が変わって反転してるかもしれないのでこれだと誤作動です
フラグが反転すると今度は$FFFFを検出しない状態でthen~を実行して欲しいんです
フラグの状態を無視してると言うのが力不足で理解出来ません。良ければその理由を指摘いただけませんか?

>>427
画面の更新タイミングがずれる時(他アプリの起動や描画時間がかかるアプリ、windowsの画面更新そのものが止まる状況、画面上に別アプリを起動した時にそのウインドウが(446,182)の座標に被った場合など)
描画が止まったりすると1回の判定だと当然誤作動するんです。誤動作のタイミングがそれ以外にも色々あるので不定です
then~はエラー復帰と考えていただければ分かりやすいと思います
その判定の為に何回かPEEKCOLOR(446,182)を繰り返してます

429:名無しさん@お腹いっぱい。
11/12/04 15:44:59.59 oaCfJ4/G0
>>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


430:名無しさん@お腹いっぱい。
11/12/04 16:37:31.86 /9Bgp8pL0
>>429
thread処理じゃないのでこのコードが同じになるのは分かります
実際に動かしました。仰るようにthread処理でフラグが変えられた場合のテストコード書いてみます

431:名無しさん@お腹いっぱい。
11/12/04 16:45:45.24 oaCfJ4/G0
>>430
根本的に勘違いをしてそうだな…

432:名無しさん@お腹いっぱい。
11/12/04 17:12:51.75 NfC3QC8T0
っていうか>>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 ~
と全く同じ動作しかしてない。

433:名無しさん@お腹いっぱい。
11/12/04 17:30:39.85 /9Bgp8pL0
今必死に理解に勤めてます
threadであろうがやっぱり同じになると思います。でも何故そうなるか分かりません
数学の証明問題を解いてる気分です
もうちょっと頑張りたいと思います。皆さん本当にありがとうございます

434:名無しさん@お腹いっぱい。
11/12/04 18:04:04.92 /9Bgp8pL0
ごめんなさい。やっと理解できました。根本的に間違ってたようです
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 ~
じゃないとまともに動かない。何故間違ってるのかに気付くまで時間かかりましたがご指摘、本当にありがとうございました

435:名無しさん@お腹いっぱい。
11/12/04 18:17:37.85 /9Bgp8pL0
連投失礼します
今回、if文は本来チェックしたいものをチェックして、フラグで条件が違うならそれでテストする
if 真xor真 これは偽
if 真xor偽 これは真
と言う事を改めて学ばせていただきました。本当にありがとうございます。上みたいにもっとシンプルに考えればよかったんですね
基本に立ち帰りました
理解に協力していただいた皆様に本当に感謝いたします。ありがとうございます
嬉しい事があると話が長くなるタイプなので長文失礼致しました

436:名無しさん@お腹いっぱい。
11/12/04 22:26:58.00 p5fpQ4yg0
ファイル(主にmp4,flv)が壊れているかいないかを判断するのにバイナリの先頭部分を少しみてチェックしたいんだけど、
何か良いwshかAPIあったら誰か教えて下さい。GetDetailsOfでやってみたら駄目だったのでがっくりきた。

437:名無しさん@お腹いっぱい。
11/12/05 23:52:25.98 EZJzSyhp0
APIのReadFileとかCOMのADODB.Streamとかで読み込むことはできるかも知れないけど
そもそもuwscはバイナリを扱えるようにできてないからかなり大変なのでは

438:名無しさん@お腹いっぱい。
11/12/06 00:08:45.77 lh46L2lh0
というか、壊れているかがヘッダーだけで判別できないだろ…
後ろ全部のバイナリチェックが「壊れている」かの本分だと思うけど。

439:名無しさん@お腹いっぱい。
11/12/06 00:22:08.13 Wp/yAHHF0
動画のバイナリチェックなんて事前にハッシュでもとってない限り
実際に見てみるしかないと思うが。

440:名無しさん@お腹いっぱい。
11/12/06 05:16:59.55 Xn7p9Gq+0
uwscで直接チェックするなんて、どこにも書いてないと思うが・・?

441:名無しさん@お腹いっぱい。
11/12/06 12:51:32.12 SfWAQh+f0
そうだね。UWSCとは一言も書いてないからただの誤爆かも知れないね。
いずれにせよ先頭を見ただけでは壊れてるかどうかの判別はできないだろうけど。

442:名無しさん@お腹いっぱい。
11/12/06 16:35:29.26 lJ3EajKr0
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


443:名無しさん@お腹いっぱい。
11/12/06 16:36:33.34 lJ3EajKr0
>>437-441
先頭部分にFLV or ftypi がなければ破損と考えてるだけで、そこまで複雑にチェックしようとしているわけでないです。
PCがしょぼいせいで、ニコニコ動画で作業用BGMとかのファイルをirvineで落としてから聞いてるのですが
たまに開けないのが先頭部分がおかしかったりします。
厳密には修復可能かもしれないですけど、落とし直した方がはやいですし、簡易なチェックでいいと思ってます。


適当に作ったのが↑ですがファイル全部をロードしてしまうので30-100Mあるので動作がもっさりしてます。
ロードするバイトを指定できるCOMかAPIを教えて下さい。書かれてたReadFile関数がそれっぽいのですが、
記述方法がよくわかりませんでした(引数の型の辺り)ので、できればソース御願いします。


444:名無しさん@お腹いっぱい。
11/12/06 16:58:29.07 lh46L2lh0
>>443
URLリンク(www.google.com)

445:名無しさん@お腹いっぱい。
11/12/06 17:13:33.77 SfWAQh+f0
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)

446:名無しさん@お腹いっぱい。
11/12/06 17:22:05.35 lh46L2lh0
あー、すまねぇ。

447:名無しさん@お腹いっぱい。
11/12/06 18:51:34.72 Lhc7BvL10
>>445
早い回答ありがとです。問題なくできました。これからAPI使うときの参考にさせてもらいます。

448:名無し@カレイライス
11/12/06 19:57:13.13 3iAYuHHz0
uwsc4.7bって4.2のkeygen使えない・・・・
使うとEROOR2ってでちゃう
どうしてる?


449:まぁRGBってなに?だと躓くだろうから
11/12/06 20:37:33.71 AJr0eoco0
keygenって何? 不正利用の奴?

450:名無しさん@お腹いっぱい。
11/12/06 20:55:02.91 WHgW2JxR0
キーゲンっていう人の名前

451:名無しさん@お腹いっぱい。
11/12/06 22:05:12.83 FwrdrbV80
>>448
一つ前のバージョンを使う

452:名無しさん@お腹いっぱい。
11/12/06 23:18:50.42 stD1RjnF0
きっと機ー嫌がよくなかったんだろう

453:名無しさん@お腹いっぱい。
11/12/07 21:43:43.16 4DJo4FXi0
>>448 買う

454:名無しさん@お腹いっぱい。
11/12/09 01:40:33.04 2M+DX9BjO
A、B、C、3つの画像のいずれかが表示されたら(複数同時には表示されない)クリックするというのを作りたいのですが
いずれかというところはどういう命令文を使えばいいのでしょうか

画像を認識したらクリックするサンプルをいじって作ろうと思うのですが
ヒントをもらえないでしょうか

455:名無しさん@お腹いっぱい。
11/12/09 01:55:05.09 Er3abYKP0
fib 画像
あたりでググる

456:名無しさん@お腹いっぱい。
11/12/09 08:47:52.58 x34wE5u90
ふぃ・・ fib・・・。

457:名無しさん@お腹いっぱい。
11/12/09 09:01:27.94 2M+DX9BjO
ありがとうございます
後で調べてみます

458:名無しさん@お腹いっぱい。
11/12/09 14:03:10.70 ZN2u4Le30
ifb chkimg("画像")
  btn(left, 0, g_img_x, g_img_y)
endif

いずれかっていう条件には当てはまらないけど
こんな感じのを画像ごとに3つ並べて外側をループで囲むってのはだめ?

459:名無しさん@お腹いっぱい。
11/12/09 16:16:35.81 2M+DX9BjO
ありがとうございます
帰ったら頑張ってみます!


460:名無しさん@お腹いっぱい。
11/12/09 19:48:48.34 aqF2OxRBi
fibとか恥ずかしすぎるミスしてたのかw

ifib 画像1
btn
else
ifb 画像2
btn
else
ifb 画像3
btn
endif

みたいな形でもいける
外出中なもんで、スペルは忘れた

461:名無しさん@お腹いっぱい。
11/12/09 20:47:35.57 7jOegEp80
素直に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

462:名無しさん@お腹いっぱい。
11/12/09 21:20:12.57 23JtmXTV0
orで繋ぐのは無用に重くなるんであんまりよくない。

見た目はいいけどね。

463:名無しさん@お腹いっぱい。
11/12/09 22:44:07.82 rc66RbfO0
>>462
先頭からどれか一つ真になった段階で残りは打ち切らなかったっけ

464:名無しさん@お腹いっぱい。
11/12/09 23:28:22.54 VPRYh0W+0
>>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
11/12/10 02:36:04.03 GmQNgHM/O
皆さんありがとうございます
たぶん思ってたものが出来たと思います(まだちゃんと動作検証してない)
PCが規制で書き込めないので書いたスクリプトは張れませんが
大変助かりました
ありがとうございました

466:名無しさん@お腹いっぱい。
11/12/10 15:04:07.85 U+5trVSR0
どこで聞けばいいのか分からず質問させていただきます

数ヶ月前より今まで使えてたUWSCマクロが動かなくなりました
原因を調べてみるためマクロが動かなくなったソフト(MMO)で「記録」をしてみると
クリック、キータイプ、マウス移動もすべて無視されます
唯一ウィンドウ(ウィンドウ表示状態)だけはアクティブにしてくれるのですが…

これはソフト側が対策をした、という事なのでしょうか?

以前もこのソフトに関しては何度か動かないときがあったのですが(アプ
デ後など)しばらくすると問題なく動いていたのでスルーしていたのですが
今回は長く、困っております

いくら調べても同じ症状の記事を見つけられず質問させていただきました
誘導、もしくは対策方法をご存知の方お願いします

467:名無しさん@お腹いっぱい。
11/12/10 15:05:49.95 U+5trVSR0
追記…
記録するとマウス移動のみ記録されます
それを実行するとマウス移動も無視されます

468:名無しさん@お腹いっぱい。
11/12/10 15:11:39.37 uLuBvpem0
>>466
対策です。無理です。
ゲームバランスを著しく崩す行為ですので。

469:名無しさん@お腹いっぱい。
11/12/10 15:36:21.80 gk5IrJE70
将棋のようなシミュレーションゲームができないか考えてるんだけど、
コマの画像を表示するソフトってない?
MSペイントだとタイトルバーなんかが表示されちゃうんで具合がよくない。
画像のみを出せる方法ないかなあ

470:463
11/12/10 18:25:26.87 nbVIkp880
>>464THX
あれま!全部展開しちゃうのね

471:名無しさん@お腹いっぱい。
11/12/11 21:43:50.57 WnzszzJo0
ちょっとスレ違い気味かもしれませんが有識者がいるかもしれないので質問です
ネトゲにてUWSCで解像度を変更したい&しています
別ゲと同時起動して放置してるのですが、その別ゲではUWSCに反応して蔵落ちしてしまう為
途中で何度も解像度を上げ下げする事ができません
UWSC以外でこのようなソフトの解像度を強制的に変更できるようなソフトに心当たりないでしょうか?
調べても大抵がデスクトップの解像度をソフト起動に合わせて変更する、といったものしか見つかりません
もしご存知の方いたら教えて頂ければと思います

472:名無しさん@お腹いっぱい。
11/12/11 21:59:18.37 WnzszzJo0
すいません、総合質問スレがあったようなのでそちらにします
お騒がせしました

473:名無しさん@お腹いっぱい。
11/12/11 22:00:14.63 H1OHK6kK0
>>471
完全にスレチじゃねえか
どういう調べ方したかしらんが
某ソフトウェア配布サイトで簡単に見つかったぞ

これだからネトゲ厨は嫌われるんだよ

474:名無しさん@お腹いっぱい。
11/12/12 11:49:24.79 LLfHzM0m0
という、どーでもいいレスはいらない。

475:名無しさん@お腹いっぱい。
11/12/12 11:52:22.05 0Qh5xo870
あと。基礎も分からないミジンコ消えろとかいう自称上級者の煽り

ホントどうでもいい

476:名無しさん@お腹いっぱい。
11/12/12 14:39:42.44 QSkZKBfS0
単純に基礎からやってる奴には文句は言わんが
身の丈に合わんことやろうとしてる奴は帰れと言うしかないな。

基礎も知らずに他人のスクリプト弄ろうとしてる奴とか。

477:名無しさん@お腹いっぱい。
11/12/12 15:23:07.76 qh83xYfTi
>>476
まぁ、他人の書いたものを弄り倒す事こそ基礎だがな。
…諦めが早くて、弄る事すら碌にやってないと嫌な感じがするけど。

478:名無しさん@お腹いっぱい。
11/12/12 17:09:25.82 iqcxK7k90
基礎ってのはヘルプを読むことだよ。
ヘルプを読むという手段を知らないかのような質問が多いでしょ?

479:名無しさん@お腹いっぱい。
11/12/13 13:06:06.94 sE7+c6RB0
ちょっと教えて
exe化させるときにアイコンつけたいんですが
iconのフォーマットは何にすればいい?

32x32で24bit 256色 16色のbitmapやったらどれもアイコン無しになりました

480:名無しさん@お腹いっぱい。
11/12/13 13:46:38.73 sE7+c6RB0
ちょっと教えて
exe化させるときにアイコンつけたいんですが
iconのフォーマットは何にすればいい?

32x32で24bit 256色 16色のbitmapやったらどれもアイコン無しになりました

481:名無しさん@お腹いっぱい。
11/12/13 14:30:48.47 q6rbmKTK0
当然 .ico だと思うが…
しかもそんなに人いるスレとは思えないから、そんなに催促しても…

482:名無しさん@お腹いっぱい。
11/12/14 00:25:47.32 4KmcA0Gj0
てs

483:名無しさん@お腹いっぱい。
11/12/14 00:26:08.69 4KmcA0Gj0
てs

484:名無しさん@お腹いっぱい。
11/12/14 00:27:58.64 4KmcA0Gj0
ごめん、>>479-483まで大連投になってた
うちの専ブラちゃんがごきげんななめで

485:名無しさん@お腹いっぱい。
11/12/14 21:18:02.96 DWtKm/tg0
スレチすみません。
Rocketmouseの試用版をインストしたんですが、
ブラウザとかアプリでは使用できないんですか?なにも記録されないんですが・・
デスクトップとかでは記録されます。

486:名無しさん@お腹いっぱい。
11/12/14 22:50:47.50 m7BSWjf60
>>485
死ね

487:名無しさん@お腹いっぱい。
11/12/16 02:30:50.74 Tapsec3+0
OSがWindows7 Home Premiumなんだが、Windows Update来てたのでUpしたら、
Up前に問題なく動作していたスクリプトに不具合が出てしまった。
CHKIMGで認識しなくなったbmpが幾つか出るようになってしまった。
しかし認識してるのもある。

同じような現象になった人、いないかい?

488:名無しさん@お腹いっぱい。
11/12/16 19:36:03.31 ri1vScOh0
だれか uwscでネットから日付取得する
サンプルを貼ってくれないか?

既にどこかで公開されてるならURL頼みます
探してもみつからん・・・

489:名無しさん@お腹いっぱい。
11/12/16 20:24:54.36 xuIXTQf10
実際探してないのに探したといってクレクレする落ち

490:名無しさん@お腹いっぱい。
11/12/16 20:26:51.58 sQzoSKAq0
>>488
そりゃ普通に誰も必要ないからだろう
NTPで定期的に同期させたPCの時計から取得すればいいだけ

491:名無しさん@お腹いっぱい。
11/12/16 20:46:38.25 Fc1rMtya0
>>488
w32tm /resync


492:名無しさん@お腹いっぱい。
11/12/16 21:24:44.62 9c+dE5Hn0
ネットから正確な日時取得したところでUWSC内部で誤差出まくり

493:名無しさん@お腹いっぱい。
11/12/16 22:41:13.40 /M9h7KE90
サンプルってなんだよ。
誤魔化すな

494:名無しさん@お腹いっぱい。
11/12/16 23:48:10.13 ri1vScOh0
>>491
ありがとう できました

>>490
必要か必要でないかは作成者が決める訳で
>>490ではないと思うよ

俺が頭悪いから >>490に教えて欲しいんだが
uwscでexe作って それを知り合いに配布し
たとえば2011/12/20になったら起動不可に
したい場合どうすればいい?

PCから取得する方法だと時刻を過去に設定すれば
すり抜けられるし、設定ファイルやRegに書き込んでも
変更されたら終わる

>>NTPで定期的に同期させたPCの時計から取得すればいいだけ
この方法で 解決策を教えてくれ


495:名無しさん@お腹いっぱい。
11/12/17 00:00:48.17 nqYwVW070
知り合いなら単に使うなって言えばいいじゃん。

PC時計をずらしてまで使うようなある意味敵対的な奴が
要ネット接続な怪しいアプリ使うのか?

そういうのは知り合いって言うのか?

496:名無しさん@お腹いっぱい。
11/12/17 00:27:07.77 4KHeaRRE0
もう子供ばっかりで話にならんわ

問題定義のすり替えばかりで
俺の質問の意味わかってるのか?

使うなっていって終わりってw
プログラムじゃないだろうよ

いちいち人にプログラム渡すときに
このボタンは押さないでくれ 数字は10以上入力しないでくれって
いうのか?
そんなPG会社でようくばらんわ
PC系の処理と人間系の処理の意味を間違えてるぞ
もういいわ

教えてくれた人ありがと

497:名無しさん@お腹いっぱい。
11/12/17 01:04:06.76 PM1mb5GZ0
時刻設定を変えてまですり抜けようとする人が
ネットからの取得だとすり抜けようとしない前提なの?

498:名無しさん@お腹いっぱい。
11/12/17 03:59:37.24 jHIgOVaa0
教えてくれないからって癇癪起こすお子様が現れたと聞いて
ああ、もう冬休みはじまったんだな

499:名無しさん@お腹いっぱい。
11/12/17 04:03:02.55 nqYwVW070
会社でシステム時間を変えて使うとかそっちの方があり得ないだろ…

それにw32tmはシステム時間を変更するってことだぞ。
変更されたものを戻すという事だが
勝手に変更するという意味ではこっちも正直あり得ない。

嘘ばかり言ってないで正直にアングラスクリプトだと言えよw

500:名無しさん@お腹いっぱい。
11/12/17 17:29:04.00 Ai4+vIJ/0
起動時に毎回現在時刻を取得とか発想が馬鹿なんだよ
発想の転換をしたほうがいいね

501:名無しさん@お腹いっぱい。
11/12/18 05:09:29.05 Fplu3OFa0
>>494がやりたいのはサンプル渡して金もらって制限解除だろ。
それも割りと少人数で。
しかもそれがUWSCのスクリプト。

ゲームマクロでは取り込み詐欺が横行してるからそれくらいは基本だろう。

>>495
知り合いっていうのはコミュニティの仲間ってことだろ。
で、マクロとかチートとかを普通にやってて、
マルチ起動のために改造したり仮想マシン使ってたりするので
時刻操作は回避の基本。
そういう相手だからネットでの確認したいわけだろう。

ただ、チートやってるやつは鯖の偽装とかもすぐにできるわけで、
確実に防げるわけではない。


502:名無しさん@お腹いっぱい。
11/12/18 05:17:49.71 Utw2rQbj0
要約するとゲームマクロ用なので教える必要はない

503:名無しさん@お腹いっぱい。
11/12/18 23:01:17.29 9PP8Icls0
たとえゲームマクロに使うんだろうなと思えるものであっても
まともな姿勢での質問であれば普通に対応するけどね。

手法の相談とかならともかく、最初から「サンプル貼ってくれ」で始まって
欲しいものがもらえないと大暴れするなどという態度では
むしろこちらが批判以外の反応を封じられた気分だ。

504:名無しさん@お腹いっぱい。
11/12/19 00:00:44.20 NugiaTsc0
上のほう見るとまともな態度での質問も普通に対応されてないけどな
口だけ達者な自称上級者はこれだから困る

505:名無しさん@お腹いっぱい。
11/12/19 01:10:49.75 BPS3o4Nh0
>>504
上のほうの対応は別人なんだろ

506:名無しさん@お腹いっぱい。
11/12/19 01:13:52.96 RKJ+Ra9m0
>>504
たとえばどれ? 別に返事する義務があるわけじゃないんだから
まともな姿勢なら批判しないってだけで興味が持てなければスルーするよ。
それに上級者を自称してる人なんて見当たらないような。
あと態度じゃなくて姿勢ね。丁寧で礼儀正しくてもスレ違いとかは相手したくない。

507:名無しさん@お腹いっぱい。
11/12/19 04:00:36.28 C9RAxiSh0
threadで動かしている関数から全体の動作を一時的に停止させることって出来ますか?
msgbox等を出せばメインの動作は止まるようなのですが
別のthreadで動かしている物は動作を続けてしまうのです。

508:名無しさん@お腹いっぱい。
11/12/19 10:45:52.90 klJAM/PD0
>>507
公式でtread間はpublic変数でフラグ建ててやるしかないとの回答だった気がス

509:名無しさん@お腹いっぱい。
11/12/19 12:05:07.57 PcTGdR3Q0
>>504
口調だけを繕って内容が伴っていない慇懃無礼な質問ばかりだろ。

口調はどうでもいいんだよ。馴れ馴れしくったって別にいい。

いくら礼儀正しくてもヘルプの目次すら読んでないのが明白な質問は論外だ。

510:名無しさん@お腹いっぱい。
11/12/19 12:17:51.25 Sk7crL9/0
>>506
スルーなんてしないでケチばっかつけてるよ
スルーするのならまだいいよ

511:名無しさん@お腹いっぱい。
11/12/19 12:41:04.90 RKJ+Ra9m0
>>510
だからその、まともな質問なのに答えてもらえず批判だけ浴びたってのはどれ?

512:名無しさん@お腹いっぱい。
11/12/19 14:08:39.22 hBy+rubn0
どれも何も大半じゃねーかよ
読み返せば分かることを何故聞く訳?

513:名無しさん@お腹いっぱい。
11/12/19 14:25:42.45 PcTGdR3Q0
具体的に挙げろって言われてるんだからその大半とやらを全部挙げればいいだろ。

ただしその大半が内容の伴ってない上辺を取り繕った質問ばかりと思うがな。

514:名無しさん@お腹いっぱい。
11/12/19 15:26:08.08 C9RAxiSh0
>>508
そうですか、ゴリ推し気味にやるしかないんですね。
少し試してみます。ありがとうございました

515:名無しさん@お腹いっぱい。
11/12/19 15:57:41.38 RKJ+Ra9m0
>>512
読み返した上で訊いたんだけど・・・
このスレには見当たらないような気がするけど
もしかしてネットゲーム系の板での話とか?

516:名無しさん@お腹いっぱい。
11/12/19 16:07:24.84 PcTGdR3Q0
大半とか言ってる奴はヘルプ見ないのが当然とか思ってる奴だろうよ。

517:名無しさん@お腹いっぱい。
11/12/20 11:17:50.46 I1z01qMJ0
質問なんですが最近PC買い換えて7のhomepremiumにしたんですが
とあるゲームでクリックやボタンを押すなどがちゃんと記憶できないんですがどうすれば直りますか?
動きを保存して内容みてもクリックやボタンの記憶がまったくされず直接かいてもちゃんと働いてくれません


518:名無しさん@お腹いっぱい。
11/12/20 14:17:50.80 9BdOu7Tu0
それだけで答えられたらエスパー

519:名無しさん@お腹いっぱい。
11/12/20 16:10:59.02 T/BCmLqV0
>>517
winXPでは適用されてなかったゲームガードの機能が
win7で100%発揮されるようになっただけ。
XPのCD無いなら諦めろ
アルならほかで聞け

520:名無しさん@お腹いっぱい。
11/12/20 19:46:41.73 H5HZ6kUT0
>>517
エスパーじゃなくてもわかるわこんなの
どうせ、C:\Program Filesとかセキュリティが固い場所に置いたんだろ
Cドライブ直下などにuwscが入ったフォルダを丸ごと移動して使え

521:名無しさん@お腹いっぱい。
11/12/21 03:15:05.27 LO2wcSaY0
>>519>>520
ありがとうございます
>>518
エスパーいっぱいいましたね^^

522:名無しさん@お腹いっぱい。
11/12/21 05:51:42.80 NbTFmBvw0
>>521
いっぱいいましたね^^ じゃねえよ 死ね


って言われる、に1票

523:名無しさん@お腹いっぱい。
11/12/21 06:40:55.92 Cgjt+c0r0
必死だな

524:名無しさん@お腹いっぱい。
11/12/21 10:13:41.81 S1DG2PXK0
お礼だけ言えばいいのになんで無駄に煽るのか

525:名無しさん@お腹いっぱい。
11/12/21 10:25:39.40 m0guMmLf0
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

ご教授いただければ幸いです

526:名無しさん@お腹いっぱい。
11/12/21 11:36:34.51 S1DG2PXK0
ifb chkimg A
  btn A

  ifb chkimg B
    btn B
  endif

elseif chkimg C
  btn C
endif

527:名無しさん@お腹いっぱい。
11/12/21 12:43:54.12 NbTFmBvw0
説明がわかりにくい。
「もし見つからなければ」というのは、何が見つからなければ、なの?
「Aが見つかって、Bが見つからない場合」なのか、
「Aが見つからない場合」なのか。

528:名無しさん@お腹いっぱい。
11/12/21 13:02:01.61 NbTFmBvw0
ってもう答出てたか。

529:名無しさん@お腹いっぱい。
11/12/21 16:48:52.24 m0guMmLf0
>>526
なるほど
ifbは多重構造にしてよかったんですね
ありがとうございます

530:名無しさん@お腹いっぱい。
11/12/22 02:46:07.38 oB/5ab+H0
>>529
ifbに限らずブロック構文はどれも入れ子にできるよ

531:名無しさん@お腹いっぱい。
11/12/23 15:34:17.66 1OKZjyw+0
これってオブジェクト指向なコードは書けますか?

532:名無しさん@お腹いっぱい。
11/12/23 16:03:58.96 dSurOrrj0
>>531
継承が出来ない、インスタンスが作れない
メソッドっぽくは書ける

オブジェクト指向とは言えないだろう

533:名無しさん@お腹いっぱい。
11/12/24 12:42:20.87 gANYDDcZ0
アプリケーションの制御を行う際に、アイテム名が分からない場合には、
どのような方法で調べれば良いのでしょうか?
UWSCの誘惑さんのところにあった、UWSCコードの断片生成器は
使用させていただいたのですが、他の方法はありますでしょうか?

UWSCコードの断片生成器の結果では、アクセシビリティ用
インターフェース経由のクリック対象に出てくるのですが、
残念ながらクリックできず・・・
→クリック出来るものとできないものがあった

よろしくお願いします。

534:名無しさん@お腹いっぱい。
11/12/24 12:53:56.47 hLnvb5FH0
>>533
getitemで出てくるものしか触れません。
getitemで総当りして、さらに総当りでクリックしてみる等の試行錯誤が必要です。

また、クリックできないものも当然ありますので、諦めることも必要です。

535:名無しさん@お腹いっぱい。
11/12/24 13:22:26.12 01nBE9J50
ここでこれを出すのもなんだが、AutoItのWindow Spyを使ってみるのも。

536:名無しさん@お腹いっぱい。
11/12/24 13:56:06.30 gANYDDcZ0
>>534
やはりそうですよね。getitemのmenuは何も出ずに、全てACCのようで・・・
諦めも重要ですね。ショートカットキーで対応できるのでそちらを検討します。

>>535
使ったことがありませんが、調べてみます。

537:名無しさん@お腹いっぱい。
11/12/24 19:11:13.99 AG3yzZVv0
最近覚え始めた初心者なので分からないことがあるんですが
peekcolorを使ってx,y座標にある色が黄っぽい色のとき○○をしてそれ以外なら何もしないというのを
作ろうとしているのですが、書き方が分かりません。
黄色っぽい色の範囲のもたせかたと書き方を教えてもらえるとうれしいです。

538:名無しさん@お腹いっぱい。
11/12/24 20:34:19.56 01nBE9J50
あいまいさを表現するのはかなり難しい

539:名無しさん@お腹いっぱい。
11/12/24 21:11:59.55 VzVtDYcp0
そもそも「黄色っぽい」ってのを数値化出来ないと難しいと思う

540:名無しさん@お腹いっぱい。
11/12/24 21:16:02.16 CitwLENG0
>>537
RGBで、
RとGが一定以上
Bが一定以下

これでいけないかな

541:名無しさん@お腹いっぱい。
11/12/24 21:41:29.85 Ps1enNt30
これ画像認識ってどうやってるんですかね
理屈分からず使ってますけど
空きスペースに動画いくつか開いてても
一瞬で見つけて処理するのが凄いと思いました

542:名無しさん@お腹いっぱい。
11/12/24 23:16:30.33 AG3yzZVv0
>>540
ありがとうございます
頑張ってみます

543:名無しさん@お腹いっぱい。
11/12/25 17:04:38.72 1fGjbCou0
よくあるクリックしてチェックを入れるタイプのアンケートに使いたいのですが、「○」みたいなチェック欄がitmとして認識できず困っています
チェック欄の横に文章を用意し、chkimgで検索しクリックしようとしたのですがうまくいかず…

検索した画像の特定部分をクリックさせることって可能でしょうか

544:名無しさん@お腹いっぱい。
11/12/25 17:33:41.81 J3zF71cl0
可能ですよ

545:名無しさん@お腹いっぱい。
11/12/25 17:46:08.25 1fGjbCou0
>>544
ありがとうございます
もっと探して試してみます

546:名無しさん@お腹いっぱい。
11/12/25 18:05:17.94 xl8mpuTT0
>>543
向こう側としてはまず歓迎できないと思うけど

どっかに自動ツール使用は発見次第ポイント没収とか書いてあるんじゃ無いの?

547:名無しさん@お腹いっぱい。
11/12/25 18:12:21.27 1fGjbCou0
>>546
アンケート設置者も私です
紙媒体で行った分をまとめるのに、また今後のために可能であればつくってみようと取り掛かっている次第です
手入力ですとミスの可能性が捨てきれないので


548:名無しさん@お腹いっぱい。
11/12/25 23:44:36.89 av9xjben0
>>547
アンケート側でもうちょっと上手い実装しろよw

549:名無しさん@お腹いっぱい。
11/12/26 13:19:59.80 y2k2lsFM0
このスレって本当にちゃんとした態度ならアドバイスくれる人と単に茶化すだけの人が分かれるね
>>548もそうだけど単に言うだけなら誰でも出来る。そう思うならちゃんと例を示して指摘してみろと言いたい
仮に設置するアンケートがパソコン使えない高齢者だったり障害持ってる人だったらどうするんだと
まぁ色んな可能性を考慮できないから例も示せないんだろうけどね

550:名無しさん@お腹いっぱい。
11/12/26 14:50:34.64 6fGFBX1+0
年賀状の印刷しようとEP901Aを起動したらガタガタいってハガキを吸い込まなくなった
よりによってこの時期にストライキかてめえコノヤロウ
手書き年賀状なんてやってられねーんだよ

551:名無しさん@お腹いっぱい。
11/12/26 14:51:16.39 6fGFBX1+0
あぁスマン誤爆した

552:名無しさん@お腹いっぱい。
11/12/26 16:41:49.59 sFw9d3YC0
>>550
誤爆なんだろうが、俺もちょっと不安になってきた。
去年はインクが固化して印刷できなかったんだよね…ちょっとチェックするか

553:名無しさん@お腹いっぱい。
11/12/29 09:50:57.63 Mj80iSIF0
どんなにググっても原因が見つからなかったので、ここで質問させて下さい
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を繰り返す

スクリプトの内容はまったく変えていません
原因をご存知の方が居ましたら、対策方法を教えて頂けないでしょうか

554:名無しさん@お腹いっぱい。
11/12/29 10:19:13.33 EVCP5Wph0
>>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とか関係なくなる。


555:名無しさん@お腹いっぱい。
11/12/29 13:20:13.80 Mj80iSIF0
>>554
目から鱗です!
確かにキー入力を使った時に現象が多発していました。
早速キー入力イベントを使ってみます。
本当にありがとうございます!

556:名無しさん@お腹いっぱい。
11/12/30 00:47:23.05 L6jbcesv0
横から聞くけどキー入力イベントってなんぞ?
GetKeyState以外でキー感知できるのか
WinAPIかなにかなのかな

557:名無しさん@お腹いっぱい。
12/01/03 07:34:35.82 PHgd+EtO0
将棋板の升目のように配置された図形がありそのすべてを中クリックし、
次のページがあれば次のページへ移り、次へがなければ終了というものを作成途中です。
以下のマクロですと横一列をクリックして、たて一列をクリックして次のページに行ってしまうのですが、
どこを改良すればよいかアドバイスお願いします。


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


558:名無しさん@お腹いっぱい。
12/01/03 07:35:23.52 PHgd+EtO0
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

559:名無しさん@お腹いっぱい。
12/01/03 10:04:53.44 skFAmUgc0
>>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

560:名無しさん@お腹いっぱい。
12/01/03 10:25:48.10 0XuzNx4L0
>>559 でいいと思うけど普通に二重forループにすればもっと簡潔に書けるな。

561:名無しさん@お腹いっぱい。
12/01/03 10:51:43.21 skFAmUgc0
っていうかこれでいいのでは

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

562:名無しさん@お腹いっぱい。
12/01/03 11:25:10.87 0XuzNx4L0
>>561
ALL_IMG_XとALL_IMG_Yはどこから出てきたんだ

563:名無しさん@お腹いっぱい。
12/01/03 11:28:27.58 bXuTehsY0
>>562
とりあえず最新版のヘルプ位嫁と。

昔はこんなの無かった気がするがな。
chkimgなんか使わんから俺も知らんかった。

564:名無しさん@お腹いっぱい。
12/01/03 12:28:06.64 0XuzNx4L0
>>563
ああなるほど。理解した。ありがとう。
でもall_img_xとall_img_yでうまくいくような画面構成なのかな。
いやよくわからんが。

565:名無しさん@お腹いっぱい。
12/01/06 12:31:16.18 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

どうかアドバイスをお願いいたします。

566:名無しさん@お腹いっぱい。
12/01/06 13:12:51.79 HgkIipKY0
IE叩けばもっときれいにできそうな気がする

567:名無しさん@お腹いっぱい。
12/01/06 18:43:50.67 jkZMFLuo0
0時 1.UWS
3時 2.UWS
6時 3.UWS

翌日
3時 1.UWS
6時 2.UWS
9時 3.UWS

時間をずらしてループさせていく方法教えてください

568:名無しさん@お腹いっぱい。
12/01/06 19:28:28.38 hqV782Fu0
ループ部分だけ、やっつけ回答(検証もしてない)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

569:名無しさん@お腹いっぱい。
12/01/07 12:16:14.80 86C9Ij5x0
ファイルの中身を全消去したいと思っています。
下記のように書きましたが、動きません・・・
どこがおかしいでしょうか?
よろしくお願いします。

fid = FOPEN("C:\log.txt", F_READ or F_WRITE)
For line = 1 to FGET(fid,-1)
FDELLINE(fid,line)
Next
FCLOSE(fid)
EXITEXIT

570:名無しさん@お腹いっぱい。
12/01/07 12:26:01.76 OMSuV0AE0
>>569
ヘルプによると
>F_WRITE      // 書き専用モード(既にファイルがあれば前の情報は消去)

モードにF_READいらないんじゃない?
開いて閉じるだけ。

571:名無しさん@お腹いっぱい。
12/01/07 13:07:06.89 86C9Ij5x0
>>570
F_READを消したらうまくいきました!
ありがとうございます!!

572:名無しさん@お腹いっぱい。
12/01/08 10:50:37.63 Rn7jJzWy0
ブラウザ開いて画面をスクロールしたいと考えていますが
最後のスクロールだけできません。
間違いを教えていただけないでしょうか?

Dim ObjIE = CreateOleObj("InternetExplorer.Application")
ObjIE.Visible = True
ObjIE.Navigate("URLリンク(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

573:名無しさん@お腹いっぱい。
12/01/08 14:08:57.12 pCt01lqC0
>>572
書いてある操作を実際に自分の手作業でやってみろよ。
なぜだかわかる。

574:572
12/01/08 16:33:48.81 Rn7jJzWy0
>>573
レスサンクス。
手作業でも同じ事象になるのは理解しました。
ページクリックすればPAGEDOWNする。
ページクリック=アクティブにするって事・・・じゃなくて?

575:名無しさん@お腹いっぱい。
12/01/08 16:58:41.85 479QIulh0
わからない事がわからない…
そんな時代もありました。

576:名無しさん@お腹いっぱい。
12/01/08 20:34:18.47 aKLGGiFU0
>>572
PageDown キー押下をクライアント領域一つ分下にスクロールさせる事と解釈した場合

OPTION EXPLICIT
OPTION SHORTCIRCUIT

DIM ie = CREATEOLEOBJ("InternetExplorer.Application")
ie.Visible = TRUE
ie.Navigate("URLリンク(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 メソッドの詳細は以下
URLリンク(msdn.microsoft.com)

577:名無しさん@お腹いっぱい。
12/01/08 20:42:08.41 aKLGGiFU0
>>576 訂正します
クライアント領域一つ分下に
  => クライアント領域の高さ一つ分下に

また KBD 関数の第三引数を回数と勘違いしていましたので
document.parentWindow.scrollBy(0, h * 3)
  => document.parentWindow.scrollBy(0, h)
として下さい

まことに申し訳ありませんでした

578:572
12/01/09 05:43:50.93 f0eW8W0qP
>>576-577
ご指導ありがとうございました。
早速、試してみたいと思います。
ありがとうございました!

579:名無しさん@お腹いっぱい。
12/01/10 08:08:39.83 rHvUg0XiO
uwscで現在開いているページのhtmlソースを取得することは出来ますか?
キャッシュの保存場所からの取得を試みたんですがうまくいかなくて。(fgetで1行しか取得出来ない)
なおブラウザはchromeです。何かよい方法はありませんか?


580:名無しさん@お腹いっぱい。
12/01/10 09:00:38.88 oumgSqx8i
>>579
右クリック、ソース表示

uwscはIEのみ割合融通が効く
あとは道が用意されているかで、大半はベタに手作業をやるしかない

581:名無しさん@お腹いっぱい。
12/01/11 03:46:28.70 g75gj0wE0
>>568
さっぱりわからんかったからあきらめた(´・ω・`)

582:名無しさん@お腹いっぱい。
12/01/11 15:24:44.02 m+JsXwWX0
メイン関数内でsleepしてると別スレッドでGETIDした時にやたら時間がかかるんだけど、これは仕様?
メインとスレッドの関係を入れ替えれば問題ないんだけどそれ以外に回避方法ないかな

583:名無しさん@お腹いっぱい。
12/01/11 15:28:03.88 aWCCUq4y0
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)

584:名無しさん@お腹いっぱい。
12/01/11 15:38:50.15 7jlzSH1ui
>>583
エクセルに拘らないなら
テキストファイルの読み出しで良いんじゃない?

585:名無しさん@お腹いっぱい。
12/01/11 16:04:40.34 aWCCUq4y0
>>584
そうですね、その手もあるのですが最終手段で・・・

586:名無しさん@お腹いっぱい。
12/01/11 16:12:21.80 aWCCUq4y0
おそらくOpen Officeのxlsファイルはexecで開くだろうと目星付いているのですが、
そのxlsファイルのA1セルを選択してURLとする関数が分からないんです。
エクセルのサンプルはよく見かけるんですが・・・

587:名無しさん@お腹いっぱい。
12/01/11 16:50:42.40 HGqIT2Nx0
Open OfficeってCOMインターフェイスあるの?
あるなら>>583


588:名無しさん@お腹いっぱい。
12/01/11 16:55:32.60 HGqIT2Nx0
途中で送信しちゃった
COMインターフェイスないなら>>583みたいなCOM経由の操作はできないよ
uwscのgetstrとかで取得してかなきゃダメだとおもう

589:名無しさん@お腹いっぱい。
12/01/11 17:37:55.28 HGqIT2Nx0
ああ
URLリンク(www3.bigcosmic.com)
COM使えるみたい

590:名無しさん@お腹いっぱい。
12/01/12 00:03:51.07 9Jj396OZ0
スクリプトで株の自動注文とか恐ろしい事考える奴いるんだな・・・

591:名無しさん@お腹いっぱい。
12/01/12 10:54:31.82 xBAC4oJN0
>>590
やるなら、API直接叩けるならまだ理解出来る
ブラウザやエクセルの人間的動作を通してなら、不確実過ぎて泣ける

592:名無しさん@お腹いっぱい。
12/01/12 12:46:33.62 nZDoSlf20
>>581
ちょっと見直してみたら間違い発見 スマン
9行目 ×Time2= Time1 -> ○Time1= Time2

というか、このループだと24時間365日PCシャットダウンNGだから実用的でないよw
テキストファイル等にlog落としてやらないと無理だと思う
(UWSCのイニシャルファイルを毎日書き換えるスクリプト書くとか…)


593:名無しさん@お腹いっぱい。
12/01/12 14:26:47.70 BKa5D+cQ0
>>587-589
なるほどですね、ココらへん少し調べてみます。
情報有り難うございます!

594:名無しさん@お腹いっぱい。
12/01/12 23:11:29.95 r8P1bghB0
最新版でもSLIDER関数こわれてない?

595:名無しさん@お腹いっぱい。
12/01/13 07:35:49.49 e/JEGIOK0
>>567
3時間ごとに起動して1日に3時間ずらすなら24時間+3時間の27時間後に再度起動すれば良いよ
スクリプトは適当に組めばいい

596:名無しさん@お腹いっぱい。
12/01/14 02:17:33.07 7l9tSFEA0
ADOを使ってuwscからDBにインサートをかけましたが、
エラーになります。in1を'bbb'など、文字列にすると
DBにインサートをかけることができます。
in1が変数だとエラーになってしまうみたいですが、
何が原因でしょうか?

Dim in1 = "abc"
cn.OPEN()
cn.Execute("INSERT INTO test (test1,test2) values(in1,'aaa');")

597:名無しさん@お腹いっぱい。
12/01/14 09:35:09.72 eeJFKUsa0
文字列の中に変数名を書いてるから

598:名無しさん@お腹いっぱい。
12/01/14 09:41:37.98 7l9tSFEA0
>>597
ご回答ありがとうございます。
cn.Execute("INSERT INTO test (test1,test2) values(in1,'aaa');")を実行
させるには、
cn.Execute("INSERT INTO test (test1,test2) values(" + in1 + ",'aaa');")
とやるしかないでしょうか?

599:名無しさん@お腹いっぱい。
12/01/14 09:42:40.94 eeJFKUsa0
ADOなんてさわったことないからわかんないけど
こうすれば動くのでは?
cn.Execute("INSERT INTO test (test1,test2) values("+in1+",'aaa');")

600:名無しさん@お腹いっぱい。
12/01/14 15:23:08.09 6TClJCPA0
uwscでIEを複数開くとき、一つ一つを新規セッションで開く方法があれば教えてください

601:名無しさん@お腹いっぱい。
12/01/14 15:24:00.25 6TClJCPA0
uwscでIEを複数開くとき、一つ一つを新規セッションで開く方法があれば教えてください

602:名無しさん@お腹いっぱい。
12/01/15 00:41:45.74 nE9VgamT0
comインスタンスをその度生成しろ

603:名無しさん@お腹いっぱい。
12/01/15 01:16:20.39 V/SNJG5u0
>>596
発想がPHPer

604:名無しさん@お腹いっぱい。
12/01/15 10:29:49.46 eKAKYI5K0
ラダーの歩進回路のような
入力Aなら処理1
続いて入力notAなら処理2
続いて入力Bなら処理3
続いて入力notBなら次へ

という感じのを作るのに
各処理をwhile~ if ~elseCONTINUE~endif~wendでやると
すごく長たらしいのですがスッキリできませんか?

605:名無しさん@お腹いっぱい。
12/01/15 12:31:56.88 QrGo7/5p0

「指定した文字の10ピクセル上を左クリック」
うまい方法を教えていただけないでしょうか?

606:605
12/01/15 13:30:10.86 QrGo7/5p0
すいません自己解決しました

607:名無しさん@お腹いっぱい。
12/01/15 16:26:16.85 iv4Sgz2W0
ここ数日マクロ作りにハマって、割と長いのを作ったんだけど、
画像認証が多すぎて、uwscの窓がずっと点滅してる状態なんだけど、長時間ループさせてても大丈夫ですか?

極力sleepを多く入れたんだけど。pcに負担になってるような気がしてちょっと怖い。暴走しそうなオーラが漂っている。


608:名無しさん@お腹いっぱい。
12/01/15 16:36:13.88 vCx4hJnj0
>>607
それぞれの環境・スクリプト・実行時間があるので、実際に試す以外は無いだろう。
制御できる暴走は例外処理と呼ばれるからな。ちゃんとエラーをチェックして対処できるようにしておけよ。

609:名無しさん@お腹いっぱい。
12/01/15 16:59:27.23 kFD794I50
保存押しても保存すべき有効なデータがありませんって表示されるのですがなんででしょうか?


610:名無しさん@お腹いっぱい。
12/01/15 17:41:29.40 xbYnzYrY0
>>609
保存すべき有効なデータがないからじゃね?

611:名無しさん@お腹いっぱい。
12/01/15 20:35:48.49 hkfzc5TE0
>>608
あり^^

いやープログラム作るの楽しいわw

間違いをみつけるのも楽しいし思った通りに動いたときの快感は凄いね。

プログラムって、最初不可能に思えたことでも、粘り強く考えて調べてやってれば、必ず正解に辿り着けるね。

ちょっとでも間違ってたら動いてくれないけどバッチリ作ればその通り動いてくれるところが好き。やりがいがある。

612:名無しさん@お腹いっぱい。
12/01/15 21:54:09.75 GGn+/cHQ0
すげーな。俺なんて

「間違ってる筈無いのに!」←確実に間違ってる

と言う事を悟って尚同じ言葉を繰り返してるぞ

613:名無しさん@お腹いっぱい。
12/01/15 23:55:51.29 MxRh+cwy0
最初は間違ってるか合ってるかわかりやすいんだけど
しばらくやってると合ってるんだけど思い通りには動かないって箇所が出てくるんだよな…

sendstrとかボタンのクリックとか、書いた通りに確実に動くとは限らないってのが
出てくると困る。sendstrの検証とか余計な動作書かなきゃならなくなるのがなんとも。

614:名無しさん@お腹いっぱい。
12/01/16 00:54:02.47 LIA/j70U0
マクロ作り出したばっかりとかプログラムやった事が無い人のために1つ助言をしておいてやろう
「あれ?バグ?」っていう風なおかしな動作を見つけたなら、まずその処理がどんな所にありそうか見当をつける
そして式や処理内容自体を自分が勘違いしてないか確認する
もちろん変数のウォッチはprint文などでチェック
言うまでも無くトレース実行出来る機能があるならそれを使う
そして変数の代入や処理の勘違いも無く全部正常に書き直す作業をする
これだけで驚くほど他のバグが見つかる

615:名無しさん@お腹いっぱい。
12/01/16 01:04:53.01 68a88Ysp0
IEでclkitem関数が同じボタンでも機能する時としない時があるのはなんでなんでしょう
文法は

clkflg = ClkItem(IEid, btn_name, CLK_ACC or CLK_BACK)  //btn_nameのボタンをクリック

であってますよね?同じボタンでもクリックできる時とできない時があります
CLK_BACKを指定すると不安定になるのかしら

616:名無しさん@お腹いっぱい。
12/01/16 02:09:49.92 i+BqAMX70
>>615
ieでなぜにckitem使うのかいな?素朴な疑問…

617:名無しさん@お腹いっぱい。
12/01/16 04:16:02.96 68a88Ysp0
comをほぼ全く把握してないから&別のやつ用のスクリプト流用してるからです^q^
その回答だとcom使ってボタン叩けるってことですよね、面倒だけどMSドキュメント漁ってきます

618:名無しさん@お腹いっぱい。
12/01/16 09:26:47.08 nMIpHxy10
>>567
3時間毎に起動はするけど、
対象外の時間の起動を無効にする処理を入れるとか。

619:名無しさん@お腹いっぱい。
12/01/16 09:38:33.37 OG4ZTORv0
(3時間ごとの時刻生成)+日数×3 mod 24
これでいける。


620:名無しさん@お腹いっぱい。
12/01/17 08:49:01.57 K3OlpIBQ0
>>614に大体賛同だな
あと付け加えるなら処理を行いたいウィンドウがアクティヴになってるか常にチェックを入れておくことかな

621:名無しさん@お腹いっぱい。
12/01/17 17:21:11.31 3FCYgKhU0
>>66
>CTRLWIN(GETID("ウィンドウタイトル"),max,activate)
>とすることで一行で済みました。

こんな書き方って出来るっけ?最初の命令、カンマ以降は利かないようだけど


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