自動化ツールUWSC使いよ集まれ19 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/12/04(日) 17:04:38.16ID:nLvo1o5D0
Windowsの作業を自動化するツール
フリーソフト版とシェアウェア版の2種類がある
ttp://www.uwsc.info/download.html

●UWSC 掲示板(※作成依頼掲示版ではありません)
 質問の際には自力で作ったスクリプトを晒すか、具体的な解らない場所を提示すること
 上級者が常駐、たまに作者も現れるため過去ログには有益情報の宝庫
http://www3.rocketbbs.com/13/bbs.cgi?id=umiumi
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&;;mode=past

●UWSC - Wikipedia
http://ja.wikipedia.org/wiki/UWSC

●使い方・基礎解説学習サイト
http://uwsc.g.hatena.ne.jp/cx20/20100131/1264938584
http://www.confrage.com/uwsc/
http://necro.jp/dev/uwsc/
http://park14.wakwak.com/~simizu/uwsc/fruwsc.html
http://canal22.org/
http://big.tm.land.to/handbook/uwsc.htm
http://www.game-rev.com/review/gameut/uwsc.html

●スクリプトテンプレサイト
http://izagne.com/uwsc/
http://scripts.web.fc2.com/
http://www.nagomi-jp.net/~liners/
http://nem.symphonic-net.com/uwsct/0610uwsct.html
http://siromasa.digi2.jp/uwsc/
http://iriyak.adam.ne.jp/uwsc.html

前スレ 自動化ツールUWSC使いよ集まれ18
http://potato.2ch.net/test/read.cgi/software/1469866649/
2017/02/28(火) 12:35:44.43ID:luielEWi0
てか>>508はそのサイト貼れば的確な答えかってくるのにな
2017/02/28(火) 14:27:51.76ID:pq3cmI0V0
>>520
http://mgg.wp.xdomain.jp/archives/367
ここ参考にMODI試してみた。
そのサンプルのテキストエディタの画面コピーして

全画面 →  エラー
「modidoc.Create( GET_UWSC_DIR+"\ocrtest.bmp" )」ここだけ切り取り → エラー
「Create」ここだけ切り取り → 認識して Createの表示

画像のゆがみもゆらぎもなくてこれでは、なかなか厳しいすね。

なお、CONST miLANG_JAPANESE = 17 を追加して日本語指定も試してみたけど一文字も
認識できなかった。
2017/02/28(火) 14:49:16.92ID:cwO4OCmh0
>>522
>テキストエディタの画面コピー
普通のOCRソフトで試したことあるが画面上の通常の大きさのフォントは認識率悪いね
508のがシンプルな数字のみ大映しとかの場合、もしかしたら行ける?てくらいかも
2017/02/28(火) 15:11:56.47ID:oAMcfL5p0
>>523
そういうのはwaifuとかで拡大処理したものをOCRに掛けるとかなり認識率高くなると思う
2017/02/28(火) 15:17:07.70ID:cwO4OCmh0
そうだろうね
そこまでUWSCに組み込むのは大変そうだけどw
2017/03/02(木) 14:28:42.64ID:LWBBZM3C0
UWSCで排他制御しようと思ってるんですが
http://d.hatena.ne.jp/junjun777/20110810/uwsc_mutex
ここのソースを実行してみたところ(スレッド数は4にしてます)
以下のようなログが出力されるのですが、同じログが複数出るのと
finやstartが出力されない時があるのが理解不能です。何故なのか教えてくれませんか?
21:10.308 TestThread init 1
21:10.346 TestThread start 1 True
21:10.364 TestThread init 2
21:10.385 TestThread init 3
21:10.406 TestThread init 4
21:10.462 TestThread end 1(154)
21:10.475 TestThread fin 1 True(167)
21:10.475 TestThread start 2 True
21:10.582 TestThread end 2(218)
21:10.610 TestThread fin 2 True(246)
21:10.611 TestThread start 4 True
21:10.719 TestThread end 4(313)
21:10.723 TestThread start 3 True
21:10.723 TestThread start 3 True
21:10.881 TestThread end 3(496)
21:10.885 TestThread fin 3 True(500)
2017/03/02(木) 17:03:01.74ID:SpLAcwuU0
>>526
Log("TestThread fin " + id + " " + Mutex.Unlock(id), s)

log()に渡すパラメータ作る時点でmutexのアンロック行われるから、その後に交錯しちゃって
るんじゃないすかね?PRINTの中身がスレッドセーフかどうかもわからんし。
それこそ、log()自体をmutexで排他制御しないとw
2017/03/03(金) 13:33:52.21ID:SixlcSz20
オブジェクト指向をはじめてみた
よくわかんないけど
「主語(クラス) + 動詞(メソッド:クラスの中に置く自作関数) + 目的語(引数)」
って認識でいいんか?
2017/03/03(金) 13:47:38.41ID:hlpbi84m0
>>528
最初はそれでもいいかも

同じ指令でも中の人が違えば動きが違うので用途に応じて中の人を変えるとか、
同じ命令でも引数に渡したクラスが違えば動作変えられるとか、
中の人がその人に合ったデータ覚えていて、頼む人が全部用意する必要がないとかは、
後でやってれば覚える
2017/03/03(金) 14:05:25.76ID:SixlcSz20
>>529
ありがとう
中の人ってなんだ? って調べたらアンサイクロに超絶わかりやすい説明があったわ
ギャルゲーでも作ってみようかなw
2017/03/03(金) 22:32:47.45ID:tQWP9tGB0
以下のような形でchkimgxを使い、目的の画像を見つけたら押すという処理にしたかったのですが。
画像は見つけられてもクリック位置がずれてしまい、うまく押してくれません。
画像を見つけた位置をクリックするようにするにはどうしたら良いのでしょうか?
MID = GETID("ブラウザ名","Chrome_WidgetWin_1")
GID = GETCTLHND(MID,"Chrome_RenderWidgetHostHWND")
id = HNDtoID(GID)
2017/03/03(金) 22:33:37.14ID:tQWP9tGB0
MOUSEORG(id)
sleep(1)
if chkimgx("無題.png",0) then
print "見つけた スコア:" + G_IMGX_SCORE
acw(id)
mmv(G_IMGX_X, G_IMGX_Y)
btn(LEFT, CLICK, G_IMGX_X, G_IMGX_X)
endif
2017/03/03(金) 22:58:19.61ID:Q4N1gAfO0
ずれてるって言ってもランダムとかめちゃめちゃじゃなくて
一定の値でずれてるはずだと思うんだけど
何に使ってるか知らんけど、ずれてる値を自分で調べて補正すればいいだけ
俺もChromeでそういうふうだからラップ関数作って補正して使ってる
2017/03/03(金) 23:54:23.13ID:tQWP9tGB0
>>533
確かにランダムではなく一定の値でずれてそうですね。ありがとうございます、補正してみます。
2017/03/04(土) 09:53:42.09ID:1wPNApkh0
>>531
chkimgxのdll欲しいです
536名無しさん@お腹いっぱい。
垢版 |
2017/03/04(土) 20:28:51.31ID:Hr2MdkrF0
(環境)
Windows7
Office2007

これで、ExcelをUWSCで操作することを考えているのですが

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.open("C:\Users\pro7\Desktop\1.xls")

SENDSTR(0,"=20160000+VALUE(LEFT(B12,2))*100+IF(MID(B12,4,1)=< #DBL> < #DBL>,0,MID(B12,4,1))*10+VALUE(MID(B12,5,1))")

//絶対移動+入力「Excelの日付算出」
EXCEL.Range("N9")
EXCEL.ActiveCell.value = "=20160000+VALUE(LEFT(B12,2))*100+IF(MID(B12,4,1)=< #DBL> < #DBL>,0,MID(B12,4,1))*10+VALUE(MID(B12,5,1))"

と言う文で18行目でCOM_Errorが起きるのですが、原因が分かりません
18行目の""で囲ってある数式内のIF(MID(B12,4,1)=< #DBL> < #DBL>,0,MID(B12,4,1))*10を消せば動きますが、""で囲っている内部の文字列・数式が影響することはあるんでしょうか?
どうにかしてifの部分も消さずに使いたいで消したくないのです
2017/03/04(土) 22:18:52.37ID:3Yt1r+EC0
動作中にトリガーが発生したらUWSC自体を一時停止するように組もうとしています。
そのために
kbd(vk_alt, down, 100)
kbd(vk_F1, down, 100)
としましたが、こうすると一時停止にはなるものの、その間どうもALTキーが押されっぱなしのようでほかの作業に支障をきたしました。

上の2行のあとに
kbd(vk_alt, up, 100)等を付け加えても改善しませんでした。

もし解決策がありましたら教えていただけませんでしょうか。
よろしくお願いいたします。
2017/03/04(土) 23:04:52.33ID:DiYUe0mY0
>>537
トリガー発生したら自分自身で一時停止するようにすればいいんじゃないの?

> 上の2行のあとに
> kbd(vk_alt, up, 100)等を付け加えても改善しませんでした。
停止してるんだから意味ないのでは?
2017/03/04(土) 23:17:41.06ID:6eyytp6z0
slctboxかmsgboxでも出しとけ
2017/03/04(土) 23:23:31.11ID:3Yt1r+EC0
>>538
そうなんです
そうとは知りつつも他に策がなかったのでやってみました

基本的にはUWSCをまわしているパソコンから離れ、放置をしたいです
しかしそのトリガーを目視で確認する必要もあるので、
トリガーが発生 → 一時停止(音鳴らす) → 自身で処理 → 再開
という流れをとっています

いただいた回答からみるに意図していることは無理なんでしょうか
2017/03/04(土) 23:40:50.46ID:DiYUe0mY0
>>540
「自分自身」ってのは*お前*のことじゃないんだけどなw
書いたスクリプトそのものを自分自身という意味で書いてる。

音鳴らしたら無限ループに入るなり上に出てるmsgbox()なりで、今度はおまえ自身の手動操作でその
後に抜けるようにコードを書けばいい。
542540
垢版 |
2017/03/04(土) 23:41:50.83ID:3Yt1r+EC0
すみません
時にはまわしているPCで作業も行い、その時にALTキーおしっぱ状態が続くため、不便ということでした。
2017/03/04(土) 23:43:22.79ID:3Yt1r+EC0
>>541
ああ、理解足らずで申し訳ありません。
実際に試してきます。ありがとうございました
2017/03/04(土) 23:44:42.99ID:H+pL33DZ0
スクリプトの途中で中断させときたい、ってことだろ?
>>539でいいじゃねえか
545536
垢版 |
2017/03/05(日) 09:20:41.36ID:Z7G2NImL0
< #DBL>を<#DBL>にしたら動きました
""で囲っていても特殊記号はエラーとして扱われるんですね
2017/03/05(日) 22:18:24.60ID:XeE/JI8j0
うん
547名無しさん@お腹いっぱい。
垢版 |
2017/03/07(火) 00:06:33.14ID:zEWUndHC0
初めてこのスレにお邪魔して質問なのですが
使用中のExcelのセルに日付を入れるにはどうしたらいいのでしょうか

xls=GETACTIVEOLEOBJ("Excel.Application")
xls.range("A1:A100").value=xls.VBA.Datavalue("2017/1/2”)

こんな感じにしたのですがエラーがでまして
2017/03/07(火) 06:24:23.02ID:7HorZSeY0
日付 × data ○ date
549名無しさん@お腹いっぱい。
垢版 |
2017/03/07(火) 22:23:35.26ID:Jqh/ntwq0
あー dataはJaneにソラで打ったので間違えました
2017/03/07(火) 23:45:21.59ID:fmu/xuz+0
>>547
どんなエラーですか?

そもそも、UWSCのエラーなのかエクセルのエラーなのかもわからない。
2017/03/09(木) 15:21:01.09ID:6R/WmB2w0
>>547
COMからVBAのDateValueを扱う方法がわからないので

//代案1 ワークシート関数式を入れる
xls=GETACTIVEOLEOBJ("Excel.Application")
xls.range("A1").formula="=DATEVALUE(<#DBL>2017/1/2<#DBL>)"
xls.range("A1").copy
xls.range("A1:A100").PasteSpecial(-4163) //xlPasteValues

//代案2 UWSCのGETTIMEからExcelの日付シリアル値を算出する
xls=GETACTIVEOLEOBJ("Excel.Application")
xls.range("A1:A100").value=INT(GETTIME(0,"2017/01/02")/86400)+36526 //86400=60*60*24, 36526:2000/1/1のExcel側シリアル値
2017/03/10(金) 12:05:06.41ID:Q1z203W80
UWSCでキャッチできるエラーはどうやって投げるんですか?
2017/03/11(土) 00:53:06.35ID:WM7p96Uf0
chkimgについて質問なのですが、画面上に形が一致する画像が複数あるとして
指定した画像だけを認識したいのでx1 y1 x2 y2に座標を入れたのですが
座標外の一致している画像を認識してしまうのですが何かいい方法はありますか?
2017/03/11(土) 01:19:01.84ID:e4Jt35L70
その座標でSAVEIMGしてみ。

多分全然見当違いの座標指定してる
2017/03/11(土) 01:26:25.46ID:WM7p96Uf0
確認してみましたが座標は間違っていないんですよね・・・
2017/03/11(土) 01:28:50.15ID:WM7p96Uf0
現状は座標指定してもしなくても画面上に一致する複数の画像の中で同じ画像を認識している感じです
2017/03/11(土) 04:08:44.91ID:w66I1uSl0
>>556
どう考えても検索範囲の座標指定の仕方が間違っているとしか思えんが、
コードがないからそれ以上は答えようがない
2017/03/11(土) 06:36:24.78ID:T2U4j1ti0
mouseorgで相対座標をずらしていて
かつchkimgの座標は絶対座標で書いている

saveimgで確認してみたときは単体で動かし
mouseorgで相対座標を使ってない…とか?
2017/03/11(土) 11:04:29.50ID:e4Jt35L70
それだろうね
560名無しさん@お腹いっぱい。
垢版 |
2017/03/11(土) 23:43:07.13ID:QQENCY8r0
>>551
ありがとうございます
入力したいセルをアクティブにした後
ウィンドウIDを得てキーを送る方法で対処してしまいましたが
以後代案1を使わせていただきます
2017/03/12(日) 13:02:15.88ID:wnqkcg9D0
UWSCで今日は第2日曜日と情報を取得するにはどうすればいいのですか?
2017/03/12(日) 13:22:37.12ID:DbB9gx8z0
GETTIME関数使えばいいんじゃないかな
2017/03/12(日) 13:50:49.80ID:pR2B3N400
GETTIME()
G_TIMW_WW
G_TIME
2017/03/12(日) 14:40:12.33ID:DY9WfU920
>>553
ぜんぶの画像の座標(ALL_IMG_X[], ALL_IMG_Y[])をダンプしてみる

戻値 = CHKIMG( 画像名, [透過色/色無視, x1, y1, x2, y2, 番号, 色幅] )

番号: 複数ある場合の左上からの順番を指定
-1が指定された場合はヒットした数を戻値として返し、
座標情報はALL_IMG_X[], ALL_IMG_Y[] に格納
G_IMG_X、G_IMG_Yには最後にヒットした位置が入る
2017/03/12(日) 15:16:24.25ID:pR2B3N400
>>563
ミスった
GETTIME()後にG_TIME_WWとG_TIME_DDを組み合わせればわかる。
2017/03/12(日) 16:16:28.43ID:NSfut41U0
>>561
1引いて7で割る
2017/03/12(日) 16:50:28.16ID:wnqkcg9D0
みなさん、ありがとうございます!
GETTIME関数を使えば行けると判ったので助かりました
568名無しさん@お腹いっぱい。
垢版 |
2017/03/12(日) 17:18:44.82ID:nR7EjxWQ0
質問させてください

まずtest001と入力して
それをループさせるたびに数字を増やしていきたいのですが
どういった関数を使えばいいのでしょうか?

教えてください(*- -)(*_ _)ペコリ
2017/03/12(日) 19:04:34.64ID:e/n2GJyU0
もうちょっと自分で勉強してから質問して
570名無しさん@お腹いっぱい。
垢版 |
2017/03/12(日) 19:51:37.63ID:nR7EjxWQ0
そこをなんとかお願いします
(*- -)(*_ _)ペコリ
2017/03/12(日) 20:07:27.06ID:pR2B3N400
>>570
copy/val/format/replace
2017/03/12(日) 20:30:34.69ID:OTmukkbY0
>>568
「test001と入力して」というのは
「"test001"という固定の文字列をユーザに入力させる」処理なのか?
固定なのに入力させるのに意味があるのか?それとも任意の文字列を入力させるのか?
その場合、"test123"とか"xyz999"とか"01ABC"とか"test001test001"も受け付けるのか?
それとも「入力して」というのは単に変数への代入を指して言っているのか?
2017/03/12(日) 21:05:01.82ID:5ELOIEYz0
プログラム書いている奴は、
そういう曖昧な質問の記述を心底嫌う。
こうミゾオチの当たりがムカっとするわな…
漠然さや曖昧さを完全に排除する作業が、
コード化という作業の前に必要なのね。
574名無しさん@お腹いっぱい。
垢版 |
2017/03/12(日) 21:13:53.47ID:nR7EjxWQ0
>>572
任意です
入力というか出力させたいんです
お願いです(*- -)(*_ _)ペコリーヌ
2017/03/12(日) 21:15:37.33ID:28bavd2O0
自分が何を欲しているのかよくわかってない人は始末が悪いね

具体的に説明出来たらそれでもう質問が終わってる場合多し。
2017/03/12(日) 21:16:52.59ID:28bavd2O0
>>574
君、自分が何やりたいのかわかってないから他人に説明出来んでしょ。

人に聞く以前の話よ。
577名無しさん@お腹いっぱい。
垢版 |
2017/03/12(日) 21:18:36.61ID:nR7EjxWQ0
>>573
なんか余裕のない人が多いんですね・・・
取り合えず返信待ってみますw
578名無しさん@お腹いっぱい。
垢版 |
2017/03/12(日) 21:26:36.62ID:nR7EjxWQ0
なんというかメモ帳に文字を打つ感じです
お願いします(o*。_。)oペコッ
2017/03/12(日) 21:30:00.87ID:28bavd2O0
>>578
> なんというかメモ帳に文字を打つ感じです
 ~~~~~~~~~~~~

うん。なんというか〜なんて言ってたらダメ
2017/03/12(日) 21:37:29.91ID:IWND+Bod0
とりあえず組む。
それからじゃない?
その動作をしそうなスクリプトにまったく思い至らないわけじゃ無いと思うんだけど。

少なくとも、数字は増やせるでしょ。
あとは文字列とくっつけるだけじゃない?
2017/03/12(日) 21:45:44.09ID:28bavd2O0
建設的に質問と答えのやり取りができるならそれなりに対応できるけど
最初から口あけてエサ落ちてくるの待つ気満々な奴だとこっちもやる気ナッシングですねぇ…
2017/03/12(日) 21:47:04.32ID:ox+joNR10
>>ID:nR7EjxWQ0
ここは、ただで物を教えたい人が見ているスレではなく、
質問から何か得るものがないかを探してる人が見ているだけだから、
ある程度の難度が無いと、誰もまともに答えないよ

おもちゃにされてお仕舞い
2017/03/12(日) 22:14:49.88ID:rl592N7R0
>>568

まず、

> まずtest001と入力して

これ、誰がどこに入力?
まずはここからハッキリさせてくれ。

例:人間がメモ帳に
例:uwscがメモ帳に
例:スクリプトの中で変数に
2017/03/12(日) 22:29:38.06ID:28bavd2O0
そういえばこの質問で思い出したけど、「00001」みたいな右詰めで
桁数足らない部分は0で埋めるようなの
formatで一発とかできないんかな。
replace(format(1,5), " ", "0")
みたいにやる以外に無いんですかね…
2017/03/12(日) 22:41:27.32ID:41wJ0ium0
>>583
人間がメモ帳に…プログラムをエディットしてるメモ帳にってオチだとは思うけど…
そうだとしたらとても何かを伝える気にはなれないw
2017/03/12(日) 22:55:35.08ID:OTmukkbY0
それから「任意」とか言ってるけど、それがどれくらいのことを指してるのか
>>572で挙げたような例を全部対応しないといけないのか
ほんとに?
実はこれでいいんじゃね?

・顧客が本当に必要だったもの
dim i, str
dim prefix = "test"
for i = 1 to 100
str = prefix + replace(format(i, 3), " ", "0")
print str
next
2017/03/12(日) 23:29:38.17ID:1CZJMARH0
>>586
お前みたいなバカがいるからこういうバカがつけ上がる
2017/03/12(日) 23:41:24.66ID:BVWq22Fp0
コード貼るやつって本当にこんなのばっかりだな
2017/03/12(日) 23:47:36.33ID:44stXb+M0
ドヤりたいんだろうなあ
2017/03/13(月) 00:39:15.02ID:0Fc/0uar0
一番悪いのはクレクレ房より
>>586みたいなエサやる奴なんだよな
2017/03/13(月) 00:46:23.52ID:Zt7cgqo20
とはいえ、多分目的のものとは違うと思うがな
2017/03/13(月) 01:28:06.76ID:BKRA/b8M0
こういう奴って毎回低レベルなのが笑える
2017/03/13(月) 03:04:51.03ID:F6YVZgKu0
指定範囲内をランダムクリックしたいのですが、上手くいきません
DIM x = RANDOM(200-190) + 190
DIM y = RANDOM(350-330) + 330
BTN(LEFT,CLICK, x, y)

どうやったらいいのでしょうか…
クリックすらしない状態でした
ご教授ください
2017/03/13(月) 04:01:55.95ID:F6YVZgKu0
>>593です
高速すぎてクリックしているかわからないだけでクリックはしていました
ですが、座標がおかしかったです
座標はどうしたら範囲内ランダムとなりますか?
2017/03/13(月) 04:15:34.06ID:w+OXUPO+0
>>594
10x20ピクセル四方の中をランダムクリックっていったい何なんですか?
2017/03/13(月) 05:27:27.36ID:fE1e7Bz50
たぶんさ…200〜190の間の数がXに欲しいんだろうけど。
ね。
2017/03/13(月) 07:34:45.45ID:AIJYJZRB0
>>594
まずどの範囲をクリックしたいのかが他人にはわからんのですが
2017/03/13(月) 08:10:54.63ID:aJpRdJQ30
>>593
その書き方なら190〜199,330〜349の範囲でランダムクリックすると思う
特に問題ないと思うが
2017/03/13(月) 08:15:51.62ID:ZWYZHyIS0
>>593

エスパーコード
btn(left, click, random(20)+190, random(20)+330, 100)

これで190,330〜200,350の範囲内でランダムクリックになるはず。
最後の100の数値を変えれば連打の間隔が変わるので自分で調整してみて。増やせば間隔が長くなる。
2017/03/13(月) 09:16:02.44ID:ZWYZHyIS0
あ、ごめん、繰り返し連打はしないね。
連打の話しは忘れてくれ。
2017/03/13(月) 10:41:19.00ID:Zt7cgqo20
実際に視覚してみるのがわかりやすいと思うが。
btnする座標にmmvするようにしとけば視覚は出来る

またmouseorg関係じゃねえのかな…とは思うけど
2017/03/13(月) 10:47:34.45ID:Zt7cgqo20
>>599
簡単にコードを書く上に、それがいい加減という点で昨日の馬鹿と同じ臭いがするんだが
同一人物だろ?

> これで190,330〜200,350の範囲内でランダムクリックになるはず。

あれでは190,300〜209,349だ
あまりにもデタラメすぎる
2017/03/13(月) 10:48:50.67ID:Zt7cgqo20
糞俺まで間違った
190,330〜209,349だな
2017/03/13(月) 14:07:34.07ID:RQpE5y9C0
>>603
ああごめんよ。
数値はその通りです。
でも、別人です。
2017/03/13(月) 14:17:59.88ID:RQpE5y9C0
>>603

てか、X側のランダムには10を入れたつもりが20になってた。ますますアホでしたわ。
ただしくは、

btn(left, click, random(11)+190, random(21)+330, 100)
2017/03/13(月) 15:44:33.40ID:racUVKkr0
>>595
クリック座標が同じすぎるとマクロ判定されるゲームがあるって聞いたことがある
2017/03/13(月) 15:45:57.65ID:gzKDRn950
セレクトボックスについて質問

SLCT_BOX
で出るボックスはマウスでボタンを押す形だけど、キーボードのキーをボタンに対応させることはできるの?
例えばWindowsのやつは
はい/Y,いいえ/N
みたいなかんじで出てくるじゃん
2017/03/13(月) 15:57:27.99ID:Zt7cgqo20
>>607
print SLCTBOX(SLCT_BTN or SLCT_STR, 0, "キーを押す","はい(&Y)","いいえ(&N)")

ヘルプには書いてなかったような気がする。書いておくべきとは思う。
2017/03/13(月) 15:59:39.86ID:gzKDRn950
>>608
ありがとう
2017/03/13(月) 16:36:23.75ID:om9L0EbF0
ifb chkimg("012.bmp")
A処理

elseif chkimg("013.bmp")
B処理

elseif chkimg("014.bmp")
C処理

else
msgbox("画像が見つかりません")
endif
このときもし3つの画像が見つかったとき
一番上のAの処理しか実行できませんよ。
画像が3つ見つかったとき上から順番に処理させるのは無理ですか?
2017/03/13(月) 16:37:21.93ID:om9L0EbF0
わかる先生方ご指導お願い致します。
2017/03/13(月) 16:58:29.37ID:dJFzdptY0
>>610
elseifを使わず全てifbで書く
ヒットしたらフラグを立てる
フラグが立っているか、または次の画像がヒットしたら
という条件に直せばいける
2017/03/13(月) 16:59:34.99ID:Zt7cgqo20
画像検出部と処理部に分ける
検出部で3つ全部の画像チェック
その結果を元に処理を分岐
2017/03/13(月) 17:07:41.40ID:om9L0EbF0
>>612  >>613

ifb chkimg("012.bmp")
A処理
endif

elseif chkimg("013.bmp")
B処理
endif

elseif chkimg("014.bmp")
C処理
endif

正しい書き方かはわかりませんが?
これでできましたありがとうございます。感謝です
2017/03/13(月) 20:29:52.66ID:gzKDRn950
プログラムとかほぼやったこと無いけど、uwscではそこそこ書けるようにはなってきたんだ
ただ、ちょっと大きなプログラムを作ってると書いたプログラムの見た目が気になる
何も考えず適当に作ることはできるんだけど
後から手を加えたりすることを考えるとそのうち把握出来なくなっていきそうなんだよねe

「設計」とでもいうのかな
そういうプログラミング全体の書き方として指針になるサイトがあったら教えてほしい
2017/03/13(月) 20:39:06.28ID:OfrpRCCo0
製品でも共同開発でもないんだから形に拘る必要はない
2017/03/13(月) 22:42:53.85ID:Fedw/pSJ0
メンテナンス的に拘ったほうがいいでしょ
でもUWSCは必要なときに必要なだけ手軽に作ってけるのがいいから
最低限ユーザー関数とCallとかの使い方覚えとけばいいと思う
2017/03/13(月) 22:43:46.29ID:3NS29CIy0
いろいろ書いてたらgdgdになったので簡潔に

今時のまともな言語で構造化プログラミングを意識して作れば
数十kライン程度なら十分見通せるコードが書ける
2017/03/13(月) 22:48:32.19ID:Zt7cgqo20
そういうのは最初から意識してないとね…

後からやると地獄ですよorz
ていうか今地獄見てますがな適当に作り始めたのを後悔してる
2017/03/14(火) 00:16:10.49ID:AvgoQ3xf0
たまに、こんなところでCOMエラーが発生するんだけど、もう全体をCOM_ERR_IGN/RETでくくって
COM_ERR_FLGをこまめチェックな方向になるんですかね。

if !IE.busy AND IE.READYSTATE >=4 then break
■ このスレッドは過去ログ倉庫に格納されています