自動化ツールUWSC使いよ集まれ11at SOFTWARE
自動化ツールUWSC使いよ集まれ11 - 暇つぶし2ch249:名無しさん@お腹いっぱい。
14/01/27 17:38:42.74 egjgCvHv0
大きいほうがいいということはないと思うけど
仮に大きくても小さくても左上の1点で判定できるとすると、
大きいほうが検索範囲が狭くなるので速くなるかも。

同じ大きさの箱に違う大きさの箱を入れると可動範囲が違うという理屈。

検索範囲は絞った方がいいし、
出来るだけ似た色のない部分を選んだ方がいい。

250:名無しさん@お腹いっぱい。
14/01/27 18:29:57.93 5FA4uFKW0
>>248
テスト結果載せてくれてありがとう。
多分大きいと、最初の数ドットでマッチしなかったら、画像の大きさ分飛ばして離れた所から検索再開するんだろうね。
ボイヤー-ムーア文字列検索の画像版みたいな

251:名無しさん@お腹いっぱい。
14/01/27 18:35:08.84 egjgCvHv0
画像の出る座標が決まっているなら
その座標をきちっと出して比較すれば
1回の比較で判定するから速いよ。

252:名無しさん@お腹いっぱい。
14/01/27 18:56:14.55 5FA4uFKW0
>>245
URLリンク(neue.cc)

253:名無しさん@お腹いっぱい。
14/01/27 19:19:00.81 N8NWaelk0
画像認証は左上から右下にかけて認証していくから
大きさの他に、x軸y軸の位置によっても時間は変わるね

>>251さんも言ってるけど、認証の場所が決まってるなら範囲指定したほうが早くなるよ

254:名無しさん@お腹いっぱい。
14/01/27 20:40:10.35 DWbFoMN50
>>250
そんなわけないだろ

255:名無しさん@お腹いっぱい。
14/01/27 20:51:03.92 qKp6iFC50
UWSCって普通にパターンマッチだろ

256:名無しさん@お腹いっぱい。
14/01/27 23:28:51.06 1TsAUcuU0
画像ファイルが16x16と100x100で計測してみた
もちろん一致箇所を全て調べあげるモードで
検索範囲が500x500の場合
 全く一致しそうにない画面では、100x100の方が約4%速い
 一致しそうでしない画面では、100x100の方が約60%遅い
範囲が100x100の場合
 どちらも差は1%以下でほぼ同じ

257:名無しさん@お腹いっぱい。
14/01/28 00:15:21.57 zaAZ0Ms00
比較回数は画像が大きいほど狭くなり有利に働く。(不一致の条件が同じ場合)
(500-16)^2=234256
(500-100)^2=160000
160000/234256≒0.68

検索範囲が小さくなるとキャッシュに入りきるので速くなり、時間的な差は小さくなる。
(大きい画像をキャッシュに読み込むのと、小さい画像を何度も比較するのはCPUから見て大差ない)
500^2*4=1000000≒1M
100^2*4=40000≒40k
16^2*4=1024=1k
4バイト=32ビット(色数)

Core i のキャッシュメモリ
1次 32k×2×コアごと
2次 256k×コアごと
3次 3MB、6MB など

258:名無しさん@お腹いっぱい。
14/01/28 06:15:43.45 j8Rno8mqP
つまり、問題は画像の大きさでなく
範囲は絞れるだけ絞っとけってことですね。

259:名無しさん@お腹いっぱい。
14/01/28 08:40:34.64 zaAZ0Ms00
検索範囲は絞るべきだけど
画像も小さいほうがいい。

最初のドットで違っていればいいけど
真っ白な画面に周辺部が白い検索画像だと
かなりの量で一致するから不一致の判断するまでに結構CPU食うことになる。

一致する色が全然ないとわかっているならいいけど。

260:名無しさん@お腹いっぱい。
14/01/28 11:09:20.23 zaAZ0Ms00
作ってみたけど反応遅すぎて使いにくい。
// マウス座標上の色がウィンドウ中にいくつあるか調べる。
// 4096以上あるとUWSCがエラーを出して中断するので4096個目が存在する場合は True を返す。

stopform(true)

MOUSEORG(0)
画像名 = "temp.bmp"
while true
 sleep(0.1)
 ID = GetID(GET_FROMPOINT_WIN)
 MOUSEORG(ID)

 gx = G_MOUSE_X; gy = G_MOUSE_Y

 x = gx - STATUS( ID, ST_X )
 y = gy - STATUS( ID, ST_Y )
 c = PEEKCOLOR( x, y )
 r = c and $FF
 g = (c and $FF00) / $100
 b = (c and $FF0000) / $10000

 SaveImg( 画像名, ID, x, y, 1, 1, )
 sleep(0.2)
 num = ChkImg( 画像名, 0, 0, 0, STATUS( ID, ST_WIDTH ) , STATUS( ID, ST_HEIGHT ), 4096 )
 ifb num = false
  num = ChkImg( 画像名, 0, 0, 0, STATUS( ID, ST_WIDTH ) , STATUS( ID, ST_HEIGHT ), -1 )
 endif

fukidasi("x:" + format(x,4) + " y:" + format(y,4) + " 個数:" + num + "  R:" + format(r,3) + " G:" + _
  format(g,3) + " B:" + format(b,3) + "  タイトル:" + STATUS( ID, ST_TITLE ))
wend

261:名無しさん@お腹いっぱい。
14/01/28 14:56:47.70 3o4fu6V40
>>260
遅いって、もしかしてAeroONでやってるのか?
chkimgやpeekcolor使うときはAero切るのが普通だぞ

262:名無しさん@お腹いっぱい。
14/01/28 22:57:32.59 zaAZ0Ms00
>>261
Windows8.1使ってるんだけど
Windows7のようなOFFにするオプションがショートカットのプロパティにない。

Sleep を長くとってるけどそれでもラグがある。
どうもファイルの保存が遅いっぽい。
しばらくしないと正しく検索されない。

マウスを動かして
色は即時正しく拾ってるのに
個数がしばらくしないと合わない。

Windowsの不具合でないんなら
ChkImg がファイル名でキャッシュしているせいで即時反映されないのかも。

ファイル名を毎回変えれば即時反映されるかもしれないけど
それだとWindowsのディスクキャッシュの恩恵を受けれない。

これの場合は画像ファイルである必要はないから
自分で一点一点比較すればいいけど
UWSCのループじゃ遅いから
PowerShell+C#呼び出したらいいかな。
個数を受け取るだけだから簡単だろう。

263:名無しさん@お腹いっぱい。
14/01/28 23:38:45.24 3cukstCM0
ファイルに書き出さずにクリップボード使えばいいと思うけどなあ

264:262
14/01/30 11:43:00.28 fFL6VXlc0
最初、サーチ部分だけを C#の LockBits で書こうと思ったが、PowerShell の呼び出しに2秒以上かかるからあり得ん。
ついでに DOSCMD 測定したら 0.5秒くらいだった。
PowerShell だけでやる場合は Win32API の呼び出しが必要だったけどちょいめんどいしここに書き込んだら文句出るしちょっとパス。
AutoItX を使うと API 部分が簡単になる。具体的には 「Get-AU3WinPos -WinHandle ハンドル」で矩形が取れる。
だけど AutoItX には _WinAPI_WindowFromPoint がないから自前で API を使わないといけない。

PowerShell でクリップボードを使うには STA で起動しないといけないとかでちょっとパス。
メモリマップドファイルは UWSC がバイナリを扱うのが面倒なのでパス。(サンプルコードはあった)

URLリンク(blogs.gine.jp)
UWSC で↑のコードを試したらなんかクリップボードにセットはダメだったんだけど
クリップボードからのゲットだけは出来た。
UWSCでマウス座標+ウィンドウ矩形を取得して クリップボードを経由して PowerShell + C# で画像処理+表示 ならスムーズにいけそうだ。

と言うところまでなんとかいけた。
まあ、引っかかってる部分を PowerShell 、C#、API でやれればいいだけなんだけどよく分からん。

265:名無しさん@お腹いっぱい。
14/01/30 20:30:09.86 purLBSFN0
START = GETTIME()

の括弧って何ですか?
よくサンプル見ると()って書いてあるんですがわからなくて

266:名無しさん@お腹いっぱい。
14/01/30 21:02:14.39 IvlwzC640
>>265
関数

267:名無しさん@お腹いっぱい。
14/01/30 21:09:20.96 y3aMB4UG0
>>264
速度の足を引っぱってるのはスクリーンキャプチャ部分でしょ。たぶん
260を少し改良してみた URLリンク(codepad.org)

268:名無しさん@お腹いっぱい。
14/01/31 00:31:52.90 07hakmjS0
何曜日 = G_TIME_WW  
print (何曜日)

金曜なのに俺6が出るんだけど何で?

269:名無しさん@お腹いっぱい。
14/01/31 00:36:21.53 MFR5sfOn0
>>268
G_TIME_WW が6だからだろうな

270:名無しさん@お腹いっぱい。
14/01/31 00:39:35.11 07hakmjS0
>>269
いや、それは分かってるんだけど、金曜日なら5じゃないの?って話よ
お前アスペだろw

271:名無しさん@お腹いっぱい。
14/01/31 00:45:22.37 R6dtp9WO0
>>270
お前んちのカレンダーは何曜日から始まってるんだ?

272:名無しさん@お腹いっぱい。
14/01/31 00:48:46.24 MFR5sfOn0
白地がアスペ呼ばわりか。

273:名無しさん@お腹いっぱい。
14/01/31 00:52:37.35 07hakmjS0
G_TIME_WW・・・曜日(0:日曜….6:土曜)

いやいや、ググっても土曜が6って出てくるよ
カレンダーは日曜からでいいんでしょ?
だったら金曜は5じゃん

274:名無しさん@お腹いっぱい。
14/01/31 01:08:26.79 07hakmjS0
日月火水木金土
_______
零一二三四五六_値 
一二三四五六七_順番

0~6で土曜日が6なんだから金曜で6が返されるのが疑問なんだけど
説明できる人いる?

275:名無しさん@お腹いっぱい。
14/01/31 01:09:47.43 gPAFqnQP0
端末の日時がおかしいとかだったらモニター叩き割るぞ
いややめてよ

276:名無しさん@お腹いっぱい。
14/01/31 01:14:51.78 Tjacb1G/0
>>268
G_TIME_WW変数は、GETTIME関数の実行によって値が設定される
未設定状態の値が6なんでしょ。たぶん
つまりGETTIME関数を呼び出しもせずに参照したからそうなった

277:名無しさん@お腹いっぱい。
14/01/31 01:18:00.74 MFR5sfOn0
>>276
まさか、GETTIME() 使わずにG_TIME_WW だけなんて…?

278:名無しさん@お腹いっぱい。
14/01/31 01:21:00.14 07hakmjS0
>>276
あーそういう事か、分かった

279:名無しさん@お腹いっぱい。
14/01/31 01:24:23.76 07hakmjS0
最初に24時間表記で出てくるのか確かめるために
GETTIME()
G_TIME_HH
で0が出て、次に

G_TIME_HH
だけで0が出たからそのまま使える気になってHHをWWに変えてたわw

280:名無しさん@お腹いっぱい。
14/01/31 01:25:21.33 81GFpszH0
まあ、時々やらかすよね。
特に環境変数だとか特殊変数を参照するだけの他の言語を使ってるとどんどん忘れていく。
だけどそういう言語って参照するたびに違うタイミングで呼び出すから同時に使わないと日付変更線をまたいでしまう。

281:名無しさん@お腹いっぱい。
14/01/31 01:35:59.43 07hakmjS0
最にテストしたのが0時台で、正しい値と同じ値が出てきた事
さらに今日が金曜で1だけずれてた事

そのせいで言われるまで、関数を呼んでないっていう単純な見落としに気付かなかったわ

282:名無しさん@お腹いっぱい。
14/01/31 01:57:55.69 ijFkpQpY0
今までは下記のプログラムでアプリを自動化してたのですが、アプリを2つ起動したら誤作動するようになってしまいました
調べてみると、GETIDで取得できるタイトル、クラスが全く同じなのが原因かと思うのですが、まずその点は合っていますか?
またその場合だとGETALLWINを使えば回避できるような感じなのですがこのプログラムに付け加えるならどんな感じになるでしょうか。
宜しくお願い致します。

wnd_id = GETID("アプリ名","あいうえお")
ifb wnd_id = -1 then
MSGBOX("起動していません")
exitexit
endif
MOUSEORG(wnd_id, 2)

while TRUE

if GETKEYSTATE(VK_ESC) then exit
IFb CHKIMG("000.bmp")
sleep(1)
Kbd(VK_NUMPAD0,CLICK,80)
Kbd(VK_1,CLICK,80)
sleep(3)
endif

wend

283:名無しさん@お腹いっぱい。
14/01/31 02:44:41.96 Zrylv4320
自動操作するスクリプトの方も複数起動してそれぞれ対応させたいだけなら
起動後に対象ウインドウを選択したら良いと思うよ
左クリックで指定すると問題があるなら
GETKEYSTATE を任意のキーに変更して GETID を GET_FROMPOINT_WIN にしてみるのもいいかもね

半自動じゃなくて完全自動化したいなら
スクリプト毎にどのウインドウを担当するか連携するコードも必要になるから
正直めんどくさい

Repeat
 GETKEYSTATE(VK_LBUTTON)
 Repeat
  Sleep(0.001)
 Until GETKEYSTATE(VK_LBUTTON)
 wnd_id = GETID(GET_ACTIVE_WIN)
Until !(STATUS(wnd_id, ST_TITLE) = "アプリ名" And STATUS(wnd_id, ST_CLASS) = "あいうえお")

284:名無しさん@お腹いっぱい。
14/01/31 03:00:45.36 Zrylv4320
最後のUntilの !() はあったらダメだわw
あと ST_TITLE の条件自体が必ずしもアプリ名と一致しないケースもある除外した方がいいかも
なので最終行だけ訂正~

Until STATUS(wnd_id, ST_CLASS) = "あいうえお"

285:名無しさん@お腹いっぱい。
14/01/31 03:01:08.21 ijFkpQpY0
>>283
早速の回答ありがとうございます!
アプリを2個起動させて片方はバックグランドで完全自動化でもう片方は自分で操作しようと思ってます
自動化させたい対象ウィンドウを左クリックで指定は簡単で良いですね!
気になるのは教えて頂いたスクリプトはバックグランドで動いてくれるでしょうか?
いま出先なので帰宅後試してみようと思います

286:名無しさん@お腹いっぱい。
14/01/31 03:23:27.75 Zrylv4320
多分ウインドウを指定した後の話をしているんだと思うけれど
>>283 は対象のウインドウを人が指定する必要があるから完全自動化じゃないよ

後はヘルプのその他項目-予約語の下の方に
GETKEYSTATE で使う仮想キーの一覧があるから後は頑張れ

287:名無しさん@お腹いっぱい。
14/01/31 05:06:16.17 81GFpszH0
もうちょっと早く >>267 を見とけばよかった。
動かそうとしたら IMG_FORE がエラーになって動かないんでバージョンチェックしたら2年前の 4.8d を使ってた。
最新版で動かしたら軽かった。

最新版を使っても、Apsaly ってエディタを対象にすると、自分のは Apsaly が再描画しまくってCPU食ってるんだけど
IMG_FORE つきだと静かなもんだ。
これもあってか >>267 のは軽い。

なんだか自分が馬鹿みたいだ。

ただ、Windows 8.1 で新しいUWSCのヘルプが開けない。
左のツリーは出るけど右の説明が出ない。
やっぱ XP の環境は必要か。

ヘルプ読めと言われてる人はヘルプが開けない環境だったりするのかな。

288:名無しさん@お腹いっぱい。
14/01/31 05:27:36.29 Zrylv4320
追加DLが必要な古い形式を使い続けるのはチトアレだとは思う

Windows ベースのプログラムでヘルプを開くときのエラー:「機能は含まれていません」または「ヘルプはサポートされていません」
URLリンク(support.microsoft.com)

これみると8.1用もあるけれどダメなの?

289:名無しさん@お腹いっぱい。
14/01/31 09:11:23.82 81GFpszH0
>>288
そう言えばそういうのありましたね。
入れて再起動したけど現象変わらず。

そう言えばXPのDLLを持ってくる方法があったっけ。
ライセンス違反とか言う話だけど。

290:名無しさん@お腹いっぱい。
14/01/31 09:20:53.83 /yIUpJ9P0
>>287
>Windows 8.1 で新しいUWSCのヘルプが開けない。
これは自分も最初ハマったなw

win7、win8、OS標準機能で解凍するとヘルプが読めない場合があるとのこと
なので自分は +Lhaca を使って解凍してるよ

ヘルプが見れない  #n3
URLリンク(www.uwsc.info)

291:名無しさん@お腹いっぱい。
14/01/31 09:38:30.30 81GFpszH0
>>290
おお
まさにそれでした。

警告出てOKしてるからまさかブロックされてるとか思わなかった。

これは新規の人にはネックだよなー
自分は古いバージョンで見れるから困ってはなかったけど。

292:名無しさん@お腹いっぱい。
14/01/31 16:10:24.82 V8964nIs0
ID:07hakmjS0 は、自分の無知未熟を棚に上げて
他人様をアスペ呼ばわりした誤ちについて詫び無しか?
そういう奴は永遠に自分の凡ミスが原因のバグを出し続けて改めず成長しない。

293:名無しさん@お腹いっぱい。
14/01/31 20:32:00.14 clHdQNqo0
>>292
まぁ、良いじゃない。本人恥ずかしくてあれから出てこれないみたいだから…
精進すると良いと思うんだよ。

294:名無しさん@お腹いっぱい。
14/01/31 20:42:23.92 07hakmjS0
>何曜日 = G_TIME_WW  
>print (何曜日)
>金曜なのに俺6が出るんだけど何で?

に対して

>>268
>G_TIME_WW が6だからだろうな


このやり取り見てどう思う?どう見てもアスペだろ
あれ見て268が真面目にレスしてたと思うのならお前もアスペだわ

どうせ、質問レスに対して煽りたいだけの一心でスレに張り付いてるっていう典型的なゴミだろ
ねぇ、お前も本当にあのレス見て>>268が真面目にレスしたと思ったの?答えてみろよw
本人がID変えて自演してんのか?と疑っちゃうくらいお前の言ってる事おかしいわ

295:名無しさん@お腹いっぱい。
14/01/31 20:57:55.24 07hakmjS0
>>292

>何曜日 = G_TIME_WW  
>print (何曜日)
>金曜なのに俺6が出るんだけど何で?

ってのは金曜日の値について質問してる、と通常誰でもわかるだろう書き方をしてあるのに

>>268が言ってるのはつまり
「右辺が6だから左辺が6なんだろw」
って事で、これで真面目にレスしてると思ったお前は>>268以上のアスペかキチガイだろ

296:名無しさん@お腹いっぱい。
14/01/31 21:01:34.46 07hakmjS0
大体さ>>292


I>分の無知未熟を棚に上げて
>他人様をアスペ呼ばわりした誤ちについて詫び無しか?
>そういう奴は永遠に自分の凡ミスが原因のバグを出し続けて改めず成長しない。


どこ目線で語ってんだよw
特大ブーメランやめろよ
これこそお前の事だろ、もうこういう奴本当に情けないわ…

297:名無しさん@お腹いっぱい。
14/01/31 21:56:28.98 Zrylv4320
そういえばフキダシの件で前バージョンで試してみてらという
アドバイスに習って公式HP行ってみたんだけど Ver4.9 までしかないのね
因みに動作の方は残念ながら特に変わりませんでした

あと気になったのが Ver4.9a の更新履歴に
・複数スレッドにてBALLOONを出した時 GETID(GET_BALLOON_WIN)が別スレッドのBALLOONを返すのを修正
ってのがあったんだけど
この修正内容が最初のフキダシはスレッドを跨って再利用する挙動なのかも?
でもフキダシの取り合いは実際問題発生するので対処して欲しいですね

298:名無しさん@お腹いっぱい。
14/01/31 23:40:17.62 gPAFqnQP0
ID:07hakmjS0 のレス一覧には
ごめんどころかありがとうもないね
この間の発達障害の人か

299:名無しさん@お腹いっぱい。
14/01/31 23:42:49.07 V8964nIs0
発達したくても出来ないなら発達「障害」だが
発達する意欲がなく然るべくして発達しないのだから
同情の余地はない。

300:名無しさん@お腹いっぱい。
14/01/31 23:51:25.94 07hakmjS0
お前らってありがとうとか言われたくてスレに常駐してるの?
ここはUWSCの話をするスレだろ?

なんで勝手にスレを私物化して自分ルール作ってんだよw

あー発達障害のゴミかwwwww

301:名無しさん@お腹いっぱい。
14/01/31 23:52:34.53 07hakmjS0
単にツールの話をするだけのスレなのに

なぜか他人に自分ルールを押し付ける自分がどういう人間なのかわかってないんですね~www

んんん?WWWwwwwwwwwwwww

302:名無しさん@お腹いっぱい。
14/01/31 23:54:51.93 07hakmjS0
なんで書き込んだ瞬間無意味な煽りレスを受けた俺が

礼を言ったり謝ったりすると思ったの?wwww

あー他人と関わりが無いオタクでマニアの人格障害だから仕方ないのかww


んんんん~~?WWWWWWwwww


ゴミばっかwwwww

303:名無しさん@お腹いっぱい。
14/01/31 23:57:24.44 07hakmjS0
なんで何も悪い事してない俺が謝るんだよw

でお前ら本当にさ、

>何曜日 = G_TIME_WW  
>print (何曜日)
>金曜なのに俺6が出るんだけど何で?

に対して

>>268
>G_TIME_WW が6だからだろうな


この>>269のレス見てが真面目にレスしてたと思うの?ww
だったら仕方ないわ。アスペの集まりかここww

304:名無しさん@お腹いっぱい。
14/01/31 23:58:58.95 07hakmjS0
>何曜日 = G_TIME_WW  
>print (何曜日)
>金曜なのに俺6が出るんだけど何で?

に対して

>>268
>G_TIME_WW が6だからだろうな



これでアスペだろって指摘した俺を叩くとかあり得ないだろw
頭おかしい奴の集まりかここwww

305:名無しさん@お腹いっぱい。
14/01/31 23:59:44.94 07hakmjS0
アスペがアスペレスしてアスペ指摘されたら別のアスペがアスペを庇う図式かwwww
アスペがアスペレスしてアスペ指摘されたら別のアスペがアスペを庇う図式かwwww
アスペがアスペレスしてアスペ指摘されたら別のアスペがアスペを庇う図式かwwww
アスペがアスペレスしてアスペ指摘されたら別のアスペがアスペを庇う図式かwwww
アスペがアスペレスしてアスペ指摘されたら別のアスペがアスペを庇う図式かwwww
アスペがアスペレスしてアスペ指摘されたら別のアスペがアスペを庇う図式かwwww
アスペがアスペレスしてアスペ指摘されたら別のアスペがアスペを庇う図式かwwww

306:名無しさん@お腹いっぱい。
14/02/01 00:01:31.45 5Q2Q8heA0
>>298
どうやら当たりのようだw

307:名無しさん@お腹いっぱい。
14/02/01 00:25:41.44 MmjdV5wD0
恩を仇で返すのは朝鮮人の魅力のひとつ

308:名無しさん@お腹いっぱい。
14/02/01 03:11:00.34 8C/zV6qA0
下記のスクリプトを動かして、
しばらくするとクリックする位置がずれることがあります。
一度ずれると、以降ずれっぱなしです。
スクリプト動作中は一切マウスキーボード操作してません。
while True
BTN( LEFT, CLICK, 500, 100, 0 )
sleep(60)
wend
原因わかる方、いますでしょうか。

クリックする場所はブラウザのフラッシュ内の画面で
最初はヌルヌルなんですが、長時間放置するとカクカクします。

309:名無しさん@お腹いっぱい。
14/02/01 08:20:27.11 0gOamBix0
抽出 ID:07hakmjS0 (16回)

お前にUWSCを使う資格は無い、消えろ

310:名無しさん@お腹いっぱい。
14/02/01 08:39:26.58 MmjdV5wD0
>>308
失礼ですが、ID:07hakmjS0の人ですか?
クリックズレに関しては前スレでいくつか話題があったと記憶してます

311:名無しさん@お腹いっぱい。
14/02/01 10:23:41.84 NZrsfoVqP
超初心者です。質問させてください。無料版のUWSCを使っています
コンボボックスのことなんですがそれに入れる配列の要素数に制限ありますか?

100項目くらい入れたいのですが
DIM hairetu[100]

SLCTBOX(SLCT_CMB,0,"SLCT_CMB",hairetu[])

312:名無しさん@お腹いっぱい。
14/02/01 10:26:55.29 NZrsfoVqP
途中で送信してしまいました
続き
やり方が悪いのか30個くらいまでしか表示されません
なにかいい方法ありますか?

313:名無しさん@お腹いっぱい。
14/02/01 10:44:19.95 eS4G9urg0
>>312
ヘルプに
>SLCT_STR   // 戻り値を項目名で返す (他の種別に付加して使用)
>SLCT_NUM   // 戻り値を位置数で返す (他の種別に付加して使用)
>※ 項目数は最大31まで (SLCT_STR、SLCT_NUM の場合は制限なし)
と書かれてるのでSLCT_STR、SLCT_NUMを付加するといいですよ

SLCTBOX(SLCT_CMB or SLCT_STR,0,"SLCT_CMB",hairetu[])

314:名無しさん@お腹いっぱい。
14/02/01 10:45:23.14 NZrsfoVqP
度々すいません
SLCTBOX(SLCT_LST + SLCT_STR,0,"SLCT_LST",hairetu[])
で解決できました。失礼しました
異様に長くなっていまうのが気になりますが

315:名無しさん@お腹いっぱい。
14/02/01 10:46:20.97 NZrsfoVqP
>>313
どうもありがとうございました

316:262
14/02/02 01:18:41.78 G2b5w4Yh0
せっかくなんで PowerShell (+C#)だけで書けるかやってみようと思ったら
キャプチャが不完全動作するところまでに今日までかかったよ。

C#コード呼び出しとか
Win32API 呼び出しとか
サンプルはたくさんあるんだけど
構造体データを受け取るにはいろいろな型を使い分けないといけなかった。

自分でどうにもならんから PS スレで質問中

317:名無しさん@お腹いっぱい。
14/02/02 02:12:19.24 i95xpOSW0
tempの中のファイル名だけではなくフォルダ名も出力するにはどうしたらいいでしょうか?
この状態だとフォルダ名は表示されないので…

for i=0 to GETDIR("C:\temp","*.dat")-1
  print GETDIR_FILES[i]
next

318:名無しさん@お腹いっぱい。
14/02/02 02:19:29.53 G2b5w4Yh0
print "C:\temp" + "\" + GETDIR_FILES[i]

319:名無しさん@お腹いっぱい。
14/02/02 02:28:58.66 sQfg5thD0
>>317
ヘルプによると
ファイル指定: ワイルドカード(*, ?) によるファイル名指定
         "\" を指定するとディレクトリ名の取得

なので、こっちの(例)を使えば良いのでは?
// D:ドライブのディレクトリ木表示
ディレクトリ("D:", 0)
procedure ディレクトリ(dd, lve)
  lve = lve + 1
  for i=0 to GETDIR(dd,"\")-1
  sps = ""
  for s=2 to lve;  sps = sps + " ";  next   
    print sps + GETDIR_FILES[i]
    ディレクトリ(dd+"\"+GETDIR_FILES[i], lve)
  next
fend

320:名無しさん@お腹いっぱい。
14/02/02 02:36:14.88 G2b5w4Yh0
そっちのフォルダだったか。
これは恥ずかしい。

321:名無しさん@お腹いっぱい。
14/02/02 02:37:52.89 Ty2m85et0
それは指定ディレクトリ内のサブディレクトリを探す方法だじぇ~

質問の意図そもものが親ディレクトリを追加して表示したいなら >>318 が正しいと思うよ
因みに GETDIR 単体では再帰的に検索す方法は無いので
そういった話なら "\" を使いながら結果の配列を連結していく関数とかが必要になるかな

322:名無しさん@お腹いっぱい。
14/02/02 02:40:57.06 Ty2m85et0
ってちゃんと再帰呼び出ししてるね
おれも恥ずかしいw

323:名無しさん@お腹いっぱい。
14/02/02 02:42:21.84 i95xpOSW0
>>318-319
迅速な対応有難うございます
なかなかうまくいかなかったのでDosCmdで出力させました
因みにこの出力結果をエクセルに一括入力する方法などはありますでしょうか
現在コードは
 
 print DosCmd("dir <#dbl>C:\tempt\*.*<#dbl> /s /b")

324:名無しさん@お腹いっぱい。
14/02/02 03:10:42.76 G2b5w4Yh0
>>323
CSVで保存して読み込ませるか
TAB+改行で作ったテキストを貼り付ける。
DosCmdの結果には改行コードが入ってるからそのまま貼り付けるだけ。

URLリンク(www3.bigcosmic.com)
URLリンク(www.officepro.jp)
> 指定したワークシートがアクティブでない場合にはエラーとなります。
> その為、ワークシートを指定する場合には先にワークシートをアクティブにしてから「Activate」メソッドを実行して下さい。

325:名無しさん@お腹いっぱい。
14/02/02 03:25:33.62 sQfg5thD0
>>323
最初っからEXCEL VBAのDIR関数を使うのは駄目ですかね?

326:名無しさん@お腹いっぱい。
14/02/02 10:58:45.50 Phb6UovV0
EXCELなんて2000の頃から
EXCEL単体でVBAで完全に全自動操作できるのに…
操作の記録・再生・コード自動生成まで出来るのに…

327:名無しさん@お腹いっぱい。
14/02/02 16:59:44.20 HrXM0WUi0
>>326
他ソフトと連携させるためUWSC

328:名無しさん@お腹いっぱい。
14/02/02 19:50:20.20 +NymUC5T0
せっかくExcel操作の有償版があるんだからUWSCで完結したいよね
ExceVBAで組んどいてUWSCで呼び出せば良い気はするが

329:名無しさん@お腹いっぱい。
14/02/02 20:21:15.89 t6QNS5NN0
EXCELだって幾らでも他ソフトと連携できるし、
あまりにも万能なんでマクロウィルスの問題が発生して
マクロ付スプレッドシート開くときは警告が表示されるなんて
苦肉の策が施されるぐらいなんだよね。

まぁUWSCの低レベル関数やウィンドウ操作関数に相当することを
VBAでやらせようと思ったら最初の1回は確かに面倒だろうね。
画像判定に関しては、手軽さにおいてUWSCは優秀。
(もっとも、操作相手がEXCELなどのCOM操作出来る物であれば全くの不要だが)

逆に、散々繰り返される質問の、文字列操作、日時判定、ファイル操作、VBAは大得意だからねぇ。
どんだけUWSCと格差あるか判ってないでUWSC選んじゃってるプログラミング初心者、多すぎ。

ちなみにVBAからUWSC呼び出すならUWSCって引数をPARAM[]で受け取れるからね。
(まぁ EXCEL VBA から AutoitX3.dll 呼び出したらUWSC要らずだけど)

330:名無しさん@お腹いっぱい。
14/02/02 20:26:25.44 Ty2m85et0
自分の練度と環境のポリシーの範囲で好きなのやればいいのさ

331:名無しさん@お腹いっぱい。
14/02/02 20:56:00.32 i95xpOSW0
>>324-325
ありがとうございました
もう少し勉強します

332:名無しさん@お腹いっぱい。
14/02/03 01:01:58.02 raqv463a0
そういえばUWSCってショートカットの設定をOFFに出来ないのかね
基本使わないので正直暴発されると困るのでOFFにしたい・・・
INI消しても初期値を上書きするんだよなぁ
仕方ないから暴発しなさそうなキーを登録を登録してるが確実とはいえない安心できん

333:名無しさん@お腹いっぱい。
14/02/03 01:35:33.08 8UGpsQvK0
2014/02/03 UWSC Ver4.9c、 Pro版と Free版をリリースしました。

334:名無しさん@お腹いっぱい。
14/02/03 03:14:32.34 raqv463a0
Ver4.9c の更新履歴ではフキダシに触れてなかったけれど少し触っているのかな?
今まではFirefoxのツールチップとの最前面争いに負けていたんだけどこのバージョンだと勝てる

335:名無しさん@お腹いっぱい。
14/02/03 06:11:28.60 QGRfVLzS0
そんなに気になるなら聞いてみれば
URLリンク(www3.bigcosmic.com)

336:名無しさん@お腹いっぱい。
14/02/03 06:59:34.73 /Q3lq+iOP
>>332
.uwsを関連づけたあとはもう本体を起動することなんて
ほとんどなくて気にしたことなかったなぁ。

337:名無しさん@お腹いっぱい。
14/02/03 14:13:02.38 DbS3gwq50
PowerShell への移植は
32bitで動かさんと WindowFromPoint が使えんと分かってあきらめることにした。

そもそもスクリプトの利点はどんな環境でも動く事なのに
スクリプトエンジンが 64bitだと動かないとかじゃしょうがない。

やっぱり餅は餅屋
買春は慰安婦に限るわ。

338:名無しさん@お腹いっぱい。
14/02/03 17:10:45.38 eFOfANh70
>RESIZE関数にて SAFEARRAYの値が正しく返せないパターンがあるのを修正
まじかよどんなパターンだったんだよ

339:名無しさん@お腹いっぱい。
14/02/05 21:31:26.16 GwCGdSjl0
if GETKEYSTATE(VK_ESC) then exit
id = GETID("EmEditor")
mouseorg(getctlhnd(id, "EmEditorView"), 2)
While True

~キー操作(省略)~

Wend

これでEmEditorにキー操作送ってたんだけど、ホットキーで再生/一時停止繰り返してると大元のキーボード入力がバグる(alt,shift押しっぱ状態)
ユーザー切り替えでログオン画面まで戻れば回復するけど、なんでそんなことになってるかもわからん

んで色々試してみたらmouseorgの一行が問題みたいでこれがなけりゃバグらないんだけど、これがないと裏で仕事してくれない
誰かコピペしか出来ない俺を助けて!

340:名無しさん@お腹いっぱい。
14/02/05 21:49:06.37 UFAMHlzg0
固定キー機能が有効になったんじゃねーの

341:名無しさん@お腹いっぱい。
14/02/05 21:55:48.61 4EI8FKuK0
無限ループ中にキー操作をしているにもかかわらず
再生と一時停止をホットキーに頼っているからじゃね?
一般的にユーザ操作は使っていない資源で行ったほうが安全だよ(このケースだとマウス)

それとエディタがアクティブになったら自動的に一時停止した方が良いかもね
裏で仕事させたいならそのほうがトラブル少なくなると思うよ

342:名無しさん@お腹いっぱい。
14/02/05 22:26:32.54 GwCGdSjl0
>>340
固定キー機能はショトカ含めて無効化させてるから違うと思う

>>341
ループに関しては問題無いと思う
mouseorg(getctlhnd(id, "EmEditorView"), 2)を消して試したらループ中でもなんでも症状は現れなかったし

書き方とか順番が悪いんかな

343:名無しさん@お腹いっぱい。
14/02/05 23:22:20.52 GwCGdSjl0
if GETKEYSTATE(VK_ESC) then exitの位置間違ってたけど別に関係なかった
解決してないけど、このEscちゃんと活用して止める時はEsc、開始はショトカで一応やっていくことにした

もっと勉強したがええな アドバイスありがとう

344:名無しさん@お腹いっぱい。
14/02/06 07:09:29.10 5vvG3hpu0
サブルーチンとメインルーチン?で同じ変数を使用出来ないんですか?

メインで変数を指定する
サブに飛ばして数値を入力
って感じがしたいんですが・・・。

345:名無しさん@お腹いっぱい。
14/02/06 07:17:24.54 5vvG3hpu0
すみません。自己解決しました
変数と言うものがあったのですね・・・。

346:名無しさん@お腹いっぱい。
14/02/06 07:39:11.94 5vvG3hpu0
宣言と言うもの でした。

347:名無しさん@お腹いっぱい。
14/02/06 07:58:04.78 5vvG3hpu0
結局出来ませんでした;_;

SLCBOXでa-jを選択

aを選択した場合は
HENSU=aとしてサブルーチンに飛ばしたいです。

しかし、このままではサブルーチンが変数を読み取らず、
PUBLICを使ってみたら、aを選択してもHENSUはjになってしまいました。

どうにか出来る方法はないものでしょうか
昨日から作り始めたもので素人で申し訳ないです

348:名無しさん@お腹いっぱい。
14/02/06 08:03:53.91 X3bMgbm60
丸投げせずにそのコード貼ってみたら?

349:名無しさん@お腹いっぱい。
14/02/06 08:18:12.01 5vvG3hpu0
初めて作ったので説明などなくてすいません。
簡略化するとこんな感じなのですが
select slctbox(slct_btn,0,"選択","あ","い","う","え","お")

case slct_1
public HENSU="あ"
sabu

case slct_2
public HENSU="い"
sabu

case slct_3
public HENSU="う"
sabu

case slct_4
public HENSU="え"
sabu

case slct_5
public HENSU="お"
sabu

selend

procedure sabu
id=exec("notepad")
sendstr(id,HENSU)
fend
これであを選択しても メモ帳にあが貼り付けられるようにしたいです。

350:名無しさん@お腹いっぱい。
14/02/06 08:51:01.47 gHEKJzau0
select slctbox(slct_btn,0,"選択","あ","い","う","え","お")

case slct_1
sabu("あ")

case slct_2
sabu("い")



selend

procedure sabu(HENSU)
id=exec("notepad")
sendstr(id,HENSU)
fend

これでいんじゃない

351:名無しさん@お腹いっぱい。
14/02/06 08:55:52.53 5vvG3hpu0
>>350
素早い返答ありがとうございます!!
知識が足りずまだよく理解出来てませんが望み通りの結果になりそうです!

これで続きが作れます
本当にありがとうございました!

352:名無しさん@お腹いっぱい。
14/02/06 08:56:23.99 jjkRJtsr0
ソースの最初で
public HENSU してselectの中のpublicを外してもいけると思う

353:名無しさん@お腹いっぱい。
14/02/06 09:12:52.63 5vvG3hpu0
出来ました!
様々な方法があるんですね
理屈が全然分からないですが、続きの作成頑張ってみます
皆様ありがとうございます

354:名無しさん@お腹いっぱい。
14/02/06 12:26:03.00 y29iCufH0
まるでUWSCからプログラミング始めちゃった残念な人たちの避難所だなココはw

355:名無しさん@お腹いっぱい。
14/02/06 13:59:00.98 5vvG3hpu0
残念な人で申し訳ないんですが、
アプリの実行中いつでもESCで終了できるようにしたいです。
ALT+F2と同じ動作です。

設定から変更できるのは知っているのですが、マクロに組み込みたいです
if GETKEYSTATE(VK_ESC) then exit
をすべての行に入れ込むくらいの知識しかないので力を貸してください

356:名無しさん@お腹いっぱい。
14/02/06 14:07:06.07 eXbN1NyW0
SETHOTKEY
exitexit

357:名無しさん@お腹いっぱい。
14/02/06 14:14:31.72 jjkRJtsr0
別threadでループさせればいい
詳しくは頑張って調べて

358:名無しさん@お腹いっぱい。
14/02/06 15:48:19.93 5vvG3hpu0
>>356
すいません;;よくわからなかったです><

>>357
こんなのあったんですね!
知識が足りず今ようやく出来ました!

ありがとうございました!

359:名無しさん@お腹いっぱい。
14/02/06 20:58:21.49 y29iCufH0
それいい方法だな、当たり前だったんだろうけど。
仮想マシン上で走らせて放置だったから気にしてなかったは

360:名無しさん@お腹いっぱい。
14/02/06 22:22:21.44 sSnbxpdn0
でも有償版のデバッガがスレッドにちゃんと対応していないから
デバッグが終了したコードでした方がいいかも

361:名無しさん@お腹いっぱい。
14/02/06 22:56:33.79 /qbyPig+0
このスレ読むだけでも同じようなこと言われてるのに

362:名無しさん@お腹いっぱい。
14/02/07 06:09:15.02 orwjDsU70
IESetDataはIEにデータをセットする方法ですよね
これをクロームやfirefoxなどにする場合どういったやり方や関数がありますか?
SENDSTRとかになるんでしょうか?

363:名無しさん@お腹いっぱい。
14/02/07 06:38:27.92 XwiTxRHa0
なります。
理由は、COMがないからです。

同様に、MS標準のHTAもCOMがないのでDOMアクセスできません。

364:名無しさん@お腹いっぱい。
14/02/07 18:33:16.50 Db6e2zWy0
画像認識を使って優先順にクリックしたいのですが、初回起動時は問題なくいずれかの画像をクリックするんですが、2回目以降はelse以下を反映し、また初回起動時と同じ動作を繰り返します。
2の画像を探しなければ以下11・6・7・8・9・1の順に検索し、いずれもなければ10をクリックし、また2の検索に戻るというイメージです。
あちこちサイトを見てはいますが明確な答えがない(気付かない)です
どなたか教えて下さい

以下、作成した物
=====================
While True
sleep(2.5)
if (CHKIMG("2.bmp",0)=true)
btn(left,click,g_IMG_X,g_IMG_Y)
sleep(2.5)
elseif (CHKIMG("11.bmp",0)=true)
btn(left,click,g_IMG_X,g_IMG_Y)
sleep(2.5)
elseif (CHKIMG("6.bmp",0)=true)
btn(left,click,g_IMG_X,g_IMG_Y)
sleep(2.5)
elseif (CHKIMG("7.bmp",0)=true)
btn(left,click,g_IMG_X,g_IMG_Y)
sleep(2.5)
以下優先度順に同配列
else
CHKIMG("10.bmp",0)
btn(left,click,g_IMG_X,g_IMG_Y)
sleep(2.5)
endif

365:名無しさん@お腹いっぱい。
14/02/07 18:56:38.54 MnVNRLI40
dim 順位[7]= 2,11,6,7,8,9,1,10
while true
  for i= 0 to 6
    ifb CHKIMG(順位[i]+".bmp", 0)= true
      btn(left, click, g_IMG_X, g_IMG_Y)
      sleep(2.5)
      continue
    endif
  next
  CHKIMG(順位[7]+".bmp", 0)
  btn(left, click, g_IMG_X, g_IMG_Y)
  sleep(2.5)
wend

366:名無しさん@お腹いっぱい。
14/02/07 19:00:25.30 y11Ep+y40
>>364
答えなんてものは存在しない
人それぞれやり易い方法でやるのがプログラミングってもんだぜ

dim img[] = "2.bmp", "11.bmp", "6.bmp", "7.bmp"
while True
  Sleep(2.5)
  for i=0 to Resize(img)
    if ChkImg(img[i]) then break
  next
  if i > Resize(img) then ChkImg("10.bmp")
  Btn(LEFT, CLICK, G_IMG_X, G_IMG_Y)
  Sleep(2.5)
wend

367:名無しさん@お腹いっぱい。
14/02/07 19:05:43.93 Wk/HdE7F0
ループ用変数をループ外で使うのは好きじゃない

368:名無しさん@お腹いっぱい。
14/02/07 19:34:05.24 Db6e2zWy0
>>365>>366
ありがとうございます。
参考にまた勉強します

369:名無しさん@お腹いっぱい。
14/02/07 19:58:16.70 nzYjMBP40
dim imgNums[] = 2,11,6,7,8,9,1

while true
  for idx=0 to resize(imgNums)
    if clickImage(imgNums[idx]+".bmp") then continue 2
  next
  clickImage("10.bmp")
wend

//clickImageぐらい自作しようよ
function clickImage(lBmpName)
  result=false
  sleep(2.5)
  if !chkimg(lBmpName) then exit
  btn(left, click, G_IMG_X, G_IMG_Y)
  result=true
fend

370:名無しさん@お腹いっぱい。
14/02/07 21:37:23.65 Db6e2zWy0
教えてもらって今まで格闘してました
どうやら初回画像認識→クリック→画面自動更新となると2回目以降に画像が認識されないみたいです。
画像に問題があるかと思い、個別にチェックしたのですが初回起動時に限っては全て認識出来ていました。
しかしながら一番優先度が低い画像だけはしっかり何時でも認識されるのはなぜ?
結果いまだ完成せずorz

371:名無しさん@お腹いっぱい。
14/02/07 21:49:04.81 WdBr+Ff80
break入れてみたら?

372:名無しさん@お腹いっぱい。
14/02/07 23:33:15.40 yo5yAacZ0
更新後の画面の画像は本当に同じものなのかい?

373:名無しさん@お腹いっぱい。
14/02/07 23:35:12.04 nzYjMBP40
>>370
画像のチェックっていっても初回と2回目の画像が完全一致するかどうか確認した?
小さい画像なら800%ぐらいに拡大すれば見比べできるけど、そうじゃなきゃ
初回と2回目の画像を別の画像であるものとして保存してChkImgのテストするしかないね。

374:名無しさん@お腹いっぱい。
14/02/07 23:43:21.41 RL/aQb9g0
マウスポインタが乗って、別の画像(影付き等)になってたりとかよくあるよね
昔のわたすの失敗です

375:名無しさん@お腹いっぱい。
14/02/08 02:56:25.27 2BxDkq3G0
>>370です
解決しました…
文章自体は程度は低いものの間違えてはいませんでした。
ご指摘頂いた通り、画像が視覚的には分からないのですが変わっているようでした。
パターンが数種類用意されているのか、Lvが上がると変わるようでその都度画像保存作業を強いられる感じです
これは自分にはちょっと厳しいです

いい機会なので別の手も勉強してみます。
ご回答下さった皆様ありがとうございました

376:名無しさん@お腹いっぱい。
14/02/08 04:59:57.32 B01RoXxt0
現在ストップウォッチを作っているのですがコンマ00調度でエンターを押すマクロとかってどう作ればいいですかね?

377:名無しさん@お腹いっぱい。
14/02/08 05:08:57.92 QGLZcda70
WindowsはリアルタイムOSじゃないので厳密な精度は期待してはいけないのです

378:名無しさん@お腹いっぱい。
14/02/08 05:51:19.48 tU1NDN0c0
>>376
実行優先度を上げればこれでいけるんじゃね?
while GetTime() <= 目標時間
 Sleep(0.001)
wend

GetTime()の戻り値は秒なんで、開始をコンマ000に合わせないと無理だけど。


start コマンドで起動して

実行優先度を上げ
/HIGH

実行されるCPUコアを物理限定にしたりすることでさらに精度は上がるかも。
/AFFINITY
スレリンク(software板:876-877番)

379:名無しさん@お腹いっぱい。
14/02/08 09:04:01.73 EhEy/4dt0
>>376
素直に作るとこんな感じかな

while true
 gettime()
 ifb G_TIME_ZZ=0
  //kbd(VK_RETURN)
  break
 endif
wend

実際には他のプログラム等々で負荷が掛ってたりしてG_TIME_ZZ=0が取得できないことが多々あるから
ifb G_TIME_ZZ>=999 or G_TIME_ZZ<=3あたりで幅を持たせた方がいい場合があるかも
あとbreakでループを抜けない場合、処理速度の速いPCだとG_TIME_ZZ=0が数回ヒットする
可能性があるからその場合の処理も必要かも

380:名無しさん@お腹いっぱい。
14/02/08 09:17:43.49 EhEy/4dt0
サンプル作ってみたけど、意外と0丁度でいける感じかな
Core 2 Duoマシンで裏で動画流してたりすると0.003くらい進む感じ

gettime()
fukidasi(timer(input("エンターを押したい「分」を入力して下さい",G_TIME_NN+1)),0,0,,,,,$00FF00)
sleep(5)
exitexit

function timer(minute)
 result=""
 while true
  gettime()
  fukidasi(G_TIME_NN+"."+G_TIME_SS+"."+G_TIME_ZZ,0,0)
   ifb G_TIME_NN=minute and 0<=G_TIME_ZZ
    //kbd(VK_RETURN) //コメントアウト
    result=G_TIME_NN+"分"+G_TIME_SS+"秒"+G_TIME_ZZ+"で押しました"
    break
   endif
  sleep(0.001)
 wend
fend

381:名無しさん@お腹いっぱい。
14/02/08 10:49:20.92 B01RoXxt0
>>379
あれですな>>379は理解できるけど>>380は僕の中だと高度でところどころなにしてるかわかりませんな
少し勉強しますぜ

382:名無しさん@お腹いっぱい。
14/02/08 13:31:42.78 u0AXUkyQ0
public gStartSecAndMSec; public gNowSecAndMSec
public gFlgTerminateThreadFukidasi=false
public gFx=100; public gFy=100

fukidasi("[ENTER]で計測開始", gFx, gFy); waitEnterKey(); fukidasi()
gStartSecAndMSec=getNowSecAndMSec()
thread threadFukidasiShowNowSecAndMSec(); waitEnterKey(); gFlgTerminateThreadFukidasi=true
msgbox(getPastSecAndMSec(gStartSecAndMSec)); exitexit

procedure threadFukidasiShowNowSecAndMSec()
while !gFlgTerminateThreadFukidasi
gNowSecAndMSec=getPastSecAndMSec(gStartSecAndMSec)
fukidasi(gNowSecAndMSec, gFx, gFy); sleep(0.2)
wend
fend
procedure waitEnterKey()
getkeystate(VK_RETURN)
while !getkeystate(VK_RETURN)
sleep(0.001)
wend
fend

function getNowSecAndMSec()
lStartSec=gettime()
result = round(lStartSec + G_TIME_ZZ / 1000, -3)
fend
function getPastSecAndMSec(lStartSecAndMSec)
lStartSec = int(lStartSecAndMSec)
lStartMSec = lStartSecAndMSec - lStartSec
lNow = gettime()
result = round(lNow - lStartSec + (G_TIME_ZZ / 1000) - lStartMSec, -3)
fend

383:名無しさん@お腹いっぱい。
14/02/08 13:59:53.20 u0AXUkyQ0
改良

public gStartMSec
public gFlgTerminateThreadFukidasi=false
public gFx=100; public gFy=100

fukidasi("[ENTER]で計測開始", gFx, gFy); waitEnterKey(); fukidasi()
gStartMSec=getNowMSec()
thread threadFukidasiShowNowMSec(); waitEnterKey(); gFlgTerminateThreadFukidasi=true
msgbox(getNowMSec()-gStartMSec); exitexit

procedure threadFukidasiShowNowMSec()
  while !gFlgTerminateThreadFukidasi
    fukidasi(format((getNowMSec()-gStartMSec)/1000, 7, 3), gFx, gFy); sleep(0.2)
  wend
fend
procedure waitEnterKey()
  getkeystate(VK_RETURN)
  while !getkeystate(VK_RETURN)
    sleep(0.001)
  wend
fend

function getNowMSec()
  lStartSec = gettime()
  result = lStartSec * 1000 + G_TIME_ZZ
fend

384:名無しさん@お腹いっぱい。
14/02/08 14:28:09.95 HrERNxWy0
汚い変数名

385:名無しさん@お腹いっぱい。
14/02/08 15:10:37.07 u0AXUkyQ0
>>384
変数名の添削頼むわw
Flgは直したほうがいいんだろうけどIsは違うからDoにするの?

386:名無しさん@お腹いっぱい。
14/02/08 15:40:16.52 QGLZcda70
計測後からキー押下までのタイムラグをどう評価してるんだ?
00になってから押下を読んでたらタイミング的にズレてるぞ

387:名無しさん@お腹いっぱい。
14/02/08 16:11:10.54 u0AXUkyQ0
>>386
>>383のこと?msgbox表示時にgetNowMSec()が呼ばれた時点で実際の計測が行われるね。
キー押下はsleep最小単位時間で監視してるから、CPU専有しない限りのベストエフォートな反応だと思うよ。
msgboxに表示するミリ秒を単位変換し忘れてるけど

fukidasiの現在秒表示は別スレッドで行っておりほとんど影響を与えない。
表示更新を人間が認識できる以下のインターバルで行っても無意味なので適当な間隔で表示。
0.15秒のほうが良かったな。
組み込みなんかだと表示処理は計時処理に比べ膨大な処理時間を喰うのでこんな感じ。

あ、gettime()後にG_TIME_ZZの値が更新されて繰り上がって0になるかもって?
G_TIME系の値はgettime()実行時点の値で凍結するでしょ?
じゃないと>>268みたいなことは起こらないw

388:名無しさん@お腹いっぱい。
14/02/08 16:24:36.78 bYDcVwMl0
すいません、質問させて下さい!
コンボボックスの現在選択されているものによって動作を変えたいです
IFBを使うのはわかったんですが、コンボボックスの内容をどうやって取得すればよいのでしょうか・・・。

389:名無しさん@お腹いっぱい。
14/02/08 17:37:18.04 5yip1DTh0
>>385
せっかくUWSCなんだから変数名はオール漢字でで行けよ、素人かよ

390:名無しさん@お腹いっぱい。
14/02/08 17:37:30.40 ppoOvbDR0
冗長すぎる名前は読みにくい

391:名無しさん@お腹いっぱい。
14/02/08 17:42:33.23 5yip1DTh0
procedure threadFukidasiShowNowSecAndMSec()
procedure 板吹見今秒和秒()

こっちのほうがいいだろ、見た目もカッコいいし意味も分かり易い

392:名無しさん@お腹いっぱい。
14/02/08 17:57:18.42 u0AXUkyQ0
これは流行る

393:名無しさん@お腹いっぱい。
14/02/08 18:04:15.43 QGLZcda70
>>387
別にサンプルを貶める気は無いよ
要求がコンマ00秒「位」にキーを押下で良いのであれば正直どのサンプルでも概ねおkだしね
実際問題としての質問者の実際の意図もコンマ00秒「位」に押下なんだろうし
ただOSの仕組み上精度は保証されないよって質問者に理解して欲しいだけさ

394:名無しさん@お腹いっぱい。
14/02/08 18:20:43.99 u0AXUkyQ0
public 開始毛秒大域
public 線程吹出終了指令大域=false
public 吹出横位置大域=100; public 吹出縦位置大域=100

fukidasi("[回車鍵]開始測量", 吹出横位置大域, 吹出縦位置大域); 回車鍵入力待(); fukidasi()
開始毛秒大域=現在毛秒取得()
thread 線程吹出現在毛秒表示(); 回車鍵入力待(); 線程吹出終了指令大域=true
msgbox(秒書式取得(現在毛秒取得()-開始毛秒大域)); exitexit

procedure 線程吹出現在毛秒表示()
  while !線程吹出終了指令大域
    fukidasi(format((現在毛秒取得()-開始毛秒大域)/1000, 7, 3), 吹出横位置大域, 吹出縦位置大域); sleep(0.15)
  wend
fend
procedure 回車鍵入力待()
  getkeystate(VK_RETURN)
  while !getkeystate(VK_RETURN)
    sleep(0.001)
  wend
fend
function 現在毛秒取得()
  lStartSec = gettime()
  result = lStartSec * 1000 + G_TIME_ZZ
fend
function 秒書式取得(毛秒局所)
result=format((毛秒局所)/1000, 7, 3)
fend

395:名無しさん@お腹いっぱい。
14/02/08 18:22:21.00 tU1NDN0c0
>>378 は条件ミスってるけどね

while GetTime() < 目標時間
 Sleep(0.001)
wend
// GetTime() = 目標時間 となったタイミングでここに来る。



目標時間は時刻か時間差
str = "2014/02/08 18:18:00"
目標時間 = GetTime(0, str)

目標時間 = GetTime(1 / (24*60*60) ) // 1秒後

396:名無しさん@お腹いっぱい。
14/02/08 18:24:45.12 tU1NDN0c0
>>388
ヘルプ キーワード GETITEM ITM_LIST    // リストボックス、コンボボックス

例)
// リストボックスに在る物を全て表示する
id = GetID("Form1")
for i = 0 to GetItem(id, ITM_LIST, 1)-1
  print ALL_ITEM_LIST[i]
next

397:名無しさん@お腹いっぱい。
14/02/08 18:26:41.62 u0AXUkyQ0
>>393
タダのストップウォッチかと思ってたはwww

>>376
質問者の言うストップウォッチってもしかして、
プログラムがカウントダウンしていって、
コンマ00ちょうどで他のアプリに対してエンターキーを送信するのかw
そりゃタイマーでしょ…orz

398:名無しさん@お腹いっぱい。
14/02/08 19:10:26.45 EhEy/4dt0
>>381
>>395さんのコードを参考にシンプルな物ができましたよ

str = "2014/02/08 19:15:00" //文字列で日付時間を指定する("YYYYMMDD" or "YYYY/MM/DD" or "YYYY-MM-DD" or "YYYYMMDDHHNNSS" or "YYYY/MM/DD HH:NN:SS")の形式で指定可
stopTime=gettime(0,str)

timer(stopTime)

procedure timer(stopTime)
 while !(gettime()>=stopTime)
  fukidasi(G_TIME_HH2+"時"+G_TIME_NN2+"分"+G_TIME_SS2+"秒"+G_TIME_ZZ2,0,0) //デバッグ用
  sleep(0.001)
  wend
 //kbd(VK_RETURN) //コメントアウト
 fukidasi(G_TIME_HH2+"時"+G_TIME_NN2+"分"+G_TIME_SS2+"秒"+G_TIME_ZZ2,0,0,,,,,$00FF00);sleep(5) //デバッグ用
fend

ただ、>>393さんの言う通り本当のピッタリは難しいので、目標くらいに思って下さい

399:名無しさん@お腹いっぱい。
14/02/08 20:35:59.26 cQJpD73U0
艦これ着任用か!!

400:名無しさん@お腹いっぱい。
14/02/08 20:42:02.08 tU1NDN0c0
そういうシステムなんか。

斧アップローダーもきついときは0.01秒くらいで合わせないとダウンロード出来ないから
作ろうと思ったことがあったけど
作ろうと思ったときには欲しいファイルがなくなっていたと言う。

401:名無しさん@お腹いっぱい。
14/02/08 22:13:07.34 5yip1DTh0
メモ帳のデータ処理させてるんだけど処理が遅い。
使った処理は下記のものだけで、1行ずつposで文字の一致を調べてから、
ifbで条件一致を調べて単純計算するだけで重複ループなんかも無いんだけどすごく時間がかかる
FORNEXT_FOPEN_FCLOSE_,IFBENDIF_POS_FGET

経験上とかでもいいんだけど、こういう処理をすると遅くなるとかってある?

402:名無しさん@お腹いっぱい。
14/02/08 22:39:57.73 fynk/bkg0
すべてのデータを読み込んでいるとか?

403:名無しさん@お腹いっぱい。
14/02/09 12:44:30.02 2uFbHtot0
>>401
コード晒せばいいじゃん漢字で

404:名無しさん@お腹いっぱい。
14/02/09 14:09:04.42 CKZfymT90
>>401
> FOPEN_FCLOSE

メモ帳?テキストファイルって事か?

> 1行ずつposで文字の一致を調べてから、

UWSCはそもそも遅いんで
丸ごと読み込んで正規表現検索ツールを使えばいいと思うよ。

405:名無しさん@お腹いっぱい。
14/02/09 14:09:17.80 XLmreGCW0
>>401
遅くはならないよ

406:名無しさん@お腹いっぱい。
14/02/09 14:35:25.15 CKZfymT90
URLリンク(mail.goo.ne.jp)
無料版は今年度いっぱいで終了。あと一月半しかない。

登録スクリプト作っていっぱい登録してたのに・・・

407:名無しさん@お腹いっぱい。
14/02/09 18:31:59.79 jby0PGX80
点滅する画像認識する方法ってありますか?
CHKIMGで一番鮮明に表示されたであろうSS撮って保存したけどやっぱ反応しない。
出来ない物なんですか?

408:名無しさん@お腹いっぱい。
14/02/09 18:43:00.89 NQaBdyBr0
点滅でも変わらない部分お画像を探す
点滅のパターンの画像を用意する
点滅するとき、またはその前などに表示される画像などを使う
bodyなどのソースを読み込むようにしてファイル名で判別する
他にもあると思うけど初心者でもスクリプト組めるものならこんなかんじかな

409:名無しさん@お腹いっぱい。
14/02/09 21:33:34.57 jby0PGX80
repeat untilにsleep(0.1)いれて画像判別には成功したけど次に繋がらないw
難しいな

410:名無しさん@お腹いっぱい。
14/02/09 23:56:05.05 rcm9LWXa0
>>398
これコンマ000で実行できてなかなか良いな

411:名無しさん@お腹いっぱい。
14/02/10 18:21:42.16 JKQ53Dj70
UWSCを使い始めたのですが、良くわからないので教えてください。
UWSC秒(445371316)などをGETTIME()で取得し、変数に代入して持たせています。
変数が持っているUWSC秒を
G_TIME_MM2 + "/" + G_TIME_DD2 + "_" + G_TIME_HH2 + "時" + G_TIME_NN2 + "分" + G_TIME_SS2+ "秒"
のようにGETTIMEを使い変換する方法はありますでしょうか?
また、無いのであれば、UWSC秒からの日時に変換する方法を教えてください。

412:名無しさん@お腹いっぱい。
14/02/10 18:33:38.08 MbpH2IBB0
FUNCTION getDateTimeStrByGettimeSeconds(lGettimeSeconds)
  //GETTIME戻値仕様のシリアル値から YYYY/MM/DD HH:NN:SS の書式の日時を返す。
  GETTIME(lGettimeSeconds/60/60/24, "2000/01/01 00:00:00")
  //  YYYY/MM/DD HH:NN:SS
  RESULT = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2 + " " + G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2
FEND

変数名汚くてごめんね
俺ライブラリからの出品です
もっとさっぱりした方法あったら教えてね

413:名無しさん@お腹いっぱい。
14/02/10 19:01:34.17 JKQ53Dj70
>>412
自作関数が作れるのですね。
書いていただいたソースで動作確認できました。
ありがとうございます。

414:名無しさん@お腹いっぱい。
14/02/11 22:16:22.96 Iz0/Notx0
予めtxtに保存しておいたproxyを一行ずつIEの接続設定に設定googleに接続
接続成功したらtxtの二行目をIEの接続設定にセットしてgoogleに接続っていうマクロなんだけど良い書き方無いですかね

txtの中身を配列を使いproxy[i]に格納し

DOSCMD("reg add <#DBL>HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings<#DBL> /v ProxyServer /t REG_SZ /d proxy[i] /f")

こうやって書いたんですけどIEのアドレス部分がproxy[i]になってしまいます

415:名無しさん@お腹いっぱい。
14/02/11 22:26:44.94 j58Fa5Pe0
””で囲んでる範囲だからだろ

416:名無しさん@お腹いっぱい。
14/02/11 22:30:00.01 hSdSD4Cm0
言えてる。文字列として書いて時点でテクニック以前の問題。構文からやり直し。

417:名無しさん@お腹いっぱい。
14/02/11 22:43:13.65 ANc/HMus0
proxyはよくわからんけど
単純に文字列操作の話やったらこうやね
DOSCMD("reg add <#DBL>HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings<#DBL> /v ProxyServer /t REG_SZ /d " + proxy[i] + " /f")

418:名無しさん@お腹いっぱい。
14/02/11 23:54:29.97 Iz0/Notx0
>>414-417
成功しましたありがとうございました

419:名無しさん@お腹いっぱい。
14/02/12 01:00:43.05 SbscazOE0
色々ぐぐッてみてもわからなかったので質問なのですが
UWSCで今開いている1つのテキストファイルから
今開いている1つのエクセルファイルの決まったセル番地にコピーして結合したいという内容でして
テキストファイルの内容は
1月31日
2月28日
と2行だけの内容で1月31日をエクセルのA1に2月28日をエクセルのA2にコピーして
A1とA2を結合できるような便利なものはないか教えて頂けないでしょうか

420:名無しさん@お腹いっぱい。
14/02/12 02:27:35.81 XsomEbsq0
>>419
ぐぐってないだろ
もしぐぐって分からないなら諦めろ
だいたい分からない部分を挙げずに丸投げとか

421:名無しさん@お腹いっぱい。
14/02/12 04:27:41.35 1b7uxXJx0
そのまんまズバリのネタなんて無いから
やりたいことを分解していって個別に勉強していくといいよ

調べるポイント
・FOPEN を使ったファイルの開き方
・FGET の使い方(取得行数も少ないから F_ALLTEXT で改行込みで一度に全て取得すると良いと思う)
・SPLIT(fileText, "<#CR>") で行毎に分割して配列に入れて配列の文字でエクセル操作を行う

1~2は記録では出ない命令だけどヘルプ+ネットで頑張れ
どうしても難しいなら
手動でメモ帳でも開いてソレを起点に操作を記録して対応するとか
先ずは出来る範囲でやりくりしてみるといいですよ

422:名無しさん@お腹いっぱい。
14/02/12 12:33:56.29 TmnGEl8F0
>>419
コピーとペーストの違いもわからないって
失礼ですが前に発狂した人じゃないよね

423:名無しさん@お腹いっぱい。
14/02/12 22:40:28.67 SbscazOE0
>>420
ぐぐってたのですが調べ方が足りなかったです

>>421
調べるポイントを教えて頂きありがとうございます
教えて頂いた関数を元にぐぐって調べてみます

>>422
2歴は長いですが、ここに書き込んだのは初めてです

424:名無しさん@お腹いっぱい。
14/02/12 23:14:46.39 TmnGEl8F0
A1とA2のセルをmergeCellsしたらA2の内容が失われてA1だけが残るんだが?
やりたいことが正確な言葉で表現できない内は検索しても当然ヒットしないし、手段に誤解や方針間違いが多分に含まれてるだろうな。
EXCELの場合はまずUWSCの前に、EXCELのマクロの記録でやりたいことをVBA化したほうが早いぞ。VBAで出来る事を確認したらUWSCにそのオブジェクト操作を移植する
これは俺が常用してるマクロで、セルを複数選択した状態で実行すると、選択範囲の複数セルをテキストも含めてマージする。
Sub MergeCellsWithText()
  Dim areasS As Range; Dim rngS As Range; Set rngS = Selection
  If rngS Is Nothing Then Exit Sub
  If rngS.Areas.Count > 1 Then
    For Each areasS In rngS.Areas
      Call MergeCellsWithTextToRange(areasS)
    Next
  Else
    Call MergeCellsWithTextToRange(rngS)
  End If
End Sub
Private Sub MergeCellsWithTextToRange(rng As Range, Optional strColumnSplitter As String = " ", Optional strRowSplitter As String = vbCrLf)
  Dim strMergedText As String; Dim c As Integer; Dim r As Integer
  For r = 1 To rng.Rows.Count
    If r > 1 Then
      strMergedText = strMergedText & strRowSplitter
    End If
    For c = 1 To rng.Columns.Count
      If c > 1 Then
        strMergedText = strMergedText & strColumnSplitter
      End If
      strMergedText = strMergedText & Trim(rng.Cells(r, c))
    Next
  Next
  rng.ClearContents
  rng.Merge
  rng.Cells(1, 1) = strMergedText
End Sub '行数制限に収めるため便宜上 ; を使ったがVBAではエラー、他一部例外処理も削った

425:名無しさん@お腹いっぱい。
14/02/12 23:42:23.04 SbscazOE0
>>424
ソースまで詳しく教えて頂きありがとうございます
VBAからUWSCにそのオブジェクト操作を移植するというのは
試みたことないのでさっそくぐぐって調べてみます

426:名無しさん@お腹いっぱい。
14/02/13 00:16:46.10 TLQxSd6W0
メモ:
本家より

URLリンク(www3.bigcosmic.com)
DATE:2008/3/20(Thu) 03:23
AutoIt
RocketMouse
AutoHotKey
WindowController
Windows Script Host
入力フォーム付キーボード・マクロ KMmacroP
ゴーストリプレイ
PowerShell
Selenium
ScriptBrowserK
KiXtart, KiXforms
Triple-9 for Windows
Automation Anywhere

窓使いの憂鬱Portal

Ruby w/win32ole, ActiveRuby
Rubist Magazine から

427:名無しさん@お腹いっぱい。
14/02/15 01:56:21.36 fNw4lIqa0
web記録のIEみたいに、ツールバーもお気に入りも表示されない「素のIE」をcreateすることって出来ませんか?

428:名無しさん@お腹いっぱい。
14/02/15 14:42:45.66 4woto4hv0
>>427
素の定義にもよるけれど何も表示されないブラウザが欲しいなら
適当なHTMLを作成して拡張子をHTAにして実行してみたら?
HTAだってリンクを踏めば当然ブラウジング出来るわけだし

429:名無しさん@お腹いっぱい。
14/02/15 15:57:11.19 Z0ioAhUc0
HTA は COM 操作できないよ。

Admin Script Editor (ASE) ってのが PowerShell 用の Native Windows Form をポトペタで作れるんだけど
それに COM Browser があるんで便利。
ASE には .net 2.0~3.5 のどれかが必要。

Admin Script Editor (ASE)
URLリンク(www.itninja.com)


Internet Explorer 8 でアドレスバー、ツールバー等を出さない方法
URLリンク(ap.atmarkit.co.jp)
> IE6や7であれば問題ないのですが、IE8から仕様が変わっており、

430:名無しさん@お腹いっぱい。
14/02/16 00:45:30.96 tUODXegv0
有料版の
>HTMLを利用した画面関数が使えます。
これって具体的にどんなことができるんですか?

431:名無しさん@お腹いっぱい。
14/02/20 11:34:04.86 y5C+EyS60
1台のPCでUWSC作成して、複数台で共有する事は可能?
PC毎にUWSCインスト、入力は台数的に無理。
vectorフリーソフトダウンロードみたいに共有の仕方があれば教えて下され

432:名無しさん@お腹いっぱい。
14/02/20 12:11:15.15 9K5AeBkx0
有料版のライセンスのことなら URLリンク(www.uwsc.info)
・1ライセンス:1人の使用者、もしくは1台のコンピュータ(クライアントPC)のどちらかといたします

作成というのが特定のスクリプトのことを指すならフリーのUWSCを使えばよいのでは?
もしくはPROでEXE化して複数台で使用

433:名無しさん@お腹いっぱい。
14/02/20 19:02:16.61 eOuvisOw0
つか実行するのはフリー版で
開発するのはデバッグ機能のあるプロ版でいいんじゃ?
フォーム画面もEXCEL操作関数も使わなくったっていいじゃない。
フォームはSLCTBOXで十分だしEXCELはVBAで十分だからね☆

434:名無しさん@お腹いっぱい。
14/02/21 12:23:34.55 1mvEXHCF0
>>427
ie=createOLEObj("InternetExplorer.Application")
ie.toolBar=false
ie.visible=true
ie.navigate("URLリンク(www.yahoo.co.jp))
repeat;sleep(0.2);until (! ie.busy) and (ie.readyState=4)

ちなみに「素のIE」と言うのがアドオン無しの事なら
IE起動時に-extoffオプションを付けると素のIEで起動できるよ(Flashも使えない)

>>430
HTMLを利用してフォーム画面が生成出来る
具体的に言うとINPUT、SLCTBOXの高度な事が出来る
ヘルプの例を実際に試してみるといいと思うよ

435:名無しさん@お腹いっぱい。
14/02/21 12:44:07.48 uxrhnscc0
グラフィックドライバ入れ直したら色設定が変わったらしく画像認識してくれなくなったオワタww折角初めて頑張って作ったマクロだったのに一日で終わってしまうとは死にたい

436:名無しさん@お腹いっぱい。
14/02/21 15:10:53.19 1mYtSkjg0
画像全部撮り直しになるんだよな。

変更前と全く同じ設定にすることは可能なんだろうが判りづらい。
アンチエイリアシング機能の結果が異なったり。
最新のは濃淡だけじゃなくて色も変えて滑らかにするらしいからね。
前項前と変更後の画像を800倍とかで見比べてみると判る。

俺はそれを避けるため仮想環境でやってるけど逃げではあるな。

437:名無しさん@お腹いっぱい。
14/02/21 19:44:32.28 RkyUiBb20
リアルタイムに欲しい画像を取得してそれで判定すれば良いんじゃないか…

438:名無しさん@お腹いっぱい。
14/02/21 21:25:46.48 rOKfYXqX0
欲しい画像がどこに表示されているか判断する材料があるなら
そもそも画像認識なんて使わない罠

439:名無しさん@お腹いっぱい。
14/02/22 06:29:29.79 NFGOD6gk0
馬鹿だな
画像取り込みメニュー作るんだよ

その画面来たら「○○の画像」のメニューボタン押したら
必要に応じてメニュー消して、予め決めといた位置、サイズの画像をキャプチャする

440:名無しさん@お腹いっぱい。
14/02/22 19:04:23.52 LMIqt5T3P
そんなことしてるうちに画面遷移しない環境が考えにくいんだけど
その画面が来たら自動的にキャプるんじゃだめなのw

441:名無しさん@お腹いっぱい。
14/02/22 20:28:27.47 G67b/n/l0
その画面が来たことをどうやって知るの?
そんなのがあれば画面認識処理が要らねーんだけど?

442:名無しさん@お腹いっぱい。
14/02/22 20:31:31.68 reVDPeUW0
>>441
知るすべは色々あるだろ
無知の恥さらし乙

443:名無しさん@お腹いっぱい。
14/02/22 20:48:51.20 Ax/Ll58M0
全自動スクリプトの実行中で知る術があるなら画像認識する意味ないだろって話と
半自動スクリプトの実行中にユーザ操作で情報保管しようぜって話なんだから
すれ違って当然なんだけれど
どいつもこいつも主語が足りとらん

444:名無しさん@お腹いっぱい。
14/02/22 21:22:15.98 Jqy0IK5v0
てか、画像の取り直しが面倒>画像がどこで表示されるかは何となく分かってるじゃないのかなって。
だとすれば自動的に画像取得するのは難しくないんじゃないかな。

445:名無しさん@お腹いっぱい。
14/02/22 22:04:07.10 1uUyJ4FH0
>>444
どの座標で画像が表示されるか判っていれば、
その座標を直接クリックすればいいから画像判定が要らないw
大体の座標で、正しいかどうかわからない画像を撮って、
それを人間の目で判断して
手動で「ここからここまでを判定画像とする」と指定し直す、
これ撮り直しといふ

446:名無しさん@お腹いっぱい。
14/02/22 22:23:29.31 wO82R2LU0
目的による

447:名無しさん@お腹いっぱい。
14/02/23 03:28:55.81 dNhQd0jM0
①大本のサイトにいくつかのリンクが有り自動で訪れたことのないリンク先に飛ぶ
②新しいタブでリンクを開いたら新しいタブを閉じ①のサイトに戻る
③①のサイトでF5
④④を行うとリンクの順番がごっちゃになる
⑤①に戻る

こういったサイトが有るとき一度踏んだリンクを踏まず踏んでないリンクだけクリックする方法などはありますでしょうか
色々工夫したのですが④で順番がごちゃごちゃになってしまうので

448:名無しさん@お腹いっぱい。
14/02/23 05:17:10.80 jExf0XDs0
似たケースの時に自分はリンクの履歴を自分でINIに保管する方法で対処したよ
起動中はハッシュテーブルに格納すれば既読チェックもシンプルだし楽だよ

449:名無しさん@お腹いっぱい。
14/02/23 12:02:25.87 Srk7LgM6P
なるほどwその発想が無かったんで>>439はCHKIMGで感知して
自分の手でキャプチャボタンを押すのかと思ってたw

自分の手でキャプチャボタンを押すのならUWSCじゃなく
WinShotとか、キャプチャ用のフリーソフトの方が
機能も使い勝手も優れてると思うよ。

450:名無しさん@お腹いっぱい。
14/02/24 10:44:07.26 Mij05OCX0
新しくPCを買ってWindows8になったんですが、きちんと動作してくれなくなりました。
原因と対処の仕方知ってる人いませんか?

451:名無しさん@お腹いっぱい。
14/02/24 11:53:30.18 HvfeOvxP0
そんな情報しかないんじゃ
前のPCに戻せとしかw

452:名無しさん@お腹いっぱい。
14/02/24 18:29:15.42 Pc1n2O4y0
今日ちょっと嵌ったポイントをメモ代わりに貼っておきます~
BTN関数でホイールスクロールさせると同期してないので注意する事

453:名無しさん@お腹いっぱい。
14/02/24 18:34:45.52 DIU/UCkY0
あのー、長い質問になるんですけど
作業中など、定期的に別ウィンドウをポチポチとクリックし
終わったら再び元のウィンドウをアクティブにするというのを組んだのだけど
notepad++とゆうテキストエディタを弄ってる途中だと、マクロ実行後にエディタのメニューが
グレーアウトしてしまいます。(ブラウザや、フリーゲームなどだと正常動作。)
グレーアウトしたメニューも一応クリックすれば動くなど、そんなに支障ないのだけど
見た目的に直したく思うのです。何が原因なのでしょう。

454:名無しさん@お腹いっぱい。
14/02/24 21:44:14.25 DIU/UCkY0
すいません、こまかいことにこだわるのやめました。
アクティブウィンドウを切り替えるのじゃなくて
アクティブにしたいウィンドウの角をクリックする設定にして解決しました。
スレ汚し失礼しました

455:名無しさん@お腹いっぱい。
14/02/24 23:31:04.89 xDeHTVpT0
点滅する画像を認識する為に処理の流れの中で指定時間設定してrepeat until って組む事出来ますか?
上にも同じ様な事書いてあったけど解決されてなかったっぽい

while true
ifb chkimg("A.bmp",0)=true //Aの画像があったらクリック
btn(left,click,G_IMG_X, G_IMG_Y)

repeat
sleep(0.1)
until CHKIMG("B.bmp", 0) or chkimg("C.bmp", 0)=true   //0.1秒間隔でBまたはCの画像を認識してあればクリック
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
sleep(1.5)

ifb chkimg("D.bmp",0)=true //repeat untilの条件をクリアしたら画像Dをクリック
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)

wend

と、各種サイト参考に組んでみたものの
Aをクリックし、BかCが表示されているにも関わらずDをクリックしまたAに戻るという状況
エラーが出ないからどこを直せばいいか…
どなたか教えて下さい

456:名無しさん@お腹いっぱい。
14/02/24 23:31:22.85 f6aUzWPh0
サウンドの設定を開いて、一番上のスピーカーを無効化して、
同じスピーカーをすぐに有効にしてサウンドを終了する

という操作はできる?

457:名無しさん@お腹いっぱい。
14/02/24 23:58:40.81 Pc1n2O4y0
>>455
点滅云々というより
CHKIMG関数を連続で呼んだらダメ
イメージがなければ G_IMG_X の G_IMG_Y の値が -999999 になるので
結果を一旦退避させてループ後に対比した有効な値でクリックするといいよ

458:名無しさん@お腹いっぱい。
14/02/25 00:47:08.70 3/EoDDmH0
clickImageぐらい自作し(ry

459:名無しさん@お腹いっぱい。
14/02/25 02:01:57.44 fO/0LQYk0
>>455
>>457さんの書いている通りCHKIMG関数を連続で呼んでいるから
until CHKIMG("B.bmp", 0) or chkimg("C.bmp", 0)=true
だと、B.bmp在り、C.bmp無しの場合、特殊変数G_IMG_X、G_IMG_Yが-999999でループを抜けるので

OPTION指定で短絡評価をするとか(他の評価にも影響を与える)
OPTION SHORTCIRCUIT

個々にチェックしてループを抜けるとか
repeat
 sleep(0.1)
 if chkimg("B.bmp", 0) then break
 if chkimg("C.bmp", 0) then break
until false   //0.1秒間隔でBまたはCの画像を認識してあればクリック
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)

かな

460:名無しさん@お腹いっぱい。
14/02/25 02:27:59.39 AYfBter50
>>451
前のPCはもうないんですよ…
新しいPCにUWSCをいれただけなんで、原因はWindouws8にあると思うですが
使えてる人いるんですかね?
設定等何もいじっていません。

461:名無しさん@お腹いっぱい。
14/02/25 03:29:59.06 EEQuYPvP0
>>460
とりあえず
UWSCのバージョン、free/pro
UWSCのインストールディレクトリ
UWSCの関連付け

一番簡単な動かないスクリプト(GruGru.UWSとか)
そして、どういうふうに期待を裏切るのか

windows8/windows8.1、32bit/64bitのどれ?

ぐらいの情報があれば
エスパーが現れるかもしれない

462:名無しさん@お腹いっぱい。
14/02/25 06:02:13.88 Wk/hNbbC0
>>460
前のPCがWindows7とかなら大差ないんだけど
XPとかだったらだいぶ違うかもしれない。

XPからでも変わらないのが管理者権限を必要とする操作で管理者権限でないとかだけど
IEのバージョンが違うから動かないとかもあるし。

463:名無しさん@お腹いっぱい。
14/02/25 06:04:01.17 iPkOgP2S0
パスワードを生成するマクロを組んだのですが、同じ数字が生成されてしまいます
下記のマクロだと全4種類のパスワードの種類があるのですがprintで生成パスワードを見ている際、全種パスワードを生成し終わるとダブり始めます
それどころか4種類を出す前にパスワードがダブり始めることもあります
パスワードがダブったら知らせるもしくはダブらせない方法などはありますでしょうか?

dim password
dim chrset = "01"

while 1
for i = 1 to 1
password = password + copy(chrset,random(length(chrset))+1,1)
next

PRINT (password)
password = password - password
 wend

464:名無しさん@お腹いっぱい。
14/02/25 06:13:31.24 Wk/hNbbC0
>>463
順番に全部の組み合わせでやれば問題ない。ブルートフォース。

ランダムでやりたければ
出たやつを全部連想配列にぶち込めばいい。

> // キーが存在するか
> 変数[キー, HASH_EXISTS]     // キーが存在すればTrueを返す

465:名無しさん@お腹いっぱい。
14/02/25 17:22:35.89 AYfBter50
>>461
バージョンはfree
インストールはダウンロードで解凍してそこで起動しました
関連付け?ちょっとわかりません

記録してそれを動かそうとしたんですが、動かず…

windows8.1、64bit です。

>>462
管理者権限で実行はしています。
IEのバージョンとはなんでしょうか?


まっさらなPCなので、Windows8だと使えないのかと思っているのですが
Windows8でもつかえるのでしょうか?

466:名無しさん@お腹いっぱい。
14/02/25 18:47:39.00 DOyADgBO0
>>465
動作環境は本家のWebに書いてある
「動かない」って書いてるけどどう動かないのか書かないと・・・

あと、まずは問題点の切り分けをしないとダメよ、記録して再生とかそのあとの話し
>>461の人も書いてるけどGruGru.UWSの動作は?
それか↓のような簡単なのとかどう?

for i=0 to 10
 print i
 sleep(1)
next

467:名無しさん@お腹いっぱい。
14/02/25 20:19:46.58 rxamZW1I0
>>465
記録した.uwsをテキストエディタで開いて確認してみて。空かもしれない
あと>>5参照

468:名無しさん@お腹いっぱい。
14/02/25 23:25:34.23 iPkOgP2S0
>>464
重要な単語を頂いたのでggってみます

469:名無しさん@お腹いっぱい。
14/02/26 04:54:18.65 ubsTRkqE0
>>466
ありがとうございます。
動きました…が…
デスクトップ画面では動くようです。
しかし、なぜかIE上では動きませんでした。


>>467
ありがとうございます。
保存しようとしたところ
保存するデータがないと言われ記録できていないようでした。
これはなぜなんでしょう?

470:名無しさん@お腹いっぱい。
14/02/26 05:29:23.01 n4pLU3xk0
>>469
記録には管理者権限が必要なはず

471:名無しさん@お腹いっぱい。
14/02/26 12:21:17.74 haCPOyyx0
>>463
URLリンク(www.google.com)
ソース見てUWSに移植

472:名無しさん@お腹いっぱい。
14/02/27 00:06:31.91 APNCOeOL0
>>470
管理者権限で実行しています。

デスクトップでIEを開いていない状態なら記録出来ましたが
IEを開いた状態だと記録できません。
IEのバージョンのせいというやつでしょうか?

473:名無しさん@お腹いっぱい。
14/02/27 00:40:38.85 VXHmWDUX0
それは多分だけど
既に開いているIEはユーザ権限で
UWSCは管理者権限で起動していて
その結果
お互いに認識できない状態なんじゃないかな

474:名無しさん@お腹いっぱい。
14/02/27 00:41:39.74 VXHmWDUX0
てか、IEの詳細記録はフリー無理じゃね?

475:名無しさん@お腹いっぱい。
14/02/27 05:42:39.52 /WzGZIAL0
曜日を取得すると数字になってしまうので、下記のコードで数字を文字で表示されるよう書いたのですが
この書き方だと行数を食う上に明らか下手くそなコードの気がしますこれをもっと綺麗に短縮して書く方法はないものでしょうか?

GETTIME()

i = G_TIME_WW
if i = 0 then i = "Sun"
if i = 1 then i = "Mon"
if i = 2 then i = "Tue"
if i = 3 then i = "Wed"
if i = 4 then i = "Thurs"
if i = 5 then i = "Fri"
if i = 6 then i = "Sat"
PRINT i

476:名無しさん@お腹いっぱい。
14/02/27 05:54:08.06 Xfeyal3I0
DIM week[] = "Sun", "Mon", "Tue", "Wed", "Thurs", "Fri", "Sat"

GETTIME()
print week[G_TIME_WW]

477:名無しさん@お腹いっぱい。
14/02/28 04:11:14.16 0sFfc87x0
>>476
配列を使うのですね
有難うございました

478:名無しさん@お腹いっぱい。
14/02/28 11:12:00.08 ijf0o8mi0
質問させていただきます
動作を記録したいのですがマウス移動は要らないのですが余分な時間は記録したいのです
何か良い方法はないでしょうか

通常の低レベル記録だとマウス移動も記録している弊害か徐々に遅れていくので私の使用用途では使い物にならず
よくありそうな問題なので調べればわかるだろうと思って検索しても全く分からなかったため
申し訳ないのですが質問させていただきました
ご存知の方が居られましたらお教えいただけると幸いです

479:名無しさん@お腹いっぱい。
14/02/28 11:15:21.39 gIpn06S00
>>478
自分でスクリプト編集はしてる?記録されたスクリプトのMMVとかBTNとかの関数に
実行までの待機時間を指定するパラメータがある。くわしくはヘルプ参照

480:名無しさん@お腹いっぱい。
14/02/28 11:25:19.64 5d7YYFrp0
>>478
徐々に遅れていくのは Sleep() が間延びするせいでしょう。

記録した時間を編集、集計して
実行するコマンドと待ち時間の表を作って
GetTime() のループで
開始時からの時間差でコマンドを実行するようにすればいいでしょう。

めんどくさいなら精度の高い Sleep()関数を自作ですね。

どちらの方法を取っても、記録と再生で処理時間や待ち時間に狂いが出てくるので
徐々にずれていくとは思います。

481:名無しさん@お腹いっぱい。
14/02/28 12:32:47.26 ijf0o8mi0
ありがとうございます
数分に及ぶ作業なので各所にsleepを仕込んでいくのは結構な手間になるのですが
やること自体は単純なので記録で何とかならないかなと思ったのですがそれだけでは難しそうですね
>>480さんの方式を検討しつつもう少し考えてみようと思います

482:名無しさん@お腹いっぱい。
14/02/28 14:05:39.86 sEeRyJS30
ウィンドウ関数低レベルの ms: 実行までの待ち時間 (ミリセカンド)って
具体的にはどのように動作しているんだろうね

最大待ち時間って実装だと
長くすると待機時間が増えるけれど空きイベントを捕まえる余裕が増えるので入力漏れの危険が減る

最低待ち時間って実装だと
指定時間の長短に関係なく空きイベントを捕まえる時間は一定、入力漏れの可能性も一定

Windowsはイベントドリブンモデルだから厳密な動作時間には期待しないロジックを組むってのが個人的なポリシーだから
深く考えた事ないけれど経験的に前者だと思っていたんだけど・・・
ヘルプを見ろって言われてもこの辺の実装の説明は曖昧なんだよね

483:名無しさん@お腹いっぱい。
14/02/28 22:21:29.49 JSUwH+rv0
>>473
IEも管理者権限で開けば大丈夫なんですか?


>>474
えっ
Windows8じゃない時はできました…

484:名無しさん@お腹いっぱい。
14/03/01 00:24:19.04 lkXQk3N80
>>483
URLリンク(www.uwsc.info)
IEの操作が正しく働かない、IEが2つ起動する(Vista/7/8)  #n30
IE上での動作を記録しようとしても記録ができない
  IEの保護モードを解除する必要があります。
  インターネットオプション -> セキュリティの "保護モードを有効にする" を解除してください
  イントラネットを使用の場合には インターネット、イントラネットゾーンの両ゾーンとも解除してみてください
  また COM操作にて一部機能がダメな場合は、IEの互換表示をオンにしてみてください

485:名無しさん@お腹いっぱい。
14/03/01 05:02:49.13 LDNLsnXf0
>>480
開始時からの時間差でコマンド

これのコードが知りたい

486:名無しさん@お腹いっぱい。
14/03/01 06:16:17.19 /qQ0XJG+0
>>485

GetTime() の戻り値は小数点以下を含まないので合計する。←最初が遅れるので長めに取るべきだった。
あとはオフセット時間と実行するコマンドの配列を参照して時間が来れば順番に実行する。


DIM オフセット時間[] = 0.000, 1.000, 2.000, 3.000, 4.000, 5.000, _
            5.001, 5.002, 5.003, 5.004, 5.005, 5.006
DIM コマンド[] = "i + <#DBL> <#DBL> + G_TIME_SS + <#DBL>.<#DBL> + G_TIME_ZZ"

now = GetTime()
開始時 = now + (G_TIME_ZZ / 1000)
for i = 0 to length(オフセット時間) - 1
 repeat
  Sleep(0.001)
  now = GetTime()
 until 開始時 + オフセット時間[i] <= now + (G_TIME_ZZ / 1000)
 print "時間です。利息が付きます。 " + EVAL(コマンド[0])
next


この方法の問題は、処理に時間がかかった場合に直後の処理とかぶってWindowsとかアプリからキャンセルされることだけど
時間に正確にやらないといけないならこれしかないかな。

487:名無しさん@お腹いっぱい。
14/03/01 07:02:48.31 LDNLsnXf0
>>486
有難う
なんかひらめいた気がする

488:名無しさん@お腹いっぱい。
14/03/01 09:59:17.27 koHin9/A0
やっぱ掲示板使いづらいとみんな思ってたか
スレッドフロート型とかに変えるべきだとスレでも何度か話題になってたよな
URLリンク(www3.bigcosmic.com)

UWSC掲示板のレイアウトを"UWSCで変える"猛者が登場してワロタ

489:名無しさん@お腹いっぱい。
14/03/01 12:04:20.60 2F+hfMqI0
しょーもなw

490:名無しさん@お腹いっぱい。
14/03/01 14:10:20.87 K+qTA+B90
普通に記録して再生すると7秒くらいかかるんだけど、
なんとか1秒以内にできんもんか

491:名無しさん@お腹いっぱい。
14/03/01 14:37:56.45 eva9EYW70
7秒の動作を記録したから7秒掛かってるだけじゃないのか

492:名無しさん@お腹いっぱい。
14/03/01 14:41:08.74 K+qTA+B90
速い部分は一瞬で終わるんだけどね
ウィンドウが開くのを待つ処理が余裕を持たせ過ぎている

493:名無しさん@お腹いっぱい。
14/03/01 15:52:48.37 /tOYKola0
ウィンドウID取得出来るかどうかチェックするだけだよね

494:名無しさん@お腹いっぱい。
14/03/01 15:58:51.62 eva9EYW70
開くのを待つってのがただSleep()で待ってるだけでしたって落ちじゃないよね?

495:名無しさん@お腹いっぱい。
14/03/01 16:52:34.45 K+qTA+B90
最初はsleep()のせいだと思ってコメントアウトしたけど、ちっとも速くならない

id = GETID("スタート", "Button", -1)

第3引数に-1を指定すると開くのを待つけど、それはつまり
開いたのを確認したら即座に次の行に移るという意味だと思うのに、なんか待ってる気がする
それとも、見た目は開いてるけど内部的には処理が完了してなくて、
完全に終わるのを待つとこんな動作になるんだろうか

496:名無しさん@お腹いっぱい。
14/03/01 17:10:25.92 gRJ4VjS10
気になるなら比較するコードを書いてみるといいのだ
ただGETID関数は全オブジェクトを舐めながら探す処理をしている筈だから
オブジェクト数で処理時間は不定になる関数だと思うよ

497:名無しさん@お腹いっぱい。
14/03/01 21:55:27.26 /qQ0XJG+0
////////////////////////////////////////////////////////////////////////////////
// MS アクティベーション用 ナンバークリック      2014/03/01

// 使い方
// 準備:スペース区切りでナンバーを入力する
// 開始:Ctrl キーをクリックするたびに1グループずつキーが送信される

// ※数字のみをクリックし、それ以外は区切り文字として扱います。

public group = 1
public col = 1
public str

Fukidasi("Ctrl キーをクリックするたびに1グループずつキーを送信します。")
str = input("slui 4 コマンドで表示された インストールID を入力してください")
Fukidasi(str)

SetHotKey( , MOD_CONTROL, "OnKeyClick" ) // 開始キーを登録

while true // 常駐のため永久ループ
 sleep(999)
wend

498:名無しさん@お腹いっぱい。
14/03/01 21:56:51.06 /qQ0XJG+0
////////////////////////////////////////
// クリック
Procedure OnKeyClick()
 print group
 group = group + 1
 while col <= length(str)
  char = copy(str, col, 1)
  ifb CHKNUM(char)
   kbd(ASC(char), DOWN)
   sleep(0.1)
   kbd(ASC(char), UP)
   sleep(0.2)
   col = col + 1
  else
   break
  endif
 wend
 while col <= length(str)
  ifb ! CHKNUM(copy(str, col, 1))
   col = col + 1
  else
   break
  endif
 wend
 ifb col > length(str)
  Fukidasi("終了しました")
  sleep(5)
  exitexit
 endif
FEnd

499:名無しさん@お腹いっぱい。
14/03/02 09:05:26.69 2MgB1DPB0
昨日の日付を表示する短いコードなのですが

gettime()
print (G_TIME_DD2 -1)

これだと1と表示されてしまいます
これを01と表示させるいい方法はないものでしょうか?

500:名無しさん@お腹いっぱい。
14/03/02 09:24:57.00 l4oO0iPO0
>>499
gettime(-1)
print (G_TIME_DD2)

これじゃダメ?

501:名無しさん@お腹いっぱい。
14/03/02 09:45:45.84 2MgB1DPB0
>>500
現在こうなっていまして
メモ帳に今日の日付と昨日の日付を送りたいのですが
GETTIME()に-1をぶっ込むと今日の日付が昨日の日付になってしまうんです

GETTIME()
DIM zzz[] = G_TIME_DD2,(G_TIME_YY + G_TIME_MM2 + (G_TIME_DD2 -1))
FOR i = 0 TO (LENGTH(zzz) - 1)

SENDSTR(メモ帳のID,zzz[i])
next

502:名無しさん@お腹いっぱい。
14/03/02 10:08:42.68 2htkpXVo0
月跨ぎとか問題起きそうだからgettime(-1)使ったほうがよさそう
こんな感じにするとか?

GETTIME(-1)
yesterday = (G_TIME_YY + G_TIME_MM2 + G_TIME_DD2)
GETTIME()
DIM zzz[] = G_TIME_DD2,yesterday
FOR i = 0 TO (LENGTH(zzz) - 1)
 SENDSTR(メモ帳のID,zzz[i])
next

503:名無しさん@お腹いっぱい。
14/03/02 10:14:41.91 2MgB1DPB0
>>502
やはり-1用のGETTIMEと通常用のGETTIMEの2種類必要なんですかね?
DOSコマンドあたりも調べたんですが綺麗な方法がなくて困ってたんです

504:名無しさん@お腹いっぱい。
14/03/02 11:02:03.44 2htkpXVo0
>>503
一応replaceとformat関数を使えば桁合わせは可能だけどどうなんだろう・・・
ちなみに4.7bで配列に直接つっこんだらえらいことになった

replace(format((G_TIME_DD2 -1), 2, 0), " ", "0")

505:名無しさん@お腹いっぱい。
14/03/02 11:33:41.74 Ie/iXh5i0
変数やら制御やらの部分はもっといけてる言語でやるので、
windowsとのインターフェース部分だけ切り出したライブラリとかないの

506:名無しさん@お腹いっぱい。
14/03/02 11:40:51.31 2MgB1DPB0
>>504
サンキュ
もう少しあがいてみます

507:名無しさん@お腹いっぱい。
14/03/02 12:34:57.31 FZZIOWxS0
>>505
>>17

508:名無しさん@お腹いっぱい。
14/03/02 14:08:14.19 LMNM/kYi0
>>503
あれが一番きれいな方法だよ。
便宜上まとめてかいてるが関数にまとめれば
色々な意味で一番スマートでしょ。
月またぎ諸々考慮済みの関数を差し置いて
小手先の文字列操作で車輪の再発明してると
次々と発生する例外ケースに耐えられない

509:名無しさん@お腹いっぱい。
14/03/03 05:53:20.88 m3iT7Iuo0
GETTIME(-1)
yesterday = (G_TIME_YY + G_TIME_MM2 + G_TIME_DD2)
print (yesterday)

についてなんですが-1を入れると何故日にちだけ前日日を表示するんでしょうか?
年や月などは20143月とそのままなのに日にちだけいい感じに-1日されるのでしょうか?

510:名無しさん@お腹いっぱい。
14/03/03 06:30:00.83 63aSF/aN0
>>509
print gettime() - gettime(-1)

結果:86400



1日=24時間=1440分=86400秒

511:名無しさん@お腹いっぱい。
14/03/03 06:50:07.50 xALoPVYE0
普通は gettime 関数の仕様だからとしか言い様がない
但し、小数点指定で時間を知りたい場合は精度の問題が発生する可能性があるので
関数の戻り値である 2000年1月1日からの秒数 から±して求めた方が楽かも

因みに第2引数で基準日が指定可能なので
少し前のレスで話題になってた関数を2度呼ぶ件はコレで回避したほうが良いかも

要するに2度呼ばれる間に日を跨る可能性が気になるんでしょ?
それなら

当日 = GETDATE()
//当日のプロパティで行う処理
前日 = GETDATE(-1, G_TIME_YY2+G_TIME_MM2+G_TIME_DD2)
//前日のプロパティで行う処理

で、良いと思う

512:名無しさん@お腹いっぱい。
14/03/03 07:40:07.78 xALoPVYE0
関数名は間違えるわ引数は数値として足されてgdgdだなw
スクリプトのみ訂正

GETTIME()
Print G_TIME_YY4+"/"+G_TIME_MM2+"/"+G_TIME_DD2
GETTIME(-1, G_TIME_YY4+"/"+G_TIME_MM2+"/"+G_TIME_DD2)
Print G_TIME_YY4+"/"+G_TIME_MM2+"/"+G_TIME_DD2

513:名無しさん@お腹いっぱい。
14/03/03 07:42:42.41 Kq48vUOQ0
>>484
ありがとうございます
できました!!
本当に助かりました。

514:名無しさん@お腹いっぱい。
14/03/03 07:52:29.29 m3iT7Iuo0
>>510
86400秒マイナスするって意味だったんですね
じゃあ、GETTIME(-2)は172800秒マイナスすると
ありがとうございました

515:名無しさん@お腹いっぱい。
14/03/04 00:48:31.55 yIzlsuUB0
この板の過去ログも開放されたね
>>3のログが読めるようになったのでかなり助かる

516:名無しさん@お腹いっぱい。
14/03/05 13:34:51.83 b7+y7nk90
 BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,500)

 SLEEP(0.5)
 BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
って全く同じなんですかね?

なんか微妙に挙動が違うような感じがします。
特に短周期ループ内だと、SLEEPを入れた方が反応がいいというか・・・
気のせいでしょうか?

517:名無しさん@お腹いっぱい。
14/03/05 14:33:28.16 6lQ1CUGq0
>>516
>BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,500)
こっちは500ms待つ間CPUを食うけど

>SLEEP(0.5)
>BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
こっちはsleep中CPUを食わないってどっかで見た

518:名無しさん@お腹いっぱい。
14/03/06 15:33:15.07 r3AOWgy+0
リアルタイムで作成される C\ProgramDate\USER\dousa.txt を監視して、所定の動作をさせたい。

つまり、C\ProgramDate\USERにdousa.txtがあるのを確認して、
dousa.txtがあったらtxt本文をチェックして
txt本文に A実行 と書かれていたら A.uws を実行。
txt本文に B実行 と書かれていたら B.uws を実行。
txt本文に C実行 と書かれていたら C.uws を実行。
チェックして実行したら、dousa.txtを削除する。

という kannshi.uws なるスクリプトって誰か作れる?

この kannshi.uws を指定時間で行うスクリプトや、
A.uws B.uws C.uwsの実行スクリプトは、
何とか自分で作れそうだけど、肝心な監視のスクリプトができない。
誰か助けて、お願いします。

519:名無しさん@お腹いっぱい。
14/03/06 15:44:34.56 1dLnF0PS0
>>518

>つまり、C\ProgramDate\USERにdousa.txtがあるのを確認して、
>dousa.txtがあったらtxt本文をチェックして
>txt本文に A実行 と書かれていたら A.uws を実行。
>txt本文に B実行 と書かれていたら B.uws を実行。
>txt本文に C実行 と書かれていたら C.uws を実行。
>チェックして実行したら、dousa.txtを削除する。

ここまで分かってるのならもうほとんど完成したようなものだろ
逆に何が分からないのかが分からない
丸投げせずに、具体的のどこが分からないのか聞かないと答えてくれる人いねぇぞ

520:名無しさん@お腹いっぱい。
14/03/06 16:13:43.39 r3AOWgy+0
ごめんなさい
txtそのものを作るプログラムに追われていて。。。

521:名無しさん@お腹いっぱい。
14/03/06 16:51:37.41 9JCKeqlk0
課題まる投げ依頼に行けよ

522:名無しさん@お腹いっぱい。
14/03/06 17:01:58.21 r3AOWgy+0
ごめんなさい
主婦なので、もう食事準備の時間で
今日も全然進みませんでした
>>521 どちらで聞けばいいですか?

523:名無しさん@お腹いっぱい。
14/03/06 17:34:36.23 im4oklTu0
釣れますか?

524:名無しさん@お腹いっぱい。
14/03/06 17:48:26.34 DvZy/aRY0
・txtそのものを作るプログラムは作れる
・動作させたいタイミングはそのプログラムの実行後

そこから導き出される答えは・・・

・そのプログラムから直接 A.uws 等を実行すればいいんじゃね?

正直ワンクッション必要なケースとは思えない

525:名無しさん@お腹いっぱい。
14/03/06 21:34:31.69 r3AOWgy+0
やっと、少し時間が空きました。
>>524
txt作成は雛形があって、それを参考に作っていますが、
それの作成者に確認したところ、そのソフトでは
txt出力までで、UWSCの起動は不可能との回答をもらいました。
今日はもう時間が取れないので、これで失礼します。

526:名無しさん@お腹いっぱい。
14/03/06 21:50:22.49 /GWN7EUb0
開発制度や開発時間に制約あるのならそれこそ
ランサーズとかへ金出して行けばいいのに

24時間コールセンター的な無料サポートスレじゃないぞ?

527:名無しさん@お腹いっぱい。
14/03/06 22:56:35.34 9JCKeqlk0
●質問したい方へ
「○○作れますか?」→ 可能か不可能かを聞いているのなら答えは「作れる」
「○○が作りたい」→ 自分が作れば?並大抵の事ならググれば似たようなスクリプトや知識が見つかる
「○○作って下さい」→ 依頼スレじゃありません。
過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。
自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。

528:名無しさん@お腹いっぱい。
14/03/07 00:05:57.31 OvGUs4c90
お前らの忍耐力はすさまじいな
たった四回の発言で俺は凄まじくイライラしてるんだが

主婦なので、←そんな情報いらないし
やっと、少し時間が空きました。←何様だよって感じだし
txtそのものを作るプログラムに追われていて。。。 ←色々突っ込みたいけど句点連打が最高にイライラするし
今日はもう時間が取れないので ←また来るのかよって感じだし

それに柔らかい言葉で対応するお前らを初めて尊敬した

529:名無しさん@お腹いっぱい。
14/03/07 10:46:42.21 EvwydSgJ0
おはようございます。昨日は、お騒がせしましたが、
FOPEN関数を使って、無事にできました。


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