自動化ツールUWSC使いよ集まれ16at SOFTWARE
自動化ツールUWSC使いよ集まれ16 - 暇つぶし2ch150:名無しさん@お腹いっぱい。
15/11/27 14:23:32.71 qwTQlhP30.net
>>137,137
バックグラウンドで動作させてるわけではないんだが、IEだとちらつく。
他のアプリではあまり見ないのでIEだけが問題なのかもしれん。
あとposaccもちらつくな。
使ってる量的にはchkimgよりpeekcolorが、peekcolorよりposaccの方が多いから
原因はposaccかも。

151:名無しさん@お腹いっぱい。
15/11/27 14:33:55.72 AjRZAbKp0.net
え、MORG_BACKにする=バックグラウンドだろ
だったらMORG_FOREにしとけよ

152:名無しさん@お腹いっぱい。
15/11/27 19:20:14.27 qwTQlhP30.net
俺と>>132は別人だよ。
最初からバックグラウンドにはしていない。

153:名無しさん@お腹いっぱい。
15/11/27 21:21:48.29 AjRZAbKp0.net
おお、すまんな
IEだとFOREでもちらつくのか

154:131
15/11/27 23:19:54.60 uYW4zJhI0.net
みなさんありがとうございます
バックグラウンドで動かしたかったんですがMORG_BACKだと仕方ないみたいですね
諦めてちらつきは我慢することにします

155:名無しさん@お腹いっぱい。
15/11/28 18:17:20.79 FR9Rv/l10.net
VMwareのゲストOS上で主に、たまにホストOS上で動かすスクリプトがあるんですが
スクリプトからホストかゲストか否かを判定する方法ないですかね?

156:名無しさん@お腹いっぱい。
15/11/28 20:22:07.03 dldTCCO80.net
>>145
c:\ほにゃ.txt とか置いといてそん中に Guest or Host って書いておく
起動時にそれを読んで判断じゃダメ?

157:名無しさん@お腹いっぱい。
15/11/28 20:39:20.97 wN8TzbSm0.net
レジストリ読めばいいだけじゃん
UWSCじゃなくてバッチでもできることだしこのスレでは特に関係ない話題よね

158:名無しさん@お腹いっぱい。
15/11/28 20:53:54.86 FR9Rv/l10.net
>>146
それ単純でいいですね。146さんもありがとうございます。

159:名無しさん@お腹いっぱい。
15/11/28 21:25:51.53 qtPTFMZU0.net
>>146
もっと言えば、ほにゃがGuest or Hostで、そのファイルがあるかないかだけで、中まで見なくていいよね

160:名無しさん@お腹いっぱい。
15/11/28 21:43:33.70 oqtIKp380.net
GET_APPDATA_DIRでユーザーネームあたりを確認してもいいよね
同じじゃなければだけど

161:名無しさん@お腹いっぱい。
15/11/28 23:05:00.83 wN8TzbSm0.net
だからレジストリ見れば一発だろうが
DosCmd("wmic csproduct") の戻り値を参照しろ
VMware Virtual Platform ってのが入るから

162:名無しさん@お腹いっぱい。
15/11/28 23:25:03.94 FR9Rv/l10.net
別に無視してるわけではないですが、ファイル作って判別する方が
仮想か否かだけでなくどのPC/OSかという判別が容易なのでこっち採用です

163:名無しさん@お腹いっぱい。
15/11/29 00:47:57.33 JUXVZ/4C0.net
iniファイルで良いような…

164:名無しさん@お腹いっぱい。
15/11/29 16:45:06.45 D3s05B910.net
chromeでバックグラウンド動作させたいんですけど
mouseorgでmorg_direct指定してるのにbtnでクリックするとアクティブになってしまいます
何所がいけないんでしょうか?
id = GetId("google chrome")
id = GetCtlHnd(id, "chrome_RenderWidgetHostHWND")
MouseOrg(id, morg_direct, morg_back)
hoge=0
WHILE hoge<20
 hoge=hoge+1
 btn(left, click, 100, 100)
 sleep(0.2)
wend

165:名無しさん@お腹いっぱい。
15/11/29 22:40:44.71 PLkzB9890.net
callってどういう時に使えばいいんだろう
少しずつ部品となるプログラムを作って、それを大元のプログラムで呼び出すような作り方をしてるんだけど、
uwscファイルがどんどん増えていって、どんどんわかりにくくなる
・何度も、何行も書かなきゃならない処理を一行で書ける
・変更する場合も呼び出し先のファイルを変更するだけでいい
こういうのが利点なのかな?

166:名無しさん@お腹いっぱい。
15/11/29 22:51:34


167:.18 ID:Eprjqt/E0.net



168:名無しさん@お腹いっぱい。
15/11/29 23:10:30.89 PLkzB9890.net
やっぱり自作関数をつくるべきなのか
引数とか処理の流れとかがよくわからんままだったから敬遠してた

169:名無しさん@お腹いっぱい。
15/11/29 23:16:48.50 Eprjqt/E0.net
今だとまんまファイル=処理になってるんだろ?
それぞれ頭にprocedure 処理名、尻にfendつけて1ファイルにまとめるだけや
んでcallしてるところでcallやなしに処理名を書くだけのことや

170:名無しさん@お腹いっぱい。
15/11/29 23:26:27.99 PLkzB9890.net
それだけでいいのか
やたら引数とか書いてあるから後回しにしてた

171:名無しさん@お腹いっぱい。
15/11/30 04:20:23.49 FBOUUxt90.net
>>81
Androidエミュレータの事なら Win10Pro 64bit だとUWSCを管理者権限で起動したら反応する
逆に管理者権限で立ち上げないと書いてある通り反応しない

172:名無しさん@お腹いっぱい。
15/11/30 04:40:32.11 FBOUUxt90.net
>>155
例えばアプリ上でフリック動作を再現したい場合以下ようなコードになるけど100,100をフリックしたいときもあれば200,200をフリックしたい場合もあるから
フリック動作させる度にイチイチ以下のコードを書かないといけない
x=100
Y=100
BTN(Left,DOWN,x,y,125)
FOR i = 0 To 10
tx = x-i*50
ty = y
MMV(tx,ty,10)
NEXT
BTN(Left,UP,tx,ty,10)

173:名無しさん@お腹いっぱい。
15/11/30 04:43:07.50 FBOUUxt90.net
>>155
一方関数化して以下のコードを書いたファイルを事前にCALLしておけば
必要な時に必要な値を指定して FlickToLeft(200,200)と一行書いてやるだけで同じ処理が実現できる
PROCEDURE FlickToLeft(x,y)
DIM i =0
DIM tx = 0
DIM ty = 0
BTN(Left,DOWN,x,y,125)
FOR i = 0 To 10
tx = x-i*50
ty = y
MMV(tx,ty,10)
NEXT
BTN(Left,UP,tx,ty,10)
FEND
同じような処理を関数化しておくと可読性と保守性が上がるのが利点かな

174:名無しさん@お腹いっぱい。
15/12/01 05:54:19.63 CNS9MKt70.net
ふと思いついて6通りの乱数x2つでの特定の組み合わせが出る確率を求めたんですけど
UWSCの乱数(random(n))に偏りがある?CALCARRAYのCALC_AVRがおかしい?のか
想定していた数値になりませんでした・・・。精査して原因を教えていただけるととても助かります
URLリンク(pastebin.com)
numcomが乱数を発生させた回数、avgnumは1を回数で割り、パーセンテージでの確率を収納してます
1/36、1/21、1/18が想定の答えなんだけど10%ちょいになっちゃうんです。
たぶん↑の求め方が悪いんだと思うんですけど、なんでなのかわかりません・・・
他に良い確率の求め方・確かめ方があればご教示お願いします

175:名無しさん@お腹いっぱい。
15/12/01 08:00:28.88 rjvF5ULZ0.net
明確に擬似乱数なのを精査する必要性がちょっとわからない
ガチな計算したかったら乱数生成もガチなのを使えば良いと思うな

176:名無しさん@お腹いっぱい。
15/12/01 08:33:28.18 YKDdYdY80.net
計算がおかしい。
「平均値の平均値」みたいなものを求めているから、平均ではなくなっている。
まず基本に戻ってこうに考えろ。
dim bairitu[] = 2,3,4,6,10,20
dim maisu[] = 50,80,100,150,200,500
numcon = 1
n=0
dim num[10000]
repeat
bai = bairitu[random(6)]
mai = maisu[random(6)]
ifb bai = 20 and mai = 500
num[n] = 1
else
num[n] = 0
endif
n = n + 1
until n = 10000
msgbox( "10000回の平均は"+CALCARRAY(num,CALC_AVR)*100+"%でした")

177:名無しさん@お腹いっぱい。
15/12/01 12:47:54.59 CNS9MKt70.net
おぉ素晴らしいです、シンプルでわかりやすく動作も軽い!
考え方や


178:CALC_AVRの理解を誤っていたのがようやくわかりました。 ありがとうございます、精進いたします



179:名無しさん@お腹いっぱい。
15/12/01 13:21:03.45 +tH8B3qd0.net
>>161-162
遅くなったけどありがとう
勉強になった
おかげで引数とかも理解できるようになったよ
最近は関数の名付けに悩むようになった

180:名無しさん@お腹いっぱい。
15/12/01 15:00:00.63 zTQCTmEm0.net
プログラミングのエントリーにはもってこいだなUWSCは。

181:名無しさん@お腹いっぱい。
15/12/01 15:56:09.32 bENjVUYj0.net
基本書レベルの資料が揃ってなさすぎる
さすがに最初はCやったほうがいいと思うぞ
ポインタ云々はいらんけど

182:名無しさん@お腹いっぱい。
15/12/02 00:17:57.94 bCg1Fbqs0.net
バックグラウンドでの画面内の認識はしてくれるようになったのですが、ブックマークバーの部分から上の部分が認識してくれなくて悩んでいます。 
下の内容のようにMOUSEORGの中を途中からChrome_Render…からChrome_WidgetWin_1へ変えればブックマーク部分も認識してくれるかと思ったのですがだめでした。どなたかブックマークバーの部分も認識出来る用にするためにどのようにすればいいか教えて頂けないでしょうか?
URLリンク(i.imgur.com)

GID = GETCTLHND(GETID("Google    Chrome","Chrome_WidgetWin_1"),   "Chrome_RenderWidgetHostHWND")
MOUSEORG(GID,2,1)
ID = GETID("Google Chrome")
While true
If GetKeyState(Vk_Esc) Then Break
ifb CHKIMG("イベント.bmp",0)    // 画面上に画像があった場合以下へ
MOUSEORG(GETCTLHND(ID,"Chrome_WidgetWin_1"),2,1)
BTN(LEFT, CLICK, G_IMG_X+6+random(5), G_IMG_Y+6+random(5))
MOUSEORG(GID,2,1)
sleep(1.5)
endif
wend

183:名無しさん@お腹いっぱい。
15/12/02 10:01:53.78 O01c30+40.net
procedure ie_wait( ie )
repeat
sleep( 0.1 )
until ( ! ie.busy ) and ( ie.readystate = 4 )
sleep( 0.2 )
fend
IEでページの読み込みが終わっているように見えるのに処理が止まってしまうことがたまにあります。
手動で再読み込みすると動き出します。対処法を教えてください。フリー版です。

184:名無しさん@お腹いっぱい。
15/12/02 11:52:47.22 RVv1vxR+0.net
x秒でタイムアウト、みたいな処理足したら

185:名無しさん@お腹いっぱい。
15/12/02 12:03:24.62 ZQB1PLza0.net
相手の鯖が遅延ロードしていたり自分のPCのキャッシュにヒットした時とか
ie.busy と ie.readystate はあんまりアテにならない
タイムアウトや移動先のページで必要なエレメントが存在するか確認してループを抜けるのも有りかもね

186:名無しさん@お腹いっぱい。
15/12/02 13:19:20.31 gtGvaZd80.net
IEはDOM操作するのが確実

187:名無しさん@お腹いっぱい。
15/12/02 16:15:25.22 p1ZciKF40.net
配列がややこしいな
dim hairetu[2]
↑これは配列の容量、個数の宣言で
hairetu[0] = 10
hairetu[1] = 20
↑これが番号の場所に格納するということなんだろ?
[]の中に数字いれるという書き方が同じだから、
ここでずっと訳わからなくなってた
それで[][]とかいう書き方もあるとか
あと、ここに書いてある
URLリンク(canal22.org)
DIM PSARRAY[2]
PSARRAY[0] = "This is a cat."
PSARRAY[1] = "That was a desk."
DIMって値の宣言だろ
""でくくれば文字列でもいいのかよ
ややこし

188:名無しさん@お腹いっぱい。
15/12/02 16:32:53.86 dxnbalsf0.net
厳密にはDIM 配列[]って入れ物の場所が書いてあるアドレスを宣言してるだけ
もっとも a = 1 と A = "1" がまったく同じように扱われるUWSCではそんなこと気にするべくもない
自分は配列宣言するときは[0]で使うたびにリサイズしながら入れてるよ
Arry[


189:ReSize(Arry, ReSize(Arry) + 1)] = "1つめ" Arry[ReSize(Arry, ReSize(Arry) + 1)] = "2つめ" Arry[ReSize(Arry, ReSize(Arry) + 1)] = "3つめ"



190:名無しさん@お腹いっぱい。
15/12/02 16:58:13.30 b4w8PdZC0.net
数値変数でも文字列入れれば文字列変数に自動で切り替わるってだけだよね

191:名無しさん@お腹いっぱい。
15/12/02 17:05:43.75 p1ZciKF40.net
その切り替わるというのは、連想配列と同じになるの?
連想配列が文字列入れることが出来る配列って認識があった

192:名無しさん@お腹いっぱい。
15/12/02 17:11:34.70 b4w8PdZC0.net
それはまったく認識が間違ってる。配列は番号付の変数ってだけだよ。
連想配列は添字に文字列が使える配列。

193:名無しさん@お腹いっぱい。
15/12/02 17:49:37.27 p1ZciKF40.net
ああ、[]の中に文字が使えるのが連想配列なのか
理解できた

194:名無しさん@お腹いっぱい。
15/12/03 13:48:27.43 YuHgaOly0.net
Windows10クリーンインストールしたらIEの操作でエラー出るようになったな
普段非表示だけど確認したいことがあるからIE.Visibleで表示した時とか一時停止して再開しようとした時とかたまに操作を受け付けなくなる
ページを再読込させる処理を入れればまた動き出すけど、数十秒後にUNTIL (! IE.Busy) AND (IE.readyState=4)でエラーが出てるかUWSC自体がフリーズするわ

195:名無しさん@お腹いっぱい。
15/12/03 14:12:03.56 lFKpQNYb0.net
>>170
HandleとUWSCのIDは別物
GETCTLHNDで取得できるのはHandleなのでそのままではMOUSEORGのIDに使用することはできない
解決策はHNDTOID関数を使う
GID = HNDTOID(GETCTLHND(....))
これで目的とするコントロールのIDが正しく取れるはずWhile文内のMOUSEORGもおなじ
GETIDで対象のコントロールのIDを取得した後
SAVEIMG(,ID,0,0,,,TRUE)を実行するとクリップボードに対象コントロールのSSが保存されるんで
慣れないうちはペイントに貼り付けるなりして一回一回確認しながらやるといいですよ

196:名無しさん@お腹いっぱい。
15/12/03 14:27:46.45 lFKpQNYb0.net
>>170
あ、もちろんGETIDだけじゃなくHNDTOIDで取得したIDからでもSAVEIMGでSS取得できます

197:名無しさん@お腹いっぱい。
15/12/03 14:34:08.18 KqIB++7Q0.net
>>182
> GETCTLHNDで取得できるのはHandleなのでそのままではMOUSEORGのIDに使用することはできない
同じようなレスをしようと思ったがヘルプ読み返して止めたのに…
>> MORG_DIRECT (2): 指定ウィンドウ(オブジェクト)へマウス、キー情報を直接送る(第1引数はウィンドウIDでもハンドル値でも可)

198:名無しさん@お腹いっぱい。
15/12/03 15:57:58.29 lFKpQNYb0.net
>>184
マジで?って思ってコード書いたらマジでした…orz
>>170
そんで反省してMOUSEORGのヘルプよく読み直したら
MORG_FOREの値は0と明記されてるけどMORG_BACKの値は明記されてなかったので
試しに print MORG_BACKで値確認したら 1ではなく2になってたので
MOUSEORG(ID,2,1)じゃなくてMOUSEORG(ID,2,2)にしたらバックグラウンドでも動作しました
やっぱ面倒でもヘルプ熟読するのと用意された定数はちゃんと使わないとだめね

199:名無しさん@お腹いっぱい。
15/12/03 16:10:37.72 lFKpQNYb0.net
URLリンク(www.dotup.org)
せっかく書いたんで一応チョロメのブクマのアプリって項目をバックグラウンドで押下させるサンプルも上げときます
UWSC5.2のPro版レジスト済みとさっき入れたばかりのチョロメで動作確認

200:名無しさん@お腹いっぱい。
15/12/03 17:17:45.94 0WPfFphN0.net
>>186 のやつフリーで使ってみたけど
真っ黒でバックグラウンドの認識が不可っぽいんだけど
フリーとプロじゃその辺やっぱ違うのかな?
元々の質問者とは別人です

201:名無しさん@お腹いっぱい。
15/12/03 18:06:34.86 lFKpQNYb0.net
>>187
最新の5.20フリー版で動きました OSはWin10Pro
とりあえず思いつくのは アプリ.bmp を自分で用意してみる うちのは最新版をインストールしただけで一切いじってないので比較画像と差異があるのかも


202: http://i.imgur.com/1vdOKb0.jpg (こんな感じ) UWSCを管理者権限で起動してみる位? あとバックグラウンドで画像認識できるのはあくまで他のWindowが上に重なってるときだけで最小化時は普通に失敗するようです



203:名無しさん@お腹いっぱい。
15/12/03 21:32:54.38 KqIB++7Q0.net
操作側のWebページがエラー出した時にスクリプト全体を再起動させたいんですが
チェックのスクリプトをインターバルでスケジュール起動させればいいとは
思いついたんですけど、UWSCの再生・停止ボタンを押すのって
GUIの無いUWSCスクリプトからだとどうやったらいいんでしょうか。

204:名無しさん@お腹いっぱい。
15/12/03 21:59:07.61 KqIB++7Q0.net
適当にやってたら押せたので質問は無しで

205:名無しさん@お腹いっぱい。
15/12/04 00:46:03.86 90ljDn+M0.net
>>185
ご指摘ありがとうこざいます。ご指摘通りにやりましたが、やはりブックマークの部分は認識してくれませんでした。また、MOUSEORG(GID,2,1)から、MOUSEORG(GID,2,2)に変更するとブックマークより下の部分も動かなくなってしまいました。 
savings("test.bmp",GID,0,0,500,500,0,0,0)
savings("test.bmp",GID,0,0,500,500,0,0,1)
で試しに画像をとってみましたが、両方ともきちんと写っていました。

206:名無しさん@お腹いっぱい。
15/12/04 00:50:32.45 90ljDn+M0.net
また、認識しないならURLで飛べばいいと思い
SCKEY(id,VK_F6)
SENDSTR(id,"ここにURL",1,True,True)
SCKEY(id,VK_RETURN)
と無理やりいれましたが、一応動くのですがURL入力する時にとても重くなります…

207:名無しさん@お腹いっぱい。
15/12/04 01:04:13.19 90ljDn+M0.net
また、あげて頂いたサンプルを起動したところ>>187の方と同じようにペイントに貼り付けた物が真っ暗な画面で、動いてくれませんでした。(アプリ.bmpは自分で置き換え、uwscは最新版でした)
 しかし、MORG_BACKの部分を1に変更したところ、ペイントに貼り付けた画像は真っ暗なままでしたが、動いてくれました。

208:名無しさん@お腹いっぱい。
15/12/04 01:09:15.47 90ljDn+M0.net
あ、すいません。MORG_BACKの部分を1に変えた上記のサンプルを参考に組み直したらちゃんと動いてくれるようになりました!ありがとうございましたm(__)m

209:名無しさん@お腹いっぱい。
15/12/04 11:31:23.07 /T7tx51V0.net
Bluestacksでゲームアプリのガチャ自動化マクロを作っています
ガチャを回すボタンを24bitBMPで保存して、動作テストをすると成功しました(ファイルA)
そのファイルAにループ関数を付け加えてファイルA’を作成し動作させると、画像認識ができなくなったので
再度ファイルAの動作テストを行いましたが完全にその画像では認識ができなくなりました
さっきから3回ぐらい画像を撮り直しては動作テストを行っているのですが、成功してもUWSを弄ると画像認識ができなくなってしまいます
成功したりしなかったり、というのはよく起こることなのでしょうか?

210:名無しさん@お腹いっぱい。
15/12/04 14:34:44.57 n18V7ZGY0.net
あるかないかと聞かれるとある

211:名無しさん@お腹いっぱい。
15/12/04 14:59:07.40 sFDKmSRE0.net
いじるとできなくなるっていうんだから原因ははっきりしてるよね。

212:名無しさん@お腹いっぱい。
15/12/04 16:52:58.00 ybxgbSDU0.net
画像が変わってるんだろ

213:名無しさん@お腹いっぱい。
15/12/04 17:04:25.75 hlWIkbdr0.net
jpgとpngで同じように見えて微妙に違うように
読み込みごとに微妙に画像変わってるってパターンわりとよくある話

214:名無しさん@お腹いっぱい。
15/12/04 19:27:22.45 2HUK37Ko0.net
レイヤーかぶせてあったりパーティクル飛んでたりね。

215:名無しさん@お腹いっぱい。
15/12/05 03:45:42.40 cQkZ7BqH0.net
Chromeで特定のURLに飛ぶようにしたのですが、入れるURLが長いせいか、打ち込んでから飛ぶまでにかなり動作が重くなってしまいます。
重くならずに特定のURLに飛ぶ方法はあるのでしょうか?

id = GETID("Google Chrome","Chrome_WidgetWin_1")
MOUSEORG(id,MORG_DIRECT,1)
SCKEY(id,VK_ALT,VK_D)
SENDSTR(id,"ここにURL",1,True,True)
SCKEY(id,VK_RETURN)

216:名無しさん@お腹いっぱい。
15/12/05 10:48:54.93 qGfYiu4T0.net
>>195
撮った画像に対して撮り直した画像で画像認証してみて
それでダメなら画像を変えてるので画像認証は難しい

217:名無しさん@お腹いっぱい。
15/12/06 15:25:32.94 lI


218:ZtAvI+0.net



219:名無しさん@お腹いっぱい。
15/12/06 16:23:21.01 7fPRX80/0.net
SELECTボックスの文字の大きさって変えられないですかね?
高解像度化の著しい昨今、微妙に文字が小さくて読みにくい

220:名無しさん@お腹いっぱい。
15/12/06 16:26:04.76 7fPRX80/0.net
SELECTBOXの文字の大きさって変えられないですか?

221:名無しさん@お腹いっぱい。
15/12/06 16:30:47.46 7fPRX80/0.net
test

222:名無しさん@お腹いっぱい。
15/12/07 20:37:41.32 lkFOyJ4n0.net
>>205
OPTION DEFAULTFONTで変えられる
すべて一括で変わってしまうけど
Pro使いならCREATEFORMで全部自分で自由に指定できるけど

223:名無しさん@お腹いっぱい。
15/12/07 22:36:43.24 oGiSo+KF0.net
クリック位置を指定せずに(現在のカーソル位置にしたい)
実行までの待ち時間だけを指定するにはどうすればいいんでしょうか?
いくつか試しましたがいずれもダメでした
BTN(LEFT,CLICK,x,y,500) エラー
BTN(LEFT,CLICK,,,500) エラー
BTN(LEFT,CLICK,500) 500がカーソル位置として扱われてしまう

224:名無しさん@お腹いっぱい。
15/12/07 23:03:29.60 EYXsjzmpf
BTN(LEFT,CLICK,G_MOUSE_X,G_MOUSE_Y,500)

225:名無しさん@お腹いっぱい。
15/12/07 23:05:51.63 0rcqNGw90.net
sleep(0.5)
BTN(LEFT,CLICK)
は違うのかな?

226:名無しさん@お腹いっぱい。
15/12/07 23:13:17.78 cMraAyPW0.net
G_MOUSE_X使うとか

227:名無しさん@お腹いっぱい。
15/12/08 00:52:00.67 Bp2FB+GN0.net
キシュツでしたらすみません。
スケジュール設定で、スリープ状態から復帰してスクリプトの実行を考えています。
Windowsの電源管理の設定で「ロック解除する時にパスワードの入力」の設定をしているのですが、
「スクリプトは実行されるが、パスワード入力画面が表示が出たままで意図した画面が表示されず、CHKIMGで画像判別できない。」
状況になり困っています。
ロック解除時のパスワードを設定しない以外の回避策はありますでしょうか。
パスワードを設定しないと、俺の「家族に見られたら困る」フォルダーが火を噴きそうです...

228:名無しさん@お腹いっぱい。
15/12/08 00:58:50.00 t70A2e+R0.net
>>212
フォルダにパスワードかけとけ

229:名無しさん@お腹いっぱい。
15/12/08 01:27:05.64 w99sCTo10.net
>>212
USBメモリ買うなり、別PCを買うなり、物理的に別個にしなきゃ不安だわ。
VeraCryptとか使えばどう?

230:名無しさん@お腹いっぱい。
15/12/08 09:19:58.59 0rN+5VX00.net
>>212
つまりそのスケジュールが実行されるときだけパスワード入力を回避したいってこと?
それは無理だ

231:名無しさん@お腹いっぱい。
15/12/08 11:56:57.30 Q8/a49a30.net
フォルダにパス掛けとくとか、アカウント使いわけるとかせんと。

232:210
15/12/08 14:02:44.60 Bp2FB+GN0.net
レスくれた方、ありがとうございました。
その後調べたところ、電源オプションはpowercfgコマンドでコマンドラインで変更できることを知りました。
そこで、下記を目論んだのですが上手くいきませんでした。
・スクリプト(1)
doscmd("powercfg …")で、ロック解除時のパスワードを不要にした後、スリープする
・スクリプト(2)
本来実行したいスクリプトで、最後にロック解除時のパスワードを必要に変更する
スクリプト(1) -> (2)の順にスケジュール設定して実行する。
試したところ、、スクリプト(1)で電源オプション設定を変更しても、スクリプト(2)の実行時、やはりパスワード入力画面が出てきてしまいます。
※ここでパスワードを入力した後、手動でスリープ->スリープ解除の操作をすると、スクリプト(1)が設定を変更しているので、パスワード入力画面は出てきません。
スクリプト(1)の最後にリブートすれば対処はできそうですが、フォルダーにパスワードを掛ける方向で検討します。
ありがとうございま�


233:オた。



234:名無しさん@お腹いっぱい。
15/12/08 14:33:43.03 nFTuQmFE0.net
そこまでして自動化操作したいことって何?
まずはそこからだよね
VMWareで起動させておいてスタンバイ→本体スリープ復帰→VM復帰起動→VM内でスクリプト流す(本体はロックのまま)
これ以上にすっきり安全にやる方法ないと思うよ

235:名無しさん@お腹いっぱい。
15/12/08 14:59:58.05 OBYBo33X0.net
家族に見られる環境で家族に見られたくないのにパスを不要にしてスリープだとか
スクリプト実行中に家族に弄られて見られる可能性は無視とか何がしたいのか分からなすぎる

236:名無しさん@お腹いっぱい。
15/12/08 15:05:40.97 Q8/a49a30.net
そういえばロック画面の裏でスクリプトって動かんのかね?

237:名無しさん@お腹いっぱい。
15/12/08 15:07:57.58 HUcsHTi50.net
当人が納得しているならそれで良いじゃない

238:名無しさん@お腹いっぱい。
15/12/08 15:10:36.50 HUcsHTi50.net
>>220
キーボードやマウスに画面が繋がっていない前提のスクリプトなら動く筈
勿論、ロック画面自体にはアクセス出来ない

239:名無しさん@お腹いっぱい。
15/12/09 13:54:39.11 KgeowQok0.net
>>210-211
ありがとうございます。
sleepにしました。
座標を指定しないと待ち時間も指定できないというのも
いまいち納得出来ない仕様ですが・・・

240:名無しさん@お腹いっぱい。
15/12/09 14:16:19.27 yc0hiHKU0.net
そういう仕様なのか不具合なのか微妙なのは公式掲示板で聞いてみたらいいんじゃない?

241:名無しさん@お腹いっぱい。
15/12/09 15:07:38.82 IATR22hr0.net
組み込み関数だけじゃなくユーザー定義関数の全パラメータに規定値設定した場合でも
途中のパラ省略して後方のパラだけ指定するとSyntaxError出るから仕様っぽいね
G_MOUSE_変数使ってもWait後のクリック発生時じゃなくBTN呼び出し時の座標になっちゃうみたいだから
マウスカーソルに追随させて自動クリックさせたいなら>>210の処理をラップして呼び出すのが一番安全かな

242:名無しさん@お腹いっぱい。
15/12/09 16:13:30.40 08E8vcMN0.net
途中をデフォルト(省略)したい時はEMPTYと記述しろ

243:名無しさん@お腹いっぱい。
15/12/09 18:25:17.33 IATR22hr0.net
BTN(LEFT,CLICK,EMPTY,EMPTY,2000)
普通にエラー吐き出して終わりだった

244:名無しさん@お腹いっぱい。
15/12/09 18:58:01.47 OKWIL6420.net
SAVEIMGは途中のパラメータ省略しても動くのに変な感じだ
SAVEIMG("AAA.bmp", GETID("XXX"), , , , , , 0, 0)

245:名無しさん@お腹いっぱい。
15/12/11 11:18:54.45 7dd/e87e0.net
×ret = BETWEENSTR("ddddd",,,,FALSE)
○ret = BETWEENSTR("ddddd",,,-1,FALSE)
何個か調査してみた結果同じ関数内の省略可能引数でも途中空値を設定できる引数とできない引数があるっぽいね
なぜかは判らないけど

246:名無しさん@お腹いっぱい。
15/12/11 13:17:37.95 bmQj6ZbY0.net
BETWEENSTR()はその-1を指定してる引数はデフォ値がHelpに書いてないから省略出来ないかもって思えるかな
ただBTN()は、「省略時は~」って書いてあるのに省略出来ないから「あれ?」って思う

247:名無しさん@お腹いっぱい。
15/12/12 01:28:24.49 WJj0stN+0.net
UWSCのスケジュール機能で一時間毎にスクリプトを実行しています。
普段は10分位で終了する内容なのですが、予期しない動作をした時に1時間経っても終了せず、次のスクリプトと実行が被ってしまい、抜け出せなくなります。
一時間後の実行がうまく行けば、前回のスクリプトは中断しても構いません。
UWSCやWindowsの機能で、実行が重ならないように実現できないでしょうか?

248:名無しさん@お腹いっぱい。
15/12/12 03:03:48.97 RKFSqFC20.net
>>231
データの整合性とか気にならない処理内容なら
スクリプト内で経過時間を監視するスレッドを走らせたらどうでしょうか

249:名無しさん@お腹いっぱい。
15/12/12 12:31:57.21 WJj0stN+0.net
>>232
以下の関数を、予期しない動作が発生した時に走る関数中に実行すると実現できそうです。
Procedure hogehoge
gettime


250:() Ifb G_TIME_NN > 50 exitexit Endif Fend 難しく考えすぎていたようです。ありがとうございました。



251:名無しさん@お腹いっぱい。
15/12/12 18:14:26.36 ACvSeZV80.net
似たような事かもしれないけど、予期しない動作が発生した時に自分自身を
再起動させたいのだけど。
EXEC等使って別プロセスで予期しない動作判定+再起動専用のスクリプト走らせるしかないかな?
UIの無いスクリプトは暴走が怖い…

252:名無しさん@お腹いっぱい。
15/12/12 18:30:53.62 RKFSqFC20.net
>>234
本体のスクリプトはどんな処理してるの?

253:名無しさん@お腹いっぱい。
15/12/13 23:14:50.95 aAFsszQK0.net
予期しないって…範囲が巨大すぎて。。。
予期しないことが判定できるなら、予期できそうだし…

254:名無しさん@お腹いっぱい。
15/12/13 23:40:38.95 9KF/JySF0.net
予期しない事象でエラー発生するならTRY EXCEPT文で拾ってスクリプト最初から回す
エラーじゃなくスクリプト自体が事象判定できるならTRY FINALY文でケースごとにコード書く
単体で完結させたいならこのくらいかなぁ

255:名無しさん@お腹いっぱい。
15/12/14 00:37:35.63 OWYR4MFV0.net
操作対象アプリが応答なしではないけど応答無くなる時があって、これが予期しない動作。
画面の推移を監視して、長時間動かなくなったらスクリプト毎再起動させようと。

256:名無しさん@お腹いっぱい。
15/12/14 00:49:16.17 fnMg27o30.net
呼び出し用スクリプトからメイン処理スクリプトをcallで呼び出して
そのcall内でexitすればcallから抜け出して呼び出し用スクリプトに移動するから
元に戻る・・・ってことはだめ?

257:名無しさん@お腹いっぱい。
15/12/14 01:10:21.65 yI4ZqmAH0.net
対象タスクをKillして一から処理を立て直したいなら別途監視スレッド立ち上げておいて必要な時に処理させるなり好みでいいと思うけど
例えばボタン押下した後想定される時間内に想定される画面に移行しないケースが発生してスクリプトが失敗するっていうならコードの書き方の問題だと思う
UWSCでのコーディングは組み込み系に近いからZIPCライクな状態遷移設計をコードに落とす書き方が向いてると思うんだけどこればっかりはさくっと説明できるもんでもないからなぁ

258:名無しさん@そうだ選挙に行こう
15/12/14 10:24:44.14 OWYR4MFV0.net
本質的にはエラー対策が未熟なままスクリプトを書き続けて
後から対策しようとしたってのが問題なんだけど、メインスクリプトが非常に長くて
関数から関数を呼び出し更にまた別の関数を…って感じなので全ての関数に不具合対策すると
収拾がつかない。exitでは一つの関数を抜けるだけに終わってしまうという状況。
一発でメインルーチンの最初に戻れればいいんだけど。
一々細々対策しなくても、最初からやり直せば何とかなるのでそれで対処しようかな…と

259:名無しさん@そうだ選挙に行こう
15/12/14 11:42:30.40 kZpbsuTx0.net
//<input id="retainLogin_flg" class="fmtxt" type="checkbox" checked="" value="1" name="retainLogin_flg">
IESETDATA( IE, 1,"retainLogin_flg","1")
これでログインできません。どこが間違ってますか?

260:名無しさん@そうだ選挙に行こう
15/12/14 15:23:59.00 OdJxQFG70.net
MOUSEORG関数を使ってバックグラウンドのChromeウインドウでBTN,KBD,CHKIMGを使用したいのですが、CHKIMG以外動作しません…
別にテスト用のコードを組んだところ、BTN,KBD,MMVの3つはChromeのウインドウIDを使用した時のみ一切動作しませんでした。
Chromeをこのような関数で操作するにはどうしたらいいでしょうか?
また、CHKIMGで画像読み込みをしただけでChromeが前面に出てきてしまうのですが、これを防ぐにはどのようにすればいいのでしょうか?
どなたかよろしくお願いします。

261:名無しさん@そうだ選挙に行こう
15/12/14 16:27:54.18 qKre7MPE0.net
タブのIDが必要
でも根本的にChromeは自分が隠れていると意図


262:的に画面更新をサボるから裏動作に向かないと思う 素直にIE使ったほうが楽よ もしくは仮想PCでChromeを最前面で動作させてるいうFAQ的対応 仮想化対策されているコンテンツなら素直にリアル別端末用意しなはれ



263:名無しさん@そうだ選挙に行こう
15/12/14 16:58:39.67 OWYR4MFV0.net
その仮想PCでさっきドツボに嵌まった…
件のスクリプトはVMwareのゲストOS上で走らせてるんだけど、テストの為に
ホストで動かしてたらバグを作りこんでてアプリのウィンドウが最少化してしまって
その背面にあったVMwareのウィンドウをクリック!
そこからさあ大変。ホストのスクリプトを停止させようとしてもVMwareがアクティブの内は
キー入力を全部取られてホストに入力が反映しない。
VMwareを非アクティブにしてホストにキー入力しようにも、
操作中にスクリプトが再度VMwareのウィンドウをクリックして最初に戻る…
ヤバいこれPC再起動するしかないんじゃないのかとか焦ってたら
正に予期しない動作時に働くスクリプト()のせいで無事復帰できたw

264:名無しさん@そうだ選挙に行こう
15/12/14 18:06:40.64 yI4ZqmAH0.net
>>241
実行中のマクロを深い階層から強制的に終わらせたいならEXITEXIT
今のマクロをあんまり変えずにマクロの終了状態に応じて分岐させたいなら別スレッドから今のマクロ呼び出してEXITEXITで自分で定義した終了コード渡して呼び出し元に判断させるのが良いと思う
簡単なサンプル
URLリンク(www1.axfc.net)
EXECのuwsc.exeはパスを通すかフルパスに書き換える
main_hogeを実行 sub_hoge内のproc_Call9()プロシージャ内でコメントアウトされてる行を実行するとsub_hogeの実行結果に応じてメッセージが表示されるはず

265:名無しさん@お腹いっぱい。
15/12/14 20:19:16.20 OWYR4MFV0.net
>>246
色々考えてくれるのはありがたいけど
スクリプト内でクリック箇所だけでも400位あって、ぶっちゃけ全く書き換えたくないのが本音。
いじる位なら一からやったほうがまし。
今のスクリプトは全く変えず、外部からどうにかしたいわけ。

266:名無しさん@お腹いっぱい。
15/12/14 20:22:34.83 bKMDkJ+30.net
検索用に保存してある画像の
縦や横のピクセル数を返す命令ってありますか?

267:名無しさん@お腹いっぱい。
15/12/14 20:34:09.73 yI4ZqmAH0.net
>>247
それはもうどうしようもないね~
BTNやCHKIMGの処理回りをラップしておけばそのFUNCTION内でどうにかできたかもしれないけど
望みは薄いのか
>>248
標準関数だとなかったと思うけどFSO使ってサイズ取得する方法ならここに載ってる
URLリンク(d.hatena.ne.jp)

268:名無しさん@お腹いっぱい。
15/12/14 20:42:21.68 VO9EyQaS0.net
セミコロン(マルチステートメント)使ってる人いる?
これって行数が減るだけで特に意味ないよね?

269:名無しさん@お腹いっぱい。
15/12/15 00:49:14.39 i5n9Tzyq0.net
CHKIMGXのサンプルで保存画像のサイズ出して照合してなかったっけ
あれってXの機能なのか

270:名無しさん@お腹いっぱい。
15/12/15 13:25:13.68 wsrLnUiO0.net
画像ファイルのサイズは VBScript の LoadPicture 関数使えばいけるよ。

271:名無しさん@お腹いっぱい。
15/12/16 07:37:39.05 3D/556GD0.net
imagesizeはchkimgx.dllの機能だね
現状とりあえず入れとけってレベルだから作者さんにはほんと感謝

272:名無しさん@お腹いっぱい。
15/12/16 12:33:17.99 RO0Uckyn0.net
アンドロイドの画面をPC表示して操作するVysor (Beta)ってソフトでウインド指定して座標クリックしたのにうまくいかない
ウインド指定外せば思い通りの動作するんだけどエスパー様アドバイスください

273:名無しさん@お腹いっぱい。
15/12/16 13:29:08.00 iS4W1/hI0.net
>>254



274:EィンドウIDが違うんだろ



275:名無しさん@お腹いっぱい。
15/12/16 14:13:22.42 3D/556GD0.net
>>254
UWSCを管理者で起動してない
MORG_DIRECT指定をMORG_CLIENTにする
コードミスってなけりゃ恐らくこのあたり

276:名無しさん@お腹いっぱい。
15/12/16 15:04:31.64 brGLyGvp0.net
プルダウンから選ぶコードはどうやって書けばいいですか
ソースはこんな感じです。
<td id="note1">
<select name="cv.note[0]">
<option value="3">3</option>

277:名無しさん@お腹いっぱい。
15/12/16 15:05:27.88 RO0Uckyn0.net
クリックしたい座標をウインドウ指定して座標取得したのでウインドウIDは多分大丈夫です
ウインドウ指定して基準指定:ってのを指定なしとMORG_DIRECTだと左上の0,0の座標をクリックしてたのが
MORG_CLIENで思い通りの動作になったんですがマウスカーソル奪われるのはあきらめるしかないですか?

278:名無しさん@お腹いっぱい。
15/12/16 15:19:04.76 MSwZZbqh0.net
ウインドw風w

279:名無しさん@お腹いっぱい。
15/12/19 09:36:25.37 dKs0rSCT0.net
画像認識で範囲を限定して高速化したいのですが、範囲指定ではなくて画像認識するためのファイルの中心の位置を指定して使うことはできませんかね?

280:名無しさん@お腹いっぱい。
15/12/19 10:13:50.36 1sg6SGUx0.net
ラッパー関数を用意すればおk

281:名無しさん@お腹いっぱい。
15/12/19 10:15:12.99 F+6XYxyV0.net
>>260
>ファイルの中心の位置を指定して
例えば、200x200の画像ファイルの中心付近50x50をchkimg()に使いたいってこと?
chkimg()じゃ出来ないけど、ちょっと考えただけでも
・予め必要な画像を抜き出しておく
・指定座標から指定サイズの画像を抜き出すアプリを探すか作ってchkimg()の対象にする
などなどやりかたは色々ある
まずはこういうのじゃダメな理由を書いたほうが良いよ

282:名無しさん@お腹いっぱい。
15/12/20 11:14:47.91 ZpLNVxzc0.net
俺は言いたいことは分かったけど、処理に余計時間がかかると思うの

283:名無しさん@お腹いっぱい。
15/12/20 11:47:27.75 KZe/XdiC0.net
出現する場所がわかっている場合には矩形範囲で正確な場所を指定すれば
高速化出来るけど、それを左上角指定でもなく画像の中心座標をもって行いたいってことかな

284:名無しさん@お腹いっぱい。
15/12/21 01:26:17.27 2PK9cnqq0.net
getkeystate(vk_lbutton)を使ってて、一度でもtrueにすると以降ずっとtrueのままなんだけど、以前からこんな動作だった?
座標が1箇所しかとれなくて困っている…

285:名無しさん@お腹いっぱい。
15/12/21 01:58:05.59 2PK9cnqq0.net
>>265の理由で以前作成して使用していたマクロも使えなくなっている
おかしい…

286:名無しさん@お腹いっぱい。
15/12/21 05:15:20.75 XffwbDlp0.net
>>265
若干長押しで引っかかってるとか?
repeat
sleep(0.1)
until !GetKeyState(VK_**)

287:名無しさん@お腹いっぱい。
15/12/21 09:39:13.45 CCKQhsqf0.net
挙動が変わったと思うなら
検証用のコードを書いて公開してみたら良いと思う
皆の結果が同じなら公式のバグでしょ

288:名無しさん@お腹いっぱい。
15/12/21 11:44:04.17 dhDYDp8p0.net
>>265
dim r
sethotkey(VK_0,MOD_ALT,"exi")
repeat
a()
until false
procedure a()
r = GETKEYSTATE(VK_LBUTTON)
fukidasi(r)
fend
procedure exi()
exitexit
fend
こっちだと普通に動いてるように見えるな
5.20

289:名無しさん@お腹いっぱい。
15/12/21 13:13:06.71 k1OansqD0.net
問題のソースコードを提示できないというのは裏を返せば
問題を切り分けられていない証拠でもあるんだよね
素人ほど最初に自分ではなく他人を疑う

290:名無しさん@お腹いっぱい。
15/12/21 14:40:18.86 EiQ88uQn0.net
CHKIMGXの着目する色の指定ってどういう引数いれればいいのかな?
RGB値?もしそうだとするとどう記述するんだろう。FF0000(赤)みたいな感じでいいのかな?

291:名無しさん@お腹いっぱい。
15/12/21 14:45:48.24 EiQ88uQn0.net
あ、サンプルよく読んだらかいてありました。すいませんでした。

292:名無しさん@お腹いっぱい。
15/12/21 15:24:38.26 MrgyCbD


293:Y0.net



294:名無しさん@お腹いっぱい。
15/12/21 15:39:43.34 PCRRkr5n0.net
OPTION指定の性質上無理
スクリプト別にするしかない

295:名無しさん@お腹いっぱい。
15/12/21 20:27:33.49 3hymvKIb0.net
俺ならロギング処理のラッパーを作って、それぞれの起動ごとに固有文字列割り振れるようにするかな
正規表現使えば置換処理でまとめて直せるし簡単でしょ
それが嫌ならソースコードを改変するソースコードを書いちゃえばいいしね

296:名無しさん@お腹いっぱい。
15/12/21 20:50:46.67 FTxNfRK40.net
本体をcallするoptionだけのファイルを起動したらいいんじゃないかな

297:263
15/12/21 21:05:50.36 2PK9cnqq0.net
セーフモードで動作させてみたところ思う通りの動きになりました。
どうやら何らかの常駐ソフトが悪さをしているようです。
原因のソフトが特定できましたらまた報告させていただきます。
スレ汚し失礼しました。

298:名無しさん@お腹いっぱい。
15/12/22 00:09:15.99 gv1300fTg
>>273
ログパス指定にTIME値いれたら?

299:名無しさん@お腹いっぱい。
15/12/22 00:23:23.71 DKkq04ll0.net
スレちゃん「私……汚されちゃったよぉ」

300:名無しさん@お腹いっぱい。
15/12/22 05:34:12.40 8u/KWTZa3
>>278
試してみるとわかるけどそれは出来ない
実用的な案は>>276あたりかなぁ

301:名無しさん@お腹いっぱい。
15/12/22 12:57:13.12 RoUnScmr0.net
スレちゃんは汚れてないよ俺が一生守るから

302:名無しさん@お腹いっぱい。
15/12/25 15:17:07.98 7FQmwVc80.net
すみません、
マクロ再生開始してから2時間経過したら○分ほど停止してまた活動再開を繰り返す処理ってどうすればいいでしょうか?
停止する○分は10~20分くらいが毎回ランダムで変わるとなおいいのですが・・・
よろしくお願いします。

303:名無しさん@お腹いっぱい。
15/12/25 15:21:56.32 4xQkvZLh0.net
すみません自分で調べてくださいよろしくお願いします

304:名無しさん@お腹いっぱい。
15/12/25 15:36:14.25 lZFGO43t0.net
2時間経過をチェックする方法
ランダムで10~20分停止する方法
たった2つググるだけだ頑張れ

305:名無しさん@お腹いっぱい。
15/12/27 16:12:57.95 AlS/S0az0.net
某青い空のモバゲーのポーカー関数ちょっと作ってみたいんだけど
配布終わってるし折角だから1から勉強してみようと思う
とりあえず、ウインドウの座標を固定して画像取得する関数って
どういうの組めばいいのかな
少なくとも脳死ポーカーより頭によさそう

306:名無しさん@お腹いっぱい。
15/12/27 16:36:33.75 /OzrBre50.net
とりあえずぐぐれ。
出来たやつを実行しろ。
思った動作と違ったら来い。

307:名無しさん@お腹いっぱい。
15/12/27 16:44:59.25 AlS/S0az0.net
なんか探したら自動取得ツール自体はあったわ
これで画像取得自体はできるけどそのままだと枚数が1000こえるな
なんかこう1枚ずつ認識して判断できんかな・・・・・

308:名無しさん@お腹いっぱい。
15/12/27 16:55:25.82 792AGejY0.net
>>287
それを考え、自分でスフリプトを組むことを勉強っていうんじゃないの?

309:名無しさん@お腹いっぱい。
15/12/27 17:05:31.09 AlS/S0az0.net
>>288
いまやってる
座標の取得はできそうだけど画像名のストック?がちょっとよくわからん
判断関数のあとで真なら文字を記憶みたいな感じでできるんかな
そもそも変数にアルファベットぶち込めなかった気がする・・・・

310:名無しさん@お腹いっぱい。
15/12/27 17:07:08.01 fibytPLm0.net
ここはお前の日記帳じゃない

311:名無しさん@お腹いっぱい。
15/12/27 17:58:35.45 uFtbG2Uf0.net
IEの�


312:rジー待ちについて質問です。 最初と最後のSleep(0.2)が必要な理由を教えてください。 procedure ie_wait( ie ) Sleep(0.2) Const TIME_OUT = 60 tm = Gettime() repeat Sleep(0.2) ifb Gettime() - tm > TIME_OUT kbd(VK_F5)// F5 Exit endif until (! ie.busy) and (ie.readyState=4) Sleep(0.2) Fend



313:名無しさん@お腹いっぱい。
15/12/28 00:00:20.30 qZu6Od9X0.net
>>289
1つカードの画像を判断するだけで1000の命令が必要でも
やるのはPCだからな
1回作ってしまえば勝手に動くんだから、初回の手間を惜しむな
>>291
作った奴に聞け
なんとなく動作が不安定な時に、適当にスリープ入れたらスムーズに動くことがあるから
その名残だろうとは思うが

314:名無しさん@お腹いっぱい。
15/12/28 02:25:18.81 iq4jhptY0.net
画像認証の質問です
Ifb CHKIMG("w.bmp") = TRUE
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
MSGBOX("見つかりました")
ELSE
MSGBOX("見つかりません")
Endif
以上の関数で適当な画像wをコピーしてデスクトップに表示したら認識しませんでした
フォトビューワで開いたら認識しました
実際にはいろんな画像が混ざってるところで使いたいので今のままだと役に立ちません
なにが起きてるんでしょうか

315:名無しさん@お腹いっぱい。
15/12/28 02:33:17.82 AG3orU5C0.net
デスクトップでは認識しない、そんだけ

316:名無しさん@お腹いっぱい。
15/12/28 02:34:45.96 qZu6Od9X0.net
>>293
デスクトップに表示する時に伸縮していたら認識しない
また、上にアイコンなどが乗っていて、画像の透過部分以外が隠れたら認識しない
実際の画像の混ざり方を考えて、認識させたい画像のサイズや範囲などを決める必要がある

317:名無しさん@お腹いっぱい。
15/12/28 02:36:04.63 qZu6Od9X0.net
>>294を見てなくて適当に答えた

318:名無しさん@お腹いっぱい。
15/12/28 02:42:37.59 iq4jhptY0.net
お二方ありがとうございます
btn部分をなくして最終目標で確認したら認識できました
やっぱりデスクトップの背景とかで透過しちゃってたみたいです

319:名無しさん@お腹いっぱい。
15/12/28 15:40:18.87 iq4jhptY0.net
画像認識、うまくいかないな
プログラム自体は正常っぽいけど対象の画像がときどきピクセルずれてるんかな
キャプチャしなおすとその時だけうまくいくんだよな
画像たくさん作ってしらみつぶしするしかないか・・・・・・・ハァ

320:名無しさん@お腹いっぱい。
15/12/28 15:54:16.22 2b9Fr6+00.net
>>298
面倒だが、透過色設定したり透過色で画像塗りつぶしたりして必要な要素だけ取り出す方法もある

321:名無しさん@お腹いっぱい。
15/12/28 15:57:45.90 wOaVL79d0.net
ボタン系はボタン以外の画像がよかったりするし
いろいろやりようはあるとおもう

322:名無しさん@お腹いっぱい。
15/12/28 20:45:56.05 ww5rWK300.net
>>298
peekcolorを使ってみるのも一つの手だと思うよ

323:名無しさん@お腹いっぱい。
15/12/28 21:24:10.61 I1QV70970.net
yrd

324:名無しさん@お腹いっぱい。
15/12/31 18:03:20.24 ed8Joufj0.net
>>299
それやりたいんですがwindowsの付属のペイントでできますか?

325:名無しさん@お腹いっぱい。
15/12/31 20:25:19.28 kkB7l74A0.net
できますよ

326:名無しさん@お腹いっぱい。
15/12/31 21:30:25.00 actWcm4n0.net
UWSCの透明指定は四隅の内、何処の色を透明扱いするかだから
αチャンネル使えるソフトを使用しなくても良い

327:295 【大凶】
16/01/01 07:10:48.26 DZ0F9EIl0.net
>>304-305
ありがとう
あけおめ

328:名無しさん@お腹いっぱい。
16/01/01 07:11:50.40 DZ0F9EIl0.net
↑間違えましたた私は299です

329:名無しさん@お腹いっぱい。
16/01/01 19:48:02.85 dAo8yM1a0.net
>>298
ゲイブの嫌がらせ

330:名無しさん@お腹いっぱい。
16/01/02 21:54:24.77 OOAR2+6Q0.net
>>303
ペイントでもできるけどgimp使え
マジックマジ便利
あけおめ

331:名無しさん@お腹いっぱい。
16/01/05 18:09:09.81 7af5YO540.net
5.2.0からなんか重くなってね?
同じスクリプトなのに起動してから動き始めるまで異常に時間かかるようになった
CLKITEMが怪しいかなと思ってる

332:名無しさん@お腹いっぱい。
16/01/05 18:44:16.27 7af5YO540.net
やっぱりCLKITEMだったわ
いままで快適に動いてたのにショック

333:名無しさん@お腹いっぱい。
16/01/06 17:09:53.73 a/kSD6F/0.net
uwscでpptマクロを実行
f_name = "C:\テスト.pptm"
ppt = CREATEOLEOBJ("POWERPOINT.Application")
ppt.PRESENTATION.open(f_name)
ppt.visible = TRUE
sleep(5)
ppt.run("test")
(テスト.pptmの標準モジュールのModule1にtestがある)
これを実行すると
ppt.run("test")で COM error が出ます
解決策を教えてください。

334:名無しさん@お腹いっぱい。
16/01/08 12:43:18.74 jLBAQqUa0.net
>>312
やってないからわからんけどその構文だとpptはアプリケーションオブジェクトであってファイル個別のオブジェクトじゃないよね
<ファイル名>!Module1.testみたいに対象ファイルからプロシージャをはっきし明示しないとどのモジュール参照していいかわかんないんじゃね
あとプロシーシャのスコープpublicにしてるかどうか?

335:名無しさん@お腹いっぱい。
16/01/09 23:29:05.79 OPYCmqUk0.net
>>313
ありがとうございます!!出来ました!!!

336:名無しさん@お腹いっぱい。
16/01/10 14:48:48.28 +h7zfP7X0.net
windows10に仮想デスクトップっていうのがあるんってきいたんですけど
uwscをこれで裏で使用できるんですか?

337:名無しさん@お腹いっぱい。
16/01/11 01:03:13.57 2riljtmT0.net
>>315
実際にやってみればいいんじゃない?

338:名無しさん@お腹いっぱい。
16/01/11 08:24:19.75 yYs4qC8O0.net
仮想デスクトップ≠仮想環境

339:名無しさん@お腹いっぱい。
16/01/11 12:51:41.92 FFuDFDqi0.net
仮想デスクトップ上の座標がどうなっているのか興味があるところだが
Win10環境が無い

340:名無しさん@お腹いっぱい。
16/01/11 12:55:49.55 /FI12Aqd0.net
何時だか8.1使っていたらポップアップで今なら無料とwin10を
ゴリ押してきたので入れてしまった

341:名無しさん@お腹いっぱい。
16/01/11 15:34:36.34 js3KT4j30.net
10の仮想デスクトップで既存のコード動かしてみたけどchkimgは動いてるっぽい
ただBTNでマウス操作しようとすると今の画面内をちょろちょろしだすから座標的には共通っぽい
DIRECT指定使うかKBD,CLKITEMみたいに座標関係ないなら行けそう

342:名無しさん@お腹いっぱい。
16/01/12 12:43:01.14 e9ToDDNW0.net
割と初心者なんでむちゃくちゃな事を言ってるかもしれないけど
IE上で動いてるjavascriptの変数をUWSCから参照して取得するなんてこと出来ないですかね?

343:名無しさん@お腹いっぱい。
16/01/12 14:40:39.17 8tuq2Tc50.net
>>320
3次元管理されてるんじゃないかな
今表示されているのは2Fの面、とか
そうなるとマウスクリック座標にZ軸概念が必要になってきそうね

344:311
16/01/13 21:56:06.43 txKMe/w00.net
大変そうなんでwindows10入れるのやめときます
ありがとうございました

345:名無しさん@お腹いっぱい。
16/01/14 18:52:02.87 Gt/fS78R0.net
peekcolor高速でワロタ

346:名無しさん@お腹いっぱい。
16/01/14 20:46:03.91 Udnjh/YY0.net
>>323
Dual Bootで既存システムと共存させると良いよ

347:名無しさん@お腹いっぱい。
16/01/19 00:33:32.52 NZpgzfiCJ
>>3のchkimgxが404なんですが他に入手できる場所は無いでしょうか?

348:名無しさん@お腹いっぱい。
16/01/20 04:10:25.20 K+q1DhPU0.net
IEをバックグラウンドで操作したいのですが、
画面内をクリックできません。
ステータスバーの戻るボタンなどはクリックできるのですが。
Windows7 64bitです。



349: MOUSEORG(GETID(



350:名無しさん@お腹いっぱい。
16/01/20 04:13:03.26 K+q1DhPU0.net
IEをバックグラウンドで操作したいのですが、
画面内をクリックできません。
ステータスバーの戻るボタンなどはクリックできるのですが。
Windows7 64bitです。
ID = GETID(

351:名無しさん@お腹いっぱい。
16/01/20 04:14:08.41 K+q1DhPU0.net
あれ…なんで途中で切れてしまうんでしょうこれ
何度もすみません><
IEをバックグラウンドで操作したいのですが、
画面内をクリックできません。
ステータスバーの戻るボタンなどはクリックできるのですが。
Windows7 64bitです。
ID = GETID("XXX - Internet Explorer","IEFrame")
MOUSEORG(ID,2,MORG_BACK)
BTN(LEFT,0,100,100,1000)
これだけではだめなのでしょうか?
ブラウザの操作はできないなどありますか?

352:名無しさん@お腹いっぱい。
16/01/20 04:58:52.14 a57AnsIh0.net
IEは
id = hndtoid(getctlhnd(getid("", "IEFrame"), "Internet Explorer_Server"))
こうじゃね?

353:名無しさん@お腹いっぱい。
16/01/21 21:54:43.32 nGOnC4p/0.net
ACWが効かない事ってあります?
あるアプリを画面左上に表示させたいので以下のように記述したのですが、
xxID = getid("アプリ名")
 ifb xxID = -1
  msgbox("アプリ名を開いてから実行してください。")
  exitexit
 endif
msgbox("アプリ名発見<#CR>"+"ウィンドウID:"+xxID) //画像認識成功
acw(xxID,0,0)
これ実行すると「アプリ名発見 ウィンドウID:1」と表示されるのですが
ウィンドウが左上隅に行ってくれません。

354:326
16/01/22 06:34:37.09 T4LReso30.net
やっぱり駄目みたいですね。
ってかこのアプリ上ではUWSCで動作の記録すらされません。
マウスもキーボードも駄目。
素直に諦めます。お騒がせしました。

355:名無しさん@お腹いっぱい。
16/01/22 08:27:38.96 7wFnMY690.net
>>332
もしかしてwin10?

356:名無しさん@お腹いっぱい。
16/01/22 10:15:56.37 cq8WTI4X0.net
まあゲームによっちゃマクロ対策してるものも多いわな

357:名無しさん@お腹いっぱい。
16/01/22 12:27:49.02 zldJ+8I00.net
どんな事をしても画像認識が出来ないです。
ペイント四角い図形を作りそれをコピー
もうひとつペイントを出してそこにペースト
それを24bitBMPで保存
最初のペイントはそのまま残して、それを認識させる
sleep(1)
if chkimg("000.bmp",0)
fukidasi("ありましたよ", 300, 400)
else
fukidasi("見当たりません", 300, 400)
endif
sleep(3)
上記ので試していますが全く認識しません。
範囲指定、透過色/色無視、等色々試しました。
PCも3台で試しましたがダメでした。
何が問題なんでしょうか?
心当たりのある方いたらご指導下さい。
宜しくお願いします。

358:名無しさん@お腹いっぱい。
16/01/22 12:53:25.40 Hapn1qGL0.net
>>335
mouseorgでウィンドウ指定してたりするんじゃねーの?
その場合はペイントのウィンドウIDじゃなくてペイントの描画部分のIDを指定しなきゃダメだぞ

359:名無しさん@お腹いっぱい。
16/01/22 15:51:48.06 bHu1IupN0.net
>>329
flashオブジェクトのクリックじゃないなら、htmlの解析でクリックしたほうが確実じゃね?

360:名無しさん@お腹いっぱい。
16/01/22 16:58:32.45 CXhcEU1b0.net
>>335
ペイントがダメなんじゃね
ほかの画像表示ソフトとかで試してみたら?

361:名無しさん@お腹いっぱい。
16/01/22 20:36:05.26 h8x4HVfG0.net
>>335
ペイント一つだけなら認識するか?

362:330
16/01/23 13:39:23.25 bDtzBo3X0.net
助言有難うございます。
上記の事、色々試してみましたが認識は出来ませんでした。
諦めて他の方法を考えてみようと思います。
有難うございました。

363:名無しさん@お腹いっぱい。
16/01/23 15:02:24.98 JtiZQzOi0.net
>>340
ペーストするペイントのキャンバスが大きいままやってて
不必要な背景が付いてしまってるってことはないよね?

364:330
16/01/23 16:10:06.75 bDtzBo3X0.net
>>341
ペーストする際にキャンパスはペースト画像以下にして貼り付けてます。
有難うございます。

365:名無しさん@お腹いっぱい。
16/01/23 18:43:39.11 dZYon1Wc0.net
ペイント一つで認識しないなら2つで認識するわけないだろ。
まず最小構成で問題の原因を切り分けろよ。そんなんじゃやり方変えても別の問題で詰まって諦めるだけだ

366:名無しさん@お腹いっぱい。
16/01/23 18:49


367::31.20 ID:+CnaRQ1h0.net



368:名無しさん@お腹いっぱい。
16/01/23 21:10:32.92 zIf41qbQ0.net
>>344
>>342の言っていることもやっていることも合ってる
ペイントにおいては貼り付け先のキャンパスが貼り付けする画像よりも小さい場合、強制的にキャンパスサイズが貼り付けする画像と同じ大きさに変更される
そのため意図しない余分な余白を排除することができ、chkimgで完全に一致させることができる

369:名無しさん@お腹いっぱい。
16/01/23 21:11:16.50 zIf41qbQ0.net
補足で>>344の内容に関してのみは合ってるってことね
他はしらん

370:名無しさん@お腹いっぱい。
16/01/23 21:11:44.50 zIf41qbQ0.net
>>342の間違いだわ失礼

371:名無しさん@お腹いっぱい。
16/01/23 22:11:15.75 CuLS3gLO0.net
絶対ソースが他にもあってその部分が原因で認識してない
>>335に書いてあるのが全てなら前後にスリープ入れる意味がないからな

372:330
16/01/23 23:42:32.53 bDtzBo3X0.net
URLリンク(l2.upup.be)
>>344
ペイントで白地に黒点の画像を作って(000.bmp)
ディスクトップの背景を黒
検索範囲を添付画像のマウス辺りに

if chkimg("000.bmp",1,447,238,635,318)
fukidasi("ありましたよ", 300, 400)
else
fukidasi("見当たりません", 300, 400)
endif
sleep(3)//吹き出しの表示時間ですがendifの上がいいのかな?

これでダメでした。

373:名無しさん@お腹いっぱい。
16/01/24 00:05:02.42 3CV3bKZH0.net
>>349
SAVEIMGで認識したい画像を作ってもダメなら、
何か運命的な力によってできないようにされているから諦めろ

374:名無しさん@お腹いっぱい。
16/01/24 00:56:56.54 HahwDAq70.net
デスクトップが黒でも画像に白地があったらそりゃ透過指定でもしないと無理じゃね?

375:名無しさん@お腹いっぱい。
16/01/24 01:28:36.53 kMEV0vdK0.net
>>349
その000.bmpをうpろだにうpしてここにアドレス貼って

376:名無しさん@お腹いっぱい。
16/01/24 01:31:26.12 xy8ZxP2N0.net
初心者のマヌケな勘違いに付き合ってやるお前らは優しいな

377:名無しさん@お腹いっぱい。
16/01/24 01:41:14.00 HahwDAq70.net
>>349の画像にある000.bmpのサムネイルがもうお察し

378:名無しさん@お腹いっぱい。
16/01/24 02:19:52.57 WW6t0Mr80.net
>>333
Windows7Professional上で
使おうとしたのはAutoCAD2015でした

379:名無しさん@お腹いっぱい。
16/01/24 02:40:54.86 Igcg1fXC0.net
透過してもダメならおかしいな
なぜわざわざ白地を付けて透過してるのか分からんが

380:名無しさん@お腹いっぱい。
16/01/24 07:36:01.33 mAXZzVR/0.net
白地をつけずに作れ
デスクトップの黒はRGB値が000かどうか確認したか?黒く見えるだけじゃないのか

381:名無しさん@お腹いっぱい。
16/01/24 07:37:54.90 mAXZzVR/0.net
画像ファイルの保存場所は正しいか?

382:名無しさん@お腹いっぱい。
16/01/24 07:49:46.99 gigVQQsJ0.net
仮想環境上だよな?

383:330
16/01/24 08:10:09.47 O/0pTIZz0.net
初心者は認めます^^;
皆さん申し訳ないです、有難うございます。
ググって色々試して、1度も成功してないので書き込みさせて頂きました。

000.bmp
URLリンク(l2.upup.be)

下記の画像の様に、ペントで黒塗りの四角画像でも試しています
画像を見て解ると思いますが、ディスクトップは#000000です
URLリンク(l2.upup.be)
画像認識する範囲が0,0からでは上手く出来ないと場合があるとの事から
範囲指定無し、有りでも毎回試しています
>>358
全てのファイルはディスクトップで試しています。
違うとエラーが出ます。

384:名無しさん@お腹いっぱい。
16/01/24 09:12:55.94 vffMZR4M0.net
たまにいるけどデスクトップをディスクトップって言う奴なんなの

385:名無しさん@お腹いっぱい。
16/01/24 09:21:04.87 gigVQQsJ0.net
言葉の意味がわかってない奴さ。
意味も分からず文字だけ記憶してるからこういうことになる

386:名無しさん@お腹いっぱい。
16/01/24


387:10:21:15.66 ID:ZlkU8bwS0.net



388:名無しさん@お腹いっぱい。
16/01/24 10:43:00.31 fOnBrER40.net
2つ以上のゲームをuwscで操作させるときはどうしてますか?

389:名無しさん@お腹いっぱい。
16/01/24 11:16:29.03 mAXZzVR/0.net
if文の「then」が抜け出るからじゃね?
uwscの昔のバージョンは?昔はifbとか必要だったし

390:名無しさん@お腹いっぱい。
16/01/24 11:17:24.22 mAXZzVR/0.net
>>360
if文の「then」が抜けてるからじゃね?
uwscの昔のバージョンは?昔はifbとか必要だったし

391:330
16/01/24 14:08:58.80 O/0pTIZz0.net
UWSC Pro Ver5.2.1
を使っていましたが、試しに
UWSC Pro Ver4.9c
にしてみたら認識しました!
感激です!!
皆様の助言のおかげでなんとかなりそうです!
助言を下さった方、ありがとうございました。
m(_ _)m
>>362
>意味も分からず文字だけ記憶してるからこういうことになる
とても勉強になりました、今後気を付けたいと思いました。
ありがとうございます。
>>363
>1つ1つの問題の切り分けを正確にやれ
これも色んな所で応用できそうです。
勉強になりました。
ありがとうございました。

392:名無しさん@お腹いっぱい。
16/01/24 17:49:17.71 8jDz2v8Q0.net
30分30秒毎に実行したい処理があり、並列処理にて組みました。
わざわざ2つもスクリプトも用意せずとも、いけそうな気もするのですがこれが限界です。
もっとシンプルにならないでしょうか。お知恵を拝借させてください。

-Main.uws-
While True
sleep(1830)
CALL A.uws
WEND

-A.uws-
Thread FunctionA()
Procedure FunctionA()
やりたい処理(10分くらいかかる)
FEND

393:名無しさん@お腹いっぱい。
16/01/24 18:17:45.90 3CV3bKZH0.net
>>368
CALLを関数代わりにするのは、スタックオーバーフローの原因になるので止める
CALL A.uws
While True
sleep(1830)
Thread FunctionA()
WEND
2ファイル使いたくないなら、CALLを使わずにMain.uws内にProcedure FunctionA()

394:363
16/01/24 18:57:49.92 8jDz2v8Q0.net
ありがとうございました。
Thread FunctionA()でProcedure FunctionA()を呼び出すようにしたら、1ファイルでもうまく走りました。
そんな使い方ができるとは、勉強になりました。

395:名無しさん@お腹いっぱい。
16/01/25 05:10:15.14 pb4QYEcB0.net
SETHOTKEYで、現在実行中の関数を抜けるようにしたいのですが、可能でしょうか
SETHOTKEYは引数で関数を指定しますよね
そこでEXITをしてもその関数を抜けるだけで意味がないし、EXITEXITだと全体が終了してしまうしで・・・
その時やっている関数だけ終わらせて次の関数へ移る、ってのは無理なんでしょうか

396:名無しさん@お腹いっぱい。
16/01/25 06:22:07.25 6V8NCtbv0.net
mode=数字 とかで対処したらどうなの?

397:名無しさん@お腹いっぱい。
16/01/25 10:52:45.34 fsXZoFnX0.net
SetHotKeyで数値を変えてその数値を見てExitさせるかGetKeyStateでExitをぶち込むか?

398:名無しさん@お腹いっぱい。
16/01/25 11:50:28.06 6G99dwJv0.net
public dim exit_flag = false
function aaa()
exit_flag = false
while true
if exit_flag=true then exit
処理
wend
fend
procedure hotkey()
exit_flag = true
fend

399:名無しさん@お腹いっぱい。
16/01/25 12:31:13.16 pb4QYEcB0.net
>>372-374
ありがとうございます
やっぱりそういう感じしか無理ですかね・・・
SETHOTKEYでフラグの値変えて判定するん�


400:セったら >>373さんの言うようにGETKEYSTATEでEXITしちゃえばいいだけなんですよね・・



401:名無しさん@お腹いっぱい。
16/01/25 18:14:55.64 B+E8sfr+0.net
YOU ! EXIT しちゃいなよ!

402:名無しさん@お腹いっぱい。
16/01/26 01:24:28.70 jn4ZRk/I0.net
前にwhileを一杯並べてbreak2みたいな構図にするなっていうタブー的なこと話してたけど
関数から関数よんで関数関数からなかなか抜け出せなくなるのもやっぱりタブーだったりするの?

403:名無しさん@お腹いっぱい。
16/01/26 02:14:56.87 deFC+MwW0.net
それはスタックオーバーフローを起こしやすい件とは全然関係ないから
自分で管理できているならそれでいいんだよ
グループで構築していてメンテナンスを他人がする場合は
グループ内のコーディングルールが必要なだけさ

404:名無しさん@お腹いっぱい。
16/01/26 06:08:30.62 ApvsqQfK0.net
>>375
GETKEYSTATEは呼ばれたタイミングでしか評価しないから、取りこぼしが発生する。
SETHOTKEYは取りこぼさないけど、フラグ見るまでディレイが生じる。
全く同じではないよ。用途次第でどっちが適しているか考えないと。

405:名無しさん@お腹いっぱい。
16/01/26 06:31:22.72 ApvsqQfK0.net
>>379
すまん。
実験してみたら、コール時点で評価ってわけじゃないんだな。
sleep(19

406:名無しさん@お腹いっぱい。
16/01/26 06:34:49.06 ApvsqQfK0.net
送信ミス。
sleep(10)
if GETKEYSTATE(VK_A) then
PRINT "A"
endif
でスリープ中に押したAが認識されてた。

407:名無しさん@お腹いっぱい。
16/01/26 07:15:35.06 jehVgdMQ0.net
なにこの一人相撲

408:名無しさん@お腹いっぱい。
16/01/26 10:40:36.70 deFC+MwW0.net
FAQなのよー
プログラム開始時点で全てのKEYSTATEはクリアされていて
GETKEYSTATEが呼ばれたら、呼ばれるまでに押下されていたらTRUEを返すって関数
つまりループ前に終了用のキーが押下されていればループしないケースとかあるので
空呼び出ししてクリアする必要があったりする

409:名無しさん@お腹いっぱい。
16/01/27 07:36:27.55 12Zxt+CV0.net
サブ機のWindows10環境で動作確認して上手く行ったからメインも10にしたんだが
Windows10環境だとモニタがオフになったらCHKIMGで画像認識出来なくなる・・・
動作確認が甘かったぜ・・・何か対処方法ありませんか?

410:名無しさん@お腹いっぱい。
16/01/27 09:50:24.39 Gihgo/qC0.net
スリープしない設定にしてモニタの電源を切る

411:名無しさん@お腹いっぱい。
16/01/27 10:00:04.50 12Zxt+CV0.net
いや当然Windows7時代から、そうしてるんだが・・・

412:名無しさん@お腹いっぱい。
16/01/27 10:12:50.14 jZMYF+Ys0.net
10はモニターの電源切ると画面の描画もしなくなるってことか
すごいな

413:名無しさん@お腹いっぱい。
16/01/27 11:00:11.15 12Zxt+CV0.net
>>387
そうみたいだね
モニタにハードスイッチ付いてれば良いんだが・・・
OSの制御でモニタの電源切るしか無いのがイタイ
Windows7の時はこれでも描画してたんだがグラフィック関係ごと電源落としてるのかね

414:名無しさん@お腹いっぱい。
16/01/27 11:19:55.96 4oyilgdN0.net
ハードスイッチがついたモニタを買う
モニタのコンセントを抜く
ハードスイッチがついてないモニタってなんだ?一体型?

415:名無しさん@お腹いっぱい。
16/01/27 11:47:36.48 12Zxt+CV0.net
隣のPCのモニタの開いてる端子に繋いでマルチモニタとして認識させたら行けたわ・・・
(隣のPCモニタの表示は切り替えず元のまま)
無理矢理感MAXだけど仕方ないね
こんなところで仕様変更有るとは想像もしてなくて参った

416:名無しさん@お腹いっぱい。
16/01/27 12:08:40.68 x0sPMmFo0.net
一部のゲームとかソフトとかでGetkeyとか使えなくなってたりしてるの確認してる
ウィンドウ指定するとき右クリック入れてからやるようにしてるからその辺使えないと困る
うぃん10使ってたの1時間未満ですぐに戻した
戻してもいいなら戻したほうがいいのではとも思う



417:だよくある質問でchromeがmouseorgでバックグラウンド画像認識しようとしたらできないって人がいるけど win10だと出来るっていうことは確認した >>188の件



418:名無しさん@お腹いっぱい。
16/01/27 18:55:11.83 baMEr/z1e
//test.uws
DIM A=999999999999999
PRINT A   //999999999999999
PRINT A+1 //1E15

上記のテストで変数が15桁まで対応してるのがわかる

419:名無しさん@お腹いっぱい。
16/01/28 20:52:58.52 ARfwwneo0.net
皆さんこんばんは
スケジュール機能で40以上登録したいのですが、増やすにはどうしたら良いでしょうか?

420:名無しさん@お腹いっぱい。
16/01/28 21:16:25.64 vsEjcj1E0.net
UWSC.INIの
[SCHEDULE]
MaxNumber=**←ここいじれ

421:名無しさん@お腹いっぱい。
16/01/28 21:28:21.68 ARfwwneo0.net
>>394
できたーーーーーーー!!!!
ありがとう!マジ感謝!ちゅちゅちゅちゅちゅ

422:名無しさん@お腹いっぱい。
16/01/29 10:51:30.38 jpG6pbsk0.net
YOU ! EXITしちゃいなよ!

423:名無しさん@お腹いっぱい。
16/01/30 03:55:44.75 M5n6V6080.net
>>390
たとえば俺の Lenovo のノーパソだと
Fn+F2 キーでモニタOFFにできるんだけど
これならBIOSレベルでやってるだろうから大丈夫だったりするんじゃないかな。

424:名無しさん@お腹いっぱい。
16/01/30 04:03:53.47 Kxa/SQA40.net
今日始めたばかりなのでわからない事だらけですがよろしくお願いします
下記の作業をさせたい場合どうすればいいですか?
・画像1がある時に画像1をクリック
・画像2がある時に画像2をクリック
・画像3がある時に画像3をクリック
同じ画像が同時に出てくる事はありません
画像が出てくるのに少し時間がかかるので見つかるまで再検索
下記の文で実行したところ最初の時点で画像は出ていてもクリックをしてくれません
エラーも吐かずずっと再生状態のまま何もしてくれませんでした
一応自分なりに調べてみたのですが解決しなかったので知恵をお貸しください
repeat
sleep(0.2)
until chkimg(

425:名無しさん@お腹いっぱい。
16/01/30 04:05:13.35 Kxa/SQA40.net
すいません、尻切れになってしまいした
試してみた文はこれです
repeat
sleep(0.2)
until chkimg("1.bmp")=true
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
repeat
sleep(0.2)
until chkimg("2.bmp")=true
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
repeat
sleep(0.2)
until chkimg("3.bmp")=true
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)

426:名無しさん@お腹いっぱい。
16/01/30 04:16:36.53 Q6ySmrDa0.net
そりゃ画像見つかるまでループで順番に1、2、3ってやったら
画像2か3が出た場合、画像1のチェックを延々やるだけになるに決まってるだろ
ループ1回の間に3つチェックにしないと
IFBで3段階入れ子にするとかしないと

427:名無しさん@お腹いっぱい。
16/01/30 04:19:51.66 Kxa/SQA40.net
言葉が足りませんでした
repeat
sleep(0.2)
until chkimg("1.bmp")=true
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
これだけでも無理で何もクリックしてくれず
IFB chkimg(".bmp")=true then
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
endif
これでも無理でした

428:名無しさん@お腹いっぱい。
16/01/30 04:21:57.44 Kxa/SQA40.net
IFB chkimg("1.bmp")=true then
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
endif
でした、連投すいません
画像のファイル名は各種番号のみで24ビットbmp形式
uwscの実行ファイルと同じところに置いています

429:名無しさん@お腹いっぱい。
16/01/30 04:41:16.12 RmoOYQCx0.net
IFB chkimg("1.bmp")がFALSEなら、画像が間違ってるとしか言いようがない

430:名無しさん@お腹いっぱい。
16/01/30 05:15:28.84 Q6ySmrDa0.net
うん、>>398で言ってるやりたいこと以前に画像が検出できてないだけじゃん

431:名無しさん@お腹いっぱい。
16/01/30 06:28:10.77 Fh+9y7iS0.net
>>398は見当違いな事言ってるように見えるが
画像2や画像3以前に画像1の時点でダメなんだろ
画像1のみでやってもミスってんだから

432:名無しさん@お腹いっぱい。
16/01/30 09:07:24.64 2SEEQedG0.net
どこまで行ったのかを確認できるようにログを残すようにしてるんだけど普通何の関数使うんだろ
今はSendStrでやってるんだけど

433:名無しさん@お腹いっぱい。
16/01/30 09:31:52.50 Q6ySmrDa0.net

PRINT使えば普通にログ残るだろ?
わざわざ別の方法でログ取ってるのか?

434:名無しさん@お腹いっぱい。
16/01/30 10:03:26.42 BggHBUaW0.net
uwsc 


435:うそつかない 1.bmp一致しない 画像変えるよろし



436:名無しさん@お腹いっぱい。
16/01/30 10:09:18.79 2SEEQedG0.net
なんだよそれちょっと調べてくるわ

437:名無しさん@お腹いっぱい。
16/01/30 14:56:11.94 RmoOYQCx0.net
最近のchromeの更新でflashの表示のされ方がかわったっぽい気がする
以前に作った画像が認識されず、システムの復元で戻したら認識された

438:名無しさん@お腹いっぱい。
16/01/30 14:58:21.22 t4gyFyGY0.net
ChromeはFlash内蔵しちゃったからな

439:名無しさん@お腹いっぱい。
16/01/30 17:12:41.00 TzbPvxq50.net
昔からIEが上手く操作できなくて悩んでたんだけど
print IE.document.getElementsByTagName("tr")[2].getElementsByTagName("td")[5].getElementsByTagName("div")[1].style.width);

print IE.document.getElementsByTagName("tr").item(2).getElementsByTagName("td").item(5).getElementsByTagName("div").item(1).style.width
って書かないとだめな事をついさっき知った
多分これで今まで挫折したほとんどの操作ができる気がする
これについて勉強したいんだけどどこかに記載ってある?

440:名無しさん@お腹いっぱい。
16/01/30 17:22:29.38 xqf/0swG0.net
最近getElementsByTagNameなんか使ったこと無いわ…
querySelectorばっかり

441:名無しさん@お腹いっぱい。
16/01/30 19:15:44.12 M5n6V6080.net
>>412
XPath で記述して展開させたらシンプル

442:名無しさん@お腹いっぱい。
16/01/30 20:53:56.31 CxNcpNVU0.net
最近はじめたのですがUWSCスクリプト編集に最適なおすすめエディタはなんですか?
とりあえずnotepad++を使ってますが「\」が使えのがイマイチだと思ってます

443:名無しさん@お腹いっぱい。
16/01/30 21:20:46.06 Pytl/RXf0.net
atom

444:名無しさん@お腹いっぱい。
16/01/31 00:29:08.15 osD6olzu0.net
サクラエディタのUWSCキーワードモード

445:名無しさん@お腹いっぱい。
16/01/31 00:30:58.41 TDN+J1+m0.net
標準で関数名に色が付くMeryでいいんじゃね?
つづりで間違って悩んだりもしないだろうし

446:名無しさん@お腹いっぱい。
16/01/31 00:51:01.33 pVIrtpdo0.net
>>416-418
ありがとうございます いろいろ試してみます

447:名無しさん@お腹いっぱい。
16/01/31 06:56:23.26 MAkpvZ6c0.net
>>403-405,402
ありがとうごさいました
画像を差し替えたところ成功しました

448:名無しさん@お腹いっぱい。
16/01/31 08:29:30.29 kKfsHKLi0.net
質問なのですが、UWSCでサーチエンジンと言うソフトを操作しようと思っても
全く動作してくれません。これは自動化するにあたって、UWSCでは操作ができないアプリもあるということなのでしょうか??
ご教授いただけると幸いです。

449:名無しさん@お腹いっぱい。
16/01/31 08:38:31.98 sUTMeQpI0.net
できないアプリもある

450:名無しさん@お腹いっぱい。
16/01/31 09:35:09.11 /i6usHVb0.net
>>422
やはりですか、、、それがわかっただけでも得るものは大きいです

451:名無しさん@お腹いっぱい。
16/01/31 15:04:22.93 W6132sy20.net
戻り値が配列になるものを使う場合ってあらかじめ宣言するときは
配列だって明示的に(?)定義しないのね
エラー
dim a[2]
dim b[3][2]
dim i
a = split("a b c")
for i = 0 to 3
b[i] = split("a b c")
next
dim a
dim b[3]
で動く
functionの配列戻しが上手くいかないでしばらく頭抱えてた

452:名無しさん@お腹いっぱい。
16/01/31 15:20:17.78 cL2tI1rC0.net
Split()の返値はSafeArrayだから定義するならSafeArray()じゃない?

453:名無しさん@お腹いっぱい。
16/01/31 19:30:07.95 SGnnlRSc0.net
>>424
a = split("a b c")
for i = 0 to resize(a)
print a[i]
next
これだけでもうごくみたいだけど・・・どうなの?

454:名無しさん@お腹いっぱい。
16/01/31 20:05:32.38 W6132sy20.net
普段はEXPLICITしてるから
dim a[] = split("a b c")
とかって書いて悩んでた
SafeArrayを定義するときは配列じゃないなんてきいてないよままん
まあ正確には二次元だったのもあって
dim a[3][5]
for i = 0 to n
 a[i][] = 関数(i) //←ここ


455: next の書き方がわかんなかった dim a[3] にすれば通るのねってことで土日が終わった



456:名無しさん@お腹いっぱい。
16/01/31 20:16:13.80 rJZHZ5Hk0.net
そうですか

457:名無しさん@お腹いっぱい。
16/01/31 20:28:40.93 cL2tI1rC0.net
>>427
>戻値 = SPLIT( 文字列, [区切文字列, 空文字処理フラグ, 数値処理フラグ] )
>戻値
> 作成された一次元配列(SAFEARRAY型)
返値がSafeArrayなのにDIM定義の配列で受けるのがおかしいだろって
遠回しに言ったつもりだったんだけど・・・

458:名無しさん@お腹いっぱい。
16/01/31 20:48:30.79 W6132sy20.net
SAFEARRAYとはなんぞやDIMとの違いはって
HELPみてもさっぱり載ってないもんでよくわかんなかったのです
戻値 = SAFEARRAY( [下限, 上限])
↑の定義はどこでするのん?みたいな

459:名無しさん@お腹いっぱい。
16/01/31 21:06:58.46 RkOVI4vxn
気になって見ていたら本当に載ってなくてワロタ

460:名無しさん@お腹いっぱい。
16/01/31 21:04:45.22 mevx1vWE0.net
SAFEARRAYはメモリ内での並び順が保証されている配列で宣言したければ普通の変数としてDIMしたら良いだけの話

461:名無しさん@お腹いっぱい。
16/01/31 22:04:46.46 ymVVdFl90.net
リファレンス見たり、マクロ記録してコピペして作るクソ汚いコードなら簡単なやりたい事作れるようになってきたんだけど、スッキリした綺麗なコーティングとかは何を勉強すれば出来るようになるの?

462:名無しさん@お腹いっぱい。
16/01/31 22:28:54.39 h2MIJWcH0.net
他人の綺麗なコードを見て弄って真似をする

463:名無しさん@お腹いっぱい。
16/02/01 00:06:56.18 ODrpB13q0.net
あとこれ
X = CALCARRAY( split("1 2 3"),CALC_ADD)
が駄目で
a = split("1 2 3")
X = CALCARRAY(a,CALC_ADD)
でないと動かないのもよく分からないです
配列なのかなんなのか
ヘルプ読んでも
<変数>
 変数に型はありません(SAFEARRAY型がないとは言ってない)
って感じでわけわかめ

464:名無しさん@お腹いっぱい。
16/02/01 00:37:00.65 +rnmEAjm0.net
変数の名前で後になって困ることが多い
・適当に名づけて似たような変数名があふれてごっちゃに
・名前を決めかねて、後から読むと意味の読み取れない変数名に
・コードをなおしていくうち、当初の意図とは違うコードになり意味が合わなくなる
・コピペしてきたコードなので意味が合わなくなる
こういうのを最初から見越してきちんと決めていくと良いコードになるのかなあ
でも、変数使うときって、思考の中心は「こういうコードを作ろう」だから、
変数名に気を取られると「こういうコードを作ろう」の中身を忘れちゃったりするんだよな

465:名無しさん@お腹いっぱい。
16/02/01 00:42:55.69 baaBe9/W0.net
せっかく日本語使えるんだから日本語でつけちゃえばいい

466:名無しさん@お腹いっぱい。
16/02/01 01:03:00.84 VsiPttLF0.net
単純にスコープの管理が甘いと思う
広いスコープの変数なら「何を保持しているのか」が中心にした方が良い
UWSCはクラスのインスタンスを作れないから
オブジェクト指向的に変数を管理し難いのが難点だよね
それでも自分はある程度の規模のスクリプトならクラスを造って変数を管理するけれどね

467:429
16/02/01 01:45:10.84 +rnmEAjm0.net
>>438
そういうものがあるのか
関数まとめて別ファイルに入れてこっちで呼び出して……みたいなことやってるからちょうど良さそう
オブジェクト指向と言う名前は聞いたことある、程度の初心者だけど、いい機会だから勉強してみるよ
ありがとう

468:名無しさん@お腹いっぱい。
16/02/01 02:55:35.27 BoGYQ2nB0.net
名前が決まらないのはその目的(責務)が明確になってないのが原因でもある

469:名無しさん@お腹いっぱい。
16/02/01 08:25:33.84 8RvGbPw20.net
未熟な自分では考えてもできなかったのでご教授ください
t=


470:GETTIME() While True ifb CHKIMG("A.bmp") sleep(1.0) BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) t=GETTIME() else (中略) ifb CHKIMG("H.bmp") sleep(1.0) BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) t=GETTIME() else ifb ((GETTIME()-t)>3) Then BTN(LEFT,CLICK,100,100,0.5) t=GETTIME() endif (中略) endif sleep(0.1) WEND これらを実行する時 ifb CHKIMG("A.bmp") BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) t=GETTIME() に限り「画像Xがある時のみ行う」としたいのです 全てに対してとするならできたのですが1つ目文に対してのみというのができなくて詰まってしまいました



471:名無しさん@お腹いっぱい。
16/02/01 09:04:45.92 g7iI5XSU0.net
if X and A
elseif !A
endif

472:名無しさん@お腹いっぱい。
16/02/01 09:33:11.94 pZZgy3PS0.net
ifb CHKIMG("X.bmp") AND CHKIMG("A.bmp")
こんだけのことやんけ

473:名無しさん@お腹いっぱい。
16/02/01 15:18:36.89 hzvm75kL0.net
option shortcircuit付けてな

474:名無しさん@お腹いっぱい。
16/02/01 16:00:59.79 Th0k4/oZ0.net
本体のホットキーを使わずに一時停止をやりたいんですけど
こんな感じの関数を随所随所で呼び出すしかないんでしょうか?

PROCEDURE ESC_PAUSE
 IF !GETKEYSTATE(VK_ESC) then exit
 SLEEP(0.1)
 REPEAT
  SLEEP(0.1)
 UNTIL GETKEYSTATE(VK_ESC)
 SLEEP(0.1)
FEND

475:名無しさん@お腹いっぱい。
16/02/01 16:12:58.29 hzvm75kL0.net
使わずにっていうのは、本体の一時停止をやりたくないのか
それとも本体に設定されたホットキー以外のキーで一時停止したいのか
どっち?

476:名無しさん@お腹いっぱい。
16/02/01 17:12:39.88 Th0k4/oZ0.net
本体の一時停止ホットキーは、2つ以上のキーで面倒なのと
スクリプト内でやれば、好みの条件に出来るかなと思いまして
たとえば、マウスカーソルの位置とか
PROCEDURE MOUSE_PAUSE
 IF G_MOUSE_X<1000 then exit
 Repeat
  SLEEP(0.1)
 Until G_MOUSE_X<1000
FEND

477:名無しさん@お腹いっぱい。
16/02/01 17:20:38.17 Th0k4/oZ0.net
あと、本体の一時停止ホットキーは
本体から動かしてるスクリプトには有効ですが
ランチャー等から起動した別のスクリプトには無効みたいです

478:名無しさん@お腹いっぱい。
16/02/01 17:38:04.47 PbXPJngC0.net
>>447
停止処理はSETHOTKEYで呼び出し 停止処理からの復帰は停止処理内でGETKEYSTATE
dim i
sethotkey(VK_A,,"proc_Pause")
while true
i= i+1
fukidasi(i)
sleep(0.5)
wend
procedure proc_Pause()
repeat
sleep(0.5)
until GETKEYSTATE(VK_ESC)
fend
aで処理中断 escで中断からの復帰 中断復帰後は中断時の処理から続いてる事も確認できる
sethotkeyでコードの頭に登録すればそれ以降の処理内で一々中断用のコード書かなくてもいいから保守性も高いよ

479:名無しさん@お腹いっぱい。
16/02/01 17:41:43.95 hzvm75kL0.net
UIが無い別プロセスのスクリプトにも有効なのは有効だよ。
ただ、2つ以上のスクリプトが動作してると、キーが消費されちゃうので
連打するとか押しっぱなしにするとかしないと効かない。
あーでも一時停止は連打はダメか。
停止のホットキーは押しっぱなしで全プロセス停止に効く。
本体を一時停止してもいいなら、SETHOTKEYで任意のキーを押した時に
UWSC本体に一時停止のホットキーを送るってのもありかと。
あと停止はループさせるよりMSGBOXとか出す方が便利とは思うが。

480:名無しさん@お腹いっぱい。
16/02/01 21:11:01.64 Th0k4/oZ0.net
レス、ありがとうございます
>>449
おぉー、ホットキーを設定するやり方ですか
仮想キー限定のようですが、これはいい方法ですね
>>450
MSGBOXを使うと、解除がちょっと面倒なんで・・・
あと、UWSC本体を起動せず
下記スクリプトをショートカットから実行した場合
一時停止ホットキーは機能しませんでした
for j=1 to 10000
 fukidasi(j)
 SLEEP(0.5)
next

481:名無しさん@お腹いっぱい。
16/02/02 07:05:55.13 Mf47p9PS0.net
>>451
URLリンク(uproda.2ch-library.com)
俺はこんな感じでやってる
実際に使うときはウィンドウ指定してアクティブ時にキーチェック�


482:オてる



483:名無しさん@お腹いっぱい。
16/02/04 13:22:20.05 bYNIn2Du0.net
Google Speech API と組み合わせて音声入力させるものって作れるかなあ?

484:名無しさん@お腹いっぱい。
16/02/04 14:03:46.64 fyQC3oxA0.net
すみません、UWSCってこのスレで初めて知ったんですが、業務で利用されてる方いらっしゃいますか?

485:名無しさん@お腹いっぱい。
16/02/04 15:21:36.98 ja3vwQ+v0.net
いますよー

486:名無しさん@お腹いっぱい。
16/02/04 17:34:50.27 cVw67MCx0.net
詰まったので質問させて下さい。
現在BluestacksとUWSCを使用して自動マクロを運用しています。
また、離籍時にteamviewerを使用してリモートで操作もしています。
相対座標を使用し、通常は問題なく使えるのですが
teamviewer使用時が問題で、セッション終わり毎にダイアログが発生し、そのせいでループが抜けなくなり手間が増えている状態です。
質問なのですが
id=GETID("Bluestacks App Player","WindowsForms10.Window.")
MOUSEORG(id, MORG_DIRECT)
上記のように指定しても画像検索はできますが座標がおかしくなってまともに動きません。
座標を直接指定しても、画像の場所に直接クリックにしても常に左上の端のみをクリックする状態となっています。
どのように指定をすればいいでしょうか?

487:名無しさん@お腹いっぱい。
16/02/04 18:42:53.73 Ml8C21Ff0.net
mouseorgは通用するアプリとしないものがあると何度いわれたらry

488:名無しさん@お腹いっぱい。
16/02/04 19:06:31.07 zrOVrXZR0.net
>>456
teamviewer昨日導入したわ。タイムリーな。ツムツムかな?
俺はダイアログ消す方で解消したわ。
UWSCのスケジュールの指定ウィンドウが現れた時で、ダイアログを消すスクリプト登録したらいい感じ。

489:名無しさん@お腹いっぱい。
16/02/04 19:21:35.52 cVw67MCx0.net
>>457
ありがとうございます。
自分では通用するのかどうかがわからなかったのと、画像検索はできたので方法があるのかと思い聞いてみました。
申し訳ありませんでした。
>>458
そうだったんですね。
俺は別のゲームです。
プログラミング初心者の為勉強しながらになりますが頑張って組んでみます。
ありがとうございます。

490:名無しさん@お腹いっぱい。
16/02/04 19:25:47.32 I350w/WA0.net
>>456
MORG_DIRECTをMORG_CLIENT変える

491:名無しさん@お腹いっぱい。
16/02/04 21:48:42.30 DIbZWkUk0.net
BTN(LEFT,CLICK,1200,150,150)

BTN(LEFT,CLICK,1000,150,150)
どちらかランダムで一つクリックさせたい場合ってどうやればいいですか?

492:名無しさん@お腹いっぱい。
16/02/04 21:57:51.63 EqtNr8zt0.net
ランダムで分岐させたら良い

493:名無しさん@お腹いっぱい。
16/02/04 22:23:24.65 4BmdWrRw0.net
>>461
BTN(LEFT,CLICK,1000+RANDOM(2)*200,150,150)

494:名無しさん@お腹いっぱい。
16/02/04 23:36:39.04 bosOw8Gy0.net
整数化しないとひどいことになりそう

495:名無しさん@お腹いっぱい。
16/02/04 23:42:01.07 EqtNr8zt0.net
個人的には速度や短さを競うコードコンテスト以外では
結果的にやりたいことになるコードではなく
やりたいことをそのままコードにした方が良いと考えるかな
メンテで正しく動作しなくなる種になるからね

496:名無しさん@お腹いっぱい。
16/02/05 00:29:23.88 Gg6PibGB0.net
>>460
今ってbluestacksをバックグラウンドで動かせるようになったの?

497:名無しさん@お腹いっぱい。
16/02/05 02:27:59.12 AORidpJX0.net
>>463
ありがとうございます

498:名無しさん@お腹いっぱい。
16/02/05 02:37:46.36 /HWKBYw70.net
プログラミングのプの字も知らないけどUWSCで初挑戦中
画像認識でAの画像が出るまでBの操作を繰り返す
Aが出たらその画像をクリックしてCの操作へ
これはrepeat-untilでいいですか?

499:名無しさん@お腹いっぱい。
16/02/05 04:19:16.20 i6SfBH8K0.net
いいよ(´・ω・`)
とにかく自分で書いて試してみるのが上達の近道


500:だよ あとUWSCの本があるからブックオフで見かけたら買うといいよ



501:名無しさん@お腹いっぱい。
16/02/05 06:07:19.13 /HWKBYw70.net
ありがとうございます
色々調べ回って393のような形で処理に成功しました
これを順不同にするにはどうしたらいいでしょうか
a,b,cの画像を出てきた順にクリックしたいとして
repeat
sleep(0.2)
until chkimg("a.bmp")=true or chking("b.bmp")=true or chking("c.bmp")
btn(left,click,g_img_x,g_img_y)
これを3つ羅列するとできると思うんですが
長ったらしくなるのでこれをスマートに収めるにはfor~nextで挟めば大丈夫でしょうか

502:名無しさん@お腹いっぱい。
16/02/05 09:15:41.63 YVt32lCs0.net
ツムツムはMORG_DIRECT使えますか?

503:名無しさん@お腹いっぱい。
16/02/05 09:18:42.14 AKW1xg3y0.net
>>460
ありがとうございます。
試してみましたが、バックグラウンドで動くわけではないのですね。
リモートする際はchromeのリモートデスクトップ使用でダイアログに邪魔される事もなくなりましたのでこのまま使用していきます。

504:名無しさん@お腹いっぱい。
16/02/05 12:28:03.94 /waBKm5O0.net
>>470
それ一つで動作するが
OPTION SHORTCIRCUITを設定しない標準状態だと
g_img_x,g_img_yの中にchking("c.bmp")の結果しか入らないので
これを設定する

505:名無しさん@お腹いっぱい。
16/02/05 18:09:16.28 YVt32lCs0.net
使えませんでした

506:名無しさん@お腹いっぱい。
16/02/06 13:49:52.63 E2a0obR10.net
>>470
散々既出だけど、画像があればクリックしてTRUEを返すCLKIMG関数を自作する。
while true
  clkimg(

507:名無しさん@お腹いっぱい。
16/02/06 13:57:39.57 E2a0obR10.net
なんかカキコが壊れた。
clickImage uwsc でググると過去スレに自作例が出てくるな。
while true
  ifb clickImage("1.bmp") then
    //1のクリックに成功した時の処理
  endif
  ifb clickImage("2.bmp") then
    //2のクリックに成功した時の処理
  endif
  ifb clickImage("3.bmp") then
    //3のクリックに成功した時の処理
  endif
wend
ごく基本的な構造化なのでまだ早いとかやめてね…

508:名無しさん@お腹いっぱい。
16/02/06 14:00:17.77 E2a0obR10.net
クリック後に個別の処理が不要なら clickImage("1.bmp"); clickImage("2.bmp"); clickImage("3.bmp") で済んじゃう

509:名無しさん@お腹いっぱい。
16/02/06 21:35:39.00 4Jvgc2PX0.net
かなり初歩的な質問なのですが調べてもあまり分からなかったので質問させて頂きます。
UWSCでログファイルが更新され続ける拡張子がtxtなどのファイルを監視し、目的のログが現れた場合
キーを送信 ってできますでしょうか?
やり方を教えて頂きたいです。

510:名無しさん@お腹いっぱい。
16/02/06 22:15:37.28 k3CjFpd40.net
・日本語をきちんと使えるようにする
・UWSCを勉強する
たったこれだけで実現できるようになるよ
あとは君の努力次第だから頑張ってね

511:名無しさん@お腹いっぱい。
16/02/06 22:35:58.37 0QAMOn/70.net
シェアウェア版って結構高いねそれでも業務に使える?一台に一ライセンス必要みたいだけど

512:名無しさん@お腹いっぱい。
16/02/06 22:47:44.53 sPS5RQrH0.net
>>480
何度もバカなの?

513:名無しさん@お腹いっぱい。
16/02/06 22:57:49.59 2YduAXx90.net
>>478
質問がごちゃごちゃし過ぎで、丸投げしたいようにしか見えない
どのように監視できないのか
どのようにログの検索ができないのか
どのようにキー送信ができないのか

514:名無しさん@お腹いっぱい。
16/02/07 00:40:38.55 puxzTe8g0.net
>>456
これに便乗なんだけど
MORG_DIRECTで動作するAndroidのエミュレータってありますか?

515:名無しさん@お腹いっぱい。
16/02/07 06:08:59.16 I92VPPhw0.net
uwscって自由すぎて逆に戸惑うことが多くね?
TOTAL = MYCALC(300,400)
//計算結果を出力
PRINT TOTAL
FUNCTION MYCALC(VAL1, VAL2)
ADD = VAL1 + VAL2
RESULT = ADD
FEND
-------------------------------------------------
PRINT MYCALC(300,400)
FUNCTION MYCALC(VAL1, VAL2)
ADD = VAL1 + VAL2
RESULT = ADD
FEND
PRINT文にFUNCUTION関数直接書いても出力されるんだな

516:名無しさん@お腹いっぱい。
16/02/07 06:13:42.80 mZHgAHcI0.net
関数の引数に関数を入れるのは普通
出来ない言語の方が珍しい

517:名無しさん@お腹いっぱい。
16/02/07 06:14:43.21 oQyphb55


518:0.net



519:名無しさん@お腹いっぱい。
16/02/07 07:45:41.55 JTReqb1J0.net
気づけてよかったね

520:名無しさん@お腹いっぱい。
16/02/07 07:48:35.49 TPGZWfB40.net
今までで割引キャンペーンとかってやったことある?
やってくれれば買うんだけどな

521:名無しさん@お腹いっぱい。
16/02/07 12:25:34.39 DbLS0yGv0.net
関数の引数に関数を入れる、が関数ポインタとかラムダ式、リスナクラスの話に聞こえてちょっとビックリしたw

522:名無しさん@お腹いっぱい。
16/02/07 12:30:27.93 UmG8NUOx0.net
あっしには何を言ってるのかさっぱり

523:名無しさん@お腹いっぱい。
16/02/07 15:28:50.99 cJXx45gX0.net
>>487
気付かせてくれてありがとう

524:名無しさん@お腹いっぱい。
16/02/07 19:18:51.61 I92VPPhw0.net
>>485
そうなんだ、知らなかった
教本みたいなサイトって丁寧に関数書くから
他人のコード見た時に「なんだこれ!」ってなってびっくりしたわ
ついでに聞きたいんだけどさ
---------------------------------------------------------------
クリック("ボタン")//
FUNCTION クリック(name)
IFB CHKIMG(name + ".bmp",0)
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
KBD(VK_a,CLICK)
ENDIF
RESULT
FEND
-------------------------------------------------------------
こうやってCHKIMGの画像ファイル名を関数の引数?を使って好きに変えれるようにしたんだけど
同じようにKBD(VK_a,CLICK)
のVK_aの部分も変えられるように出来ないかね?

525:名無しさん@お腹いっぱい。
16/02/07 19:28:24.73 mZHgAHcI0.net
VK_Aとかは定数だから変数に入れたり計算させても大丈夫だよ
例えば VK_A + 1 と VK_B は同じだったりとかね

526:名無しさん@お腹いっぱい。
16/02/07 19:34:53.46 I92VPPhw0.net
へー、面白いな
今やってみたら出来たよ
ありがとう

527:名無しさん@お腹いっぱい。
16/02/07 19:48:58.52 C1KScm550.net
コードが難読化するからコーディング規約で禁止してるところも多いけどまぁ便利だよね

528:名無しさん@お腹いっぱい。
16/02/07 20:25:57.04 Op3LiiL10.net
そもそも関数という形はそういう書き方をするためのものだろう。
受け取るだけの変数を毎回経由するなら戻り値なんて機能は不要だし。

529:名無しさん@お腹いっぱい。
16/02/08 17:06:48.25 T9ZC/Zyz0.net
質問したい
A処理
└B処理
 └C処理
という感じの処理があって、これをFUNCTION ABC()にまとめた
ABC(Aへの引数) と書くとCまで行くようになっている
だけどA処理を飛ばしてB処理の部分を利用したいこともある
AB飛ばしてC処理をしたい時もある
そういう場合にABC(0,Bへの引数,0)やABC(0,0,Cへの引数)と書けば処理ができるように作ってみたんだけど
これ以外に簡便なやり方って無いかな?
URLリンク(i.imgur.com)
------------------------------
FUNCTION ABC(Aへの引数,Bへの引数,Cへの引数,戻り値)
RESULT = False
|IFB !Aへの引数=0
| (A) 処理
|ELSE
| |IFB !Aへの引数=0
| | (B) Aの値を継承して処理
| |ELSE
| | (B') Bへの引数を使って処理
| | |IFB !Aへの引数=0
| | | (C) Bの値を継承して処理
| | |RESULT = True
| | |ELSEIF Aへの引数=0 and !Bへの引数=0
| | | (C') B'の値を継承して処理
| | |RESULT = True
| | |ELSEIF Aへの引数=0 and Bへの引数=0
| | | (C'') Cへの引数を使って処理
| | |RESULT = True
| | |ELSE
| | |RESULT = False
| | |ENDIF
| |ENDIF
|ENDIF
FEND
------------------------------

530:名無しさん@お腹いっぱい。
16/02/08 17:56:33.03 uvOD7Pon0.net
引数以外の継承したい変数をPUBLICにするとか参照渡しにして
ABC各処理を別関数に
関数A
関数B
関数C
ABC全部処理する関数ABC
BとCだけ呼ぶ関数BC
みたいに呼べばいいんでないの

531:名無しさん@お腹いっぱい。
16/02/08 17:58:10.02 657cwzrg0.net
・継承という用語はプログラミングにおいて特別な意味を持つので別の表現を使うべし。
・サンプルプログラムの条件分岐に既に無意味な部分がありどうしたいのかが読み取れない。
 今の状態だと


532:7,11-12行目は絶対に実行されない。 ・引数第4項が戻り値であるにもかかわらずvar宣言がない、関数内でも使われていない。 実行され得ない部分を削って最適化するとこんな感じ。やっぱり意図がわからない。 FUNCTION doABC(Aへの引数, Bへの引数, Cへの引数)   RESULT = False   IFB !Aへの引数=0     doA(Aへの引数)   ELSE     doB(Bへの引数)     IFB !Bへの引数=0       doC(Bへの引数)     ELSE       doC(Cへの引数)     ENDIF     RESULT = True   ENDIF FEND



533:名無しさん@お腹いっぱい。
16/02/08 17:58:53.91 657cwzrg0.net
要件ベースでまとめると、
(1) Aへの引数のみ指定すると、doA(Aへの引数), doB(Aへの引数), doC(Aへの引数) の順で実行
(2) Bへの引数のみ指定すると、doB(Bへの引数) のみ実行
(3) Cへの引数のみ指定すると、doC(Cへの引数) のみ実行
解1
関数 doA(paramA), doB(paramB), doC(paramC) を定義し、
関数 doABC(paramABC) 内で上記関数を使用する。
(1)はdoABC(Aへの引数) , (2)はdoB(Bへの引数) , (3)はdoC(Cへの引数) を実行する。
解2
各ケースをあくまで一つの関数にまとめ、引数の指定の仕方のみで制御したい場合。
PROCEDURE doABC(Aへの引数, Bへの引数, Cへの引数)
  RESULT = False
  IFB !Aへの引数=0
    doA(Aへの引数); doB(Aへの引数); doC(Aへの引数)
  ELSE
    IFB !Bへの引数=0
      doB(Bへの引数)
    ELSEIF !Cへの引数=0
      doC(Cへの引数)
    ENDIF
  ENDIF
FEND
メリットは特に無い。


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