自動化ツールUWSC使いよ集まれ9at SOFTWARE
自動化ツールUWSC使いよ集まれ9 - 暇つぶし2ch100:名無しさん@お腹いっぱい。
12/11/01 00:46:52.17 GDLd7dzX0
>>96
6IZ9AUUp0自演しつこすぎ
お前、AIの意味分かってねーだろ
画像認識なんて状況判断できないしパケありきのもの
UWSCはただのマクロ
パケット判定できないから繰り返してるだけだろうが
ネトゲにおいては厳密に区別されてんだよ
素人自演野郎は引っ込んでろ
>>98
変えられない程度?
調子乗った口きくならやりかた書いてから言えや
出来もしねーくせに偉そうな態度取ってんじゃねえよ
俺はROのkoreいじって作ってたこともあるんでね
自演と低脳しかいねーのなマジで
やり方も書かずに、自演とか煽りとか使えなすぎ
黙って聞かれたこと答えてりゃいいのに、まあ出来る奴自体いないんだろうね

101:6IZ9AUUp0
12/11/01 00:52:13.17 1NqoF7dS0
いや~香ばしいなw
しょせんネトゲ廃人はネトゲ廃人か…

102:名無しさん@お腹いっぱい。
12/11/01 01:11:37.27 qbFiDt/T0
>100
UWSC単品ではパケ判定はできなろうけど、パケ解析アプリ起動しといてそっち監視すればやれん事もない。

103:名無しさん@お腹いっぱい。
12/11/01 03:16:44.11 ynaU+2MIP
厳密な意味はともかくネットゲーマーの間で一般的には、
マクロ=マクロそのもの
bot=自動戦闘してるプレーヤー
って使われ方だけどね。

104:名無しさん@お腹いっぱい。
12/11/01 07:11:08.19 w4h2kJAW0
不正ツーラーの話なんざどうでもいいので巣に帰って好きなだけやれ

105:名無しさん@お腹いっぱい。
12/11/01 08:10:57.15 pJMyzqDC0
>>90-91で名前変えてるじゃんw
煽って答えが出てくるのはチートスレとかvip
一般的なスレで他人を煽ってもメリットなんて一つもないのにw

106:名無しさん@お腹いっぱい。
12/11/01 20:11:07.34 CvC8JJda0
UWSC実行中他のwindowがアクティブにならない方法ってないですか?メッセンジャーとか来ると困るんですが

107:名無しさん@お腹いっぱい。
12/11/01 20:17:43.29 GL3Sn6V7P
ACWかCTRLWINじゃ駄目なの?

108:名無しさん@お腹いっぱい。
12/11/01 20:23:52.82 A9U599jQ0
別スレッドでアクティブウィンドウの変化を監視させるとか

109:名無しさん@お腹いっぱい。
12/11/01 20:28:23.46 yuGS3fAI0
メッセンジャーの方でアクティブにしないようにしろよ

110:名無しさん@お腹いっぱい。
12/11/02 04:00:06.74 YyvMFziPP
もしあれなら直接送れば

111:名無しさん@お腹いっぱい。
12/11/02 21:15:28.74 RTBFr6hI0
アクティブウインドウのID取得→ハンドルに変換→DOSCMD("taskkill /f /im <#DBL>" + HND + "<#DBL>")

112:名無しさん@お腹いっぱい。
12/11/02 21:16:34.00 RTBFr6hI0
まちがえた /im じゃなくて /pid だな

113:名無しさん@お腹いっぱい。
12/11/02 22:30:56.70 rIog9SuL0
ハンドルではなくプロセスIDにすべきでしょ

114:名無しさん@お腹いっぱい。
12/11/03 07:10:17.23 wRFDZ7/80
URLリンク(uproda.2ch-library.com)
PW1
上記の様なマップの宝箱や階段をクリックするブラウザゲーをIEでやっています
MAP巡回をするプログラムは出来たのですが,宝箱の画像認証に課題があります

上記ゲームで宝箱の画像認証はできたのですが,画像にしてしている様に
・宝箱は光ったり暗くなったりして色が変わります

ですので認証する際の画像は
・宝箱の色の光った時と暗くなった時の色彩の変化の少ない所
・宝箱の色が一様な所
を認証できる範囲で一番大きな6×3位の画像
CHKIMG("A.BMP",0,60,160,729,480,-1,IMG_MSK_BGR5からIMG_MSK_BGR6)
で認証しています

しかしながら色の誤差を大きくしてしまっているため,他のMAPの別の所に反応してしまいます
そこで画像の
・宝箱の色彩の変化の大きい所
を選択して宝箱のみ認識する画像にしようとしましたが今度は画像認証を行ってくれませんでした

115:名無しさん@お腹いっぱい。
12/11/03 07:15:03.00 wRFDZ7/80
皆様にお聞きしたいことは
・この様な場合皆様は画像の認証をする際に気を付ける事はしていますか?
・また画像認識できないときの対処のためのプログラムの改善
・綺麗なプログラムについてもアドバイス頂けたら嬉しいです

ちなみにプログラムを下の様にMAPばかり認証してしまった場合に次の処理へ行く様には書き換えていますが進むのには時間がかかってしまってプログラムと共に画像認識を改善したいと考えています

WHILE TRUE
通った道の記録
if 箱が見つかった and boxcount<10
箱をクリック
boxcount++
elseif 階段が見つかった and kaidancount<10
kaidancount++
elseif 青い人の検索 and bluemancount<10
bluemancount++
else
道の検索とクリック
endif
WEND

プログラム詳細も載せておきます(PW1)
URLリンク(uproda.2ch-library.com)


116:名無しさん@お腹いっぱい。
12/11/03 07:54:12.91 H5OBjkDf0
画面外にあるウィンドウに対して画像認識する方法はあるでしょうか
例としては1920,1080のモニタであるウィンドウを2000,1に移動
そのウィンドウに対して画像認識

mouseorg(GETID(GET_ACTIVE_WIN),2)
ACW(GETID(GET_ACTIVE_WIN),2000,1)
if chkimg("a.bmp",0,0,0,800,600)then fukidasi("成功",0,0)

117:名無しさん@お腹いっぱい。
12/11/03 08:22:19.01 cuEEEzHC0
透過色の設定を-1にして形のチェックじゃいけないの?

118:名無しさん@お腹いっぱい。
12/11/03 09:09:25.64 kjGT+Mpz0
3Dポリゴンの色認識が反応しないんだけどなんで?

119:名無しさん@お腹いっぱい。
12/11/03 10:23:56.41 awp5Bdyd0
>>115
光るアニメーションのうちの任意の1枚で、他と混同がなく、
アニメーションの最も遅い瞬間で、
コントラストのなるべくはっきりしたユニークな一枚、
そのコントラストの部分が左上に来るように切り取った8x8ぐらいのを使う。

そいつをSLEEP(0.1)挟んで数回連続CHKIMGし一度でもヒットしたらループ打ち切り。

120:名無しさん@お腹いっぱい。
12/11/03 10:25:42.23 awp5Bdyd0
>>116
XPだとダメ。他のウィンドウの下もダメ。
一時的に画面内に持ってきて判定してすぐ元の位置に戻すとか、
GETITEMで取れるやつで何とかするとか

121:名無しさん@お腹いっぱい。
12/11/03 10:30:15.19 H5OBjkDf0
>>120
スペックかいてなかったです申し訳ない windows7pro64bitです
XPではだめということは7では方法があるんでしょうか


一時的に画面内・・・その発想はなかったです 画面内には開ききれない量のウィンドウを
同時処理したいので、できる限りこの方法以外があればいいのですが・・・

122:名無しさん@お腹いっぱい。
12/11/03 10:39:07.21 awp5Bdyd0
>>115
対象URLとか隠せよ十中八九規約違反だろw
これ運営が見て対策されたらスクリプト作り直しになるぞw
広めるんじゃない、おまえには後ろめたさが足りないw

・IFBがIFになってるぞ
・所々インデントがいい加減
・大文字か小文字か統一しろよ
・THENつけるかつけないかも統一しろよ
・演算子の前後の空白、代入時は詰めるとかのルールならFORのときも詰めたら
・関数名CLICKは俺ならclickForCheckAvoidanceにするな。
 後々関数が増えてきた時に用途がブレないようにするため。
・今のうちに機能ブロックごとに別ファイルに分割したほうがいいかもね

123:名無しさん@お腹いっぱい。
12/11/03 10:40:43.82 awp5Bdyd0
>>121
XP以降は、実際に表示されない部分の画像はOSが描画処理しないことで
パフォーマンスを上げているしくみ
画像が存在しない

124:名無しさん@お腹いっぱい。
12/11/03 11:22:10.74 cuEEEzHC0
>>122 IFBはVer 4.7からIFでもIFBでもどちらでも使えるようになってるよ

>>115 進むのに時間がかかるの意味がちょっとわからないが短絡評価(複数条件がある場合初めの条件が一致したら後の条件は無視)ならできるよ
スクリプトの初めの方にでも option SHORTCIRCUIT を付け加えておく

125:名無しさん@お腹いっぱい。
12/11/03 11:38:50.36 CGupTffW0
ブラゲー面白そうだったらやってみようと思ったがハンゲかよw

それはさて置き、CheckColorでRGB値サーチって手法もあるっちゃある
有効値を+-20とかにして「○○っぽい色」があれば周辺のXY座標を再サーチして
更に「○○っぽい色」があればクリックとか

126:名無しさん@お腹いっぱい。
12/11/03 11:46:03.74 CGupTffW0
ざっくり
URLリンク(uproda.2ch-library.com)

127:名無しさん@お腹いっぱい。
12/11/03 12:22:40.75 kjGT+Mpz0
UWSCって7の64bitだとまともに動かないのかよ、今知ったわ。
ペイントで赤色適当にぬって、$0000FF指定してカーソル移動させようとしたのに無反応とか
何だこの欠陥ソフト

128:名無しさん@お腹いっぱい。
12/11/03 12:27:37.46 awp5Bdyd0
>>127
欠陥ソフトなのでもう使うのは辞めてこのスレにも来ないでね。
このソフトのことはもう忘れてくれ。

129:名無しさん@お腹いっぱい。
12/11/03 12:51:38.02 kjGT+Mpz0
分かったわ。ソフトが糞なら利用者も糞だな
7対応したら起こしてくれ

130:名無しさん@お腹いっぱい。
12/11/03 14:34:20.56 kbMDhJKeP
>>129
文句あるならお前がUWSCより優秀なソフトを自作して使えばいいだけ
キチガイ死ねカス

131:115-116
12/11/04 18:22:16.63 pAPM1NcD0
皆様ありがとうございます!

>>117さん
透過色-1はわかるのですが、形のチェックについて以前ググったときは赤のドラえもんと青のドラえもんが同じ判定をされて、
輪郭とまわりの淵?がはっきりしていなければならないといった認識で,今回の宝箱の周囲の赤色は少し変わるので上手くいかない
のかなといった事を考えていました(私が間違った事を言ってる可能性あります)
詳細な使い方については調べきれずとりあえず使ってみて上手くいかなかったのでほったらかしにしている状況です・・
形のチェックと、透過色との組み合わせについて参考となりそうな検索手段を教えて頂けると幸いです・・・

>>119さん
画像認識のノウハウとても参考になります^^
8*8のユニークな部分を左上に持ってくるとは最初の一点で違うと判断されたら次へ移るということで高速に判定できるのを
狙われているのでしょうか?

132:115-116
12/11/04 18:31:59.22 pAPM1NcD0
皆様ありがとうございます!

>>117さん
透過色-1はわかるのですが、形のチェックについて以前ググったときは赤のドラえもんと青のドラえもんが同じ判定をされて、
輪郭とまわりの淵?がはっきりしていなければならないといった認識で,今回の宝箱の周囲の赤色は少し変わるので上手くいかない
のかなといった事を考えていました(私が間違った事を言ってる可能性あります)
詳細な使い方については調べきれずとりあえず使ってみて上手くいかなかったのでほったらかしにしている状況です・・
形のチェックと、透過色との組み合わせについて参考となりそうな検索手段を教えて頂けると幸いです・・・

>>119さん
画像認識のノウハウとても参考になります^^
8*8のユニークな部分を左上に持ってくるとは最初の一点で違うと判断されたら次へ移るということで高速に判定できるのを
狙われているのでしょうか?

133:115-116
12/11/04 18:56:55.13 pAPM1NcD0


>>122さん
プログラムあまり上手ではないので参考になります!
プログラム検索しているとみなさん見やすくてとても参考になる・・

>>124さん
ありがとうございます!
そんなオプションがあったんですね
画像判定処理に時間がかかるわけではなく、アルゴリズムに問題があるという意味で遅い
のですが仮想化してて重い故今後役に立つ可能性大です!
ご意見から察するに分岐で複数の判定を要する際はは不要な判定も済ませて実行しているのですか

>>125,126さん
プログラム拝見させて頂き思い浮かびました
CHKIMGでは既存の画像を使い、誤認識を防ぐためにpeekcolorを使って周辺のユニークな色1点を検索する事で安定するのではないかと!
最初Peekcolor一点の検索だとMAPの色によっては沢山検索しないといけない気がしましたのでこの方法で試してみたいと思います

134:名無しさん@お腹いっぱい。
12/11/04 23:58:49.47 KbkfVQ2v0
2012/11/5 19:00
↑ここの5の前に0を追加することってできますか?

135:名無しさん@お腹いっぱい。
12/11/05 00:02:05.62 yKEzagQ50
はい

136:名無しさん@お腹いっぱい。
12/11/05 00:45:04.40 ejWB53aA0
>>134
s1 = "2012/11/5 19:00"
tmp = s1
y = Token("/", tmp)
m = Token("/", tmp)
d = Token(" ", tmp)
t = tmp
if Length(m) < 2 then m = "0" + m
if Length(d) < 2 then d = "0" + d
s2 = y + "/" + m + "/" + d + " " + t
MsgBox(s2)

137:名無しさん@お腹いっぱい。
12/11/05 19:24:41.04 akiMXvhL0
strTest = "2012/11/5 19:00"; strSep = "/ :"; DIM strDt[6]
FOR lI=0 TO RESIZE(strDt)
  strDt[lI] = VAL(TOKEN(strSep, strTest))
  IF strDt[lI] = ERR_VALUE THEN strDt[lI] = 0
NEXT
PRINT strDt[0] + "/" + strDt[1] + "/" + strDt[2] + " " + strDt[3] + ":" + strDt[4] + ":" + strDt[5]
PRINT getDateTimeStrByGettimeSeconds(transGettimeSeconds(strDt[0], strDt[1], strDt[2], strDt[3], strDt[4], strDt[5]))


FUNCTION getDateTimeStrByGettimeSeconds(lGettimeSeconds)
  GETTIME(lGettimeSeconds/60/60/24, "2000/01/01 00:00:00")
  RESULT = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2 + " " + G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2
FEND

FUNCTION transGettimeSeconds(lOffsetYears=2000, lOffsetMonths=1, lOffsetDays=1, lOffsetHours=0, lOffsetMinutes=0, lOffsetSeconds=0)
  RESULT = offsetGettimeSeconds(lOffsetYears-2000, lOffsetMonths-1, lOffsetDays-1, lOffsetHours, lOffsetMinutes, lOffsetSeconds)
FEND

FUNCTION offsetGettimeSeconds(lOffsetYears=0, lOffsetMonths=0, lOffsetDays=0, lOffsetHours=0, lOffsetMinutes=0, lOffsetSeconds=0)
  lStrYear = "" + (2000 + lOffsetYears + INT(lOffsetMonths/12))
  lOffsetMonths = lOffsetMonths MOD 12
  IFB lOffsetMonths < 0 THEN
    lStrYear = lStrYear - 1
    lOffsetMonths = lOffsetMonths + 12
  ENDIF
  lStrMonth = "" + (1 + lOffsetMonths)
  IF LENGTH(lStrMonth)<2 THEN lStrMonth = "0" + lStrMonth
  RESULT = _
    GETTIME(0, lStrYear + "/01/01 00:00:00") + GETTIME(0, "2000/" + lStrMonth + "/01 00:00:00") + ((( (( (lOffsetDays * 24 + lOffsetHours) * 60 + lOffsetMinutes )) * 60 + lOffsetSeconds )))
FEND

138:名無しさん@お腹いっぱい。
12/11/05 21:04:31.17 ejWB53aA0
s1 = "2012/11/5 19:00"
t = s1
s2 = Token("/",t) + "/" + Copy(100+Val(Token("/",t)),2) + "/" + Copy(100+Val(Token(" ",t)),2) + " " + Copy(100+Val(Token(":",t)),2) + ":" + t
MsgBox(s2)

139:名無しさん@お腹いっぱい。
12/11/05 23:53:50.95 EWeqSgMeP
S1 = "2012/11/"+"0"+"5 19:00"
MSGBOX(s1)

140:名無しさん@お腹いっぱい。
12/11/06 05:47:28.18 tq2mwrl50
i = "2012/11/05 19:00"
msgbox(i)

141:名無しさん@お腹いっぱい。
12/11/06 09:59:49.60 ncREa9xG0
msgbox("2012/11/05 19:00")

142:名無しさん@お腹いっぱい。
12/11/06 10:10:25.12 JZkjp+op0
k1 = "2012/11/06"
k2 = replace(trim(k1),trim(k1),"2"+"0"+1"+2"+/"+"/"+"1"+"1"+"/"+"0"+"5"+" "+"1"+"9"+":"+"0"+"0")
if pos(trim(k2),"2012/11/05 19:00") > 0 then msgbox(trim(k2))

143:名無しさん@お腹いっぱい。
12/11/06 21:57:36.11 qBMVUonl0
CHKIMGを使った際に返される座標値が-999999,-999999ってかえってくるのですが
この原因が分かる方いませんか?

144:名無しさん@お腹いっぱい。
12/11/06 22:02:17.59 bsmq6tG/0
>>143
chkimg()の返値がFalseなんじゃないの?

145:名無しさん@お腹いっぱい。
12/11/06 23:17:46.43 ncREa9xG0
>>143
ERR_VALUE = -999999

146:名無しさん@お腹いっぱい。
12/11/06 23:23:16.06 qBMVUonl0
ERRなのですか・・・
プログラム中でその様な値となるので、画像の検索用のプログラムで複数回調べるときちんと値は入っていました
ERR_VALUEとFALSEは一緒の事ですよね?

147:名無しさん@お腹いっぱい。
12/11/07 01:14:16.44 LH3dgIzB0
chkimg()の返値がFalse
だから、座標に-99999が格納される仕様なんじゃないの?

148:名無しさん@お腹いっぱい。
12/11/07 01:22:00.92 yDDBvlpr0
>>146
検索用とやらで座標取得できてるなら本スクリプトに何か問題があるんでしょ
情報が少なすぎるし晒してみなよ

149:名無しさん@お腹いっぱい。
12/11/07 11:24:00.24 geuBrNDN0
関数内でchkimgして呼び出し元でG_IMG_X/Y使おうとしてるとか

150:名無しさん@お腹いっぱい。
12/11/07 12:32:38.75 HPKwSu8nP
原始的だけど、カーソル移動やクリックの動作の直前に
fukidasiやprintで座標出してみるといいかも。
どこで躓いてるかすぐわかる。

151:名無しさん@お腹いっぱい。
12/11/10 13:38:19.95 yR0gLTmO0
マウスのカーソル位置を監視し、タスクトレイのメーラーアイコンの見た目の変化を検出するとクリックしてメーラー画面を開くスクリプトを組んだのですが
思い通り動作しないです・・・・ おかしいところがないか見てください。初UWSCです。鶴亀というのはメーラーのソフト名です

While True
WHILE TRUE
ifb GETID(GET_ACTIVE_WIN) = GETID("turukame.exe") then
IFB CHKIMG("a/turukame") = G_MOUSE_X y1 = G_MOUSE_Y
BTN(LEFT,CLICK)
Open(FileName :="C:\turukame\turukame.exe")
Endif
Endif

152:名無しさん@お腹いっぱい。
12/11/10 14:14:57.93 U37qm/mfP
どこから突っ込んでいいのかわからない・・・

とりあえずIFB ○○ = ○ = ○なんて判定の仕方はない
IFB ○○ = ○ and ○○ = ○ なら使える

判定が鶴亀とかいうツールがアクティブの時のみだけどそれ以外の時に変化があるのでは?

WHILE TRUEに対してのWENDがないけどスクリプトの一部?というか無限ループの中に無限ループ?

BTN(LEFT,CLICK) ってどこクリックさせてるの?

G_MOUSE_X y1 いきなり知らない変数出てきてるけどこれ何w

Open(FileName :="C:\turukame\turukame.exe")ってすでにアクティブウィンドウの時の判定なんだから開いてるんじゃないの?

153:名無しさん@お腹いっぱい。
12/11/10 15:18:06.98 sJ45IC2r0
>>151
・CHKIMGの戻り値は true または false なので、マウスカーソルの座標と比較しても無意味。
  画像に一致した座標は G_IMG_X と G_IMG_Y に返る。比較するならこっちと。

・Openは標準関数にはないし、:=使ってるってことは、COMのメソッド呼び出しなんだろうけども
  hoge.Open(FileName :="C:\turukame\turukame.exe") の様にCOMオブジェクト変数が必要
  turukame.exeを実行したいだけならexec関数でいいのでは?

・タイトルに turukame.exe が含まれたウィンドウがアクティブになるのかが、そもそも怪しい。
 常識的に考えて .exe まで入れるものかな?
 ウインドウIDからEXEのフルパスを得て、turukame.exe なのかを判断すべきなんじゃ・・・

154:名無しさん@お腹いっぱい。
12/11/10 15:29:11.11 U37qm/mfP
そもそもマウスカーソルの位置を監視する意味っていうのがわからないなぁ
画像のチェックで変化を監視するなら画像のチェック>変化があったらその場所をクリック(ツールを開く?)だけでいいと思うし

155:名無しさん@お腹いっぱい。
12/11/10 15:37:26.78 3rzXavYu0
while true
 IFb CHKIMG("turukame_icon.bmp",,0,0,1920,1080) then 
   BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,10)
  //BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,10)
  //msgbox("メールを読み終えたらOKを押してね")
 endif
 SLEEP(0.1)
wend

・CHKIMGの画像検索範囲を狭めれば高速化
・メーラーアクティブにダブルクリックが必要なら2つめのBTNも有効に
・メール未読状態継続でiconに変化がない場合はmsgboxを有効に
・お好みに合わせてSLEEP()で調整

反応させたいときのアイコンをPrintScreenボタンでキャプチャし、
画像ソフトに貼り付け、切り出してスクリプトと同じ場所にbmpで保存

156:名無しさん@お腹いっぱい。
12/11/10 17:00:59.72 4gaPkaDwP
>>151
試しに同じ動作のものを書いてみようとしたが、意外にいい線いってるかもしれん。
常駐時の通常アイコンが画面内になく、なおかつアクティブウインドウが秀丸でなければ
秀丸メールを実行したいんだよね?

その考え方を生かすなら、ヒントとしては
>GETID("turukame.exe")

そこはプログラムの実行ファイル名じゃなくて、ウインドウのタイトル(一部でもOK)。
ちゃんとバージョンアップしてるなら GETID("秀丸メール")

あと、秀丸は確かに、既に起動していて常駐の状態でも実行ファイルを再度実行することアクティブになる。
exeファイルの実行はこちらの関数。
EXEC("C:\turukame\turukame.exe")

あと、ifbじゃなくてIF

while trueじゃなくて、while chkimg~ですっきりするかも

whileの中にIFを使って、IFの条件に合う場合はまたwhileのループに戻る方法はこちら
URLリンク(canal22.org)

IFの処理内容にCONTINUE。

157:名無しさん@お腹いっぱい。
12/11/10 19:48:54.06 sJ45IC2r0
>>156
while chkimg~ だとsleep入らないからマズイよ
それと、ifbは旧バージョンからのなごり。(ブロック形式のIF文) 現在ではifでもよい

158:名無しさん@お腹いっぱい。
12/11/10 21:02:21.69 U37qm/mfP
ブロックIF文の時のENDIF忘れの防止にもなるからいまだにIFB使ってるわ

159:名無しさん@お腹いっぱい。
12/11/10 23:12:16.03 e71uMGpA0
ifb=ifになったんだっけ
既存のものの書き換えで済むものしかいじってないから未だにifb使ってるけど

160:名無しさん@お腹いっぱい。
12/11/11 00:16:42.86 cbDQkjay0
>>157
一行じゃなくブロックの場合はIFBって認識だったけど
いつの間にか変わったんだねw

質問主がやろうとしたのは恐らく
while chkimg~
sleep(1)
IF アクティブういんどーID = 秀丸エディタID こんてぃにゅー
wend
EXEC 秀丸メール

的な。
このままじゃ一度新着メールが来てループを抜けると終わってしまうから
さらにこれを囲って、何らかの条件でループさせる必要があるけど。

161:名無しさん@お腹いっぱい。
12/11/11 01:13:09.68 PeXm1Xpu0
一行の時はif、複数行の時はifbって使い分けてる

162:名無しさん@お腹いっぱい。
12/11/11 12:27:22.49 EIVMwjIa0
call文で戻り値を取得したり、引数を参照渡しにしたりすることはできますかね
関数に収めるにはずいぶんと長くなってきたのでcallで呼び出そうと思ったら関数と同じようにはいかなかったよ・・・orz
値をいったんcsvとかに保存する案を思いついたんですが、もっとスマートにいかないでしょうか

あと上記について調べていると、
「関数はFUNCTIONS.UWSにまとめ、Call関数で呼び出すとスッキリ」
というのを某サイトで見たんですが、どういう使い方をすれば関数をまとめれるんでしょうか
PARAM_STRに数字を入れて、select文ぐらいしか思いつかなかった・・・

163:名無しさん@お腹いっぱい。
12/11/11 12:39:21.73 W2O3Etlh0
functions.uwsに関数定義しておいて
callしたあとに呼び出すだけでおk

164:名無しさん@お腹いっぱい。
12/11/11 12:47:21.71 EIVMwjIa0
こ、こいつはすげえ
スマートでスッキリしました 早い返答ありがとうございました

165:名無しさん@お腹いっぱい。
12/11/11 12:49:23.73 W2O3Etlh0
言葉が不足
callしたあとに通常の関数と同じように呼び出せばいい

で、今試したら関数呼び出すところより後ろでcallしても問題なかった
個人的には気分的に関数集は頭で呼び出すけど

166:名無しさん@お腹いっぱい。
12/11/11 14:49:39.77 yiBbj4pQ0
俺の場合、関数も多くなりすぎたので、
C言語に倣って、ヘッダファイル的なものを導入した。
・メイン.uwsがヘッダ.uwsをcall
・ヘッダ.wsが複数のライブラリ.uwsをcall
これで、メインからライブラリの関数を使用出来る。

167:名無しさん@お腹いっぱい。
12/11/11 21:15:28.00 EIVMwjIa0
またまた質問ですorz とあるファイルを初期化する処理を、
ID=FOPEN("a.csv",F_WRITE)
FCLOSE(ID)
ID=FOPEN("a.csv",F_READ or F_WRITE)
と行っていたんですが、何度も行うと開けるファイルの最大数エラーで落ちてしまいます

代替策としてFPUT(ID,"")を考えたのですが、処理が違うのか、同じように動いてくれません
別の方法や上記二つの違いなどがわかる方がいればお願いします

168:名無しさん@お腹いっぱい。
12/11/11 21:47:09.88 pqupsn940
>>167
>ID=FOPEN("a.csv",F_READ or F_WRITE)
に対する fclose() が無いだけとか?

169:名無しさん@お腹いっぱい。
12/11/11 21:47:25.87 nEYrXvAJ0
FPUT(ID,"",F_ALLTEXT)

170:名無しさん@お腹いっぱい。
12/11/11 22:23:30.37 EIVMwjIa0
>>168
そういえばそうだ・・・ 最初の2行で閉じる処理含めてると思ってた
が、全然そんなことはなかった よくよく考えるとただの凡ミスでしたorz
>>169
こんな便利なものもあるんですね お手軽そうなのでこちらと入れ替えてみます

お二人とも助言ありがとうございました

171:名無しさん@お腹いっぱい。
12/11/11 22:31:23.36 ZZM82fps0
FPUT(ID,"")だと、文字列""をファイルの最後に追記
FPUT(ID,"",F_ALLTEXT)だと、ファイル内容全体を文字列""に置き換え

172:名無しさん@お腹いっぱい。
12/11/12 02:54:41.06 OlDOm8Fh0
2012/11/12 UWSC Ver4.8c、 Pro版と Free版をリリースしました。

173:名無しさん@お腹いっぱい。
12/11/12 06:39:25.63 wpgyrI0S0
DOSCMD関数にてマルチ行の実行を出来るようにした
他はバグの修正っぽい感じだがこれかなり使いやすくなるな

174:名無しさん@お腹いっぱい。
12/11/13 09:14:04.79 /2/KNnBu0
新バージョン出たようだな
URLリンク(www.uwsc.info)


[Ver4.8c]
  uwsc.exeに引数で UNICODE文字を渡せなかったのを修正
  ループの中で DIM宣言の配列サイズを増やした時にエラーになるのを修正
  SENDSTR関数の追加モードにてサイズが大きいと遅いのを修正
  FUKIDASI関数にて ちらつくパターンがあるのを修正
  LockHard(True)実行中にコンテキストメニュのクリックが出来なかったのを修正
  IESETDATA関数にてSELECTの変更でダイアログが出た時にスレッドでの処理が出来なかったのを修正
  CLKITEM関数にて種別を省略したデフォルト処理で ClK_ACCも処理するようにした
  DOSCMD関数にて出力が ANSIだったのを UNICODEでの出力も出来るようにした
  DOSCMD関数にてマルチ行の実行を出来るようにした
  Pro版:
  CREATEFORM関数を使用すると桁数の大きい小数点演算で値が変になるパターンがあるのを修正
  Debugger: フォントのサイズ変更後にペースト処理にて表示が崩れる事があるのを修正
  Uws2Exe: バージョン情報の書き込みを出来るようにした

175:名無しさん@お腹いっぱい。
12/11/17 09:31:48.50 02OswU310
すいません
gettimeで出力する時間を
35分とか40分みたいに現在から一番近い時間に設定することは可能ですか?
今から31分だから35分 みたいな感じで出来ると便利ですが

176:名無しさん@お腹いっぱい。
12/11/17 09:57:30.32 02OswU310
5分毎の時間って意味です 

177:名無しさん@お腹いっぱい。
12/11/17 10:08:33.80 DD725hiA0
算数の知識を試してるのか

178:名無しさん@お腹いっぱい。
12/11/17 10:18:44.44 yBBowb8E0
取得した分を5で割って余りが0以外ならその値に1プラスして5をかける

179:名無しさん@お腹いっぱい。
12/11/17 10:21:48.88 yBBowb8E0
なんか分かりにくい日本語になってしまった気がしないでもないけど気にしない

180:名無しさん@お腹いっぱい。
12/11/17 10:37:18.66 fccdun/F0
>>175-176
何がやりたいのか自分でもわかってない
やりたいことをきちんとした文章で表現できてない。
要求仕様を日本語で正しく表現できれば、
後はそれをプログラミングするだけの簡単な内容だよ。
算数も小学校レベルでOK

181:名無しさん@お腹いっぱい。
12/11/17 10:46:01.36 03ErtcdC0
要するに、5分刻みで切り上げたいだけ?

182:名無しさん@お腹いっぱい。
12/11/17 10:58:41.85 os6AsipL0
>>176
GetTime(5 / (60 * 24)) //5分後の時刻を得る
nn = Int(G_TIME_NN / 5) * 5 //分を5の倍数にする
if nn < 10 then nn = "0" + nn //分を2桁にする
GetTime(0, G_TIME_YY4 + G_TIME_MM2 + G_TIME_DD2 + G_TIME_HH2 + nn + "00") //時刻変数に時間を設定する
MsgBox(G_TIME_YY4 + "年" + G_TIME_MM2 + "月" + G_TIME_DD2 + "日 " + G_TIME_HH2 + "時" + G_TIME_NN2 + "分" + G_TIME_SS2 + "秒")

>>178
その方法だと、年・月・日・時も補正する必要あるから面倒だよ。閏年とかも

183:名無しさん@お腹いっぱい。
12/11/17 11:03:48.95 02OswU310
>>182
ありがとう

184:名無しさん@お腹いっぱい。
12/11/17 11:30:27.01 os6AsipL0
>>183
ごめん凡ミス。きっちり5分後だとまずいんだった。最初の行は…
GetTime((60 * 5 - 0.01) / (60 * 60 * 24)) //約5分後の時刻を得る

185:名無しさん@お腹いっぱい。
12/11/17 11:58:49.54 4ErzmqGgP
一番近い時間とか計算で出すよりも実行フラグ作ってフラグが立ってる時のみG_TIME_NN MOD 5 なら実行とかした方が楽じゃね?

186:名無しさん@お腹いっぱい。
12/11/18 18:43:07.61 Va2B+ONc0
画像を開くにはどうすればいいですか?


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