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


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

自動化ツールuwsc使いよ集まれ3



1 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/16(月) 07:57:49 ID:+HI9MOeK0]
Windowsを自動化させるツールUWSC。
ttp://www.h7.dion.ne.jp/~umiumi/

uwsc使いのみなさま、マターリ己のスクリプトを晒しましょ。

前スレ
自動化ツールuwsc使いよ集まれ2
pc11.2ch.net/test/read.cgi/software/1156416884/

577 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/22(月) 07:30:03 ID:HbGT6uOI0]
msgbox(1234/1000)
で十分
と思う


578 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/22(月) 12:55:38 ID:fmG/IPH90]
>>554
IE = CreateOleObj("InternetExplorer.Application")
IE.Visible = true
Header = "Referer: tehitou.com/"+ chr(13)
Url = "taruo.net/e/" //診断くん
IE.Navigate(Url, 0, null, null, Header)

579 名前:名無しさん@お腹いっぱい。 [2008/12/22(月) 19:39:25 ID:/LMnt5Db0]
すいません。
IEのダイアログのOKボタンを自動的に押したいのですが、
GETIDの取得方法がわかりません。
ダイアログのタイトルとメッセージだけで指定することは
可能ですか?

580 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/22(月) 20:22:27 ID:+EQAgRwQ0]
>>579
IESetData(IE ,True,,"OK")

581 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/23(火) 02:52:31 ID:um19C/gw0]
初歩的な質問ですみません。

とあるページで、実際の画面とキャプチャした画面が一致するかどうかの判定スクリプトを書きたいのですが
よくわかりませんので、ご教授頂きたいと思います
ちなみに自分で一応下記のようなスクリプトを書いてみましたが上手くいきません。

プリントスクリーンでキャプチャした画像Aをペイントか何かに貼り付けて
元々キャプチャしておいた画像Bと一致したらメッセージを表示する
と言うようなスクリプトを書いたのですが
画像ファイルの有無の認識まではスムーズに進むのですが
肝心の判定部分で画像が一致してないと出てしまいます。

何かいい方法があれば是非ご教授くださいませ・・・
あともっと手っ取り早い方法等あれば是非ともご教授お願いします
何分初心者なもので、見当違いな書き方してるかもですので・・・
よろしくお願い致します

582 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/23(火) 11:12:38 ID:iP6BKLPi0]
人から頂いたumsのファイルを、機能はそのままに座標などをいじって自分用に使いたいと思っています。
頂いたフォルダにはums拡張子のファイルとbmp拡張子のファイルのみが入っていたのですが
どのように中を見て、座標などを変えていけばいいのでしょうか?
初心者な質問ですみません。

583 名前:名無しさん@お腹いっぱい。 [2008/12/23(火) 12:13:41 ID:Wqjl56Jy0]
>>582
メモ帳などでUWSファイルを開いて、BMPファイル名を検索
座標はPrintScreenキーでスクリーンキャプチャしてペイントに貼り付けてマウスを持ってって調べる。


584 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/23(火) 13:19:55 ID:8f11xEcw0]
conex.fujigoma.com/?target=http://conex.fujigoma.com/download/index.html

ここのWebフォームパスワード解析スクリプトの使い方がわからないので教えて頂きたいです
このページに書いてあるようにやっても

Uスクリプト: 変数: HTTP: が定義されていません
1行目: TARGET_URL=HTTP:

というメッセージが出てきて実行できません
どうすれば出来るのでしょうか

585 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/23(火) 14:17:52 ID:KjieyKO20]
120秒間のあいだに座標900,500の位置に指定の色が出ると
即座に座標510,390をクリックさせたいです
現在下記のような感じでやってるんですが
座標900,500に指定色が出るまで永遠にスリープしてしまうので
このスリープを120秒間限定で行いたいです
120秒以内に指定の色が出ない場合も座標510,390をクリックさせたいです
(わかりにくい表現ですいません。
 120秒以内に指定色が出た場合は即座に510,390をクリックする
 指定色が出ない場合も120秒後には510,390をクリックする)
下記は現在使っているもので指定色が出るまでスリープする状態が続くので変更したいのです

while PEEKCOLOR(900,500) <> $EFEFEF //色判定
Sleep(0.2)
wend
BTN(LEFT,CLICK,510,390,100) //クリック

よろしくお願いいたします




586 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/23(火) 14:29:35 ID:vYTIGuaE0]
>>584
そのサイトに書いてある利用方法を読めばわかる

>>585
適当だけどこんなんでいいんじゃない

i = 0
FOR i = 0 TO 120 / 0.2
 IF PEEKCOLOR(900,500) = $EFEFEF TEHN BREAK //色判定
 Sleep(0.2)
NEXT
BTN(LEFT,CLICK,510,390,100) //クリック


587 名前:554 mailto:sage [2008/12/23(火) 14:56:07 ID:60ZXtA8U0]
>>578
ありがとうございます。
これでいけそうです。

ところで、以下のマイクロソフトのページでnavigateを調べても引数が一つしか書いていないんですが
msdn.microsoft.com/ja-jp/library/cc428092.aspx

> 構文
> object.navigate(URL)

第二引数以降を調べるにはどうしたら良いのでしょうか?

588 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/23(火) 15:03:52 ID:KjieyKO20]
>>586
>>585です
早速のレスありがとうございます
Uスクリプト:シンタックスエラーとでてきて動きませんでした
とり急ぐわけではないので何かわかったらまた教えてください
ありがとうございました

while 〜 wend を一定秒数で関数を抜ける方法ないでしょうか?
よろしくお願いします

589 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/23(火) 15:19:37 ID:Wqjl56Jy0]
>>588
start = gettime()
while gettime() < start+秒数
wend


590 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/23(火) 15:21:01 ID:vYTIGuaE0]
THENをTEHNって打ち間違えたわ

何秒経ったらループを抜けたい。を馬鹿正直に書いたら
GETTIMEでループに入る直前の時間を変数に入れて
ループないでその変数とGETTIMEで新たに取得した現在時刻の差を比べるとかできる
そこまでするもんでもないと思うよ

591 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/23(火) 15:31:11 ID:KjieyKO20]
>>588です
>>589さん何回も即レスして頂きありがとうございます
当方の言葉足らずで本当に申し訳ないです
2つの条件のうちどちらかを満たせば関数を抜けたいです
(説明不足で本当にすいません)

840,700の色判定を一定時間行い
指定した色になればすぐに関数を抜ける
指定した色にならなくても120秒後にはwhile〜wendの関数を抜ける
可能でしょうか?

下記のwhile〜wendです(現在、指定色が出るまで永遠ループです)
指定色の出現に関わらず120秒後にはwhile〜wendを抜け出す
(指定色が出現すればその時点で関数を抜け出す)
何回もすいません

while PEEKCOLOR(840,700) <> $FFDF63
Sleep(0.2)
wend


592 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/23(火) 15:56:21 ID:KjieyKO20]
>>590さん
>>591です
できました!
ありがとうございます
>>586をTHENにして実行したところ
色判定もしくは時間経過どちらかを満たせば関数を抜けることができました
本当にありがとうございました
何回もすいませんでした

593 名前:名無しさん@お腹いっぱい。 [2008/12/23(火) 18:14:32 ID:Wqjl56Jy0]
今すぐテレビのActionを見ろ

リサイクル詐欺をやってるぞ。


594 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/23(火) 19:22:20 ID:KjieyKO20]
お世話になります
また色判定の質問で恐縮です
3つの条件(3箇所の色判定)を満たさない限りループさせるにはどうすればいいでしょうか?
下記のようにしましたがシンタックスエラー出ます
3箇所の座標が条件どおりのときに座標位置330,220をクリックさせたいです
とり急ぐわけではないのでわかるかたおられましたらお願いします
当方もすぐにお返事できないと思います
どうぞよろしくお願いいたします

while
PEEKCOLOR(700,500) <> $FFDFEF
PEEKCOLOR(500,300) <> $FFFFFF
PEEKCOLOR(100,100) <> $FFDF63
Sleep(0.2)
wend
BTN(LEFT,CLICK,330,220,100)


595 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/23(火) 19:41:52 ID:KjieyKO20]
すいません自己解決できたので
>>594の質問取り消しさせて頂きます
>>594への解答は不要です
ただ単に3回繰り返せばよかっただけでした
ここに頼りすぎてました
すいません

while
PEEKCOLOR(700,500) <> $FFDFEF
Sleep(0.2)
wend
while
PEEKCOLOR(500,300) <> $FFFFFF
Sleep(0.2)
wend
while
PEEKCOLOR(100,100) <> $FFDF63
Sleep(0.2)
wend
BTN(LEFT,CLICK,330,220,100)




596 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/24(水) 13:05:48 ID:88yr3KPZ0]
>>587
それはDOMのリファレンス

InternetExplorer Object
msdn.microsoft.com/en-us/library/aa752084(VS.85).aspx

Navigate Method (InternetExplorer, WebBrowser)
msdn.microsoft.com/en-us/library/aa752093(VS.85).aspx

597 名前:581 mailto:sage [2008/12/24(水) 14:34:18 ID:WYMCwj1+0]
催促してすみませんがどなたか>>581の検討をお願いします・・・

598 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/24(水) 14:36:29 ID:oeZ+m6aE0]
>>581
判定して何がしたいのかを書いた方がいいんじゃないか?
もっと手っ取り早い方法があるかもしれないし

599 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/24(水) 15:50:58 ID:hM8Rz4el0]
>>肝心の判定部分で画像が一致してないと出てしまいます。
大半の原因は本当に『違う画像だから』だと思うよ。
1ピクセルでも似たような色でも駄目だからな。

この画像とこの画像は完全に一致しているはず、っていうbmpをみせてみな
処理のテストにはダミーデータが必要で効率的だ。

600 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/24(水) 16:33:21 ID:fqreGDGn0]
>>581
何度かサンプルをとってみる。
んで、ペイントに2回重ねてイメージを貼り付けてみる。
ファイルからのドラッグじゃなく、ペイントの別窓で全体を選択してイメージをクリップボードでね。
そうするとCtrl+Zで前のイメージに戻るけど、繰り返してみれば違うところが見える。
目で見て分かるほどの違いならそれでチェックできる。


601 名前:581 mailto:sage [2008/12/24(水) 22:46:46 ID:WYMCwj1+0]
皆さんレスありがとうございます。
催促してしまって申し訳ありません・・・

>>598
すみません。確かにそうですね。
えーと・・・とあるサイトで、ページを更新すると、極稀に画像が挿入されるというページがあって
その画像が挿入された時に、自動的に画像をクリックするというようなことがしたいのです。
なので一致してるかどうか判断するというより、一致しないかどうかが大事なんですけど
一致してる時まで一致してないと出ると意味がないので、先にそちらのテストからやってるという状態です

>>599
>1ピクセルでも似たような色でも駄目だからな。
そうだったんですか〜・・・
でも比較する画像と言うのは
更新もしていない全く同じ画面でキャプチャした2つの画像なのですけど
それで画像データの内容が変わるようなことはありえるのでしょうか??

>この画像とこの画像は完全に一致しているはず、っていうbmpをみせてみな
例えば今現在書き込んでいるこのページで連続でSSを2枚撮ったとして
その2枚は確実に一致してるはずですよね?

>>600
上記の通り同じ画面でキャプチャした画像同士なので
いわばコピー同士のはずなのですが
その方法で一度試してみます!ありがとうございます^^

602 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/24(水) 23:04:36 ID:wRGSCYG80]
ページが同一かどうかじゃなくてたった画像一つの話なんじゃん。大違いだろ…
どうしてそう見当違いの話にすり替えられるのか


603 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/24(水) 23:05:14 ID:jq0ous7H0]
やましい事があるからだろ

604 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/24(水) 23:29:44 ID:PQKwVK+U0]
範囲指定のミスや狭すぎたり広すぎたりすると拾えないこともある。
全体を見ないと何とも言えない。

605 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/24(水) 23:30:39 ID:1MnOXdsv0]
UWSCでMixmaster(オンラインゲーム)で自動狩りしたいのですが
設定方法など教えてください・・。



606 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/24(水) 23:34:03 ID:MPq7rWr60]
設定はUWSC起動させて5つあるボタンのうち一番右のボタンクリックしたらメニューが出るから
その中にある設定ってのクリックすれば出来るよ

607 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/25(木) 00:15:01 ID:0laQMG7O0]
>>601
それだったら単にソース見て画像あるかないか確認するだけでいいんじゃ・・・


608 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/25(木) 12:33:48 ID:PaM73P2v0]
606 :Mixmasterのファイルを選択すればいいのでしょうか?
ゲーム内でキャラクターが移動しないしモンスターにも攻撃できません・・・。
矢印だけ動くだけでキャラクター自体が動きません。

609 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/25(木) 16:38:47 ID:4fEIBmh1O]
ゲームの自動化はチート扱いの場合が多い。
そのため、ゲーム側で防止プログラムを組んでいる事がほとんどだ。
諦めるのが良いよ。

それでも諦めないなら、職業プログラマに勝てる知識が必要だな。
それを教えるのはこのスレでは荷が重い。
何万回やり取りするのか…


610 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/25(木) 17:07:51 ID:FFzSYmfk0]
クリックだけ自分ですれば半自動じゃん!!
おれすげぇ。

611 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/26(金) 06:47:51 ID:blavN2Ku0]
マウスホイール回転を検知する関数とか無いですか?
GETKEYSTATEでやろうとしたらダメですた

612 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/26(金) 07:03:06 ID:407rk+Q/0]
無い

613 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/26(金) 10:04:35 ID:dhcbSjOT0]
>>611
フックしないとミリ

614 名前:611 mailto:sage [2008/12/27(土) 13:50:53 ID:a1ud09nq0]
やっぱ無いのか・・・
ありがとうです

615 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/29(月) 11:52:44 ID:oDF873NO0]
「WOLF RPGエディター」とは? 
・高度なRPG開発が可能な、完全無料のゲーム作成ツールです。
・製作者はなんと「モノリスフィア」やツクール2000で「シルフェイド幻想譚」などを製作した
 SmokingWOLF氏だよ。
・雰囲気はRPGツクール2000に近い。RPGツクール2000で自作システムを作りこむ際に
 不満だったところがいろいろ解消されていて、かなり自由度が高いです。ただし
 その分初心者には難しいかも。すでにツクール2000で自作システムを組むのに
 慣れた人やRPGツクールでは物足りないけどプログラミングはちょっとという方にお勧め。
・作成したゲームは自由に配布したり、コンテストに投稿することも可能。
 また本ソフトを持たない人でもプレイ可能!ファイル暗号化も完備してるよ!
・要望、不満点、バグ報告などなど書き込みお願いします。今もどんどん進化中です。
・それとマップやキャラなどのドット素材もじゃんじゃん募集中ですので
 一度サイトにお越しくださいませ。
・このツールで作ったゲームをサイトで紹介してるから、ダウンロードしてどういう
 ゲームが作れるのか見てみてね。

2ちゃん本スレ
pc11.2ch.net/test/read.cgi/gamedev/1229261856/l100




616 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/01(木) 19:29:41 ID:I3qjVRit0]
自動化関連で AutoIt もこのスレでよいのでしょうか?

617 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/01(木) 19:34:15 ID:Fg81q2l00]
>>616
スレタイを100回読み直せ
それでも分からなかったらもう100回読み直せ

618 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/01(木) 21:08:56 ID:I3qjVRit0]
>>2 にあったのか。ここで扱ってもいいのね。サンクス

619 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/01(木) 21:53:59 ID:I1XCmHmc0]
Whileで繰り返しの作業を行っています
何回繰り返したのか最後にprintしてるんですけど
なぜだかわかりませんが
いつも200回でカウンターが0に戻ります
formatというのでなんとかなるような気がするんですけど
ヘルプの例ではわかりません><
どなたかカウンターが0に戻らない方法教えてください

x = 1
While x < 20000000
〜作業〜
print x + "回終了しました<#CR>"
x = x + 1
Wend


620 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/01(木) 22:32:08 ID:I1XCmHmc0]
>>619です
私の勘違いでしたすいません
プリント窓のバッファの関係なのかもしれないですが
200回過ぎたところでガクンッって感じで1回目と表示されたんです
作業を止めてプリント窓を確認したところ
下のほうにはちゃんと201回目、202回目とカウントされていました
作業させながらプリント窓を確認していたので勘違いしていました
>>619の質問は取り消します
すいません

621 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 02:15:23 ID:ZsBa6Dj30]
ID:I3qjVRit0
ここにも冬休みの影響が..

622 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 16:36:20 ID:rpkNn+AP0]
おなじXPなのに、違うパソコンで自動で馬券を買おうとしたら
「指数計算ができません」というコメントが出ます。
どこが原因なのでしょうか?
よろしくお願いします。

623 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 16:37:21 ID:14Asm42R0]
>>622
君の頭

624 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 16:47:10 ID:rpkNn+AP0]
まじめな回答をお願いします。
ちなみに画面は32bit→16bitに変更済みで
KB927489という2004対応フォントは見当たりませんでした。
困っていますのでよろしくお願いします。

625 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 17:01:26 ID:S7pHZQT10]
煽られるのが嫌なんだったらまともな文章書いたらどうなんだ・・・(;´Д`)



626 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 17:09:16 ID:xEYn5SCM0]
>>622
コメントがどこに出るのか
フォントがどう関係あると思ったのか
どこが原因なのか
ちょっと整理して書いてみ

627 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 17:23:39 ID:azAV/0n90]
>>622
マジレスすると、違うパソコンだからです。

628 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 17:24:37 ID:14Asm42R0]
>>624
それだけの情報で解決できるエスパーはここにはいません
他あたってください

629 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 17:39:16 ID:ZsBa6Dj30]
これかw
pc11.2ch.net/test/read.cgi/software/1176677869/48

630 名前:624 mailto:sage [2009/01/02(金) 17:49:27 ID:rpkNn+AP0]
>>622
フォントのアップデートに関係あるのではとのコメントが過去レス
にあったもので・・・
フォントがどう関係しているのかわかりません。
正直言って関係ないのではと思っています。
コメントはエラーコメントで小さな窓で出ます。
つまり起動はされているのですが、馬券を買う直前で止まるのです。
このエラーが出る前はレースが馬券を買わずに流れていきましたが、
それは16bitにすることで止まりました。が、馬券は買えません。
なお、私は上の48の人とは別人です。
検索で48を見つけましたが、そこにも回答がなかったので再度きいた
わけです。
以上、よろしくお願いします。

631 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 18:06:21 ID:ZsBa6Dj30]
>>630
該当のページ教えてよ
@ページのSSとかも晒してくれると回答しやすい

632 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 18:17:27 ID:Rm/xG68v0]
スクリプトの内容も教えてくれないと回答は大変すぎるだろ。

633 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 19:22:59 ID:rpkNn+AP0]
専門用語はわかりません。
同じXPで一方はできて他方ができないのは??
ソフトもコピーして使っているのに・・・
ソフトはUWSCで東京の1Rの画面、⇒は馬単のところで止まります。

634 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 19:29:48 ID:14Asm42R0]
>>633
お前はもう「教えて!goo」とかで聞いとけよ
言われたことも出来ない奴に理解できるかよ

635 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 22:43:34 ID:Rm/xG68v0]
こんな返答だと
『じゃぁこうすると解決方法だ』と教えてあげても
『専門用語は分かりません』と返答されてしまう。教える労力がかかりすぎるね。

勉強してからきてください。



636 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 22:48:25 ID:KRz29/qG0]
言葉は敬語でも横柄な質問者の典型ですね。
PC関係のスレに常住する教え好きの住人もこういう人には答える気をなくすね。


637 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/02(金) 23:41:24 ID:qQI3Q45q0]
ここは質問スレじゃねえんだボケ共

638 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 00:25:35 ID:wNvjgSLb0]
専門用語はわからないってことはどこからか拾ってきたソースなんだろうから
ソース見られるの恥ずかしいです><ってこともないだろうし
どこかのあぷろだにうpすれば即解決しそうなもんだけどな

639 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 00:27:43 ID:KC1P03p30]
>>633
pc11.2ch.net/test/read.cgi/pc/1230640743/
ほら、ここでやれ

640 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 00:48:41 ID:q+ebtwFv0]
そうだなあ。自分でソース書く奴が専門用語わかんねーわけねーもんな


641 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 04:43:07 ID:/iPm/dkm0]
そもそも uwscの話題なのか?ww

642 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 04:48:06 ID:8PVexPPM0]
>>636
>>633どこが敬語だよ
俺は語尾を揃えてくれればタメ語でも問題ないんだけど

ネットバンクっぽいからSSでも上げてくれればいいのに

>>641
>>633
UWSCっぽいけど?w

643 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 09:41:27 ID:WuPgWUsB0]
自演乙

644 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 13:51:01 ID:tGHU8yNl0]
グラフィック関連描画関連のハードが違うと全く同じスクリプトでも動かないよね。画像判定は。
色無視ならまだ行けそうだけど。

645 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 14:50:08 ID:Htt4DvzM0]
シェアウェア版はほとんど話題になっていないし
他でもあまり情報が無いみたいだけど
Web自動巡回する場合はUWSCが一番良いのでしょうか
それとも他に良いのがあるのかな



646 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 16:05:34 ID:89fA0Ah10]
漠然としすぎてるだろ。
なにを対象として巡回したいのか…極論RSSだけだったらGoogleReaderとか使え。
UWSCとかのスクリプトを触ったことが無いなら、とりあえずほかのソフトに不満を持ってからだな。
何を対象としてどんなやり方でどういう使い方を想定してこんな結果が便利そう・・・とか具体例を持てないと『作る』のは難しい。

使い込み始めると分かるが、シェアの利点はEXE化とデバッガぐらいしかない。
フリーで試してみるならそれはいい事だ。必要なのは探究心です。


647 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 00:16:56 ID:QbcstKJg0]
>>645
Web自動巡回は昔から色んなソフトがある。

648 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 01:26:47 ID:PWm0tapx0]
株式、先物、FXのシステム売買で
APIを公開していないブローカーを使って取引する時は
シェア版UWSC等で書かれたスクリプトが役に立ちそう
つーか、この分野で一番需要がありそうw

649 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 01:58:34 ID:uSQIty0X0]
流石に自動取引は危なっかしくて俺には出来ねぇ…。

650 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 03:28:43 ID:ugW3lSoF0]
>>648
なんでシェア?
Web記録があるから?フォーム作れるから?

どうみてもC#で十分です。

651 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 03:43:43 ID:7ITfu5Zd0]
C#とかいい始めたらキリが無いだろ。

652 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 04:05:12 ID:ugW3lSoF0]
冗談で書いた

653 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 09:35:21 ID:CqAA14y10]
  ∧l二|ヘ
  (・ω・ )  ←に土産を持たせてどこかのスレに送ってください
 ./ ̄ ̄ ̄ハ
 |  福  | |
 |  袋  | |,,,....
   ̄ ̄ ̄ ̄

現在の所持品: 帽子 老眼鏡 爪楊枝 ステテコ コタツ 仲村みうのDVD「卒業」 東名
オプーナ オプーナ オプーナ 株券 オプーナ 信長の野望online争覇の章 いづおロール 犬上小太郎
神藤美香のDVD(赤) ( ´;゚;ё;゚;) FF11アルタナの神兵追加ディスク 、FF11ジラートの幻影追加ディスク、xbox360エリート
もんもん ネコ ミカン DDR2 32G分 E8500 トイレ 精力剤 GV-MVP/HS2 ヘンシェル λ ID:x9wfJxWn 
敵の潜水艦 AIR Cl_ sabo10

654 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 17:06:35 ID:Sh/j4CRt0]
>>650-651
C#で簡単に作れるのかまじで?
ちょっとやってみたけど
WebBrowserコントロールっての使って単純なブラウザーは簡単に出来るけど
自動でパスワード入力とかラジオボタン操作とかフォーム送信とかの機能を実装出来るの?

655 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 17:15:35 ID:ugW3lSoF0]
>>654
できるよん
SetAttribute,GetAttribute,InvokeMember



656 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 18:29:45 ID:ika+BqcM0]
ブローカーにこだわらなければMT4使うのがベストだろ

657 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 20:19:05 ID:1GxGvmcA0]
昔、株板に自動売買スレあったけど、C#やExcelとかで作っている人はけっこういたな

俺もExcelで作ったのみたことある。
VBAでIEのコンポーネントを非表示でやってたな。

今なら、Rubyのwww::Mechanizeあたりでやるだろうけど

>>656
そうですな。俺はNinjtaTraderもオススメ

658 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/05(月) 20:36:45 ID:Agh4FC2Z0]
確認させてもらいたいのですが、1024×768の画面サイズで使用する場合、
CHKIMGで使う座標は、左上が(0,0)で右下が(1023,767)で合ってますでしょうか?

659 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 00:47:24 ID:IQ+0SvAq0]
つ 座標君

660 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 02:41:16 ID:HzO9vyYE0]
普通にそれで良いと思う。
俺は欲しい画面をキャプチャしてレタッチソフトなんかでその場所確認してるけど…新規でそのためだけのツール入れるのが面倒なだけだったり。

661 名前:658 mailto:sage [2009/01/06(火) 20:17:34 ID:dXsYDRZb0]
>>659-660
座標君ですか。使ってみます。

ところで、「探したい画像が画面にいくつあるのか、またその位置をチェックする」というスクリプトを書いてみたのですが、
暇な方がいらっしゃいましたら校正お願いできませんでしょうか。
とくに配列の宣言はこれでいいのか・・・。
関数の戻り値は1つだけだと思うので位置はグローバル変数で指定しないとダメですよね?
今は数が99個までとしているのですが、99個超えたらどうしようみたいなのもあります。

////////////

PUBLIC X_Zahyo[99]
PUBLIC Y_Zahyo[99]

Num = CountImage( 0, 0, 1023, 767, "乳首.bmp", 11)
FOR i = 1 TO Num
    PRINT X_Zahyo[i] + "," + Y_Zahyo[i]
NEXT

// 続く

662 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 20:18:05 ID:dXsYDRZb0]
// 続き

FUNCTION CountImage( X_Start, Y_Start, X_End, Y_End, FileName, Y_Size)

    // X_Start サーチ範囲(X座標開始位置)
    // Y_Start サーチ範囲(Y座標開始位置)
    // X_End サーチ範囲(X座標終了位置)
    // Y_End サーチ範囲(Y座標終了位置)
    // FileName 画像名
    // Y_Size 画像の高さ(ドット数)

    Y = Y_Start // サーチ位置(初回はY_Start)
    i = 0 // 発見した個数

    WHILE CHKIMG( FileName, 0, X_Start, Y, X_End, Y_End) = TRUE
        i = i + 1 // 発見した個数をカウント
        X_Zahyo[i] = G_IMG_X // X座標を格納
        Y_Zahyo[i] = G_IMG_Y // Y座標を格納
        Y = G_IMG_Y + 1 // 次は発見した場所の1ドット下からサーチする

        // 以下、発見した画像の真横をサーチ
        WHILE CHKIMG( FileName, 0, G_IMG_X + 1, G_IMG_Y, X_End, G_IMG_Y + Y_Size - 1) = TRUE
            i = i + 1 // 発見した個数をカウント
            X_Zahyo[i] = G_IMG_X // X座標を格納
            Y_Zahyo[i] = G_IMG_Y // Y座標を格納
            WEND
        WEND

    // 戻り値
    RESULT = i
FEND

663 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 21:04:53 ID:yXB+Es0j0]
なんかいろいろめんどくさいことやってるね…
関数にするのはともかく、わざわざ個数と座標を返して
関数の外でPrintする必要はないんじゃない?
わざわざ配列を作る必要もないし、配列サイズを気にする必要もなくなる

二重ループも意味不明
総当たりだと時間かかるから、画像サイズとか入れて少しでも時間短縮できれば便利じゃない?
あ、でも真横にある場合もあるから一応チェックするか

みたいな思考かもしれないけど、結局ただの二度手間
単純に総当たりのループ一つだけでいいじゃん。
最初に書いたとおりループ内でPrintした方がスマート

664 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 21:27:37 ID:0pokcDL30]
>>661
どうかな

wkx = 0
wky = 0

while CHKIMG( "乳首.bmp", 0, wkx, wky, 1024, 768 )
PRINT G_IMG_X + "," + G_IMG_Y
wkx = G_IMG_X + 1
wky = G_IMG_Y
wend

printすると.\UWSC.LOGに残るよ

665 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 21:56:54 ID:1giQJn+o0]
>>664
この書き方で同一X軸上にある2つ目の画像って取得できる?



666 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 22:10:22 ID:1giQJn+o0]
自分は質問者じゃないんだが

>>663
まぁ、関数の外にデータを持っていきたい場合もあるだろう。
ってんでprintは便宜上の表現として良いかなと思う。

>単純に総当たりのループ一つだけでいいじゃん。
これはどういう書き方になるんだ? >664だと >665 に書いたとおりに同一X軸の画像は取得できない。
増減対象をXとYで2回繰り返しても、XとY軸に同一の座標(格子状の配置)のものがあれば取りこぼすし。

667 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 22:20:35 ID:53iAnw2k0]
なんで出来ない?

668 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 22:24:53 ID:0pokcDL30]
>>665
CHKIMGってtrue返したあとどういう挙動してるの?
x,yってもちろんxから走査するよね?

669 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 22:51:48 ID:1giQJn+o0]
自分の知る限り

chkimgは
x=0,y=0〜画面解像度
x=1,y=0〜画面解像度
x=2,y=0〜画面解像度
と走査していって
最初に見つけた座標ひとつだけをG_IMG_X,G_IMG_Yへ返して終わりだ。
戻り値が配列になってるとかそういうのは聞いたことがないなぁ。

…なんか質問者の意図とは違うところに話が行ってる気がするよw
配列の受け渡しは関数宣言のvarで出来るからグローバルじゃなくても良いよ。
後、あんまり綺麗じゃないけど、対象数が不明すぎるなら連想配列でも良いんじゃないかな?

670 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 23:22:48 ID:1giQJn+o0]
xyが違ってた

y=0,x=0〜画面解像度
y=1,x=0〜画面解像度
y=2,x=0〜画面解像度
と走査していって

だな
…しかし、>663はどうやってループひとつで解決できるんだろう。

671 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 23:24:29 ID:0pokcDL30]
>>669
今テストしたんだけど一発で>>664俺書けてるじゃんw
君のPCがおかしいよ

.\UWSC.LOGはどこにあるかしってる?

処理したいならprintのところに関数でもなんでも置換すればおk

672 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 23:30:04 ID:0pokcDL30]
>>670
ごめん間違ってたOrz
再考するわ

673 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 23:54:50 ID:0pokcDL30]
これでどうよ

wkx = 0
wky = 0

while CHKIMG( "乳首.bmp", 0, wkx, wky, 1023, 767 )
PRINT G_IMG_X + "," + G_IMG_Y
wkx = G_IMG_X + 1
wky = G_IMG_Y
ifb CHKIMG( "乳首.bmp", 0, G_IMG_X , G_IMG_Y + 1, G_IMG_X, 767 ) then
PRINT G_IMG_X + "," + G_IMG_Y
endif
wend

674 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 23:58:58 ID:1giQJn+o0]
アルゴリズムの初歩っぽいけど、こういうのは考えると楽しいよね。

>673
惜しいけど、それは考え方が変わってないよね?
二つ目以降が取得できない。
■ ■ ■
■ ■ ■
■ ■ ■

658の二重ループはスマートな結論だと思うんだけどなぁ。

675 名前:673 mailto:sage [2009/01/07(水) 00:04:09 ID:yeJt08sV0]
>>674
君スマートやね

初歩とかそういうレベルじゃなくて
CHKIMGの仕様,振る舞いがおかしくない?



676 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 00:04:29 ID:7ES8amql0]
しかし、シレっと「乳首.bmp」なんて書くんだもんなぁ。
ネタ過ぎるwwwwww

677 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 00:06:33 ID:68bDEsj20]
>>674
単ループで2個目が取れないと思ってるのなら
二重ループじゃ3個目が取れないんじゃないのか?

678 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 00:11:23 ID:yeJt08sV0]
>>676
どうなんだろうw本人消えたし

>>677
単ループがどのことを指しているのかわからないけど
>>673じゃ実際にできなかった

679 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 00:11:34 ID:7ES8amql0]
>>675
まぁ、おかしいというか物足りないというか。
『最初に見つけたものだけを返す』仕様だから仕方が無い。
その上で自前で関数書くのもライブラリ探すのも結果は一緒だよ。

>677
2重目のwhileのchkimgで
見つけたx座標に+1して再探査してるから、3個目も探し続けるでしょうね。

680 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 00:14:13 ID:tfkVUyW50]
この中に本人がまぎれてます

681 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 00:19:23 ID:7ES8amql0]
ああ、小学生的に日本語を間違えてた

>>674
× 二つ目以降が取得できない
○ 三つ目以降が取得できない
もしくは
○ 二つ目までしか取得できない

ですね

682 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 00:42:30 ID:68bDEsj20]
ああ、誰も突っ込まないからそこが間違ってるだなんて思わなくて
そこを疑わずに話をしてたけど
Whileの条件だけでループさせたところで
一重だろうが二重だろうが…何重にしたところで駄目だろ

FOR i = 0 TO 767 - 画像縦サイズ
 X_Start = 0
 WHILE CHKIMG( FileName, 0, X_Start, i, 1023 - 画像横サイズ, i) = TRUE
  X_Start = X_Start + G_IMG_X
  PRINT 個数 + ":" + G_IMG_X + "," + G_IMG_Y
 WEND
NEXT

683 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 00:45:17 ID:68bDEsj20]
>   X_Start = X_Start + G_IMG_X
  X_Start = G_IMG_X + 画像横サイズ
こうか…間違ってたわ

684 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 01:09:03 ID:yeJt08sV0]
>>682
>>661これでできたよ

Y = 0
Y_Size = 1
FileName = "乳首.bmp"

WHILE CHKIMG( FileName, 0, 0, Y, 1023, 767)
print G_IMG_X + "," + G_IMG_Y
Y = G_IMG_Y + 1
WHILE CHKIMG( FileName, 0, G_IMG_X + 1, G_IMG_Y, 1023, G_IMG_Y + Y_Size - 1)
print G_IMG_X + "," + G_IMG_Y
WEND
WEND

>>661
なんでわざわざ配列使うの?
printを他の処理に変えばいいんじゃない?

685 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 09:05:43 ID:KoQ4Gi/C0]
結論
乳首の数は2個、位置は乳輪の真ん中



686 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 10:05:27 ID:KoQ4Gi/C0]
という冗談はおいて置いて、

>>666の言う通り、PRIINTは便宜上だろう。
最終的に配列で欲しいんじゃないか?
散布図画像のプロットデータを読み込んで何やら高度な計算、とかだったら99個じゃ足りないだろうな。

1. 数と位置を調べ、ファイルに書き出す。
2. ファイルを一旦閉じる。
3. ファイルを開く。
4. 配列宣言
  DIM X_Zahyo[FGET(ID,-1)]
  DIM Y_Zahyo[FGET(ID,-1)]
5. 配列に値をほうり込む。

これで大丈夫かな?
試してないけど。

687 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 11:37:52 ID:NIEdi7RU0]
おまいらがあんまり楽しそうに語ってるから久々に触ってみようと思ってヘルプ読んでみたけど
ChkImgの挙動ちゃんと書いてないんだなw

二箇所引っかかるような画像用意して
MsgBox(ChkImg(fname) + "<#CR>" + "x: " + G_IMG_X + "<#CR>" + "y: " + G_IMG_Y)
MsgBox(ChkImg(fname) + "<#CR>" + "x: " + G_IMG_X + "<#CR>" + "y: " + G_IMG_Y)
ってやったらこの二行目ので二箇所目の座標もちゃんと検出したんだけど
While ChkImg(fname)


688 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 11:40:31 ID:NIEdi7RU0]
途中で送信しちゃった

座標指定も使わず
While ChkImg(fname)
//G_IMG_XとG_IMG_Yの出力
Wend
だけでいいんじゃないのか?
って思ったけどどうなんだろ

689 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 11:50:19 ID:KoQ4Gi/C0]
一番左上の画像が延々と検出されるだけ。

690 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 11:57:26 ID:NIEdi7RU0]
え…俺二箇所ともWhileの方で引っかかるんだけど…
俺も無限ループになるのかなと思って>>687で試した結果
引数省略した時のデフォの値に前回取得したG_IMG_X,G_IMG_Yの結果を勝手にずらした座標が使われるって解釈して
ほんでもって>>688でちゃんと2箇所無限ループもせずに取得できたんだけど…

691 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:05:53 ID:KoQ4Gi/C0]
試したけどやはり一つだけを延々と検出するだけなんだが?

692 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:06:49 ID:NIEdi7RU0]
あ、ごめんごめん
この手の用途はPC放置してずっと監視させるのが目的だから
前回の値を起点にしたら長時間の画面監視なんてできないよね
忘れてちょうだい

693 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:08:35 ID:KoQ4Gi/C0]
>>692
試したらなったってのはどういうミスだったの?

694 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:08:46 ID:NIEdi7RU0]
リロードしてなかった…

>>691
なんでなのかな
uwscのバージョンとかで挙動が違うんかな

695 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:11:33 ID:KoQ4Gi/C0]
>>694
>>692を読むと結局無理だったというふうに読めたんだが、あくまで>>688はOKなの?



696 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:15:24 ID:NIEdi7RU0]
すまん久々に触ってるもんだから自分でも把握できないわ
混乱させるだけだからひっこむよ
ごめんよ(´・ω・`)

697 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:38:00 ID:NH/SArFRO]
走査しても人間が数値を読み違える事が在るからな。
MMVとSLEEP入れて、どこを検知したか分かり易くすると良いよ。

698 名前:658 mailto:sage [2009/01/07(水) 20:28:09 ID:SaObSndz0]
みなさんどうもありがとうございます。
連想配列という言葉は初めて聞いたので調べてみたいと思います。

699 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 20:43:38 ID:UInQEAud0]
ReSize使えよ

700 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 11:31:39 ID:Ou47XQg10]
UWSCを再生させるとPCで他の作業ができなくなり困ってます。
又、窓別に違うUWSCを再生することはできますか?

この腐れに教えて下さい・・・



701 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 11:38:17 ID:9uVCk7/U0]
>>700
よく意味が分かりません
スクリプトを窓別に書けばいいだけじゃないんですか?

702 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 17:07:03 ID:Ou47XQg10]
ALT+F2キー(再生)押した後PCの操作がすべて取られるので他の作業が
できないのです・・・

703 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 17:12:14 ID:p1dhSGKj0]
色々言いたいことはあるがやっかいなことになりそうなので、一言だけ。

諦めてください

704 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 17:14:03 ID:oR+RJomT0]
操作を取られないように書けばいいだけ

705 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 17:16:21 ID:kg5KLxKp0]
>>702
IEを操作するのならCOM使うとフォーカス奪われないよ
Windowsフォームを操作するのなら諦めて



706 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 17:31:46 ID:gYr5hc3Z0]
やったことはないのが
仮想PC(VMWare等)上でuwscを動かせば
自分は普通に作業できるのでは?

707 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 18:37:21 ID:U0BD8E1t0]
>>700
仮想マシンを使うのが簡単。

または、一つ一つの操作を、マウス・キーボードからWindowsAPIだとかを使うように全部変更すれば可能。
だだし、それ調べるのにソートー時間かかる。
WindowsAPIの知識が無いならやめとくべき。


708 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 18:51:10 ID:oR+RJomT0]
MOUSEORGすりゃいいだけだろw
何で仮想マシンになるんだwww

709 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:00:58 ID:gYr5hc3Z0]
>>708
それってさー
例えば、マウスポインタの位置を操作するスクリプトを動かしている最中で
自分はエクセルとかで同じくマウス使っている時に
マウスカーソルの位置がスクリプトによりどこかに飛ばされて作業の邪魔にならないの?

710 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:33:46 ID:kmMJQUqm0]
そうならないように指定すればいい。ってのに
そうならないの?って逆質問するのは馬鹿に見えるからやめたほうがいい

711 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:39:43 ID:gYr5hc3Z0]
>>710
馬鹿か お前はw

「そうならないように」するための 具体的な >>706>>707の意見が出たんだろ?

そもそも >>700の質問自体が「そうならないように」する方法を問う質問だろうがw
お前、頭が不自由な子か?w

712 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:44:24 ID:gYr5hc3Z0]
>>710

>>700の用件を満たしていない様に思える >>708に対して
本当に用件を満たしているか問うことが何故馬鹿なんだ?w
お前は頭大丈夫か?w

713 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:48:21 ID:LxZPgn7U0]
必死だなww

714 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:48:51 ID:oR+RJomT0]
>>709
ならないよ

715 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 21:11:26 ID:/4uiTXok0]
以下頭の悪さをひけらかすID:gYr5hc3Z0はスルーでどうぞ



716 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/10(土) 21:25:56 ID:5RFVaUTS0]
>>714
アプリに直接では送る相手が変わってしまって期待通りの動作しなかったりする。
それだったら直接API使った方がマシという。


717 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/10(土) 23:38:46 ID:0l2ZHHwf0]
送る相手が変わる???
送り先指定してんのにどうやったら変わるんだ?

718 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/10(土) 23:56:02 ID:wtsRJKdD0]
716は昨日のID:gYr5hc3Z0だろw
こいつは妄想で適当なことしか書き込まないからスルーしとけ

719 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/12(月) 03:23:39 ID:A1VFSCeY0]
>>717
相手が変わるって言うか
アプリケーションに送るのとクライアントに送るのとで変わってくるだろ?
ちがうのかな。

アプリケーションに直接送るっていうのは、受け側がWM_CHARを処理しないといけないんだろ?
ゲームのようなやつはそんなの見てないし。

720 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/12(月) 08:10:08 ID:fTsgyzyK0]
>>719
そんな妄想はいいから具体的にスクリプトあげてみてくれよ

721 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:43:09 ID:kqB6nrSU0]
// 投稿関数はtest15.uwsのもの。スレ覧取得ループはv1をさらに改造。
// キーワードに合致するものを優先的に検索・投稿し、そのほかは余裕があれば2ゲットする。
// 2008/7/4
// スレ覧はSubject.txtをGetして使うように変更。
// それに伴い304エラーのために間隔を開ける必要がなくなり、鯖への負荷も減らせる。
// 2008/07/14 OpenJaneでnewsplusを開いていてsageチェックがはずされていれば投稿し、待ち状態に入る。
// 2008/11/02 FOXの板を回避
// 2008/11/25 3回目の規制で、「二日までなら見逃し」という依頼者からの発言を受けて、
//    日付変更をチェックして自動終了するように変更。
def_dll GetWindow(hWnd,long):long:user32.dll
Public GW_ENABLEDPOPUP = 6 // ポップアップウィンドウ

board = "ニュース速報+"
//Jane本体のID取得
JBID = GetID("", "TMainWnd")

Public ProblemName = "FOX★", "番犬★"
/////////
// 定義
STOPFORM(true)
メモ帳 = Exec("notepad.exe")

板アドレス="mamono.2ch.net/newsplus/"

TEXTBLOCK text24
正論が通らない狂った日本
ttp://ryotaroneko.ti-da.net/e2186226.html // 2ch規制
ENDTEXTBLOCK

Dim TitleWord = "更迭" // text1の投稿対象とするスレッドタイトル
text0 = text2 // そのほかのスレッドへの投稿内容
text = text0 // 投稿テキストにセット

722 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:44:13 ID:kqB6nrSU0]
Dim oHttp // 通信オブジェクト
conturl = "mamono.2ch.net/test/read.cgi/newsplus/" // スレッド保存場所
url=板アドレス + "subject.txt" // 新着監視ページ

PUBLIC errortitles[]="サーバーが見つかりません", _
"ERROR", _
"ERROR", _
"error", _
""
DIM LastThreadNo=0 // スレ番を保存し、2重の書き込み、過去スレへの書き込みを回避する。
/////////
// 処理
// 通信オブジェクト接続
oHttp = CreateOLEObj("MSXML2.XMLHTTP")
// 投稿用ブラウザを起動
IE = CreateOLEObj("InternetExplorer.Application")
IE.visible = True
ID = HNDToID(IE.HWND)
SendSTR( メモ帳, TitleWord + "を処理します。<#CR>", 1, false, false )
LastModified = "Thu, 01 Jun 1970 00:00:00 GMT"
LastThreadNo = 0
sleeptime = 9
Gettime()
StartDay = G_TIME_DD
while 1
sleep(sleeptime)
Gettime()
SendSTR( メモ帳, G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2 + "." + G_TIME_ZZ2 , 1, false, false )
ifb StartDay <> G_TIME_DD then
SendSTR( メモ帳, "<#BR>日付変更により終了", 1, false, false )
exit
endif

723 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:45:08 ID:kqB6nrSU0]
// Webページ読み込み
COM_ERR_IGN  //COMエラー無視
SendSTR( メモ帳, " ", 1, false, false )
oHttp.Open("GET", url, True )
SendSTR( メモ帳, ".", 1, false, false )
oHttp.setRequestHeader("If-Modified-Since", LastModified);
SendSTR( メモ帳, ".", 1, false, false )
oHttp.Send("")
SendSTR( メモ帳, ".", 1, false, false )
ifb 200 = oHttp.status Then
SendSTR( メモ帳, ";", 1, false, false )
sleeptime = 3
else
SendSTR( メモ帳, ":", 1, false, false )
sleeptime = sleeptime + 10
SendSTR( メモ帳, " " + oHttp.status + "<#CR>", 1, false, false )
continue
endif
SendSTR( メモ帳, ".", 1, false, false )
LastModified = oHttp.getResponseHeader("Last-Modified")
SendSTR( メモ帳, ".", 1, false, false )
ifb COM_ERR_FLG
SendSTR( メモ帳, ".", 1, false, false )
SendSTR( メモ帳, "COM ERROR<#CR>", 1, false, false )
continue
endif
SendSTR( メモ帳, ".", 1, false, false )
COM_ERR_RET  //エラー処理復帰
SendSTR( メモ帳, " stat:" + oHttp.status + "<#CR>" , 1, false, false )
str = DECODE(oHttp.responseBody, CODE_BYTEARRAY)

724 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:48:23 ID:kqB6nrSU0]
// IEが終了された場合は連動して終了
if !IDToHND(ID) Then break
// スレッド一覧を処理
ThreadNo = 0
for TCnt = 1 to 50
str1 = token( "<#CR>", str, true, false )
Ifb 1 < Pos("(1)", str1) Then
SendSTR( メモ帳, str1 + "<#CR>", 1, false, false )
// スレ番取得
str2 = CopyB( str1, 1, 10 )
ThreadNo = Val(str2, -1)
if -1 = ThreadNo Then continue 2
//////////////////////////////////////
// 特定のスレッドにのみAAを投稿する。
Ifb Pos(TitleWord, str1) Then
text = text1
break
Else
// デフォルトテキストをセット
text = text0
// 処理しなかったスレ番の保存
//LatestNewList = ThreadNo
Endif
endif
next
///////////////////////////////////////////////
// 未処理の新規スレが残っている場合、投稿する。
// ループの外でやる理由は、一番古いスレから処理するため。
Ifb ThreadNo Then

725 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:49:05 ID:kqB6nrSU0]
// 投稿処理
ret = Cont( IE, conturl, ThreadNo, text, メモ帳)  // text = text0
Gettime()
TS = G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2 + "." + G_TIME_ZZ2
ifb ret Then
LastThreadNo = ThreadNo
SendSTR( メモ帳, "●good " + TS + "<#CR>", 1, false, false )
sleeptime = 130
else
SendSTR( メモ帳, "▲err " + TS + "<#CR>", 1, false, false )
sleeptime = 5
endif
Else // Janeの書き込み準備ができていれば投稿
Ifb -1 <> JBID Then
//JCID = GetID("", "TWriteForm")
JCID = GetChldID(JBID)
Ifb JCID Then
Ifb 0 = ChkBtn(JCID, "sage") Then
GetItem( JCID, ITM_ACCCLK, 1)
Ifb Pos(board, ALL_ITEM_LIST[10]) Then
Ifb SaveJane( JBID, JCID ) Then
SendSTR( メモ帳, "〓OpenJaneで投稿" + "<#CR>", 1, false, false )
sleeptime = 130
else
SendSTR( メモ帳, "〓投稿失敗" + "<#CR>", 1, false, false )
endif
Endif
Endif
Endif
Endif
Endif
wend



726 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:53:06 ID:kqB6nrSU0]
>>721-725
関数化した部分があるけど長すぎたので省略
Function GetChldID( PID, CID = 0 )
// 投稿処理 ////////////////////
// 戻り値: TRUE:正常、FALSE:エラー
// 引数:
// IE :IEオブジェクト
// conturl :スレの場所
// TNo :スレ番
// text :投稿テキスト
// メモ帳=0 :メモ帳ID
// メモ帳IDはデバッグ用
Function Cont( Var IE, conturl, TNo, text, メモ帳=0)

//////////////////////////////////////////////////////
// 投稿ページを開く
// 引数:IEオブジェクト、アドレス、スレッド番号、投稿テキスト、試行回数、メモ帳ID
// 成功すればtrue、不完全なページならfalseを返す。
Function OpenContPage( Var IE, conturl, TNo, text, LTimes=3, メモ帳=0)

//////////////////////////////////////////////////////
// OpenJaneの投稿処理をする。
// 開いているスレと投稿先が違うと出る警告画面の処理のため関数化。
// _分で処理できなければFalseを返す
// ID:親ウィンドウのID
// IDD:Web ページの保存ダイアログID
// OpenJaneはウィンドウを閉じても非表示で存在している。
// そして投稿窓もダイアログでなく独自ウィンドウクラス。
// なので、制御がややこしい。
// 投稿窓が非表示になるとき、別の子窓が取得できるので、・・・
// 1000レスついてたり書き込みできない場合延々と繰り返してしまう・・
Function SaveJane( ID, IDD, メモ帳=0 )

727 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 02:41:28 ID:OFjJkjc60]
2getに加担して鯖の負荷を上げるのは嫌だねぇ。
こういうのだったら使い勝手とか言わないでセカンドマシンでぶん回しておけよ。

…何で2get…ブログ先の人も首を傾げてるんだがなぁ。

728 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 15:27:40 ID:xOT5hdBj0]
uwscで単純な作業複数を、それぞれひとつずつのキーに割り当てることってできますか?
記録と再生でひとつの動作は行えるのですが、
複数のマクロや○+○じゃなくひとつのキーで実行は出来ないのかなと。

729 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 15:34:16 ID:ENz9kV0Y0]
できるよ

730 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 16:11:48 ID:rt4k6YB30]
>>728
出来るけど、ショートカットKey絡みならAHKの方が楽だと思う。

731 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 16:16:45 ID:dFd2Qpc10]
私はAHKでuwscファイルを呼び出すけど


732 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 16:21:26 ID:rt4k6YB30]
>>731
お、同志w
自分も行数あるスクリプトはすぐに面倒になってUWSCで書いてるわ…

733 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 18:00:21 ID:5VRwikzI0]
ある株ソフトにアラーム機能がないので
UWSCで出来たらいいなと思いましたが
どうしたらいいのか分かりません。

そのソフトはシグナルが出たときに
一番上の行に時間やら銘柄やら株価などが更新されていきます。
上昇のシグナルは緑背景に白文字、
下降のシグナルは赤背景に白文字となっており
上昇の緑の時にだけアラームを鳴らしたくて

WHILE TRUE
IFB PEEKCOLOR(887 , 241) = $2F6B55 THEN
SOUND("C:\WINDOWS\Media\notify.wav")
sleep(2)
else
sleep(1)
ENDIF
WEND

分からないなりにやってみたけど
これじゃあ赤いシグナルから緑に変わったときにしか
役に立たない・・・
ボクにも書けそうな簡単なスクリプトあれば教えてください。

734 名前:733 mailto:sage [2009/01/14(水) 21:00:55 ID:5VRwikzI0]
追記

とにかくソフトになにか変化があったらアラームを
鳴らさせるように出来ないでしょうか?

735 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 22:46:19 ID:INWUQKt00]
そこまで聞くならソフト名ぐらい晒せ



736 名前:733 mailto:sage [2009/01/14(水) 22:51:25 ID:5VRwikzI0]
>>735

大人買検知機というソフトです。
www.vector.co.jp/soft/winnt/business/se359706.html

737 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 22:55:16 ID:hOB1qOFr0]
いっこのループと、いっこの条件分岐が出来てるから…
後は、ほしい数だけ条件分岐を作れば出来るよ。

738 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 22:59:56 ID:rt4k6YB30]
>>734
ttp://ochoja.web.fc2.com/uwsct/0610uwsct.html#MakingSupport
UWSCコードの断片生成器
を使わせて貰って一番都合のよいもの(status,str,etc)選んでスクリプト書けば良い。

739 名前:733 mailto:sage [2009/01/14(水) 23:34:18 ID:5VRwikzI0]
>>737
どういう条件分岐作ればいいのでしょう?
peekcolorだけでやるのは無理ですよねえ?

>>738

***** getstr() sendstr() ********************
getstr(id,0,STR_STATIC)="大人買検知機"
getstr(id,0,STR_ACC_STATIC)="時刻"
getstr(id,1,STR_ACC_STATIC)="時刻"
getstr(id,2,STR_ACC_STATIC)="銘柄"
getstr(id,3,STR_ACC_STATIC)="約定値"
getstr(id,4,STR_ACC_STATIC)="出来高"


ちょっとやってみましたが
getstrで更新される文字とれるのでしょうか?
むずかしい〜

740 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 23:39:21 ID:3rpO1RzOP]
>>733

えーと監視する項目の色が緑に変わったときにアラームを鳴らしたいんだよね?
ということは、前回チェックした時の色と今回の色を比較しなければダメだよ。
色は何種類あるの? 赤と緑以外に通常の表示色はある?

それと気になった点を言うと、何秒おきに監視するの? 1、2秒単位で監視する
アルゴリズムになっているようだけど無駄にマシンパワーを食うんじゃない?
30秒おきとか1分おきとか5分おきとかだよね?


アルゴリズムを書くけど スクリプトにする時は文法と変数規約に則して変えてね。
※←は代入の意味ね。

前回の色 ← 通常色
今回の色 ← 通常色

WHILE TRUE
 今回の色 ← 今回の色を取得して変数に代入
 IFB 前回の色と今回の色が違う AND 今回の色は緑
  アラームを鳴らす
 ENDIF
 前回の色 ← 今回の色

 次回チェックまでXX秒スリープ
WEND



741 名前:733 mailto:sage [2009/01/15(木) 00:55:00 ID:tW7kX9XU0]
>>740
緑背景から緑背景の場合もあるから
文字の入る場所も含めて取得する地点を複数にして
判断すればいいのかな

比較ののところがどう記述すればいいのかまったく分かりません。

今のところ1秒でやっても負荷たいしてかからないけど
複数地点にして比較すると相当負荷かかってくるカモですね。
その場合はもうちょっと間隔あけるようにします。

742 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/17(土) 11:18:45 ID:iMN83Hym0]
// ===
前回の色 = ""

WHILE TRUE
  WHILE TRUE
    今回の色 = (PEEKCOLOR(887 , 241)
     IF !(今回の色 = $白ーい色) THEN BREAK // 白以外ならループ抜ける // !で真偽反転だっけかな;
    今回の色 = (PEEKCOLOR(111 , 222)
     IF !(今回の色 = $白ーい色) THEN BREAK // 白以外・・
    今回の色 = (PEEKCOLOR(333 , 444)
     IF !(今回の色 = $白ーい色) THEN BREAK // 白以外・・
  WEND

  IFB !(今回の色 = 前回の色) THEN
    // 同じ色ではない場合の処理
    IF 今回の色 = $2F6B55 THEN SOUND("C:\WINDOWS\Media\notify.wav") // グリーンなら
    IF 今回の色 = $レッドオ THEN SOUND("C:\WINDOWS\Media\レッドオ.wav") // レッドなら
  ENDIF

前回の色 = 今回の色
sleep(1)
WEND
// ===
泥くせ;;;


743 名前:733 mailto:sage [2009/01/17(土) 20:56:43 ID:3elNHqC+0]
分からないなりに理解しようとしましたが
色を取得するってところが全然分からない。

今回の色とか前回の色oldcolor newcolor?

744 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/17(土) 23:58:47 ID:70fVoJI80]
>>743
ひょっとして変数が判ってない?
いずれにしろ、UBTrek使ってpeekcolorを検索すれば沢山ヒットすると思う。

745 名前:733 mailto:sage [2009/01/18(日) 00:49:03 ID:V1b5lGQF0]
>>744
単純なpeekcolorの記述は何個か出てきましたが
前回の色と今回の色を比較するような例が見つかりませんでした。



746 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 01:13:45 ID:WQ5z9x9T0]
>>745
dim color=peekcolor(100,200)

while true
newcolor=peekcolor(100,200)
ifb !color=newcolor
 msgbox("変わった")
 color=newcolor
endif
sleep(0.5)
wend

無限ループなので適当にBreak。
Mouseorg(id,2)使ってwindow指定した方がよいかも。
RGBが少しでも変化すれば反応してしまうので、RGBに分解した方がよいかも。

747 名前:733 mailto:sage [2009/01/18(日) 01:13:47 ID:V1b5lGQF0]
緑、赤とか関係なく
ある一点の色変化があったときに
アラームを鳴らす具体的なスクリプト教えていただけませんか
なんとかそこから発展させてやっていきたいと思いますので。

748 名前:733 mailto:sage [2009/01/18(日) 01:18:03 ID:V1b5lGQF0]
>>746
ありがとうございます
でもまったく反応しないですね。
このままじゃダメなんでしょうか?

749 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 01:21:04 ID:aouJYoBm0]
>>748
プログラムの基礎から学び直したほうがいいよ
君にはまだ早い

750 名前:733 mailto:sage [2009/01/18(日) 01:29:38 ID:V1b5lGQF0]
あ、反応しましたが
なかなか反応しない感じです。

751 名前:名無しさん@お腹いっぱい。 [2009/01/18(日) 03:18:31 ID:lcf3XQYB0]
皆さんのUWSCを使用する用途は大体何ですか?

自分のPC環境の最適化以外にUWSCというのは
マスターしたとしても他に例えば何に役立つのでしょうか?
例:仕事面 WEB製作面 etc

マジ質問です

752 名前:WTTEkBtZS mailto:xthaterends@yahoo.com [2009/01/18(日) 03:22:58 ID:24LUwixi0]
rybeiddery.awardspace.com/dominos-sub.html dominos sub
maridoctoge.awardspace.com/ruff-ryders-columbus.html ruff ryders columbus
caross.awardspace.com/darren-nadel.html darren nadel
maridoctoge.awardspace.com/ruff-ryders-soccer.html ruff ryders soccer
rybeiddery.awardspace.com/dominos-pizza-nutrition.html dominos pizza nutrition
therybaive.awardspace.com/lenora-jubilee.html lenora jubilee
caross.awardspace.com/nadel-jewish.html nadel jewish
maridoctoge.awardspace.com/ruff-ryders-layout.html ruff ryders layout
therybaive.awardspace.com/jubilee-history.html jubilee history
deadingrain.awardspace.com/facbook.html facbook
therybaive.awardspace.com/red-cedar-jubilee.html red cedar jubilee
caross.awardspace.com/natasha-nadel.html natasha nadel
rybeiddery.awardspace.com/pizza-hut-ottawa.html pizza hut ottawa
caross.awardspace.com/nadel-sarasota.html nadel sarasota
maridoctoge.awardspace.com/bay-ruff-ryders.html bay ruff ryders
maridoctoge.awardspace.com/left-ruff-ryders.html left ruff ryders
caross.awardspace.com/nadel-artist.html nadel artist
maridoctoge.awardspace.com/ruff-ryders-do.html ruff ryders do
caross.awardspace.com/bernard-nadel.html bernard nadel
caross.awardspace.com/fred-nadel.html fred nadel


753 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 05:43:43 ID:85r780v+0]
プログラムの何の知識も無いものがuwsc用のスクリプトを
作れるぐらいにったと仮定した場合に、既存のプログラミング言語では何が一番
とっつき易いでしょうか?

754 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 06:09:29 ID:7B/GQZFQ0]
>>751
仕事面:決まりきった作業、繰り返し作業の効率化
Web製作面:ランダムな操作で想定外行動のチェック漏れ発見(意味あるかは知らない
セキュリティ面:泥棒が侵入してきたとき、クイックメニューから一発でメールで連絡できる。
        ある程度相手が分かってる時便利。
        DOSコマンドでメール送信するのを使ってたけど、コマンドラインにパスワード入れなきゃいけなかったので削除されてしまった。

うpろだのJpeg画像とか、一回ペイントで開いて上書き保存すると、サイズが半分近くになる場合が多い。
だからダウンロードした画像のリストをエクスプローラーで出して、ドラッグとCtrl+Sで更新を繰り返すのとか作った。

あとは、性能は低いけどパスワードクラックとか2Getスクリプトとか
たくさんのID作りたいときに自動登録マクロとか。


755 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 06:10:50 ID:7B/GQZFQ0]
STOPFORM(true)
ID = Exec("C:\WINDOWS\system32\mspaint.exe")
while ID = (-1) // 負荷が高いとID拾えないので
sleep(0.1)
ID = GetID("無題 - ペイント")
wend
Repeat; sleep(0.1); Until GetKeyState(VK_CONTROL)
StartX = G_MOUSE_X
StartY = G_MOUSE_Y
sleep(1)
While !GetKeyState(VK_CONTROL)
CLKITEM( ID, "ファイル\新規", CLK_MENU )
sleep( 0.1 )
// Ctrlキーで中断・再開
ifb GetKeyState(VK_CONTROL) then
sleep(5)
Repeat; sleep(0.2); Until GetKeyState(VK_CONTROL)
sleep(1)
endif
MMV( StartX, StartY )
BTN( LEFT, DOWN, StartX, StartY )
EndX = Status(ID, ST_X) + 30
EndY = Status(ID, ST_Y) + 10
MMV( EndX, EndY )
BTN( LEFT, UP, EndX, EndY )
If DlgWait(ID, EndX , EndY) Then Continue
If Status(ID, ST_TITLE) = "無題 - ペイント" Then break
CLKITEM( ID, "ファイル\上書き保存", CLK_MENU )
DlgWait(ID, EndX , EndY)
wend
CtrlWin(ID, Close)
MsgBox("処理が終了しました。")



756 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 06:12:23 ID:7B/GQZFQ0]
// マウス形状が通常の状態が1秒ほどあればタイムアウト。
// その間にダイアログが表示されるかどうかで戻り値が変わる。
// ダイアログが出た場合、OKをクリックする。
// True: 窓出現  False: 窓出ず
Function DlgWait(ID, EndX , EndY)
Result = False
cnt = 0
while cnt < 6
sleep(0.1)
MMV( EndX , EndY )
if MUSCUR() = CUR_ARROW Then cnt = cnt + 1
CID = GetChldID(ID)
Ifb CID Then
sleep(1)
ClkItem(CID, "OK")
Result = True
break
endif
wend
Fend

// 子ウィンドウを探す
// 戻り値:子ウィンドウのID。見つからなければ0。
// PID:親ウィンドウID
// CID:子ウィンドウIDの候補
// GW_ENABLEDPOPUPはWindows2000以降のみでサポート
//
// GetWindowによる子ウィンドウ取得を、GetChldIDに使ってみたが、
// Zオーダーで手前のウィンドウを全て取得するので選別する必要がある。
// メニュー Class:"#32768"
// ダイアログ Class:"#32770"
// ツールチップ Class:"tooltips_class32"

757 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 06:17:23 ID:7B/GQZFQ0]
Function GetChldID( PID, CID = 0 )
 Ifb CID Then
  Ifb PID = STATUS( CID, ST_PARENT ) Then
   result = CID
   exit
  endif
 endif

 h = GetWindow( IDToHnd(PID), GW_ENABLEDPOPUP )
 Ifb h Then
  S = Status(HndToID(h), ST_CLASS)
  Select S
   case "#32768"
    Result = 0
   case "tooltips_class32"
    Result = 0
   default
    Result = HndToID(h)
  Selend
 Else
  Result = 0
 Endif
Fend


// エクスプローラーとペイントを使った、Jpeg画像ファイルダイエットスクリプト 2008/10/21
// 使用方法:対象ファイルをエクスプローラーで表示し、ペイントが起動したら、エクスプローラーの
//        ファイル一覧画面の一番下のファイルにマウスカーソルを合わせ、Ctrlキーをクリックする。
// Ctrlキーで中断。
ソースは >>755-757
※エクスプローラーで、ファイルを詳細表示し、表示中ファイルの一番下のやつをクリックすると勝手に一つスクロールする。
 これを使うと簡単に順番に処理することができる。スクロールしない場合は窓の高さを変更する。

758 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 06:25:01 ID:7B/GQZFQ0]
>>753
VBSかな。これもスクリプト言語だけど・・・
次はVB.netかな。

>>750
sleepが0.5秒だから反応は遅いね。


759 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 09:12:15 ID:BRvZ2wPi0]
>>733
とりあえず、最低限
ttp://big.tm.land.to/handbook/uwsc.htm
の内容くらいは自分で理解してから質問してくれぃ。

760 名前:733 mailto:sage [2009/01/18(日) 11:55:00 ID:V1b5lGQF0]
>>759
一応読んでみたのですが

取得した値と新しく取った値を比較
さらに新しく取った値と比較みたいなことは

どこにも書いてないのではないでしょうか?

>>758
これって最初に取得した色と比較してMSGBOXが出るようになってますよね?

ある地点の色を取得して現在の色と比較
さらに取得して新しく取得した色と比較と
これを繰り返していきたいんです。

761 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 12:41:56 ID:O40sJXqz0]
>>760
あなたは日本語言語でちゃんと処理を記述してるじゃないか。
あなたがセンテンスを分割して2行で書いたとおり
uwscで2回比較処理をすればいいじゃないか。

これ以上はちょっと俺は関与することに面白みを見出せないわ
別にアルゴリズム的に難題というワケでもなし。
単なる知識不足のサポートは自助努力で補うといいよ。
…書いたものに駄目だしをされるだけなのは疲れるからね。
 自分で書きなさい。想定がつけば駄目だしをしてあげるから。

762 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 12:45:57 ID:Xm1Xcjw/0]
自分でやろうって気が少しも感じられないもんな

763 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 13:15:24 ID:I+l/Qm3w0]
>>760
自分のやりたいことがそっくりそのまま1から10まで書いてあるわけ無いだろ。
基本的なことは書いてあるんだからそれを理解したなら自分で作れ

764 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 15:31:11 ID:xwkw1ib70]
>>754
真面目にレスありがとうございます

UWSCで画像を対象にした条件分岐や色々作成した事はあるのですが
(今ではすっかり文法忘れてます)

ルーターにアクセスしてある設定を切り替える、等も
UWSCで可能でしょうか?
PHP等のスクリプトですると難しそうなので・・・

765 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 18:34:11 ID:o9RUmICX0]
可能です



766 名前:733 mailto:sage [2009/01/19(月) 15:25:59 ID:V9clvX4k0]
みなさんのヒントを元になんとか完成しました。
またつまづいたらよろしくお願いします。

767 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/19(月) 20:54:27 ID:qcrdC3FS0]
  ハハ お断りします
 (゚ω゚)
_(_つ/ ̄ ̄ ̄/_
  \/___/

768 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 00:58:10 ID:CMylmmuM0]
[Ver4.5]

769 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 01:37:12 ID:0N/gC0gi0]
高レベル記録…
なんというお手軽システム。

770 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 10:17:34 ID:Rt1OsezX0]
うう、まだcall文で変数が使えんのか・・・

771 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 11:22:31 ID:mivuHGw40]
IE_Subってもう入手できないの?


772 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 16:02:13 ID:6xnO4udb0]
一昨日からスクリプト組始めたんですが、どうにも配列変数の使い方(定義を含めて)がわからないので
詳しい方ご教示願います。

例えば変数ABC(x、y)に10*10=100個の変数にX軸Y軸共に1を格納していく場合、
BASICで書くと(うろ覚えですけど。)

FOR Y=0 to 9
FOR X=0 to 9
ABC(X,Y)=1
X=X+1
NEXT X
Y=Y+1
NEXT Y

と、したい所をuwscでは最初にどう定義して配列変数を使っていけばいいですか?
ヘルプ見たんですけど、イマイチイメージがつかめません
お願いします。

773 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 16:09:22 ID:6xnO4udb0]
あ、FOR〜NEXTってX=X+1とかいらないんだっけ?・・・orz

774 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 17:49:05 ID:LpFWL/UM0]
どうって、
DIM ABC[10][10]って定義して
> ABC(X,Y)=1
ABC[X][Y]=1
っていれてくだけでしょ…

775 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 18:03:13 ID:6xnO4udb0]
ああ、(x,y)じゃなくて[x,y]じゃないといけないのね・・・helpそういう意味かorz
とんだ勘違いしてました。どうもです



776 名前:名無しさん@お腹いっぱい。 [2009/01/23(金) 08:39:26 ID:n0Gk8YsY0]
複数のスクリプトを連続で起動させるにはどうすればよいですか?
1のスクリプトがおわったら自動的に2をのスクリプト起動、2→3、3→4...という感じです。

777 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/23(金) 10:36:35 ID:E4bxtYk+0]
>>776
各スクリプトの最後でcall。

もしくは
exec("フルパス\uwsc.exe フルパス\hoge.uws") 
こちらは多重起動禁止だとダメかもしれん。

778 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/23(金) 12:19:14 ID:v1eHViqS0]
>>776
1の頭で2,3,4をcallして
1でprocedureやFunctionを順に呼び出してもいいよ

779 名前:名無しさん@お腹いっぱい。 [2009/01/23(金) 12:30:51 ID:n0Gk8YsY0]
>>777
>>778
ありがとうございました。とても参考になりました。

780 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/23(金) 14:55:53 ID:uyPNdhnC0]
>>705さんの
>IEを操作するのならCOM使うとフォーカス奪われないよ
これについて理解を深めたいのですがどのあたりを具具れ場良いのでしょうか?


781 名前:705 mailto:sage [2009/01/23(金) 20:41:40 ID:CkpYM4hA0]
>>780
これに関してはググってないからわかんない
ヘルプのじゃ難しい?
スクリプト > スクリプト関数 > COMオブジェクト, IE操作関連

あとはページソースと睨めっこ

782 名前:780 mailto:sage [2009/01/23(金) 22:39:18 ID:aJMC8HA30]
>>781 ありがとうございます。よく読んでみます。


783 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/24(土) 16:24:29 ID:T53k2DPg0]
かなり、基本的なことで恥ずかしいことなのですがどうしても解決できず…

HAZU = GETID("www.***")
ClkItem(HAZU, "事件", CLK_BTN)

上記では、webウィンドウ上のアイテムをくりっくすることができません。
エラーは起きないのですが。。
原因としてはなにが考えられるでしょうか?

784 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/24(土) 16:35:10 ID:jFu+yqaK0]
left clickではないだろうか。

785 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/24(土) 17:06:55 ID:JOvNHrQj0]
>>781=>>783



786 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/24(土) 19:22:15 ID:nTyZ62iO0]
早速のへんしんあり

Left Clickということは、そのあとに座標指定ですよね?
web上だとずれてしまいませんか??

>>785
違いますよ〜

787 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 02:35:43 ID:XdmZStkM0]
>>782
わからなかったからここできくといいよ
その時はURL晒すように!

↓のようなレベルの質問しなければだけどw
ID:5VRwikzI0
ID:V1b5lGQF0

>>783
IE上のはCOMで書かないとだめ
ウィンドウ関連はWindowsフォームを扱うもの

788 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 12:17:04 ID:mUdf+86S0]
COMで書くと言うことは、C++や、java言語で組め
ということですか?

789 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 12:29:17 ID:KXHTzu1o0]
座標(720,100)の赤要素が200〜255の時はAキーを押し、
赤要素が199以下の時はBキーを押す。

というように動かすにはどう記述すればいいですか?

----------------------------------------------
IFB (PEEKCOLOR(720,100) and $0000FF) 55 then
KBD(VK_A,CLICK,40)
ELSE
KBD(VK_B,CLICK,40)
ENDIF
----------------------------------------------

上記のように書きましたがうまくいきません。
ご教授お願いします。

790 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 13:03:24 ID:mUdf+86S0]
IE上の、どのラジオボタンをクリックするのかを指定するにはどのようにすればよいのでしょうか?

IESetData(IE,True,"lr","lang_ja")      // ラジオボタン選択:日本語のページを検索
IESetData(IE,"UWSC","q")         // 文字設定:検索単語
IESetData(IE,True,"btnG","Google 検索") // SUBMIT

ヘルプではこのように載っていますが1行目のlrというのは、ラジオボタンということを示しているのでしょうか?
よくわかりません><


791 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 13:17:12 ID:yFPEYg0l0]
教授じゃなく教示だと何度言ったら

792 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 14:10:16 ID:XdmZStkM0]
>>790
IESETDATA( IE, 値, Name, [Value, 番号] )

google.co.jpのソースを見ると

<input id=all type=radio name=lr value="" checked><label for=all> ウェブ全体から検索 </label>
つまり Name=lr, value= ""

<input id=il type=radio name=lr value="lang_ja"><label for=il> 日本語のページを検索 </label>
同様に Name=lr, value= "lang_ja"

値がtrueということは,選択もしくはクリックするということ

793 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 14:11:57 ID:XdmZStkM0]
>>790
//以下コード

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("www.google.co.jp")
BusyWait(IE)

IESetData(IE,True,"lr","lang_ja") // RADIO: 日本語のページを検索
MSGBOX( "日本語のページを検索 のラジオボタンをオンにしました." )

IESetData(IE,True,"lr") // RADIO:ウェブ全体から検索
MSGBOX( "ウェブ全体から検索 のラジオボタンをオンにしました." )

Procedure BusyWait(ie)
Sleep(0.5) // Wait
Const TIME_OUT = 90
tm = Gettime()
repeat
Sleep(0.2)
ifb Gettime() - tm > TIME_OUT
MsgBox("Time Out:BusyWait")
ExitExit
endif
until (! ie.busy) and (ie.readyState=4)
Sleep(0.5)
Fend

794 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 14:34:02 ID:XdmZStkM0]
>>789
IFB ( PEEKCOLOR( 720, 100 ) and $FF ) >= 200 then

andってどういうこと?教えて!

795 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 14:44:55 ID:od339K0v0]
>>794
ビット積
ttp://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=26&log=ON&cnt=1
オイラも前に同じこと聞いたw



796 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 14:48:20 ID:XdmZStkM0]
>>795
ありw

797 名前:789 mailto:sage [2009/01/25(日) 18:08:13 ID:KXHTzu1o0]
>>794
ありがとうございます。うまく動きました。

798 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 23:25:00 ID:mUdf+86S0]
>>792
なるほど。ソースを調べるわけですね
骨が折れますね
大事なことを教えて頂き、ありがとうございます^^
しかし、右クリックでソースを調べることが出来ない場合はどうすればよいでしょうか?

799 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/26(月) 00:00:03 ID:o/KQMVrn0]
>>798
opera使うといいよ
右クリック禁止抑制とかフレームのソースも簡単に拾える

俺も解析用に使った
今ではメイン

800 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/26(月) 19:12:01 ID:+wQJsntF0]
なにからなにまでありがとうございます
試してみます

801 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/26(月) 21:28:55 ID:+wQJsntF0]
InternetExplorer上で、操作したいページを表示した状態で、

IE = GETACTIVEOLEOBJ("InternetExplorer.Application", "Web航海時代" )
IESetData(IE,True,"point","3") 

↑のようなコードを実行しても、なにも起きません
エラーは起きていないし、nameやvalueも間違っていないと思うのですが…

802 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/26(月) 21:58:38 ID:lqCZORip0]
nameかvalueが間違ってるんだと思う
IESetDataの戻値を見て正常かエラーか見てみればいかが?

803 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/26(月) 22:40:25 ID:+wQJsntF0]
<input type=radio name=point value="3">

↑ソースコードですが、name,value共にあっているかと…

804 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/27(火) 03:31:42 ID:i4vBvxWB0]
志村ー!、ダブルクォーテーション!ダブルクォーテーション!

805 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/27(火) 21:41:22 ID:ko0WGgzz0]
うぅ、、、ダブルクォーテーションまーくをつけたりとったりしてみましたが、エラーになりました><




806 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/27(火) 21:51:17 ID:i4vBvxWB0]
<input type="radio" name="point" value="3">

これで行けるはずだけど、行けなかったらごめん、その時は他が間違ってると思う。

807 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/28(水) 14:39:28 ID:Di5rN0Wd0]
色の判定をしてるのですが全然認識をしてくれません・・・
自分の環境に合わせてるつもりなのですが、どうすればBRG値をうまく範囲化できるのでしょうか><?

808 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/28(水) 20:10:56 ID:aP03qKyG0]
>>806
わざわざありがとうございました^^
しかし、なにもかわらず…
色々やってみます。

809 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/28(水) 20:42:55 ID:aP03qKyG0]
普段のIEの操作では実行できないページってあり得ますか?
例えば、私が操作しようとしているページは、そこのURLを直接打ち込んでもまっすぐ行けず
必ずホームに戻って、ホームから行きたいページのリンクをクリックしなければならないんですよ

ホーム→ttp://www9.plala.or.jp/system19/
操作したいページ→www9.plala.or.jp/system19/games/koukai/

※Operaだと、直接飛ぶことが出来ました

810 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/28(水) 23:52:01 ID:NvkvtEFN0]
オンラインゲーム?
ならこのスレの上の方で散々書いてあると思うよ。
(それに当てはまるかどうかは知らない)

811 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/29(木) 21:45:54 ID:3VYUuVlD0]
私は、ゲームの操作を自動化したいなとは考えていますが、特別なページ
殊に、上記のように、なぜURL直接入力では希望のページに飛べないの
か疑問に思った
だけです。

812 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/29(木) 22:44:04 ID:7CcxhBvcP]
>>811
ソースを見ればすぐ分かると思うのですが・・・
Windows Script Encoderはもちろん知っていますよね?
IEでのみlocation.replaceがdecodeされるので別ページに遷移するのです。
これがuwscと一体どう関係あるのでしょうか?

813 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/30(金) 03:55:44 ID:OeBnpuaS0]
>>812
横レスだが
おまいは常に人を馬鹿にしてないと生きていけない奴だなw 哀れw

814 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/30(金) 04:18:35 ID:SPXRBmP00]
>>813
横レスとか言いつつ本人乙

815 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/30(金) 04:25:19 ID:OeBnpuaS0]
>>814
横レスだといったろ?w
恥ずかしい奴だな おまいはw



816 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/30(金) 05:00:06 ID:3mlQ1XKW0]
ここまで俺の自演

817 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/30(金) 05:17:44 ID:SPXRBmP00]
>>815
単芝厨きもいです

818 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/30(金) 21:23:01 ID:AuYpJb6K0]
と、ここまで俺の自演。

819 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/31(土) 00:13:38 ID:vsuJT7Qv0]
集まってるおまえらよ、そろそろ散れよ。

820 名前:811 mailto:sage [2009/02/01(日) 06:29:15 ID:KLbW2NFD0]
すいません><よく知りません

821 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 12:52:27 ID:w5ujQ7MM0]
UWSCのスケジュールの設定で質問があります。

インターバルの設定が、1〜5分の設定と10分毎の設定などがあるのですが
7分や8分でのインターバルの設定は、どのようにしたら良いのでしょうか?

式による設定で式を入れれば良いのでしょうが
どんな式を入れればインターバルが7分や8分になるのか
わかりません。

ご教授頂ければと思います。

822 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 13:07:22 ID:VbDhycHQ0]
>>821
インターバルだけでよかったら

Interval_7min.uws かなんか作ってそこに

Call Main.uws

while true
main()      //関数呼び出し
sleep(420)   //7分
wend

これでいいんじゃない?

823 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 16:14:17 ID:ZukW/kKt0]
それだと、
7分 + main()処理
じゃん?
GETTIME使えばピッタシ!!

>   式による設定
>    自分で式を記述する事により細かな時間設定が決められます
>    使える変数
>     YY (年)、MM (月)、DD (日)、HH (時)、NN (分)、YMDNN (2000年からの経過分)、WW (曜日:日曜=0,.....土曜=6)
>    注意:チェックは分単位でされます、分単位の設定(NN, YMDNN)を忘れずに
>     例)
>       (WW=2) AND (HH=0 OR HH=12) AND (NN=0)   // 火曜日の0時と12時
>       (YMDNN mod 18)=0                  // 18分間隔
7分 : (YMDNN mod 7)=0
8分 : (YMDNN mod 8)=0

1、YMDNN (2000年からの経過分)
2、modは割り算した余り
3、割り算して余りがゼロ

じゃまいのか?

824 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 16:17:37 ID:ZukW/kKt0]
4、式を希望する日時で”真”になるようにすればいい

たぶん・

825 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 16:59:54 ID:v32FCtQy0]
>>823
Gettimeの戻り値が秒だからそれ使うだけでいいよ
分とか見たら割り切れないし。

ニュースの記憶見るかガンダム見るか悩むが
やっぱりガンダム見る



826 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 19:06:26 ID:ZukW/kKt0]
???
SLEEPと、
Gettimeと、
スケジュール設定の式による設定
の3つのメリットデメリットを書いたんだけど。

>>分とか見たら割り切れないし。
って意味わかんないんだが、
何を意味した書き込みなんだ?


827 名前:名無しさん@お腹いっぱい。 [2009/02/02(月) 04:55:33 ID:cpjbDFRd0]
>>826
ああ、ごめん。
>YMDNN (2000年からの経過分)
これ知らんかった


828 名前:名無しさん@お腹いっぱい。 [2009/02/02(月) 13:10:24 ID:yH09tKlS0]
質問です
.vbsファイルをuwscで開くにはどのように記述すれば出来ますか?

exe以外のファイルの開き方が分からず、
今はクイック起動にショートカットを作成し、クリックして開くように記述しているので
直接開く方法があればご教授頂きたいです。

829 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 14:08:30 ID:pdMh/tE90]
doscmd("???.vbs")

830 名前:名無しさん@お腹いっぱい。 [2009/02/02(月) 14:30:06 ID:yH09tKlS0]
>>829
有り難う御座います。
ですが実行されませんでした
フルパスで""も付けたんですが…
OSはvistaなんですが関係無いですよね…

831 名前:名無しさん@お腹いっぱい。 [2009/02/02(月) 14:49:49 ID:cpjbDFRd0]
>>830
ショートカットのプロパティにリンク先っていうのがあるでしょ。
それをコマンドラインに入力したらいいんだけど。

コマンドプロンプトを開いて実行するか、
ファイル名を指定して実行(Vistaにあるかは知らないが)で、実行できるか試してみて。

832 名前:名無しさん@お腹いっぱい。 [2009/02/02(月) 15:05:20 ID:yH09tKlS0]
>>831
有り難う御座います。
先ほどuwscで動かなかったので、
コマンドプロントからも直接やってみましたが、
vbsは実行されてませんでした orz

833 名前:rpaawnaw mailto:sgixjd@qloaau.com [2009/02/02(月) 15:07:51 ID:2TLMPBOD0]
qFqgve <a href="lycvakiqmpbn.com/">lycvakiqmpbn</a>, [url=gxsxjoosngmt.com/]gxsxjoosngmt[/url], [link=ifsiyjjscezd.com/]ifsiyjjscezd[/link], piuboesbpern.com/

834 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 15:11:57 ID:pdMh/tE90]
>>832
Vistaでも問題なくできるぞ
どんなエラーメッセージが出る?

835 名前:名無しさん@お腹いっぱい。 [2009/02/02(月) 15:21:46 ID:yH09tKlS0]
>>834
いえエラーは出ないんですが、
コマンドプロンプトに(フルパス).vbsをペーストしてEnterを押しても
動いた形跡が無いんですよね・・・
ただbatファイルをウインドウ非表示で実行させるだけの簡単な物なんですが
それとも何か必要な物が欠けているんでしょうか
普通にクリックしたときは動くんですが・・・



836 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 15:28:21 ID:PVHBkFFR0]
>>835
vbsのほうにメッセージボックスを1行入れてみたら?

837 名前:名無しさん@お腹いっぱい。 [2009/02/02(月) 15:49:30 ID:yH09tKlS0]
>>836
有り難う御座います。
色々調べてみて今、解決出来ました。
お騒がせしました。

838 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 19:05:09 ID:Os9uDG+70]
できれば、何が原因だったか教えてくれると有り難いとか思ってるのは俺だけかな?
初心者だからどういう時にそうなるのか気になる。

839 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 20:36:43 ID:bbkYkSZI0]
ブラウザを起動するときに最小化できませんか?
検索では、UWSC.exeのあるフォルダのUWSC.INIをメモ帳で開き、
StopForm=0 を StopForm=1 に変更して保存します。

とあったのですが、iniファイルがなく設定できませんでした。
キーボードからオルトとスペース、Nキーで最小化できるので
キー操作のスクリプトからできることはできるみたいですが
一回、表示されてからの対応になるのでできれば起動時から
できたらいいのですが。

840 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 21:07:48 ID:yMTVVraI0]
comでxmlhttpを使え。解決する。
他にも色々あるが、まぁ、とりあえず使ってみろ。

841 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/03(火) 03:38:57 ID:eeztqI130]
>>839
UWSC.INI の StopForm キーの値は
スクリプト再生中に現れるフォームウィンドウを
表示するかしないかってやつじゃなかった?
最小化でアプリ起動ってのは API 関数の ShellExecute() を使う

HINSTANCE ShellExecute(
    HWND hwnd,  // 親ウィンドウのハンドル
    LPCTSTR lpVerb,  // 操作
    LPCTSTR lpFile,  // 操作対象のファイル
    LPCTSTR lpParameters,  // 操作のパラメータ
    LPCTSTR lpDirectory,  // 既定のディレクトリ
    INT nShowCmd  // 表示状態
);

ブラウザのパスは適宜変更してください

DEF_DLL ShellExecuteA(hwnd, string, string, string, string, int): dword: shell32.dll

CONST SW_SHOWMINIMIZED = 2

IFB ShellExecuteA(NULL, "open", "C:\Program Files\Internet Explorer\iexplore.exe", NULL, NULL, SW_SHOWMINIMIZED) < 32 THEN
  MSGBOX("実行に失敗しました")
ENDIF

842 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/03(火) 03:52:05 ID:eeztqI130]
>>841
すみません、比較式を間違えました
失敗時は 32 以下の値を返すので、正しくは以下です

IFB ShellExecuteA(NULL, "open", "C:\Program Files\Internet Explorer\iexplore.exe", NULL, NULL, SW_SHOWMINIMIZED) <= 32 THEN
  MSGBOX("実行に失敗しました")
ENDIF

843 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/03(火) 09:29:53 ID:9ClBsfHO0]
API 関数とかしりませんでした。

実際やってみたらブラウザは機動できました。
しかし、そこからの動作がされません。
指定のアドレスに移動するにはどうしたらいいのでしょうか?

DEF_DLL ShellExecuteA(hwnd, string, string, string, string, int): dword: shell32.dll
CONST SW_SHOWMINIMIZED = 2

IFB ShellExecuteA(NULL, "open", "C:\Program Files\Internet Explorer\iexplore.exe", NULL, NULL,

SW_SHOWMINIMIZED) <= 32 THEN
MSGBOX("実行に失敗しました")
ENDIF

IE = getactiveoleobj("internetexplorer.application")
IE.Visible = True
IE.Navigate("URL")

上記のような感じでやっています。アドバイスお願いします。



844 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/03(火) 21:49:12 ID:eeztqI130]
>>843
起動と同時に URL に移動するには
ShellExecute() の第 4 引数に URL を渡します
なお、ProgID は大文字小文字を区別するので
正しくは『InternetExplorer.Application』です
また、以下のコードでも同じことができます

OPTION EXPLICIT

DIM url = "www.2ch.net/"
DIM ie = CREATEOLEOBJ("InternetExplorer.Application")

CTRLWIN(HNDTOID(ie.HWND), MIN)
ie.Visible = True
ie.Navigate(url)

845 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/04(水) 12:53:58 ID:m6en7Q5I0]
uwscでIEを開いた後、そのIEで開いたHP内の文字データなどを
EXCELのセルに代入することはできますでしょうか?




846 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/04(水) 13:05:01 ID:tXqKlnWn0]
できます

847 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/04(水) 13:20:25 ID:m6en7Q5I0]
ありがとうございます
なんとかやってみます

848 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/04(水) 19:46:29 ID:MfK5WOxL0]
>>844
勉強になります。ヘルプみたり過去の質問検索してみましたが、
あまり、APIとかのことが載ってないのね・・・

849 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/04(水) 23:12:09 ID:N1AZKeZ50]
>>848
MSDN見たほうが手っ取り早い事が多いからなぁ?

850 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/06(金) 12:59:57 ID:hPEtxwon0]
A = "●●"と言った感じのものを20ぐらいあるとしてそれを順に
送信しようと頑張っています。ちなみに一個だけならなんとかなる
のですが、複数だとどうしてもコードがいっぱいになってしまします。


IESetData(IE,A,"kakikaki")
id = getid("internet explorer")
clkitem(id,"ボタン",CLK_ACC,CLK_BACK)
sleep(15)

これが、そのコードなのですが、Aのところに複数の文字を順に設定
できたらと思っています。よろしくおねがいします。

851 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/06(金) 15:36:29 ID:q6mgGLtH0]
A[0] = "●●"
A[1] = "○○"

FOR i = 0 TO 20 - 1
 IESetData(IE,A[i],"kakikaki")
 id = getid("internet explorer")
 clkitem(id,"ボタン",CLK_ACC,CLK_BACK)
 sleep(15)
NEXT

これでいいじゃん

852 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/06(金) 16:05:23 ID:BBz1+Wne0]
レスどうも。m(_ _)m
実際に実行してみたら下記のようなエラーがでました。

Uスクリプト: 変数: A 配列をオーバーしてます
8行目:A[1] = "●●"

こんなエラーがでます。A[0]は、大丈夫みたいです。
なんでだろう?なにかわかりましたら詳細お願いします。

853 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/06(金) 16:32:11 ID:1eXzPAIO0]
dim a[19]= "●●","○○","△△","▲▲",・・・・・(20個記述)

"とりあえず1から10まで聞いとけ"という性格が羨ましいと思うようになったこの頃。('A`)

854 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/06(金) 17:44:09 ID:BBz1+Wne0]
うまくいきました。m(_ _)m
なぜ、前にやつはエラーがでたのかしら?
原因が分からない。

855 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/06(金) 18:42:36 ID:q6mgGLtH0]
変数の定義、宣言と
変数への値の代入という
二つの違いを理解してないから



856 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/07(土) 03:18:07 ID:vXpPMDOu0]
前から疑問だったけど、聞けなかったこと。
>>841のshellexecuteのnShowCmd。msdn等を見ると記述順番は
SW_HIDE, SW_MAXIMIZE, SW_MINIMIZE, SW_SHOW ・・・
で順番違うじゃない? この定数はどこで判別するんでしょ?
どなたか解説してくれないかな…

857 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/07(土) 09:37:19 ID:xlfhJ7RV0]
>>856
Windows Platform SDK の WinUser.h で定義されてます
ドキュメントの値は、記号定数名でソートされてるようです

CONST SW_HIDE = 0
CONST SW_MAXIMIZE = 3
CONST SW_MINIMIZE = 6
CONST SW_RESTORE = 9
CONST SW_SHOW = 5
CONST SW_SHOWDEFAULT = 10
CONST SW_SHOWMAXIMIZED = 3
CONST SW_SHOWMINIMIZED = 2
CONST SW_SHOWMINNOACTIVE = 7
CONST SW_SHOWNA = 8
CONST SW_SHOWNOACTIVATE = 4
CONST SW_SHOWNORMAL = 1

858 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/07(土) 11:36:45 ID:l5adthQH0]
>>857
回答ありがとう!見つけられました。
これ、目的の記述部分を捜すのは適当な属性値をGrepで捜すくらい
しか思いつかなかったのですが、(ちゃんと順を追ってじゃなく、
あくまでdef_dllのためだけという意味)他に良い方法ありますでしょうか?
重ね重ねで恐縮ですが、もし知恵があれば教えてくださいませ。

859 名前:名無しさん@お腹いっぱい。 [2009/02/07(土) 20:34:24 ID:TsGY9ahZ0]
BMP画像(100x100)からUWSCを使ってRGB値をテキスト出力するにはどうすればよろしいでしょうか?

860 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/08(日) 00:47:32 ID:fB3ojcA60]
色情報を取得してそれをファイルに書き出せばいいのではないでしょうか

861 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/08(日) 07:22:53 ID:QoTANPZk0]
>>858
大抵の IDE はシンボルの定義部にジャンプする機能があるけど
確認のためだけに起動するのは避けたいので
俺は grep してます

862 名前:858 mailto:sage [2009/02/08(日) 18:05:42 ID:iaalqOSe0]
>>861
ナルホド〜。
ひとつ賢くなりました。多謝。

863 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/08(日) 22:31:33 ID:dNKbKAR9O]
いくつかの画像のサンプルがあって、指定したウィンドウ内からその画像を書いた順番で探す。
合ったら処理抜け、なかったら次の画像探し
最終的にどれもなかったらまた処理抜けってのをがんばってやろうとしてるんだけどどーすりゃいいのかな
いちいちifbで探してなかったらbreakみたいにやらんとダメ?
もーちょいスマートにやれないかな

864 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/08(日) 23:45:58 ID:vASK790PO]
日本語でおk

865 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/08(日) 23:51:13 ID:SXOT3GUb0]
例えば test test1 test2 って画像があって
どれかがヒットしたらその画像をクリックってことやらせたい場合
ifb chkimg (test.bmp) = true then
mmv(g_img_x, g_img_y)
sleep(1)
endif
ifb chkimg (test1.bmp) = true then
mmv(g_img_x, g_img_y)
sleep(1)
endif
ifb chkimg (test2.bmp) = true then
mmv(g_img_x, g_img_y)
sleep(1)
else
break
endif
↑よりもスマートってか効率的な書き方があるのかなってこと



866 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/08(日) 23:55:43 ID:3bfozRlh0]
ifb chkimg (test.bmp) OR chkimg (test1.bmp) OR chkimg (test2.bmp) then
mmv(g_img_x, g_img_y)
sleep(1)
endif

867 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/09(月) 00:20:04 ID:wdWGM0TOP]
日本語でおk
こういう意味?私はスマートという日本語を知りません

DIM bmp[]="test","test1","test2"
for n=0 to length(bmp)-1
  ifb chkimg(bmp[n]+".bmp") = true then
    mmv(g_img_x, g_img_y)
    sleep(1)
    break
  endif
next

868 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/09(月) 00:34:17 ID:fwfzfodA0]
867のをかきかえてみると
DIM bmp[5]="Garnet","Star sapphire","Topaz","Spinel","Emerald"
for n=0 to length(bmp)-1
ifb chkimg(".\image\"bmp[n]+".bmp") = true then
mmv(g_img_x, g_img_y)
sleep(1)
break
endif
next
こうなったんだけど式違うって怒鳴られました・・・

869 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/09(月) 12:18:39 ID:wdWGM0TOP]
パソコンに同情するわ

870 名前:名無しさん@お腹いっぱい。 [2009/02/09(月) 16:18:53 ID:5wLvS0Ft0]
".\image\"bmp[n]+".bmp" ×
".\image\" + bmp[n] + ".bmp" ○

ちゃんとスペース入れないから間違うんだ

871 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 14:57:33 ID:ldVPkdsr0]
特定の文字を含むアドレスを抽出しそれを順々に周っていくという
のを作っています。

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("www.yahoo.co.jp")
REPEAT
SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4
KAISU = IE.document.links.length
FOR A = 0 TO (KAISU - 1)
IFB POS("www.●●[A]", IE.document.links[A].href) > 0
IE2 = GETACTIVEOLEOBJ("InternetExplorer.Application")
IE2.visible = True
IE2.navigate(IE.document.links[A].href)
UNTIL !IE.BUSY AND IE.READYSTATE = 4
ENDIF
NEXT
IE.QUIT

[A]のところは毎回違います。これでやると順々に周ってくれません。
フリーズさえしないもののページを読み込むのが終了せずそのままに
なります。

実行したときには、"www.●●[A]"←この部分はちゃんとしたアドレス
になっています。


872 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 16:02:10 ID:HCMc1CKn0]
>>871
>IE2 = GETACTIVEOLEOBJ(

これってIEを起動していないと、オブジェクトIEとオブジェクトIE2は同じものになるよね。
で、元のIEで他のページ開いちゃったら、IE.document.linksが無効になっちゃうんじゃないかな。
というか最初にとったIE.document.links.lengthとページが切り替わったあとのやつとでつじつまが合わなくなってちゃんと動かないはず。
特にUWSCのFOR分は、ループに入ったら回数固定だから、その辺が変動しないようにきっちりやらないと。

873 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 16:11:49 ID:ldVPkdsr0]
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("www.yahoo.co.jp")
REPEAT
SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4
KAISU = IE.document.links.length
FOR A = 0 TO (KAISU - 1)
IFB POS("dailynews.yahoo.co.jp", IE.document.links[A].href) > 0
IE2 = CREATEOLEOBJ("InternetExplorer.Application")
IE2.visible = True
IE2.navigate(IE.document.links[A].href)
ENDIF
NEXT
IE.QUIT

これが参考にしたソースなのですが、871は私が色々やってるやつです。
上記のソースだとそれぞれブラウザで開くということになってしまいます。

表示されたページで特定の語句が含まれるアドレスをゲットして
それをもう一つ起動したブラウザで順に巡回するというのでもいいのですが。

874 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 16:54:12 ID:HCMc1CKn0]
>>873
2つ目をCreateしてれば問題ないけど、
1つ目に上書きするとだめなんですよ。
Getするということは、確率的に1つ目を取得することになります。
他の窓がない場合は100%1つ目の窓を取得します。

どうしても1つ目の窓でやりたければ、
Navigateする前にlinksを全部配列にコピーしておかないと駄目です。

ループすると次々に窓を起動するのでいやだということなら、
ループに入る前にあらかじめ2つ目をCreateしておけばいいんです。

そもそも参考にしたソースは実用的な動作じゃありません。
ただ、Navigateした後に待ちを入れていないので、スクリプトの動作は快適で安定するでしょう。


875 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 17:15:37 ID:ldVPkdsr0]
とりあえず

>ループに入る前にあらかじめ2つ目をCreateしておけばいいんです。

この手法をお願いします。できれば配列にコピーというのもお願いします。




876 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 17:54:36 ID:HCMc1CKn0]
>>875
まずは2つ起動

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("www.yahoo.co.jp")
REPEAT
 SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4
IE2 = CREATEOLEOBJ("InternetExplorer.Application")
IE2.visible = True
KAISU = IE.document.links.length
FOR A = 0 TO (KAISU - 1)
 IFB POS("www.●●[A]", IE.document.links[A].href) > 0 Then
  IE2.navigate(IE.document.links[A].href)
  REPEAT
   SLEEP(0.1)
  UNTIL !IE2.BUSY AND IE2.READYSTATE = 4
 ENDIF
NEXT
IE.QUIT
IE2.QUIT


if 〜 Then
REPEAT 〜 UNTIL
ThenとREPEATが抜けてました
あと、IE2でNavigateしたのに待ちループではIEになってました。
インデント(頭の空白)入れないとそういうところのミスが発見できません。


877 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 18:23:31 ID:ldVPkdsr0]
正直、わからないです。
質問が悪かったのかしら・・・

1、指定ページに移動
2、特定の文字を含むアドレスをゲット
3、ゲットしたアドレスを順に表示(IE2でも可)

この動作なんだけどなー。うーむ。

878 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 18:43:10 ID:HCMc1CKn0]
>>875
配列を使うやつ


DIM リンク[]="ダミーデータ"

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("www.yahoo.co.jp")
REPEAT
 SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4

KAISU = IE.document.links.length
FOR A = 0 TO (KAISU - 1)
 IFB POS("www.●●[A]", IE.document.links[A].href) > 0 Then
  リンク[length(リンク) - 1] = IE.document.links[A].href
  resize(リンク, length(リンク))
 ENDIF
NEXT

KAISU = length(リンク) - 1 // 配列の最後尾は空欄
FOR A = 0 TO (KAISU - 1)
 IE.navigate(リンク[A])
 REPEAT
  SLEEP(0.1)
 UNTIL !IE.BUSY AND IE.READYSTATE = 4
NEXT
IE.QUIT

879 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 18:51:38 ID:HCMc1CKn0]
>>878の補足
リンクの選別を最初のループでやってるので、2回目のループは無条件に処理できる。
ループ回数が違っているのも要チェック。
配列がちょっとややこしいやり方だけど、カウンタが2つ以上になってもややこしいのでこういうやり方してます。
リンク[length(リンク) - 1]は、リンクっていう配列の最後尾を意味します。
resize(リンク, length(リンク))は、配列を一つ増やします。
上記2行により、最後尾にデータを追加するたびに配列を増やし、常に最後尾をあけておきます。

ちなみに、最初に配列数を0にしておけばごみがでないように思われますが、
最小配列サイズが1なので、どうしてもごみが入ります。
また、最初の1回で隙間をなくそうとすると、ループの処理がおかしくなります。

>>877
おいおい
1、指定ページに移動  は、IE.Navigateだし
2、特定の文字を含むアドレスをゲット は、
 POS("www.●●", IE.document.links[A].href) > 0
 の条件を満たすときの IE.document.links[A].href だし
3、ゲットしたアドレスを順に表示(IE2でも可) は、
 ループの中でIE.Navigateですよ

これ以上丁寧に教えるのは無理。
ヘルプとサンプルをじっくり見てください。

1行ずつ実行してみるのもいい手。
僕は実験のファイルが70くらいたまってる。


880 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 20:47:55 ID:ldVPkdsr0]
お手間をかけます。m(_ _)m
実際に実行してみたのですが、両方駄目でした。

エラーは出ませんが、最初のヤフーページが読み込み中になりそれ以後が進みません。
難しいわぁ〜('A`)

881 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 21:20:46 ID:HCMc1CKn0]
>>880
とりあえずそのままuwsファイルに書き込んで起動したら、IEは自動的に終了した。
読み込み中で止まるって?
IEの設定の問題かな?

>>876のやつの POS("www.●●", IE.document.links[A].href) を
POS(".html", IE.document.links[A].href) に書き換えたらばんばん開くんですけど。
POS(”www”, IE.document.links[A].href) で試したらファイルのダウンロードが動いてCOMエラーになったけどさ。

IEのバージョンでも違うのかもしれないけど、IE6ではしっかり動きました。
ちなみに僕が使ってるのはちょっと古いバージョン。
4.4.2.4のやつ


882 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 23:15:08 ID:d1Cz2CKr0]
ちと教えてくれい。
JscriptのSort関数ってUWSCで扱えるかしら?
連想配列のソートを使って凌いでしまったんだけど、
もし使えるようなら、そのうち、ちゃんとw悩んでみようかと思って…。

883 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/11(水) 00:17:02 ID:HuYbgfa/0]
>>882
無理じゃね?
そういうCOMオブジェクトがあるとも思えない。
DLLの場合は配列を渡せればいけるかもしれない。

と思ったけど、データベース使えばSortできるっぽいね。
テーブル作るのめんどくさそうだけど。

884 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/11(水) 01:07:21 ID:kWARHqJn0]
>>883
レスサンクス。
時間掛けずにヨカッタw

885 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 14:30:03 ID:3ZWIkmUk0]
com操作から指定の同じ画像が2枚以上あるかどうかのチェックを
するスクリプトを作っています。

<img alt="画像" src="/img/member/status_01.gif?1234414294" />

これがそのソースなのですが、altの画像の個数でもおkです。とにかく2個以上
あったらメッセージボックスで知らせてくれるみたいなのができたらと思っています。



886 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 15:36:56 ID:yfzZRrrS0]
そうですか

887 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 16:29:22 ID:mUOb2ZH60]
>>885
一致するやつの個数を数えるだけですよね

888 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 16:31:07 ID:3ZWIkmUk0]
>>887
画像があるかどうかというのはできると思うのですが、同じ画像が2枚あるかどうか
となるとちょっと私のスキルでは難しいので訊いて見ました。

数を数えなおかつメッセージボックスなどで同じ画像が2つ以上あると知らせてくれる
というものです。

889 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 16:39:01 ID:mUOb2ZH60]
>>888
cnt = 0
while 全部処理
 ifb 画像一致 then
  cnt = cnt + 1
 eneif
wend
ifb 2 <= cnt then
 MsgBox()
endif


890 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 17:35:13 ID:3ZWIkmUk0]
メモリが・・・というエラーがでる。
今、他の手法でやってますが、IE.document.body.innerHTMLで
画像で使われてる文字の数というので判断しようとしています。

一つだけの場合、ちゃんとうまくいきました。しかし上記のやつをすこし
変えてやってみましたが駄目でした。

891 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 17:43:52 ID:Ro94SGUQ0]
情報を小出しにするのはやめてください。
チャットじゃないので整理してまとめてから書き込んでください

892 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 18:00:45 ID:3ZWIkmUk0]
 str = "UWSC"

 ifb pos(str, IE.document.body.innerHTML) then
 MsgBox("あるよ")
endif

画像でエラーが出るので上記のやつで挑戦してます。
HTMLにUWSCという語句が2つ以上あればメッセージ
ボックスにあるよと表示されるというものです。

ひとつでは成功しています。

893 名前:名無しさん@お腹いっぱい。 [2009/02/13(金) 18:30:14 ID:mUOb2ZH60]
>>892
だから>>889のとおりにやれよと。

str = "UWSC"
cnt = 0
while 全部処理
 ifb pos(str, IE.document.body.innerHTML) then
  cnt = cnt + 1
 eneif
wend
ifb 2 <= cnt then
 MsgBox("あるよ")
else
 MsgBox("ないよ")
endif


894 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 18:34:04 ID:3ZWIkmUk0]
全部処理についてkwskm(_ _)m

895 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 18:40:58 ID:mUOb2ZH60]
>>893はミス
str = "UWSC"
ifb pos(str, IE.document.body.innerHTML, 2) then
 MsgBox("あるよ")
eneif

posは個数指定があるからループしなくてよかった。
ループする必要があるのは、前から順に1こずつ検索する場合。


>>894
全部とは、IE.document.body.innerHTMLの1文字目から最後まで処理する条件ってこと。
つまり、ループに入る前に
src = IE.document.body.innerHTML
として文字列を取得し、見つかるたびに読み進めていく。
tokn() を使って1行ずつ処理する場合とか
IEGetSrc( IE, タグ名, [番号] ) で、番号を順に指定して取得する場合とか。

BodyのHTML全部取得してPosで個数まで数えるならループはいらない。




896 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 18:44:29 ID:mUOb2ZH60]
見落とすかもしれないからもう一度書くけど、
pos()の3番目に2って指定すれば、2個目の位置を調べてくれる。
つまり、2個目があるかないかはPos()一回でわかる。

だからこれだけで完成
str = "UWSC"
ifb pos(str, IE.document.body.innerHTML, 2) then
 MsgBox("あるよ")
eneif


897 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 18:45:01 ID:3ZWIkmUk0]
詳しい説明どうも。
しかし、みんなどこで勉強してるんですか?
とりあえず、UWSCの掲示板とマクロテクニックという本、
検索などでやってますが、なかなか目的の回答にたどり
つけないことも多く、時間ばかりがかかってしまいます。

このスクリプトだってもう何時間も費やしていますからね・・・

898 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 19:03:33 ID:mUOb2ZH60]
大事なのは情報の探し方。
探すためのキーワードはマニュアルを順番に読んで探し出す。

UWSCは覚えることは少ないほうだし、ヘルプにまとまっているからヘルプを見る。
基本の使い方はサンプルコードを探す。
で、一つ一つの細かい使い方は、それを確認するためのサンプルコードを自分で書く。
公開されたツールを使うのも手。

あとはテクニックを覚えて応用していく。

if Pos() then  で、存在チェックするというのもテクニックのひとつ。
Pos() は文字列の位置を返すだけだけど、取りうる値が1以上になるのでそういう使い方ができる。
if 文が、0か0以外という判断基準だからできることだけど、
それを知ってればほかの関数でもそういう使い方ができるかどうか判断できるわけ。


899 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 19:14:00 ID:6zXjaVj00]
俺個人の意見だと、そういう書き方は好きじゃないし人にも勧めないな…



900 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 03:00:48 ID:lbAzgdO20]
>>897
とりあえずnotepad以外のエディタを用意して文字列ハイライト&F1key(大体のエディタがそうだと思う)
でHelpファイルの項目にジャンプできるようにする。
その後、Helpファイルのサンプル、ネットに挙がっている短目のサンプルをコピペ。
エディタのショートカットKeyからサンプルを実行して結果を見たうえで、関数等を理解。
自分はこんな感じかな?

901 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 09:57:37 ID:l4ICTSX40]
>>899
でも、
flag = true
if flag = true then
みたいに書くと期待通りの動作にならないですお。

いや、DLLとかの外部プログラムで言うtrueが、自分の処理系でのtrueと一致するとは限らないというべきか。


902 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 14:13:39 ID:uUjk6ugC0]
>>901
IF flag <> 0 THEN MSGBOX("真") ELSE MSGBOX("偽")

903 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 15:31:54 ID:kc2bS8a/0]
>>900
私もかれこれ1年ぐらいやってますが、実際に自分でサンプルとかを
やってみるのがいいみたいですね。本の内容とかを理解するより
結果そっちのほうが早かった。

あと、情報量が格段に違うので本はお勧めできない。価格が高いというのもあるけど。
本の内容なんかヘルプの1/100も載ってないしw掲示板での回答のほうが例としても
すぐれてるよね。本は失敗したわぁ〜w

904 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 15:46:35 ID:w6PpT+IB0]
>>901
俺はUWSCなんて一度もさわったことはないが
if flag = trueだと代入してないか?
他の割とよくある言語だと、
flag == trueとか
flag eq trueとか
そもそも条件比較せずに
if flag thenって書き方だと思うが
=が比較にも使えるんだったらすまぬ

905 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 20:38:54 ID:+5xZKKxJ0]
複数開いてるIEでウィンドウ情報に「ソフトウェア」とか特定の文字が含まれている
ウインドウを閉じたいのですが、選択して閉じることはできますか?



906 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 20:42:00 ID:mPJsDYRZ0]
>>904
普通に使えるお。
条件式では代入は行われないっス。
唯一Evalの代入で ':=' があるくらいで '==' とかはないっス。
おばかには有難いすw

907 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 21:00:49 ID:qfzVhbRR0]
>>905
できます

908 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 21:08:42 ID:6gNN+jj+0]
trueが1、falseが0という前提で
if XXX then YYY を日本語で説明するとXXXが真の場合YYYだけど
内部仕様で0 or not 0 falseじゃなければ真だからって
if POS() thenって書くのはどうかなと言っただけよ
ちゃんと?if POS() > 0 thenと書いた方が分かりやすいじゃんってこと

if flag = trueとかはまた別な話、if POS() = true then と書けと言ってる訳じゃないし
2以上の値が返ってきたら、true(1)ではないんだから。


909 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 22:24:08 ID:oEG6WUs+P]
なるほど
ヘルプを文字通りに解釈すればIF文は真偽をチェックするのであって
それと0チェックは等価ではないという事か
(実際は0と0以外のチェックだろうけど)

C言語にどっぷり漬かった脳なので>>898が言っているような
書き方のほうが理解しやすく感じてしまった

910 名前:905 mailto:sage [2009/02/14(土) 22:56:30 ID:+5xZKKxJ0]
事故解決しました。

しかし、次の問題が。ソースから
<!-- △△△ -->
複数のアドレス
<!-- ◇◇◇ -->

このようなソースがあった場合、三角から四角までの間にある複数アドレスを
ゲットして一個ずつ開いていくというのはできますか?

ちなみに間になければ似たようなアドレスは開けています。上でも書きましたが
改めてソースを書いときます。
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("www.yahoo.co.jp")
REPEAT
SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4
KAISU = IE.document.links.length
FOR A = 0 TO (KAISU - 1)
IFB POS("dailynews.yahoo.co.jp", IE.document.links[A].href) > 0
IE2 = CREATEOLEOBJ("InternetExplorer.Application")
IE2.visible = True
IE2.navigate(IE.document.links[A].href)
ENDIF
NEXT
IE.QUIT

上記のソースでページ内にあるアドレスを順に開いていくことはできます。
何かわかりましたらよろしくお願いします。m(_ _)m



911 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 00:48:48 ID:48UC/FQI0]
>>908
if flag = true とかいう書き方をしてると
if POS() = true というバグを見落とすことになる。
flagにしたって、状態がOn/Offだけとは限らない。
ボタンは白黒が基本だけどグレーだってある。
拡張してグレーを入れるとき、
何も考えずに取得した状態を放り込んでるとバグが発生することになるが、
自分がいじってない場所に影響が出るとは考えにくいし。

なにより、取りうる値をいちいち調べないといけない if flag = true なんか使ってると手間が増えるだけ。

912 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 01:18:42 ID:48UC/FQI0]
>>910
<!-- △△△ -->と<!-- ◇◇◇ -->を除外ということならシンプルだけど
<!-- △△△ -->と<!-- ◇◇◇ -->の間を処理するというのは、その処理基準が不適切と思われる。
ほかに手がなければしょうがないけど。
@ FOR A = 0 TO (KAISU - 1); start = A + 1; next   // <!-- △△△ -->が出るまで空回り
A FOR A = start TO (KAISU - 1); 処理; next   // <!-- ◇◇◇ -->が出るまで処理
@で空回りした回数をstart にセットして、Aでstartから再開すればいい。
<!-- △△△ -->が一度も出てこなかった場合、startにKAISUが入るので、多分Aは素通りする。

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("www.yahoo.co.jp")
REPEAT
 SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4
KAISU = IE.document.links.length
FOR A = 0 TO (KAISU - 1)
 start = A + 1
 IF 0 < POS("<!-- △△△ -->", IE.document.links[A].href) then break
NEXT
FOR A = start TO (KAISU - 1)
 IF 0 < POS("<!-- ◇◇◇ -->", IE.document.links[A].href) then break
 IFB 0 < POS("dailynews.yahoo.co.jp", IE.document.links[A].href) then // まだインデントつけてないしThen抜けてるよ。
  IE2 = CREATEOLEOBJ("InternetExplorer.Application")
  IE2.visible = True
  IE2.navigate(IE.document.links[A].href)
 ENDIF
NEXT
IE.QUIT

913 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 01:38:43 ID:h4gEwsYs0]
ちなみにその考えじゃ永遠に無理。

914 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 01:53:42 ID:MQRSTk0U0]
こんなことができたらいけるかもと考えました。

1、三角から四角までの文字列をゲット。
2、1の中のアドレスだけゲット。
3、上記のやつでアドレスを一個ずつ巡回。

1は、HTMLで見ると表示されてるやつです。コメントというのかな?


915 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 04:44:36 ID:ZJEnRiKf0]
>>911
> if flag = true とかいう書き方をしてると
> if POS() = true というバグを見落とすことになる。

バグとか言う以前に、そんな書き方はしない。
思いつく時点でおかしい

なんで、IFの条件文でTrue/FalseのBoolean型をチェックするのに
その条件文の中でわざわざTrue/FalseのBoolean型と比較する必要があるのか
無意味な重複になってる



916 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 06:36:23 ID:LdrnYZV60]
flag = trueって書き方自体はおかしな事じゃないでしょ
ifの条件式の一部にあってもおかしくはない
ただ、単体で「if flag = true then」と書くと蛇足ということになる
UWSC的にあってるかどうかはわからないけど
「if (flagA = true) AND (flagB = true) then」なんて場合があるわけだし

「if POS() = true then」をPOS() > 0 のつもりで書いているなら
変数にどんな値が入っているか、型とかを考えてない。って話になるし
POS() = 1 のつもりで書いているなら、同じ値だからといって
関係ない定数を使い回すな。という話になる

「if POS() then」がC畑の人の流儀というのは理解してるけど
それを理解してない初心者が、何となく親切心かお節介で付け加えた結果が
「if POS() = true then」ということになってるじゃなかろうか


917 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 11:31:41 ID:48UC/FQI0]
>>916
>flag = trueって書き方自体はおかしな事じゃないでしょ
処理系にもよりますが、TRUEの値は保障されないので、比較で使うのはおかしい。
実際1という値を持っているしUWSCでは保障してるかもしれないけど、
一般的にそうなのでUWSCでもそういう癖はつけないほうがいいんじゃないかなと。

if (flagA = true) AND (flagB = true) then   × // 成立するのはflagが1か0のときだけ
if (flagA <> false) AND (flagB <> false) then ○ // 全ての値で成立


918 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 20:05:10 ID:LdrnYZV60]
だから、flag = trueに違和感を感じる人は
boolean型がないC畑の人だけで
boolean型がある言語系の人は何の違和感もないんだって
flagって変数がboolean型なんだな。って思うだけだから

919 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 20:30:21 ID:LdrnYZV60]
> KAISU = IE.document.links.length
> flag = false
> FOR A = 0 TO (KAISU - 1)
>  IF POS("<!-- △△△ -->", IE.document.links[A].href) THEN flag = ture
>  IF POS("<!-- ◇◇◇ -->", IE.document.links[A].href) THEN flag = false
>
>  IFB flag THEN
>   IFB POS("dailynews.yahoo.co.jp", IE.document.links[A].href)
>    IE2 = CREATEOLEOBJ("InternetExplorer.Application")
>    IE2.visible = True
>    IE2.navigate(IE.document.links[A].href)
>   ENDIF
>  ENDIF
> NEXT

例えば>>910のサンプルで言ったらこういうことでしょ
flagにはtrueかfalseしか代入してないんだから
trueの値が保障されてないとか、trueかfalse、0か1以外が入ってることなんて考えなくていい
この場合は「IFB flag THEN」を「IFB flag = true THEN」と書いたところで
お節介と言うことにはならない

それをPOS()という戻り値がINTのものに対してPOS() = trueとか書いてしまうと
たまたま1の時だけtrueになってしまうということになる

920 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 20:56:45 ID:48UC/FQI0]
>>918-919
まあPos()のように0と0以外で判断するのはC言語系の考えとしても、
trueの定義がfalse以外のものとされてるのは、他の多くの言語で共通してるようだけど。

確かにtrueしか代入しないのなら確実に動作しそうだけど
なんかの拍子にごみが入ったとき、trueで比較するとどんな動作をするか分からない。
まあごみが入った時点ではじかれるべきだからむしろtrueと比較すべきかもしれん。
つまりelseなんか使うなって事だ・・・

921 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 21:21:15 ID:o+fSWy2v0]
型通りに書けばいいだけじゃ?、
flagはboolean型とみなしてコード書いてんだからtrueでいいし、
Pos()はint型だからtrueでの判定はナンセンスってだけ。

922 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 06:46:17 ID:EmOr31T+0]
For y = 0 to 250

Call 〜

Next
POFF(P_SUSPEND2)

と言う感じで外部スクリプトを呼び出して繰り返し作業をさせているのですが
なぜか毎回209回で終わってスタンバイになってます
なにか制限でもあるのでしょうか?

923 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 09:09:28 ID:Y25mNBPu0]
>>922
変数がかぶっているとか? callをコメントアウトしたらどう?

924 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 23:09:04 ID:QUmq6Zuh0]
>>922
//主
public i
for i= 1 to 250
  call call2.uws
next

//call2.uws
print i
でテストしてみたけど、制限などないようだよ…(アホだな自分もw)

925 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 23:19:50 ID:+qFEC0Zh0]
自作関数で戻り値を配列で返すにはどうすればよいのでしょうか?
普通に配列を指定すると怒られます。



926 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 01:13:40 ID:shI/FnE+0]
>>925
イマイチ質問の意味がわからんけど関数内でResizeしてないんとちゃう?
ttp://www.geocities.jp/stardust774/

927 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 03:52:10 ID:X+NUGRkd0]
>>925
関数の戻り値に配列って指定できたっけ?
俺は配列変数を参照渡しして、配列の長さを返却するようにしてる

DIM ary[0]
DIM i

FOR i=0 TO hoge(ary, 3)-1
  PRINT "ary["+i+"]: "+ary[i]
NEXT


FUNCTION hoge(VAR a[], n)
  DIM i

  FOR i=0 TO RESIZE(a, n-1)
    a[i] = i
  NEXT
  RESULT = LENGTH(a)
FEND

928 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 06:36:49 ID:hsq0Fe2s0]
>>925
一言で言えば、無理

929 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 12:52:47 ID:zwqJ4YAK0]
>>925
俺もそれやろうとしたけどできなかったんで、配列のグローバル変数使ってやりとりしてるな
かっこ悪いけど


930 名前:925 mailto:sage [2009/02/17(火) 15:04:26 ID:zlTNHss50]
うーん、やっぱりできないっぽいですね
関数自体をループさせるか、グローバル変数使うしかないのかな…
ありがとうございました

931 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 15:42:00 ID:gznT5Jkz0]
>>930
いや、>>927は無視ですか。

関数の引数を定義するときに、var 変数名 と定義してやれば、値の受け渡しができます
同じ変数名ならグローバル変数みたいに使える。
2次元配列とかもできる。
ちょっと配列数と添え字がややこしいけど。

dim a[0]
hoge( a )

FUNCTION hoge( var a[] )
 dim i
 resize(a,10)
 for i = 0 to 9
  a[i] = "x"
 next
FEND

>>927はfor文 でResizeしてるっぽいけどありなのか。


932 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 16:19:37 ID:gQhLPPZu0]
FOR文自体は、中がループしてるだけで
ループ毎にFOR文の行を処理してる訳じゃないからね。
2行に分けて書くか、1行にまとめて書くかだけの違いで。


933 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 16:52:39 ID:gznT5Jkz0]
いや、
for i=0 to Max
っていうのは、i とMaxを比較するんじゃないかなと。
そしたらMaxは毎回処理されるんじゃないかなと思ったんだけど
UWSCの場合はForが回数固定でカウンタとか保護されてるから大丈夫なんだろう。
いや、サイズが一緒だから変化がないだけかも。

C言語でいうと
for( i=0; i<Max; i++ )
iやMaxはループ中で変更できちゃうんだよね。
そんで初期化以外は毎回評価、実行されるんだよね。

初期化が入ったとき1回だけなのは当然だけど、終了条件の実行回数は分からない。
だからC言語でループ回数に関数を使うときは
for( i=sizeof(array); i>=0; i-- )
て言う風に初期化子として使う。
いや、そんなことしてなかったな。俺は。
どうせ最適化してくれるだろうと思って。


934 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 17:00:23 ID:gznT5Jkz0]
// forのテスト。終了条件を関数で指定するとどうなるか。

for i = 0 to test(i)
print "roop" + i
sleep(1)
next

Function test(i)
print "Func" + i
result = 2
FEND

実行結果。終了条件の関数は、カウンタの初期化の後1回だけ呼ばれる。
Func0
roop0
roop1
roop2


935 名前:925 mailto:sage [2009/02/18(水) 13:34:14 ID:YzuvFpA90]
恥ずかしながら>>927の意味がよくわかってませんでした(;´Д`)

>>931
わかりやすい説明ありがとうございます
これは便利ですね!



936 名前:922 mailto:sage [2009/02/19(木) 18:03:25 ID:LQepcHmb0]
ログが最大209行で終わっていたというあほな理由でした
吊ってきます

937 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 18:22:19 ID:ac9y3F6q0]
(´・ω・`)

938 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 20:54:42 ID:UxnJe9qS0]
複数行のテキストを入力できるようなインターフェースって作れる?
INPUTだと1行だけだよね

939 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 21:04:22 ID:vC1/avge0]
フォームでできるよ

940 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 21:19:52 ID:UxnJe9qS0]
>>939ありがとう

941 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/20(金) 02:33:51 ID:Zfo0EG+70]
IEでの動作の途中に、別ウインドウのコマンドプロンプトに文字列を記入するマクロをつくっているのですが、
SENDSTR関数か、SCKEY関数か、どちらの方が安定するものでしょうか?
SENDSTR関数の方がいいような気もするし、
SCKEY関数の方が
コマンドプロンプトのウインドウをアクティブにしなくていい分、
有利な気もするし、、、
ちなみに、CPU負荷が高い状態での動作になります。
どちらがいいでしょうか?

942 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/20(金) 06:24:43 ID:cWHe1c0/0]
IEの特定のアドレスが含まれている画像のクリックするスクリプトを組んでいます。
前に、指定の範囲のアドレスを・・・と書いたものです。

他に方法はないかとソースなどをみてみたのですが、画像のアドレスなら前回の
場合と違い数が少なくできそうだなと思いました。

<a href="○○" target="_blank" onClick="return top_ekiden_click_chance('top4', '○○')"><img src="●●"></a></p>

上のソースの●●の部分は、複数あるのですが、POSでゲットして巡回できたらと思っています。
ちなみにリンクの場合上記にも書きましたが下のようになります。

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("www.yahoo.co.jp")
REPEAT
SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4
KAISU = IE.document.links.length
FOR A = 0 TO (KAISU - 1)
IFB POS("dailynews.yahoo.co.jp", IE.document.links[A].href) > 0
IE2 = CREATEOLEOBJ("InternetExplorer.Application")
IE2.visible = True
IE2.navigate(IE.document.links[A].href)
ENDIF
NEXT
IE.QUIT


943 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/20(金) 11:35:06 ID:mn16sQrP0]
>>941
SendSTR()は使えないよ。
ショートカットでのコピペもできない。
右クリックメニューを出して貼り付けは可能。


944 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/21(土) 19:32:30 ID:P+noKJtd0]
uwscのエラーウィンドウを消すマクロってありませんか

945 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/21(土) 19:49:38 ID:OlRYAKfW0]
>>944
まずはエラーメッセージを抑制するようにしたらいいよ。
OLEなら関連関数の例に書いてあるし、それ以外はUWSC本体の設定にあるか、INIファイル編集するとか。



946 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/21(土) 20:01:51 ID:P+noKJtd0]
>>945
具体的にどうすればいいか教えていただけますか


947 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/21(土) 20:10:20 ID:P+noKJtd0]
例外エラー対策ならマクロの
最初に
TRY
を入れて

マクロの末尾に
EXCEPT
endtry
あたりいれるのがもっとも簡単なんでしょうか

948 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 10:05:02 ID:Rpahjq6x0]
>>947
まぁ、UWSCで用意されてるものだしなぁ
例外処理でこれ以上簡単なのはないと思うよ。
…エラーを起こさせないという前提で作ればもっと簡単になるけどねw

あと、全体を無理やり囲うのはどうなん

949 名前:名無しさん@お腹いっぱい。 [2009/02/22(日) 17:59:07 ID:a3nz7nXd0]
特定の文字を判定してそこまでの文字を消すマクロはありますか?

例えば
「あいうえお」と入力してあって
「う」まで消したい、そうすると
「あい」となるようなマクロです。

950 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 18:28:16 ID:DuKIHBzQ0]
POS COPY CHGMOJ でいいじゃねーの

951 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 18:31:19 ID:K0Xm20HXP]
string = "あいうえお"
find = "う"

MsgBox(COPY(string, 1, POS(find,string)-1))

いや、違う?
この世界に「愛」だけを残す方法を我々に聞いているのか?

952 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 19:08:17 ID:a3nz7nXd0]
>>950
初心者なのでよくわかりません

>>951
できれば表計算ソフトで使用したいのですが・・・

953 名前:名無しさん@お腹いっぱい。 [2009/02/22(日) 19:14:53 ID:mX0F8+M00]
>>952
冗談じゃなく、ロジックを正しく説明してくれないとプログラムなんか書けませんから。
日本語から勉強してきてください。


954 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 19:16:18 ID:lHLWjdVe0]
>>952
その表計算ソフトのスレででも聞けよ…

955 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 21:10:11 ID:a3nz7nXd0]
>>953
セル内に
1戦1勝0負
10戦5勝5負
1000戦500勝500負



となっているものを負を消して
1戦1勝
10戦5勝
1000戦500勝



としたいのです。
よろしくお願いします。



956 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 21:21:24 ID:feS5VAah0]
丸投げしたいなら他行ってくれ
スレ違いだ

957 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 21:37:49 ID:a3nz7nXd0]
>>956
そうですか、自分で努力します。
失礼しました。

958 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 22:42:54 ID:K0Xm20HXP]
うむ
たとえばExcelの場合だとしよう
A1:A100(A1,A2,・・・A100のセル)にそのデータがあるとすればB1に
=LEFT(A1,FIND("勝",A1))
を入れる。次にB1選択した状態でメニューから
編集-コピーを選択、B2:B100選択した状態で
編集-貼り付けを選択。
さらにB1:B100を選択した状態で
編集-コピーを選択、
C1を選択した状態で、
編集-形式を選択して貼り付け(だったっけ?)-値を選択すると
C1:C100に目的のデータが入力される

UWSCでやれない訳ではないけれど結構大変になる
一般的な表計算ソフトの標準機能でこのような簡単な手段は
用意されているのでそちらを調べたほうがいい



959 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 23:27:25 ID:q6eIkfWd0]
>>958
反応するなよ。反応されるとそれに対して反応したくなる…
そんなに面倒なことせんでも(ry

960 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 23:54:16 ID:a3nz7nXd0]
>>958
ありがとうございます。参考になります。

961 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/23(月) 04:11:08 ID:S/nw+oX60]
IEが複数開いてたとしてウインドウタイトルに特定の文字が含まれているもの
以外閉じるということはできますか?

例えばタイトルに「自動化ツール」というのがあるとして、その他タイトルに「自動化ツール」
が無かったら閉じるといった感じです。

962 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/23(月) 08:00:29 ID:7fqz0Mlm0]
>>961
できます

963 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/23(月) 10:33:55 ID:S/nw+oX60]
>>962
死にうせろ

964 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/23(月) 11:15:39 ID:H0niA5cQ0]
>>961
簡単だよ

965 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/23(月) 11:42:07 ID:PyFhHQu70]
>>961
できます。簡単だから頑張って



966 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/23(月) 16:39:43 ID:8oL82p7A0]
>>961
タブブラウザ(FireFox3とか)を使うと、たくさんタブが増えても閉じるボタン一発で閉じれるよ。
ウィンドウをいっぱい開いちゃってもタスクバーで右クリックしてまとめて終了すればいい。
Alt+F4で連続終了させるのが簡単。Alt+TABやAlt+ESCと組み合わせてもいいし。


もしそういうスクリプトを作ったとして、たとえば銀行取引のページが別窓で表示されたときに
同じタイトルだからと言って閉じてしまうと取引が不完全なまま終了しちゃっておかしくなるかも。

あと、UWSCってタイトルでアプリを終了させようとすると、
UWSCってフォルダを開いてるエクスプローラーが閉じられたりUWSC自身が終了したり変なことになる。
そういうヘンなの作ってなにか意味あるの?


967 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/23(月) 21:08:56 ID:WFLH0UN70]
それはお前だけじゃね?

968 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 00:04:30 ID:3MTrBR1N0]
>>961
ウィンドウタイトルに「自動化ツール」が含まれない IE6 を終了

DIM i

FOR i=0 TO GETALLWIN()-1
  IF STATUS(ALL_WIN_ID[i], ST_CLASS) <> "IEFrame" THEN CONTINUE
  IFB !POS("自動化ツール", STATUS(ALL_WIN_ID[i], ST_TITLE)) THEN
    CTRLWIN(ALL_WIN_ID[i], CLOSE)
  ENDIF
NEXT

969 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 00:47:30 ID:rOG7rC/gP]
私も考えてみたのですがIE7でタブを使っている場合は
どうすればいいんでしょうね

それさえ実現できれば>>961さんの要求を完全に満たせると思うのですが

970 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 11:56:45 ID:1GbWnsrA0]
chkimg()で透過色指定+形でチェックを同時にできるようにしてほしいのう
画像内の文字に対するgrepみたいなのを作ってるのだけどフォントカラーが変わったら使えなくなってしまう
フォントスタイル自体は固定なので問題ないんだけど

971 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 15:42:30 ID:CGjnVP+X0]
chkimgX() みたいな関数作って
内部で透過色&形の2重にチェックするぐらいしか思いつかないわー

972 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 17:02:53 ID:Jl8nOyx+0]
いやそれ画像2枚いりますやんw

973 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 20:21:28 ID:7Fr+80aB0]
単純な input() や slctbox() ではなく、
リストボックスをいくつか置き、さらにそのリストボックスの値で
ラベルが動的に変化するようなフォームを使いたいのですが、

同じようなことを試みられた方はいらっしゃいますか?
やはり外部DLLを自作するしかないでしょうか。

974 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 21:47:44 ID:AV7g6HDD0]
>>973
DLLで画面出す気?
プロパティみたいな感じで?
UWSCの有料版で画面作れるらしいけど、
無料がよければ、最近HTAていうの知ったんだけど、
DynamicHTMLで画面作って、結果をクリップボード経由で渡すようなのなら作れると思う。

リストボックスが変更されたら表示を変更。
OKボタンにOnClickイベントとしてクリップボードにセット。
というHTMLを作って拡張子をHTAに変更。
いや、別にHTMLのまんまでもいいんやけど画面まわりうざいし。

あ、いつどうやって終了を知らせるかが問題だな。
・・・


975 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 21:51:45 ID:D2y5nC2+0]
ajax使用webサイト超めんどー
なんとかなんない?



976 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 22:32:36 ID:7Fr+80aB0]
>>974
ありがとう、参考になりました。

977 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/25(水) 13:22:51 ID:dj7Ej2fH0]
>>968
思うような動作ができました。m(_ _)m


978 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 18:52:26 ID:NcOYiIHC0]
多重起動禁止はiniファイルを弄ることで簡単にできるようになったのですが
ほかのスクリプトの実行が終わった後に、後のスクリプトを実行できるようにする方法はありませんか?

979 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 19:39:33 ID:ncgoh4z50]
callで呼び出せば良いんじゃない?

980 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 19:40:54 ID:NcOYiIHC0]
いや 先に実行したスクリプトが終わった判定はどうすればいいのかなと思いまして

981 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 19:41:18 ID:NcOYiIHC0]
ああ連続でやればいいんですね

982 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/27(金) 16:52:50 ID:fl1SuMSB0]
>>975
FLASH,ActiveX,,JAVAappletなんかよりはよっぽど楽

983 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/28(土) 21:17:11 ID:hQtF23UU0]
slctboxの戻値「slct_1」等は出力させると数字のみになるのはなぜなんでしょうか?
select 〜selend文で
caseのあとは"slct_"+数字でも数字のみ指定でも正しく動いているようですが

984 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/28(土) 23:33:07 ID:lrDMYjZcP]
>>983
一般的に定数は何かしらの数値に割り当てられるのが普通です。
数値にしておくと演算子=,<>等の処理をそのまま流用できるから設計上楽なのです。
それならば文字列として"SLCT_1"として持たせたほうが分かりやすいのでは?とも考えられますが、
小さい情報量にしたほうがexeサイズが小さくて済んだり、計算量が少なくて済むなど
メリットが大きいのです。
ただしSLCT_1が1と出力されるからといってバージョンアップ等で今後変更される可能性があるので
必ず比較する場合は
「IF ret=1 THEN・・・」ではなく
「IF ret=SLCT_1 THEN・・・」とすべきでしょう。

985 名前:983 mailto:sage [2009/03/01(日) 00:17:23 ID:re5Hkvhc0]
なるほどためになりました
サンクス



986 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 08:13:50 ID:c3BdarSQ0]
<img src="http://〜〜〜/Apos/img/web/10174/106711_1.gif">

リンクに使われている上記のような画像が複数あったとします。
ページ内にある全ての途中まで共通しているURLの画像をゲット
してクリックすることはできますか?

http://〜〜〜/Apos/img/web/10174ここまでが一緒で後は違うアドレスです。

987 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 12:17:03 ID:jADlBu/J0]
できますよ

988 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 17:53:19 ID:b7uK3KHI0]
// IEで表示中のページにリンクされているzipへのリンクを取得し、IEDownload()関数でダウンロードする。
while true
 data = IEGetData( IE, "TAG=A", i )
 Src = IEGetSrc( IE, "A", i )
 if !length(Src) then break
 Link = BetweenStr( Src, "href=<#DBL>", "<#DBL>" )
 ifb "zip" = Copy( Link, Pos(".", Link, -1) + 1, Length(Link) - Pos(".", Link, -1) ) Then
  IE.navigate( Link )
  IEDownload( IE )
  break
 Endif
 i = i + 1
wend

Function IEDownload( var IE )
Fend


989 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 19:53:07 ID:c3BdarSQ0]
>>987
死にうせろ2

990 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 20:33:14 ID:q5FcoyWP0]
>>989
簡単だよ 自分の頭蓋骨の中をたまには使えよ

991 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 21:14:20 ID:b7uK3KHI0]
data = IEGetData( IE, "TAG=A", i )
これってAタグならラベル部分、その他ではValueを取り出せるんだけど
ラベルを指定してクリックするのがIELINK()
この後に
IELINK(data)
って入れてもいいんだけど、ダウンロード用ページだと同じラベルでいっぱいファイルがある。
だからUWSCの関数では番号指定とかでもしないとクリックできない。
まあリンクは簡単に取り出せるからIE.Navigate()で開けばいいんだけど

「ファイルのダウンロード」窓がクリックできん・・・
ボタンが反応はしてるんだけどクリックできん。
CtrlWin()でアクティブにしてもアクティブにならない。
以前作ったときはちゃんと動いていたんだけどなあ・・・
画像の保存とかページの保存とかならIEの子ウィンドウとして拾えるけど
ダウンロードは親子関係がないっぽいし。
モーダルとモードレスで親子関係が違ってくるとかなのかな。
いや、つかんでもクリックできないんだよな。

親子両方クリックしたらアクティブになった。なんか裏のやつを子として処理してたのかな。
でもフォーカスが「保存」ボタンには移ってるんだけどなあ・・・
名前をつけて保存ならクリックできるのに。

戦車で野球のボールを投げたら時速327キロか。


992 名前:名無しさん@お腹いっぱい。 [2009/03/02(月) 00:20:27 ID:OsLHIqg20]
RecIE使ってみたけど、ダイアログのクリックは拾ってくれないな。
IELink(IE,"DL002")
BusyWait(IE)

本体で記録してみたけど
ACW(GETID("ファイルのダウンロード","#32770"),422,375,435,243,0)
ScKey()はだめだったけどMouseOrg()で窓に直接Kbd()でならもしかしていけるかも。

だめだった。
しかし、MouseOrg()してKbd()してClkItem()したらいけた。
Kbd()でアクティブ化に成功してるんだろう。


993 名前:名無しさん@お腹いっぱい。 [2009/03/02(月) 11:20:51 ID:OsLHIqg20]
「この種類のファイルであれば常に警告する」のチェックを外せばそのままダウンロードが開始されるんだな・・・
今までやらなかったけどもうこれが一番の解決法か・・・
と思ったけど保存ダイアログが出てこないと思ったら勝手に起動されちゃうんだな。
上書きの警告もないし、キャッシュにしか落ちてないんだろう。
これじゃダウンロードにならない。
URLToFileとかいうのが使えればいいんだけど今やってるところはパスワード制限かかっててアクセスエラーになるからできないし。

>MouseOrg()してKbd()してClkItem()したらいけた。
これについては親子両方に送ればうまくいったが、子だけに送ったらだめだった。
多分他の窓をクリックすることでアクティブ状態が切り替わってうまくいってたんだな。
トップレベルなのに非アクティブなあの状態は何とかならんのか・・・

もしかしたらあの二重の窓の二つ目が開く直前に裏の窓をクリックしてしまうのが問題なのかもしれん。
親窓の方拾ったらスルーして待つかな。


994 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 12:25:41 ID:MGuj9EpHO]
他人が役立つ日記ならここで大歓迎
環境に依存した再利用性の低い独り言はブログにでも貼ったら?

995 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 13:02:26 ID:pSlHrzIi0]
次スレたててこい>浪費したやつ



996 名前:名無しさん@お腹いっぱい。 [2009/03/02(月) 17:11:41 ID:OsLHIqg20]
【速報】 全鯖規制ISP一覧 VIPPERのせいですね、わかります
tsushima.2ch.net/test/read.cgi/news/1235980269/
qb5.2ch.net/sec2chd/

なんか祭りになってたんでスレ立てしてみたんです。
ねws
qb5.2ch.net/test/read.cgi/sec2chd/1235980128/

そしたら全サーバーで規制されました。


997 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 19:50:06 ID:rP5khwz50]
自動化ツールuwsc使いよ集まれ4
pc11.2ch.net/test/read.cgi/software/1235990960/

998 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 21:30:58 ID:9PDTuTrY0]
おつおつ。

999 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/03(火) 02:16:28 ID:0ITm2xmn0]
999

1000 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/03(火) 02:27:23 ID:6utcIoKu0]
んじゃ1000

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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