[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/04 05:53 / Filesize : 286 KB / Number-of Response : 1062
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

自動化ツールUWSC使いよ集まれ18



1 名前:名無しさん@お腹いっぱい。 [2016/07/30(土) 17:17:29.59 ID:EHKbGb0r0.net]
Windowsの作業を自動化するツール
フリーソフト版とシェアウェア版の2種類がある
ttp://www.uwsc.info/download.html

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

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

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

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

前スレ 自動化ツールUWSC使いよ集まれ17
potato.2ch.net/test/read.cgi/software/1458731603/

139 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/23(火) 16:01:18.25 ID:vLARyfCf0.net]
エラーの検知と対処を自分で行う発想がない時点で
一定規模以上のモノを造った経験がない証拠

140 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/23(火) 16:20:22.84 ID:kuTSQEvi0.net]
当たり前のこと聞かれたら当たり前の答えになるな

141 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/23(火) 19:07:57.48 ID:elaX5Fhb0.net]
123 と "123" を区別したいという話なら無理なんじゃない?
123 と "あいう" を比較したくないなら chknum(123) = chknum(あいう) でエラー処理できるけど

どういう経緯を経て得た値を、何と比較したいのか、
これがはっきりわかればもう少し踏み込んだアドバイスできると思うけど

142 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/23(火) 20:08:58.72 ID:/FK1B0e20.net]
うわ、chknum("123") って true なのか。余計なことを。

143 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/23(火) 20:24:57.77 ID:rGE5OWl50.net]
文字列が数値であるか調べる関数なんだからtrueなのは当たり前だろ
falseが返るなんてことになったら意味ないだろ

144 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/23(火) 20:26:34.04 ID:gNdXeSAJ0.net]
>>132
自作関数で比較すればいいんじゃね

145 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/23(火) 20:28:22.17 ID:fJY3I3xI0.net]
>>129
片方を正規表現で数値チェックしてヒットしたらエラーにする
ヒントOLEオブジェクト

146 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/23(火) 20:31:55.93 ID:Lck6kF910.net]
VARTYPEじゃいかんのか?

147 名前:133 mailto:sage [2016/08/23(火) 20:34:43.16 ID:/FK1B0e20.net]
型を調べる関数かと勘違いしてた。
vertype使えばいいのか。



148 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/23(火) 22:21:23.59 ID:s1TbUmXS0.net]
>>135
基本的にこちらのコーディングミス発見用途ですね

正規表現やBETWEENSTRで切り出した文字列を使うことが多いんですけど
数値として扱うのにVALでの数値化をし忘れるってことがある。
なんかおかしな動作してるなと思ったら数値での比較が文字列比較になっていた…大体そんなところで。
こういう時は止まってくれた方がずっとありがたいと。

149 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/23(火) 22:30:18.43 ID:s1TbUmXS0.net]
ミスってる時はこんな感じですよ。
ちゃんと書けばいい、で終了なんですけどね。

hoge = "abc123def"
num = betweenstr(hoge, "abc", "def")
if num > 20 then print "何かおかしいぞ" <

150 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/23(火) 22:31:07.26 ID:s1TbUmXS0.net]
不等号が逆だったorz

151 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/25(木) 03:51:48.53 ID:bxJiauzf0.net]
HDMI切替器でPC1は画像検索マクロ走らせてPC2では悠々自適に動画でも見ようと思ったら
PC2に切り替えたらPC1は描画停止するんか〜い
てっきりリアルタイムでずっと描画してるんもんだと思ってたぜ

152 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/25(木) 06:21:55.61 ID:KcSlEXn00.net]
非アクティブの本体側にどういった信号を返すかは切替器の仕様の問題
少なくともUWSCは関係ない

153 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/25(木) 09:20:46.76 ID:+ttmDoX50.net]
グラフィックカードの問題じゃね?
ディスプレイが検出されない場合の出力仕様
PC1ディスプレイ引っこ抜いても動くか試してみればいいな

154 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/25(木) 12:49:25.88 ID:bxJiauzf0.net]
>>147
ビンゴだった
ディスプレイが検出されないと出力してないようだ
さすがにこの仕様だと設定でどうにか出来るレベルじゃないか・・・

155 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/25(木) 13:24:05.82 ID:YFIyJ/gu0.net]
仮想化するとそんなことで思い悩むこと無くなるぞ

156 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/25(木) 21:09:50.92 ID:mReVXUws0.net]
HyperVやらVirtualPCやらVMPlayerやら世の中には便利な仮想OSがあるのに
なんでこの人たちはひたすらバックグラウンドでやりたがるんだろう

157 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/25(木) 21:12:26.93 ID:mXW+T4Cm0.net]
>>150
それ言うならホストとかじゃないの?
VM内のOSはゲストやし



158 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/25(木) 21:48:57.24 ID:YFIyJ/gu0.net]
>>150
仮想マシンはOSじゃねえぞw

159 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/25(木) 22:24:59.74 ID:kswEog8j0.net]
>>150

160 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/26(金) 14:23:00.83 ID:FngsseQ30.net]
CreateOLEObj("Excel.Application")のExcel.Applicationの部分はどうやって調べるんですか?
https://msdn.microsoft.com/ja-jp/library/7sw4ddf8(v=vs.94).aspx
ここの解説を読んでレジストリを見たんですがわからなかったので教えて下さい
JScriptをUWSCで実行したいです

161 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/26(金) 14:49:33.61 ID:X2z4cgkF0.net]
>>154
JScriptはそれ単体では動かないから、IEなどのJScriptが動くアプリを起動させる

162 名前:名無しさん@お腹いっぱい。 [2016/08/26(金) 16:25:18.76 ID:3Fqd7PNH0.net]
>>154-155
"CreateOLEObj ScriptControl" でググれ

163 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/26(金) 17:43:11.35 ID:FngsseQ30.net]
>>156
ありがとうございます

164 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/27(土) 18:08:22.77 ID:5L77i6gH0.net]
uwscってまだ開発継続してるの?

165 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/30(火) 17:01:40.43 ID:Rp6x+4kr0.net]
安全にサーバー建てられるほど知識がないから

自動化したアプリのテキストログをWindows版Googleドライブにアップ&同期して、スマホで外出先から確認できるようにしたけど、テキストログがAndroid版Googleドライブで確認したら文字化けしてた……

っと思ったら書き込み用のテキストのエンコーディング変えたら、変更したエンコードでFPUTするようになってた

あんまりUWSCにエンコードを操作する関数が見当たらない…

それと、スケジュール設定の「休止状態から起動」にチェック入れても、休止状態から音沙汰なし……(Windows10)

使ってるPCのタスクスケジューラが使い物にならない以上、ちょっと期待してたけど無理かー

166 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/30(火) 18:05:35.76 ID:zSNiRBx00.net]
そうですか

167 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/30(火) 18:29:34.18 ID:pREKFHgQ0.net]
使い物にならんのは頭って感じだなぁ…



168 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/30(火) 19:22:19.70 ID:Rp6x+4kr0.net]
スケジュール設定で「休止状態から起動」ができないのが自分の端末だけなのか、Windows10では機能しない項目なのか、あまりUWSCのWindows10における情報がないのでわかりません

なので、このスレにいる方

169 名前:で、出来れWindows10で普通に休止状態(スリープ?)からスケジュール設定が起動できる人がいたら報告してもらえると嬉しいです []
[ここ壊れてます]

170 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/30(火) 19:30:25.58 ID:Rp6x+4kr0.net]
ふつうにENCODE、DECODE関数はあった…失礼
>>159

171 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/08/30(火) 19:31:23.22 ID:ZJU8RiW90.net]
>>162
できてるよ

172 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/01(木) 02:53:13.53 ID:YOt6rFOv0.net]
スクリプトの先頭に0〜5回ランダムで実行する命令を入れたいのですが
for I = 0 to random(5)


next
等色々やってみましたがはうまくいきませんでした
いい方法ありませんか?

173 名前:159 mailto:sage [2016/09/01(木) 02:56:38.06 ID:swp/Xyuf0.net]
情報ありがとうございます

Windows10でUWSCから休止状態の復帰が可能だと確認がわかったので、もう少し頑張って原因を調べてみます

ありがとうございました

174 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/01(木) 03:36:58.11 ID:BrZMfuzA0.net]
>>165
for I = 0 to 0
を入れてみればわかると思うけど、for next は少なくとも1回は実行されるから0回というのはfor文のみでは無理
だからrandomが0の時for文に入らない、あるいはfor文内で実行部分を飛ばす、という風にすればいい

175 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/01(木) 03:40:17.21 ID:JsgI6Ah70.net]
random(5) だと 0〜4 じゃなかった?

176 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/01(木) 03:45:21.36 ID:JsgI6Ah70.net]
i = random(6)
while i
i = i -1
処理
wend

こんなのでいいのでは

177 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/01(木) 09:38:59.98 ID:ijZ7NsTh0.net]
for i = 0 to random(6) - 1
next
-1で0回、4で5回



178 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/01(木) 09:45:38.13 ID:FDgUJ2RM0.net]
>>165
UWSCだとrandom(5)が最初に評価されて戻り値が確定されるはずだけど、他の言語では
どうなるか分からない。悪い癖つけないように、random(5)を変数に格納するべき。

179 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/01(木) 12:14:40.10 ID:nW/X3Ebs0.net]
ロック解除時にタスクからuwsc実行させて
すぐにlockhardさせようとしたらうまくいかなかった
2秒sleepしたらうまく行った
ちょっと残念な挙動やなぁ

180 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/01(木) 17:55:55.65 ID:Fmsfvo9p0.net]
>>165
何故これができないのか

MaxLoop = Random(5)
For i = 0 to 5
 If i >= MaxLoop Then Break

 なんか処理

Next

181 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/01(木) 19:10:30.48 ID:YOt6rFOv0.net]
みなさんありがとうございました

182 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/01(木) 21:29:44.17 ID:yGfskyfN0.net]
CLASS-ENDCLASS内にHASHTBLを定義して
別ファイルからcallしてハッシュを使いたいのですが
ハッシュキーの多重記述エラーになって使えません…。
(キーの多重記述をしていないのは確認済みです)

CLASS-ENDCLASSしないでそのファイル単体でなら使用可能なのですが
原因にご存じないでしょうか?

183 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/01(木) 21:51:26.87 ID:2rm5H8qd0.net]
UWSCのMODULE(CLASS)はインスタンスがないスタティックなイメージ

でもってそのスコープ内では THIS. でアクセス可能
スコープ外からだと MODULE名. でアクセスする必要がある

CALLとかはあまり関係ない話です

184 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/01(木) 22:18:19.14 ID:yGfskyfN0.net]
>>176
呼び出し側でハッシュ定義しているファイルをcallしてから
MODULE名. でアクセスかけていて
呼び出し側を実行するとSyntaxエラー(多重定義)という状況です。
下のようなコードを使用してます


・呼び出し側(test.uws)
call conf.uws

FOR key in CONF.A_LIST
PRINT A_LIST[key]
NEXT


・callするファイル(conf.uws)
CLASS CONF

PUBLIC HASHTBL A_LIST = HASH_CASECARE or HASH_SORT
A_LIST["A"] = "Aです"
A_LIST["B"] = "Bです"

ENDCLASS

185 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/01(木) 22:41:22.52 ID:yGfskyfN0.net]
最終的にやりたいことはforでハッシュ回して
IF A_LIST[key] = "Aです"
のようなときにkey名を取得して
取得したkey名で別に定義したハッシュから

186 名前:中身をとってくるようにしたいのです。

これでできないようならiniファイルでも作って
FOPEN()→キー名のとこだけ取得してからREADINI()みたいになりそうで…。
[]
[ここ壊れてます]

187 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/02(金) 00:26:08.43 ID:OUI4CBa60.net]
iniのセクション名に日本語が使用できたので、やりたいことは解決できました。
ありがとうございました。



188 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/02(金) 00:37:10.80 ID:XxLUfAfW0.net]
>>177
PRINT A_LIST[key]

PRINT CONF.A_LIST[key]

PUBLIC HASHTBL A_LIST = HASH_CASECARE or HASH_SORT
A_LIST["A"] = "Aです"
A_LIST["B"] = "Bです"

この部分は
Procedure CONF
Fend
で囲む

189 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/03(土) 09:02:28.60 ID:61Mxpmlg0.net]
>>167
PRINT "FOR loop=1 TO 0"
FOR loop=1 TO 0; PRINT loop; NEXT // 実行されない
PRINT "end of 'FOR loop=1 TO 0'"
PRINT "now loop="+loop+", out of loop." // 1

190 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/03(土) 09:33:40.61 ID:61Mxpmlg0.net]
最近は公式の方も楽しいのな。


★ 記録と再生について / 山びこ 
UWSCで、検索窓に「相対性理論」と入力したところを記録して再生すると、「soutaiseirironn」と入力します。
「相対性理論」で入力するように再生するには、どうしたら良いのでしょうか ?

☆ Re: 記録と再生について / 俄プログラマー
どこの検索窓なのか書かないと以下のような事が起こります。
A「今の時期スイカを売っているお店を教えて下さい。」
B「スイカならスーパー〇〇に売ってますよ」
A「買いに行ったのですが赤いスイカでした。私は黄色いスイカが欲しいのです。」
B「だったらなぜ最初に黄色いスイカを売っているお店を教えてほしいと言わないのですか?」

☆ Re: 記録と再生について / 山びこ
日本人のほとんどは、ヤフーかグーグルでキーワード検索をするので、検索窓はヤフーやグーグルであることは、頭の良い人なら気が付きます。
サンプルページは数が多いし、UWSC初心者の私には、調べ方が分かりません。
あなた自身、サンプルページに回答があるなら、他人に説教する前に、サンプルページから回答を示すべきです。
俄プログラマーさんは、二度と、私の質問に回答をしないでください。

☆ Re: 記録と再生について / しろまさ
az-store.nrym.org/archive/web/teach
www.redout.net/data/osietekun.html
安心してください。私も二度と回答しません。

191 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/03(土) 13:37:30.64 ID:c5h4aJRL0.net]
クソワロタ

192 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/03(土) 13:55:18.08 ID:1F6A1v5M0.net]
数少ない自分が教えられそうな低レベルな内容だと、こういう糞みたいな質問者相手でも喜んで教えたがる奴はいるからな

193 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/03(土) 14:53:38.88 ID:beC39GeC0.net]
俺なら
「相対性理論」で入力するように再生するように記録すればよい
としか答えようがないなぁw

194 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/03(土) 19:01:34.11 ID:AChv3q8M0.net]
UWSCはwindows10にもう対応した?

195 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/03(土) 19:17:58.30 ID:9x00pYp/0.net]
察するに全角キーの記録がなされてないだけなんだろうけどまったく誰も答える気になってなくて放置されててワロタ

196 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/03(土) 21:26:31.27 ID:gwcLY25g0.net]
>>184
まさにそれ
俺のような奴が根絶されない限りソフトウェア板だろうとどこの掲示板だろうとそういうので溢れてる
自分ので再現できて対処はこれだ!ってくらいの解答力がないアホは黙っておけよな
後で検索して碌な解答がなくて困るのは自分だろうに

197 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 05:24:39.01 ID:OH48HiEN0.net]
プリインWindows7のPCに10をクリーンインストールして使ってます。普通に使う分(UWSC以外での使用)にはむしろ少し動作が軽快になった感じですが、UWSCで重い処理をすると逆に10



198 名前:フ方がいかにも重いという感じでエラーが出やすくなりました。 []
[ここ壊れてます]

199 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 05:28:12.51 ID:OH48HiEN0.net]
すいませんちょっと長く書くとエラーが出るので何回かに分けて書きます。
以下186の続き

具体的にはMetaTrader 4というソフトで画像に連番をつけて保存するという作業ですが、「busyの間待機を繰り返す」という関数で無限ループにはまったり、途中の処理を飛ばして進行してしまうという症状です。

200 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 05:55:29.54 ID:OH48HiEN0.net]


201 名前:186 mailto:sage [2016/09/04(日) 05:58:27.19 ID:OH48HiEN0.net]
うーん、続きを書こうとして今度は完全にbanされてしまいました。
IPではなく書こうとしてる文章で弾かれてる感じですね。

202 名前:186 mailto:sage [2016/09/04(日) 06:01:43.57 ID:OH48HiEN0.net]
自分なりの解決策として7の時はスリープ(0.1)を繰り返したのですが、10では1秒間の待機にしてスリープ(1)の繰り返しにし、それでもダメなときは同じ待機のリピートを更に何回か繰り返すという風にしました。
結果としてはそこそこエラーの出ない処理ができるようになったのですが、それでもブラウザを立ち上げ中とかにやると重くてエラーがでやすくなります(これは7のときも同様)。
それは我慢するとして、リピート関数の多用でとても長ったらしいスクリプトになってしまったのでこれをどうにかできたらなということと、できれば更に処理の確度を高めたいです。
当方、プログラミングの知識など全くなくネットを見よう見まねで試行錯誤しながらやっています。長文すいません。どなたかアドバイスを頂けたら幸いです。

203 名前:186 mailto:sage [2016/09/04(日) 06:02:39.74 ID:OH48HiEN0.net]
スリープをカタカナにしたら書けました。スレ汚しで本当にすみません。

204 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 06:54:35.62 ID:9nXfkv660.net]
そもそも、「busyの間」って何?

205 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 07:53:26.21 ID:ix4FK1aB0.net]
タクス周りの改善でアプリの応答待ち状態が頻繁に出されるようになったか、
現実に即した「処理中」を監視するようになったのか、
詳しい事は分からないけど以前よりBUZY状態になることが多くなってそれを監視するループが抜けにくくなったという事だね

206 名前:186 mailto:sage [2016/09/04(日) 08:01:34.75 ID:OH48HiEN0.net]
>>195
このことです

C_ID = GETID("ウィンドウの名前")
B=STATUS(C_ID,ST_BUSY)
repeat
スリープ(1)
until (B < 1)

207 名前:186 mailto:sage [2016/09/04(日) 08:20:45.58 ID:OH48HiEN0.net]
>>196
なぜ「ビジー状態の間の待機」でエラーが出るのか素人なりに推測したんですが・・・

・7の時から共通の現象で、ビジー状態の途中に「ビジー状態でない」と判定される瞬間が何回かくる。
→ そのため「ビジー状態の間の待機」の繰り返しが有効。

・10では使用感を軽くするため裏で処理の分散とか今までよりも複雑にやっている。
→ そのためUWSCで重い処理をするとエラーが出やすい。

あくまでも自分なりの推測です。



208 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 08:52:53.41 ID:j+4pbG5P0.net]
つまり現時点ではwin10はまだ微妙ということっすかね?

209 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 09:08:47.03 ID:GjLRZWLd0.net]
ブラウザのbusy判定についてもう少し調べてから言えばいいのに
いや、むしろbusy状態が何かをまず調べた方がいい
素人の推測が本当に素人考えで呆れる

210 名前:186 mailto:sage [2016/09/04(日) 09:23:24.41 ID:OH48HiEN0.net]
>>200
まさにおっしゃるとおりの素人考えです。
自分がどのように考え違いをしているのかアドバイスをいただけたらと思って晒したまでです。
自分でもっと勉強するべきだというご指摘もそのとおりだと思ってます。

211 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 09:27:00.05 ID:StefP7XA0.net]
>>197
そのループ絶対抜けないように見えるけど…
#UWSCってvolatileな変数ってあったっけ?

こうすべきじゃないか
C_ID 

212 名前:=@GETID(”ウィンドウの名前”)
repeat
SLEEP(0.1)
B=STATUS(C_ID,ST_BUSY)
until B

もっと簡潔にはこう
while STATUS(GETID(”ウィンドウの名前”), ST_BUSY)
  sleep(0.1)
wend

ひっかかってめんどくさいんで全部全角にした
[]
[ここ壊れてます]

213 名前:186 mailto:sage [2016/09/04(日) 09:39:12.23 ID:OH48HiEN0.net]
>>202
>>そのループ絶対抜けないように見えるけど…

ですが、90%くらいはだいたいうまくいっていてたまに無限ループになるのです。

>>こうすべきじゃないか
>>もっと簡潔にはこう

ありがとうございます。試させていただきます。

214 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 09:53:08.40 ID:9nXfkv660.net]
>>203
あのさ、これじゃBの値は最初に代入されたまま一生変わらないよ?

B=STATUS(C_ID,ST_BUSY)
repeat
スリープ(1)
until (B < 1)

215 名前:186 mailto:sage [2016/09/04(日) 10:01:59.69 ID:OH48HiEN0.net]
>>204
ありがとうございます。
いままで無限ループにならずにだいたいはうまくいっていたのは見せかけで、実は機能していなかったのでしょうかね・・・

216 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 10:18:35.79 ID:ApRsdKxw0.net]
ループの中で条件に使ってる変数の値を更新しないと意味ないな

あとwhileやrepeatは極力使わず
forで実現するといい
要はカウンタで最大ループ数を決めて
全てのループ処理にタイムアウトを付ける
どんなに長く待っても10秒までとか
ループ後に処理続行できない状態を確認して
ダメならやり直し、リブートなどの処理を組むと動作が安定する

217 名前:186 mailto:sage [2016/09/04(日) 11:18:13.73 ID:OH48HiEN0.net]
>>206

スクリプト全体でforを使って画像の名前に連番を付けていて、強引に入れ子状にその中にfor構文を持ってきたことがあったのですが、連番の方に影響が出てしまってダメでした。
ごく簡単に書くと、

FOR I = 1 TO 50

 処理1(連番を付けて画像を保存)
 
 for I = 1 to 4
ビジー状態の間の待機
 next

処理2

Next


これだと画像の名前が1から4が保存されずに5が保存され次は5の繰り返し(上書き保存を聞かれて中断)でした。
うまいやり方はないかもっと研究してみます。



218 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 11:37:06.05 ID:9nXfkv660.net]
>>207
変数とは何か?ってのを根本的に理解してないんじゃね?

FOR I = 1 TO 50

for I = 1 to 4
を重ねてるじゃん。

適宜PRINT文突っ込んでIを表示させてみる、なんてこともしてないよね。
コード見て考えるだけじゃなく、自分の思ったように動いてるのかPRINT文で目視するのもデバッグだよ。
処理1・2の前後に画像ナンバーたるIを表示させれば処理2の前では必ず5になるのが分かる。
そこで、なんで5にしかならんの?ってのを頭で考える。

219 名前:186 mailto:sage [2016/09/04(日) 11:49:51.96 ID:OH48HiEN0.net]
>>208
Iを違う文字に変えないとダメですね。指摘されて気づきました。
FOR I = というのを定型文のように使っていたので、Iが変数だということの意識がどうやら希薄でした。

220 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 12:00:16.03 ID:fewUqw8g0.net]
iはindexの略?としてよく使われるだけでaでもxでもhogeでもなんでもいい

221 名前:名無しさん@お腹いっぱい。 [2016/09/04(日) 12:59:32.75 ID:mzGRGMDO0.net]
integer→int→i

222 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 14:02:23.89 ID:3roQ8uHb0.net]
どうでもいいけど
FORTRANだと、I,J,Kあたりは宣言しなくてもintegerというローカルルールがあった

223 名前:186 mailto:sage [2016/09/04(日) 15:22:35.62 ID:OH48HiEN0.net]
>>>>210
一文字でなくてもいいんですね。勉強になります。

224 名前:186 mailto:sage [2016/09/04(日) 16:08:58.35 ID:OH48HiEN0.net]
以下のスクリプトで解決しました。動きに無駄が全くなくキビキビとしてえらく速くて正確でいいものができたと感激しています。
みなさん、本当にありがとうございました!



FOR I = 1 TO 50

処理1(連番を付けて画像を保存)

For A

225 名前: = 1 To 100
C_ID = GETID("ウィンドウの名前")
B=STATUS(C_ID,ST_BUSY)
ifb B >0 then
スリープ(0.1)
endif
Next

処理2

Next
[]
[ここ壊れてます]

226 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 16:24:44.55 ID:StefP7XA0.net]
>>206が言ってた最後の部分が入ってないんじゃないかな
処理2に含まれてる?
「ループ後に処理続行できない状態を確認して
ダメならやり直し、リブートなどの処理を組む」

227 名前:186 mailto:sage [2016/09/04(日) 16:35:31.36 ID:OH48HiEN0.net]
>>215

処理2は画面範囲の移動であって含まれていません。
試しに動かしてみたらすごくよかったので、処理続行できない可能性への配慮が抜けていました。

>>「ループ後に処理続行できない状態を確認して
ダメならやり直し、リブートなどの処理を組む」

このやり方が全く分からないので時間を見つけて勉強します。



228 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 18:55:44.50 ID:9nXfkv660.net]
>>214
そのfor文の中身、ロジックとして間違ってるよ。
何が間違ってるかは書かない。行右側に何をやっているのか逐次コメント書いて自分で整理してみよう。

229 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 19:03:50.31 ID:fewUqw8g0.net]
変な事をしてるが、動くのは動くだろう

230 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 19:08:52.87 ID:Ted+EPXc0.net]
同じ名前の別のウインドウが次々に、という可能性も

231 名前:186 mailto:sage [2016/09/04(日) 19:34:31.38 ID:OH48HiEN0.net]
>>217-219
今のところ全く正常に動くので意外ですね。そう言えば、元々自分が書いた >>197 もだいたいは曲りなりに動いていたので、結果的に正しく動いているように見えてもロジックが正しいとは限らないのですね。

232 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 19:35:54.52 ID:ix4FK1aB0.net]
>>214
これに入れ替えろ
絶対こっちのほうが良い


C_ID = GETID("ウィンドウの名前")
Repeat
 For A = 1 To 100
  If A = 100 Then Break2
  S L E E P(0.1)
 Next
Until STATUS(C_ID,ST_BUSY)

233 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 19:48:00.60 ID:tDhfFiCO0.net]
>>221
それはスリープ入り過ぎるんじゃないの

234 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 20:01:47.14 ID:9nXfkv660.net]
>>221
そのFOR文は、

SLEEP(10)
BREAK

と変わらんよw

235 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 21:10:15.72 ID:fewUqw8g0.net]
>>221
よくこんな糞スクリプト晒す気になるな

236 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 22:09:50.51 ID:w21PKIKQ0.net]
Webでも結構凄い酷いスクリプトを晒してる人がいるけど
ここまで酷いのは早々ないなぁ

237 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 22:25:56.08 ID:5yK+yEjn0.net]
懇親のギャグが全力否定されててワロタ



238 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/05(月) 08:39:45.04 ID:Jnhm+/T10.net]
>>220
改善点は2つ
getidの外出しと、sleepいらなくなった時点でbreak
getidは重いけどsleepするような場所だから気にする必要ないし
breakしてなくても差は1ミリ秒もないだろうけど

239 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/05(月) 08:48:15.28 ID:Jnhm+/T10.net]
あ〜処理1の後、待ってる間にウインドウが立ち上がるなら
getidを毎回する必要があるな…






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<286KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef