【マクロ】 UWSC Part4 【シェアウェア化】

このエントリーをはてなブックマークに追加
1ミスターユーダブリューエスシー
2名無しさん@お腹いっぱい。:2008/01/15(火) 00:48:48 ID:6WQevle80
キタ━━━━━━m9( ゚∀゚)━━━━━━!!
3名無しさん@お腹いっぱい。:2008/01/15(火) 11:48:23 ID:qSysXr2n0
4名無しさん@お腹いっぱい。:2008/01/15(火) 14:31:49 ID:YTAr/5jI0
こんにちは、教えて君ですみません<(_ _)>
UWSCで作られたe.xeファイルのUWSCスクリプトのソースを見る方法って
ありますか?知ってらっしゃる方教えてください。
5名無しさん@お腹いっぱい。:2008/01/16(水) 10:02:29 ID:KDV0+Mn+0
先にこっち使おうよ・・・

http://pc11.2ch.net/test/read.cgi/software/1176677869/
6名無しさん@お腹いっぱい。:2008/01/20(日) 07:29:39 ID:mKnsvmOl0
荒らしに親身になって答えるのは親切でもなんでもない。
その荒らしを居つかせ、更なる同類の荒らしを呼び込む。
そのことに気付いてください。
7名無しさん@お腹いっぱい。:2008/01/20(日) 15:36:22 ID:HGvEXPwB0
新スレキタ━━━━━━m9( ゚∀゚)━━━━━━!!
8名無しさん@お腹いっぱい。:2008/01/20(日) 17:31:03 ID:/h9BPzq00
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<meta http-equiv="Content-Language" content="ja">
<title>IEGetSrcのテスト</title>
</head>
<body>
<form>
<p> タ グ <input type="checkbox" name="C1" disabled="disabled"><input type="text" name="T1" size="82" onclick="this.select()" value="body"> 
番号<input type="text" name="TNUM" size="7" onclick="this.select()" value="1"><br>

前方文字<input type="checkbox" ID="C2" name="C2" disabled="disabled"><input type="text" name="T2" size="53" onclick="this.select()"> 
後方文字<input type="text" name="T3" size="57" onclick="this.select()">
</p>
<p><input type="button" value="ソース取得" name="B1" onClick="C1.checked=true"> 
<input type="button" value="切り出し" name="B1" onClick="C2.checked=true">
<input type="reset" value="リセット" name="B2" onClick="C1.checked=false; C2.checked=false; T1.value=''; T2.value=''; T3.value=''; S1.value=''">
<input type="button" value="終了" name="B3" onClick="CEND.checked=true">
<input type="checkbox" ID="CEND" name="CEND" disabled="disabled" ></p>
<p><textarea name="S1" rows="13" cols="101" ></textarea></p>
</form>
</body>
</html>
9名無しさん@お腹いっぱい。:2008/01/20(日) 17:43:05 ID:/h9BPzq00
HTMLのフォームを利用するのを書いたけどその後投稿できない
10名無しさん@お腹いっぱい。:2008/01/20(日) 17:46:30 ID:/h9BPzq00
Form = CreateOLEObj("InternetExplorer.Application")
Form.visible = True
Form.navigate(GET_CUR_DIR+"/IEGetSourceTest.htm")
REPEAT; sleep(0.1); UNTIL !Form.busy AND Form.readystate = 4
FormID = HNDToID(Form.HWND)

IE = CreateOLEObj("InternetExplorer.Application")
IE.visible = True
IE.navigate("about:blank")
ID = HNDToID(IE.HWND)

// Formの監視
While 1
Ifb Form.document.forms[0].C1.checked Then
Form.document.forms[0].S1.value = IEGetSrc( IE, Form.document.forms[0].T1.value, Val(Form.document.forms[0].TNUM.value) )
Form.document.forms[0].C1.checked = false
Endif
Ifb Form.document.forms[0].CEND.checked Then
Form.Quit
IE.Quit
break
Endif
sleep(0.1)
Wend
11名無しさん@お腹いっぱい。:2008/01/20(日) 17:55:07 ID:/h9BPzq00
>>8をIEGetSourceTest.htmって名前で、UWSCのところに保存して、
>>10をUWSファイルとして保存。

blankを表示してる方の窓でソース取得したいページを表示して
タグ名指定してクリックすると、ソースが取得できる。

動的に挿入されるコードはIEの表示−ソースじゃ取れないんで便利かも。
オブジェクト無効のチェックまでした方がよかったけどどうすればいいんだか。
BetweenStrの行があると投稿できなかったんで削除してます。

出来損ないのHTMLだけど作るのに1日かかった。
12名無しさん@お腹いっぱい。:2008/01/21(月) 11:44:51 ID:U5tw6KbY0
>>8のHTMLをアップしました。
ローカルで開くとセキュリティの警告で引っかかるのが、Webサイトから開けば出なくなります。
もちろん普通に動作します。
UWSファイルのアドレスを↓に書き換えて使ってください。

http://scripts.web.fc2.com/scriptsup/iegetsourcetest2.htm
13名無しさん@お腹いっぱい。:2008/01/21(月) 12:46:25 ID:6v7U5uf70
ここはお前の日記帳じゃねーぞ
14名無しさん@お腹いっぱい。:2008/01/21(月) 13:07:22 ID:U5tw6KbY0
>>13
ああ、悪い。
しかし、俺が悪いんじゃないぞ。
ほかの人が書き込まないのが悪いんだ。
なんか俺が占有してるみたいに見えるのはそのせいだ。
・・・
まさか俺以外の誰も使ってないなんて事はないよな?
15名無しさん@お腹いっぱい。:2008/01/21(月) 13:11:26 ID:U5tw6KbY0
>>12のHTMLをForm代わりに使えないことはないけど
F5で再表示しただけでUWSCでエラーになる。
IEコンポーネント使わないと操作はできないとしても、
別アプリ使ったりしてほかのページに飛べないようにしないとまずいな。
.Navigaterをロックして更新できなくできればいいんだが。
16名無しさん@お腹いっぱい。:2008/01/21(月) 17:52:23 ID:PRrhEx8A0
WHILE TRUE
IFB GETKEYSTATE(VK_NUMPAD1) THEN
REPEAT
KBD(VK_2,DOWN,10)
KBD(VK_3,DOWN,10)
UNTIL GETKEYSTATE(VK_3)
SLEEP(0.1)
KBD(VK_4,DOWN,10)
ENDIF
WEND

のようなスクリプトがあるとして、Num1も何も押していないのに
再生した瞬間4キーが勝手に連打されるのですがドコに原因があるでしょうか?
17名無しさん@お腹いっぱい。:2008/01/21(月) 17:55:08 ID:U5tw6KbY0
ローカルのHTMLを開いて警告が出るのはIEが出してるのであってIEコンポーネントじゃないんだよな。
つまりIEコンポーネントを使うアプリケーションが警告を出さなければいい話なんだけど
CreateObjectとかするとアプリケーションはIEが起動するんだよな。
専用アプリを先に起動すれば実現できるけどやり方がスマートじゃない・・・
けどIE使うより普通のFormっぽいから出来れば使いたい。
あんまりがんばってもUWSCを使う意味がなくなりそうだから・・
けどスクリプトのForm・・・自分でWindowsAPIを呼べばいいのかな・・・


>>16
KBDが無条件に実行されて、自分で送信したキー情報をGETKEYSTATEで拾ってるんじゃね?
18名無しさん@お腹いっぱい。:2008/01/21(月) 18:10:19 ID:U5tw6KbY0
フォームをHTMLで作るのはプログラム組まなくても済むけど、
動作がわずかならActiveBasicで画面作れば済む。
有償版UWSCのフォームがどんなもんか知らないけど大差ないんじゃないかな。
まあスクリプトのデバッガはやっぱあればあるに越したことはないけど。
HTML版のフォームはWeb上のをそのまま開いて使い、
実行ファイル版はUWSと同じ場所に保存し、スクリプトから自動で起動します。

やっぱHTML版は使い勝手が悪い。
まあ僕が見栄えをコントロールしきらんだけかもしれんが。

と言うことで、UWSCを無料のままでフォームを使う場合はActiveBasicが手軽でお勧め。
けど実行ファイル作るんならチェックボックスじゃなくてトグルボタンくらい使えんと見た目悪いよな・・・

HTML版
フォーム:http://scripts.web.fc2.com/scriptsup/iegetsourcetest2.htm
スクリプト:http://scripts.web.fc2.com/scriptsup/iegetsrc2.uws

実行ファイル版
フォーム:http://scripts.web.fc2.com/scriptsup/iegetsrctest.exe
スクリプト:http://scripts.web.fc2.com/scriptsup/iegetsrc3.uws
19名無しさん@お腹いっぱい。:2008/01/21(月) 19:18:10 ID:KzLKIOdZO
既にIEで開いてるページに命令するのわかりません
どこか適当なサイトでF5クリックするさんぷる
お願いします
サンプルをいろいろと見てきましたがないみたいです
お願いします
20名無しさん@お腹いっぱい。:2008/01/21(月) 19:40:45 ID:U5tw6KbY0
>>19
while 1
KBD(VK_F5, CLICK, 1000)
wend

IEを手前に持ってくるのは、開始でsleep(5)とかで待たせてる間に自分でクリックするか、
IEオブジェクトを探してアクティブにする。
21名無しさん@お腹いっぱい。:2008/01/22(火) 12:38:35 ID:htPUwuSa0
「ほかの人が書き込まないのが悪いんだ。」

とか、ほざくガキが出てくる始末
22名無しさん@お腹いっぱい。:2008/01/22(火) 12:45:24 ID:UGnsuQEl0
>>21
まだ書き込んでない人いるのにその人たちを差し置いてなに書き込んでんだよと
レス番900過ぎるまで引っ込んでろと。
23名無しさん@お腹いっぱい。:2008/01/22(火) 13:14:26 ID:UGnsuQEl0
スクリプトに一時停止・終了ボタンをつけるサンプル。
実行ファイルは使いまわしでいろいろ使えると思います。

http://scripts.web.fc2.com/scriptsup/UWSC_Control.exe
http://scripts.web.fc2.com/scriptsup/ControlSample.UWS
24名無しさん@お腹いっぱい。:2008/01/22(火) 15:07:14 ID:bb0NpIu80
>>23
d
25名無しさん@お腹いっぱい。:2008/01/22(火) 16:28:16 ID:YY7h1Q/JO
一時停止は必要だな
>>23

でも俺が試したら止まんなかったよ
何回も試したけどね
先にそれを起動させておくの?
それともUWSCが先に起動かね?

それと上のほうでクリック1000てなんだよ
ガキのいたずら小僧か
無茶苦茶するなよ
嵐認定
出入り禁止ね
26名無しさん@お腹いっぱい。:2008/01/22(火) 16:31:00 ID:YY7h1Q/JO
出入り禁止はひどいな
>>20は解答禁止ね
27名無しさん@お腹いっぱい。:2008/01/22(火) 17:24:05 ID:UGnsuQEl0
>>25
>クリック1000てなんだよ

クリック1回して1秒休憩。
まあ、CPU占有しちゃうから実際にはKBDでは時間は指定しない。

つまり↓になる
while 1
KBD(VK_F5)
sleep(1000)
wend

>でも俺が試したら止まんなかったよ

スクリプトファイル見れば分かると思うけど、UWSファイルの中で実行ファイルを呼び出してるから。
単独で実行ファイルを起動しても、ボタンがあるだけでなにもしないよ。
UWSC_Control.exeとControlSample.UWSは同じ場所に保存しないと呼び出せないよ。

WindowsXPではちゃんと動いたけどほかのだともしかしたら動作おかしいかもしれない。
だけどCreateWindow程度の基本的なAPIしか使ってないのに動かなかったらおかしいよ。
28名無しさん@お腹いっぱい。:2008/01/22(火) 18:53:51 ID:M+28Nez10
メモ帳に「テスト」って書き続けて止まんないぞ
結局「Alt」「F2」で強制終了
他のUWSファイルで操作していて一時停止させる場合には
このソースを書き足すって事なんだな
しかしボタンの押す順番間違えたら
永遠に「テスト」って書き続けてる・・・
29名無しさん@お腹いっぱい。:2008/01/22(火) 19:46:16 ID:UGnsuQEl0
>>28
>メモ帳に「テスト」って書き続けて止まんないぞ

それを止めるための停止ボタンなんですが。

ただ、停止したり終了したりはスクリプトで記述することで実現してるので、
それが書かれてないスクリプトはとまりませんね。

画面が表示されてないUWSC本体をコントロールすれば確実に止められるかもしれないけど・・・


>しかしボタンの押す順番間違えたら
>永遠に「テスト」って書き続けてる・・・

もしかして、一時停止中に終了を押しても終了しないとか?
一時停止を解除すれば終了するけど、
それがいやなら一時停止ループの脱出条件に、終了ボタンを押したときを入れればいいよ。
そう書いておくべきだったかな?
30名無しさん@お腹いっぱい。:2008/01/23(水) 00:15:54 ID:vayeXHsD0
IE7
XP
どうやったらUESCでHTMLファイル見れるんだ
普通にIE7からは見れてる
RECIEでHTML内のボタンクリックからはじめたかったのになー
RECIEはHTML読めないんかね
31名無しさん@お腹いっぱい。:2008/01/23(水) 00:24:30 ID:vayeXHsD0
30だけど自己解決した^^
32名無しさん@お腹いっぱい。:2008/01/23(水) 12:34:58 ID:vayeXHsD0
IE7で既に開いてるページをUWSCで操作したいんだ
アクティブウィンドーの取得だけでは動かないんか?
どこかサンプルソースないですか?

具体的には非同期通信するためのスクリプトが記載してあるHTMLからIE7を開く
その開いてあるページを操作したい

どなたかサンプルお願いします
33名無しさん@お腹いっぱい。:2008/01/23(水) 12:46:13 ID:iN7rdS2C0
>>32
IE = GetActiveOLEObj("InternetExplorer.Application", "")
34名無しさん@お腹いっぱい。:2008/01/23(水) 12:56:29 ID:vayeXHsD0
>>33
おお
早速のレスありがとう
今からテストしてみる
いつも悪いね
あなたもし関西に来れるなら一度メシ食いに行きますか
私は今、落ち目で大変なんだけど
ラーメンとカレーは食べ歩いたので美味しいとこ知ってるよ

>IE = GetActiveOLEObj("InternetExplorer.Application", "")
                                    ↑この最後の、””何かね?
35名無しさん@お腹いっぱい。:2008/01/23(水) 13:21:26 ID:vayeXHsD0
>>33
出来た!ありがとうおおおお!

最後の””付けたままでも動いたよ
こんな感じ

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE = GetActiveOLEObj("InternetExplorer.Application", "")

このあとラジオボタンやセレクトメニューを選んで次のページへ飛んで
そこでも自動操作できた
マジでありがと

なぜか1箇所だけフォーカスあわせてたのがマウスであわせないとダメになってたけど
まあいいや合格!
そのフォーカスの後にこの前教えてもらった「Ctrl」ボタン押すまでスリープ0.01ループさせてたんだけど
あれが要因かな?
でもそのフォーカスにマウスであわせてテキスト入力後に「Ctrl」押したら
すぐに「次のページへ」を自動で押してくれた
昨日まで自分で色々やってたんだけど
「関数IEが指定されていません」とか「○○変数が・・・」まあエラーばっかりだったんだ
聞いてよかったよ
ありがとう
カレーライスでよかったらおごるよ
JR環状線の福島駅近くにある上等カレーって食券機でお金払うお店なんだけど
ここが美味しいよ!

36名無しさん@お腹いっぱい。:2008/01/23(水) 13:57:18 ID:iN7rdS2C0
>>35
そのコードだめです。
まず推奨コードから

>>10のがそれですが、余計なのもあるんで。
IE = CreateOLEObj("InternetExplorer.Application") // IEの起動
IE.visible = True // 表示?
IE.navigate("http:/www.yahoo.co.jp") // アドレス入力
REPEAT; sleep(0.1); UNTIL !IE.busy AND IE.readystate = 4 // ページ表示完了待ち
ID = HNDToID(IE.HWND) // コントロールする名前がなかったりする場合に利用
input("") // どうしても入力待ちしたい場合。

※IEのソースを覗いたりすればIEオブジェクトだけでいろいろできるけど、
見た目だけで操作可能なIDは結構使える。


んで、>>23のを使うなら、一番最初に実行ファイルを起動し、
上記inputの位置に停止コードを挿入。
けどマウス位置を合わせないといけないなら>>23のとかinputは使えないね。


ちなみに僕は九州だしお金まったくないんで無理。
就職のために引っ越すつもりもないし、かといって地元企業には近寄りたくもないし。
ネットでの出会いには懲りてるからOFF会とかも出ませんから。
江戸川区でなんか売春サイトが摘発されてるけど、あそこに住んでたころは毎日小中学生にラブコールしてた。
37名無しさん@お腹いっぱい。:2008/01/23(水) 14:00:52 ID:iN7rdS2C0
>>35
-- だめな理由 --
1.CreateしたIEは放置して別のをGetしてる。タイミング的に同一のを拾ってくるかもしれないが意味がない。
2.起動直後のを拾ってきているから操作できない状態にある。
まあその後のコードは省略されてるだけでちゃんと待ってるかもしれないけど。

マウスをあわせないといけない場所ってどんなですか?
Webページは、ウィンドウを縮めるとレイアウトが変わるのでマウス座標では問題ありますよ。
よかったらアドレスとクリックしたい場所を教えてください。
38名無しさん@お腹いっぱい。:2008/01/23(水) 19:07:30 ID:vayeXHsD0
>>36
よくわからんけど最初の2行を入れないとエラーになるんよ
既に開いてるページなので
>IE.navigate("http:/www.yahoo.co.jp") // アドレス入力
>REPEAT; sleep(0.1); UNTIL !IE.busy AND IE.readystate = 4 // ページ表示完了待ち
これは入れる必要ないと思うので書いていない
>ID = HNDToID(IE.HWND) // コントロールする名前がなかったりする場合に利用
>input("") // どうしても入力待ちしたい場合。
これは勉強になった!ありがとう
>>36はUWSCの解説本書いてみたらどうだ
UWSCのヘルプよりかなり理解できるぞUWSCの解説本って小林シンヤ氏のだけだろ
もうちょっと命令ひとつひとつを説明してくれたら嬉しい命令の解説に命令を引用してるんだからわかんないよ
本出したら、俺絶対に買うよ
マウスを合わせる場所は画像認証の入力だよ
IDとPASSの後に画像認証入力して次の画面へいくボタンを押すんだ
今はこんな感じでやってる(初めからUWSCで開いたIE画面ならフォーカスが合わせられたまま待機してるのにね

Assert(IESetData(IE,"123456789","loginId"),12) // ID入力
Assert(IESetData(IE,"abcdefghijk","passWd"),13) // PASSWORD入力
IE.document.forms(0).elements(5).focus()//画像認証にフォーカスあてる
REPEAT; sleep(0.1); UNTIL GetkeyState(VK_CTRL)//「Ctrl」押すまで待機
Sleep(0.1)
Assert(IESetData(IE,True,"","alt=ログイン"),19) // IMAGEログインボタン押す
REPEAT
SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4

>>23は使うかどうかわかんない実際0.1秒を争うようなタイミングなのでマウスでボタンを押すより
目の前のキーボードで決められたボタン押すほうがわずかでも速いような希ガス
>>36
そうだと思ったよ多重ログインの警告画面が出るようになった処理するようにしておいたけど・・・そういうことか。なるほど。ありがと
もし大阪に来ることがあれば必ず声かけてみてくれ。んじゃ
39名無しさん@お腹いっぱい。:2008/01/23(水) 19:51:05 ID:vayeXHsD0
>>36
すまん
最初の2行なしでいけた
理由もわかった
何かと便利なので普段使うブラウザがFirefoxで
そのページを見るときだけアドオンツール使ってIE7にしてた
俺のエラーの理由は多分そうだわ

今、最初からIE7で起動して開いたページに対してやってみたら
>IE = CreateOLEObj("InternetExplorer.Application")
>IE.Visible = True
↑これなしでいけた

ちなみにFirefoxからIE7へ切り替えてそのページを開きながらテストしてみたら
上記の1行目を抜いてやってみたら

>Uスクリプト変数:IEが定義されていません
>5行目:IE.Visible = True
とエラーが出てた

でもやっぱり画像認証のフォーカスはされていなかったので
今もマウスで1クリックしてから手動でテキスト入力した

input試して見るわ
ありがと
40名無しさん@お腹いっぱい。:2008/01/23(水) 21:29:17 ID:vayeXHsD0
何回もすまん

IE.document.forms(0).elements(5).focus()//画像認証

input("")
に変更するにはどうすればいいですか?
取り合えずinputはまだ使わずにfocus()に0から順番に1.2.3て入れてみようか?
innputでの待機がわからないよ^^;
いつも悪いね
41名無しさん@お腹いっぱい。:2008/01/23(水) 22:11:39 ID:iN7rdS2C0
>>40
input("")は入力ダイアログが出るだけで、IEの操作はしませんが。

画像?にフォーカスするのがもし画像にOKボタンみたいな機能が割り当てられてるんなら、
フォームにSUBMITを送るだけでおkだったりしますよ。
42名無しさん@お腹いっぱい。:2008/01/23(水) 22:30:35 ID:vayeXHsD0
>>41
おお
いつも悪いなあ
ありがとう
IE.document.forms(0).elements(5).focus()//今これSUBMIT

IE.document.forms(SUBMIT).elements(5).focus()
IE.document.forms(0).elements(SUBMIT).focus()
IE.document.forms(0).elements(5).focus(SUBMIT)
こういう感じでテストしてみるわ
ちょっと風呂は入ってくるね
んじゃ
43名無しさん@お腹いっぱい。:2008/01/23(水) 22:56:28 ID:iN7rdS2C0
>>42
document.forms[0].submit()
です。

elementを特定しない分楽です。
44名無しさん@お腹いっぱい。:2008/01/24(木) 01:33:06 ID:/j+XTb4D0
疲れた〜
今日はテスト終わり
結局フォーカス自動でフォーカスを合わせられなかった
右栗禁止なのでそのへんもあるのかも
マウスでどこかを1回でもクリックしたら
TABであわせられるけど
マウスクリックしないとTABボタン動かない
つまり自動ではあわせられないようなんだ

サブミットではないよ
画像の横にテキスト入力のボックスがあるから
タグネーム=キャプチャインプットになってた
とにかく疲れたわ
おやすみ〜
45名無しさん@お腹いっぱい。:2008/01/25(金) 17:20:59 ID:GcGkQc0q0
ひょっとしてIESetDataってhttpsのページには動作しないの?
46名無しさん@お腹いっぱい。:2008/01/25(金) 18:07:29 ID:y4xJvkBL0
知らないけどSENDSTRなら関係なく送れる
47名無しさん@お腹いっぱい。:2008/01/25(金) 23:27:42 ID:683OcADH0
質問です。eTilTranという画像傾き補正ソフト用の自動読み込み→補正→保存のスクリプトを書いているのですが、ファイル数がすくない場合は問題なく動くのですが、
ファイル数が多いと読み込んでる間にUWSC上でCLICKITEM等の処理が終わってしまい、適切に処理できなくて困ってます。SLEEP関数以外に読み込みが終わるまで待機し続ける
ような命令・関数があったら教えてください。
48名無しさん@お腹いっぱい。:2008/01/25(金) 23:44:46 ID:QZuQLGj/0
そんな便利な関数はないよ。
「スキャンしています」「保存しています」とかいう作業中のダイアログが出るなら、getidでその作業中ダイアログが出ている間待機して、消えたら次の処理。
あるいは処理終了時に「変換が終了しました」というダイアログが出るなら、getidでそのダイアログが出るま待機。
ウインドウじゃなくstatic_txtのメッセージやウインドウのタイトルで作業中かどうかを判断する場合もある
つまり、各アプリによって、待機のタイミングを計る方法はそれぞれ違う。
49名無しさん@お腹いっぱい。:2008/01/25(金) 23:55:46 ID:683OcADH0
>48
なるほど、やっぱそれしかないですか。読み込み完了時にダイアログもウインドウのタイトルも変わらないんでタイミング計りようがないんですけど、
進捗状況を伝えるバーがビーーーと伸びていくんですが、これはGetITEMとかで取得できる情報なんでしょうか?
50名無しさん@お腹いっぱい。:2008/01/26(土) 07:17:27 ID:UAcIKHXR0
ボタンの状態みてあげるよろし

ID=GETID("eTilTran")
STATUS=-1
WHILE STATUS=-1
STATUS=CHKBTN(ID,"領域設定")
WEND
51名無しさん@お腹いっぱい。:2008/01/26(土) 19:16:29 ID:iQgREZVD0
>>39だけど
今更なんだけどね
アクティブウィンド取得に
>IE = CreateOLEObj("InternetExplorer.Application")
>IE.Visible = True
この2行がいる時となくても次へ進む原因がわかったので報告w

選ぶ商品によってはまるでカレンダーのような画像をクリックしては次へ
って感じなんだけど
IE7はタブ方式なので先に開けたページをきちんと閉じていないとおかしくなるみたい
IE6に戻そうとしたら「古いバージョンをインストールできませんって」戻せないよ^^;

先の2行をつけてスタートしたときは
一時停止でフォーカスがあわないままなんだ
もうIE7が悪いんだってことにしておこうw
IE6に戻すためのツールがあるらしいのでそれ使ってIE6に戻すわ

おー朝からメシ食わずにテストしてたから腹減った〜
朝飯兼晩飯くってくるわ
んじゃ
52名無しさん@お腹いっぱい。:2008/01/26(土) 19:58:31 ID:a90vN8qC0
>>50
ありがとうございます。うまくいきました。”領域設定”とか書かれているのでわざわざeTilTranいれてもらったんだと思いますが、それをみこんでもうひとつ質問があります。
eTilTraで画像を読み込むと左側に画像のリストが表示され、これはITM_LSTVEWで取得できる情報だなと思い
ttp://blogs.yahoo.co.jp/uwsc_script/archive/2007/10/06
↑のスクリプト使って情報を取得しようと思ったんですが固まって取得できません。もし取得できるなら配列を使って挿絵の画像名を取得してDOSコマンドで別のフォルダに
そのファイルをコピーしたりできると思っているんですが、どうやったらアイテム情報を取得できるでしょうか?よろしくお願いします。
5350:2008/01/26(土) 20:50:09 ID:UAcIKHXR0
>>52
ITM_LSTVEWじゃ無理そうだね
別の方法で取得できるのかどうか、私にはわかりません
54名無しさん@お腹いっぱい。:2008/01/26(土) 21:38:44 ID:a90vN8qC0
>>53
そっかーやっぱITM_LSTVEWじゃだめなんですねー。とにもかくにもお手間おかけしました。ありがとうございました。
55名無しさん@お腹いっぱい。:2008/01/27(日) 07:55:27 ID:oz1/lB8h0
結局、寝ないでIE6をインストールしようと頑張ったけど
レジストリーまでいらってもダメだった
んでIE7を再インコ
IE7のオプションをよく見てたら「タブブラウザを使わない」ってチェックがあった
やったー
タブブラウザのお陰でこんなに酷い目にあってるんだ
これでやっと開放されるwww
さてテストして寝ようか・・・・・・
ん!?
画面上は普通のブラウザに見えるけど・・
まさか!
やっあぱりそうだ ガーーーン!!
なんと1枚目の画面がアクティブになっている画面にすっかり隠れていた
なんなんだよ!!
タブじゃなくても画面を2つ開けていたら「多重ログイン」扱いされてはじかれちゃうんだピョーン(;´д⊂ヽ

アクティブウィンドウ以外のウィンドウは全てを閉じる命令ありますか?
それを先に命令して最後に残ったアクティブ画面を操作したい

ウィンドウの名前はそのつど変わるので
アクティブウィンドウ以外をせべてウィンドウは閉じるって命令があればなー
はー昨日からなにやってんだか
疲れたおやすみー
56名無しさん@お腹いっぱい。:2008/01/27(日) 11:51:38 ID:A03LsX+d0
>>55
多重ログインは窓閉じても回避できないよ。
ログインしたらその窓でやらないと。
つまりログインした窓に対して確実に操作する必要がある。

もし窓が隠れてしまうなら、ACWでActiveにしないと。

ActiveWindow以外を閉じるには、
ActiveWindowを取得し、
全てのWindowを取得し、
全てのWindowからActiveWindowを除外した全てを閉じる。
↓がコード   >>56

IE = GETACTIVEOLEOBJ( "InternetExplorer.Application" )
ID = HNDToID(IE.HWND)
窓数 = GETALLWIN()
for i = 0 to 窓数 - 1
ifb "InternetExplorer.Application" = STATUS( ID, ST_CLASS ) Then
ifb ID <> STATUS(ALL_WIN_ID[i], ST_PROCESS) Then
CtrlWin(STATUS(ALL_WIN_ID[i], ST_PROCESS), CLOSE)
endif
endif
next
// ここで、最初に取得したアクティブウィンドウのオブジェクト(IE)と
// そのウィンドウID(ID)だけが残っている。
57名無しさん@お腹いっぱい。:2008/01/27(日) 11:56:26 ID:A03LsX+d0
>>52-54
ListViewとListBoxは見た目同じようで中身はダイブ違うけど勘違いしてない?
58名無しさん@お腹いっぱい。:2008/01/27(日) 14:54:45 ID:oz1/lB8h0
>>56おはよ^^
>>55だよん
早速サンプルありがとう。そのまま使わせて貰ったけど窓はとじなかったよ

んで前から出てたエラーが出た(アクティブ画面のボタンを押せないエラー)
全部窓をとじないでUWSCもそのまま(UWSを読み込ませたまま置いておいて)
手動でアクティブじゃないほうの窓を閉じて
再びUWSCの読み込ませていた命令(>>56の命令を最初に書いてあるUWSファイル)をそのまま再スタートさせたら上手くいけた

やっぱりアクティブ以外の窓は全部とじないとUWSCではエラーになるみたい
ちなみに
改めてログインしなおして手動で進めていき
UWSCではエラーになって押せないボタンを手動で押して進めてみると
先に開いていた窓はそのまま閉めなくてもいけた
手動だと進めるってことはサイト側の問題ではないね

もしかしたらUWSCは先に開いている状態の窓をアクティブと認識しているのかな?
でも実際には2枚目に開いた画面(UWSCで操作したい画面)がアクィブなんだ
なぜ2枚目がアクティブだと私が言い切れるのかといえばですね
2枚目が開いてから何もしない状態でもマウスのスクロールが効いていた

UWSCがアクティブだと認識してる窓と実際アクティブな窓とは違うと想定すれば
今回のようなエラーになると思う
だとすればUWSCへの命令は「アクティブウィンドウは閉じて次のウィンドウへ移動しなさい」って命令しなければいけない
しかし何度も言うようにそのサイトでは不正対策のために窓の名前は毎回違うんだよね
ん〜悩むなあ・・・そのサイトのアドレスを教えれば状況が理解してもらえるんだろうけど
ここは色んな人が見るのでそれはちょっとこまる・・・^^;

2枚の画面が開いているとき・・・UWSCから見てのActiveWindowをCLOSEすると
UWSCは残りの画面は窓名がわからなくてもアクィブウィンドウと認識してくれるんだろうか?
ちょっと知事選の投票行って所用を済ませてまたテストしてみるわ。ありがとー
59名無しさん@お腹いっぱい。:2008/01/27(日) 15:31:30 ID:A03LsX+d0
>>56の> ifb "InternetExplorer.Application" = STATUS( ID, ST_CLASS ) Then
これは間違いだったかも
"InternetExplorer.Application"じゃなくて"IEFrame"だよね

↓は以前作ったやつだけど、自分でVid-DLを新しく開きまくりだから
あらかじめ全て閉じる処理した。
タイトルが固定だからやりやすかったけど・・・
IEオブジェクトには.navigateってのがあるから、開いてるページをそれで取得できるならタイトルは分からなくてもなんとかなるでしょ。

// 全てのIEを閉じる
ID = GetID("Vid-DL", "IEFrame", 0.1)
While -1 <> ID
CtrlWin(ID, CLOSE)
ID = GetID("Vid-DL", "IEFrame", 0.1)
Wend
sleep(1)

// IEを起動
ID = Exec("C:\Program Files\Internet Explorer\IEXPLORE.EXE " + url)
sleep(3)
IE = GetActiveOLEObj("InternetExplorer.Application", "Vid-DL" )
60名無しさん@お腹いっぱい。:2008/01/27(日) 19:59:14 ID:oz1/lB8h0
>>59
おお貴重な情報だありがとう
今、テストしていてわかったんだけど
そのサイトのページってIEに対して何か制限をかけているみたいなんだ

右栗禁止、「F5」で更新できないとかは前からだったんだけど
ブラウザをFirefoxに変えてテストしてみたら
右栗OK、F5Ok、「Ctrl」+「W」で私の言うアクティブウィンドーが閉じた
(IEではどちらの窓も閉じない)
多分どちらの窓もUWSC自身では取得していない
手動で適当なところをマウスクリックしたらUWSCが操作可能になる

UWSCがFirefoxにも対応していたらなー問題解決なのに・・・
IEのオプションで右栗突破すればどうにかなりそうな希ガス
他にもやらなければいけないこといぱーい
ふう疲れるIEの右栗禁止を突破するのが鍵棚
UWSCは多分どちらの窓も取得していないのでボタンクリックの命令でエラーになるような

IEのオプション研究からやり直しだわw
ありがとう
いつも悪いね^^
61名無しさん@お腹いっぱい。:2008/01/27(日) 20:02:06 ID:oz1/lB8h0
あーぁIE7にバージョンアップしたのが一生の不覚だよ
OSのインスコからやり直すくらいしないと
もうIE6に戻せないしー
まったく甘い言葉にご用心
IE6がいいよホント
62名無しさん@お腹いっぱい。:2008/01/28(月) 02:21:08 ID:f2jwJo210
WHILEやREPEATを使ったループ中に終了条件を満たさずとも100秒経過したら
強制的に次の処理へ移行、とするにはどうしたらいいでしょうか?
63名無しさん@お腹いっぱい。:2008/01/28(月) 02:43:16 ID:rGtBli6R0
100秒って時間を合わせるのは難しいけど、
for文で1秒スリープ×100回なら自動的に100秒以上で抜けるから、
もう一つの終了条件をIf文で追加ですね。

1回あたりの待ち時間が1秒くらいならほぼ期待通りの時間だけど、
0.01秒で指定してもだいたい0.1秒くらいはかかるしね。

時間を正確にするならGetTime使うかな。
けど、何かしたらそれだけ重くなるし、ループにはSleep必須。

StartTime = GetTime()
While 終了条件
If StartTime + 100 < GetTime() Then Break

// 処理 //

sleep(0.1)
Wend

条件を同時に判断してもいいけど、条件の指定を間違ったとき、
andの計算の優先順位が間違ってるとおかしくなる。

While 終了条件1 and (GetTime() < StartTime+100)
64名無しさん@お腹いっぱい。:2008/01/28(月) 03:20:39 ID:f2jwJo210
>>63
詳しく教えてくださってありがとうございます、助かりました。
65名無しさん@お腹いっぱい。:2008/01/29(火) 03:09:04 ID:00BHvaXU0
自分で>>56使って見たけどかなり間違ってるね
>ifb "InternetExplorer.Application" = STATUS( ID, ST_CLASS ) Then
これは
ifb "IEFrame" = STATUS( ALL_WIN_ID[i], ST_CLASS ) Then
だし

GETALLWIN()で取得した全IEの表示ページを
IE.document.URLみたいに簡単に取得したかったんだけどな。
GetStrでも取れるけどIEオブジェクトから直接取りたいけどオブジェクトがIDからじゃ取得できないんだよな・・・
66名無しさん@お腹いっぱい。:2008/01/30(水) 00:15:15 ID:aG+PMwK+0
http://scripts.web.fc2.com/scriptsup/AutoDLClick.uws

http://www.uploda.org/
http://www.vipper.net/
上記アップローダーで、サムネイルから画像を選んだ後、
時間帯によっては広告ページが表示されるのがめんどいので自動クリックする。

終了のために、終了ボタンを表示し、
処理対象のページアドレスをメモ帳に追加していく。

ページ構成が同様のサイトであれば使えるので、対象サイトに追加していけばほかのサイトにも使える。
ただし、アダルトサイトはダミーが多いので大変なことになるかも。
67名無しさん@お腹いっぱい。:2008/01/30(水) 14:37:55 ID:bDlCrFc60
いよー
諸君元気でやっとるかね
私は相変わらず多忙続きでへろへろ〜w

IE7に変えたらアクティブウィンドーの取得がおかしくなったって前に私が発言したんだけど
取り消しだ
そのサイト最近リニュアルしたんだけど
ソースをひとつづつチェックしてたらなんと!
IEに対していろんな制御してたんだ
* ENTERキーを押したかのを検査する
*IEのショートカットキーおよび一部の機能を無効にする
* マウスのクリック(2重リクエスト)
*マルチサブミット防止処理
* ファンクションキーの無効化

これをジャバスクリプト命令にして先にヘッダ部分で読み込んでやがった
UWSCの操作でどうにかできる問題じゃなかったんだ
ここで相談に乗ってくれた九州男児ありがとう
きみのソースでかなり勉強できましたが
サイト側がIEに対して制御かけていることが判明しました
色々とありがとう
寒い日が続くけど風邪ひかないようにね

あ、UWSCに要望あるんだよね
・多重起動ありにしてください(もっかいお金払ってでもいいですのでバージョンアップということでお願いします)
・IEだけでなく他のブラウザにも対応して下さい特に便利なFirefoxに対応していないのは痛いです
以上
んじゃノシ
68名無しさん@お腹いっぱい。:2008/01/30(水) 18:44:34 ID:aG+PMwK+0
http://www.vid-dl.net/

↑を使ってダウンロードする場合はアドレスの貼り付けが手作業になる。
「URLリストを開く」でアドレスがまとめて取得できるが、ファイル名が正しくない。
表示されるファイル名を取得して自動的に保存するスクリプトをUWSCで書いてみた。
保存場所はデフォルトなので、あらかじめ1つめをダウンロードして場所を指定しておかないと場所が分からなくなる。

Vid−DLの窓を終了すればスクリプトも終了します。(アイドリング中)
最初に「保存」をクリックしてやらないと先に進まない場合があったのを修正。

http://scripts.web.fc2.com/scriptsup/Vid-DL.UWS
69名無しさん@お腹いっぱい。:2008/01/30(水) 19:07:03 ID:bDlCrFc60
やっぱりUWSCがいいな
Firefox用の自動ソフトを探してテストしてみたんだけど
どれも使えない
RECIEがいいよ
ってことで
右クリ禁止とF5禁止の突破を考えていたんだけど
UWSCでブックマークレットとか使える?
お気に入りにジャバスクリプトを登録しておいて
右クリ禁止のページになったらそのブックマークをクリックするだけで
ジャバスクリプトが発動するんだ

それかUWSCでジャバスクリプトの命令を実行できる?
まあスクリプトのことはよくわかんないので
その右クリ禁止ページになったらKey制御している.jsのソースがわかったので
falseをtrueに書き換えるだけ^^;
どうなることやらwww

・UWSCでブックマークレット使いたい
・UWSCでジャバスクリプトの命令を実行したい

毎度聞いてばかりで悪いね
よろしく
あ〜腹減った〜
今日も忙しくて朝飯も食ってないよ
メシ食ってくるね
70名無しさん@お腹いっぱい。:2008/01/30(水) 19:43:53 ID:ts57POVO0
RECIEてIE専用だしCOM使ってるだけだろ。
ブラウザがらみ邪魔九歳から別スレ建てろよ。
71名無しさん@お腹いっぱい。:2008/01/30(水) 20:17:03 ID:aG+PMwK+0
>>69
無理だと思う。返事は期待できないよ。


>>71
// JaneDoe Viewの操作を補助する。
// スレを切り替えると自動更新し、最終取得で並び替える。

ID = GetID("JaneDoe View", "TMainWnd")
prev = GetSTR(ID, 1)
while 1
sleep(0.1)
// アプリが終了された場合は連動して終了
if !IDToHND(ID) Then break
url = GetSTR(ID, 1)
ifb prev <> url Then
prev = url
cnt = 0
REPEAT; cnt = cnt + 1; UNTIL "" = token("/", url, true)
if 4 = cnt Then CLKITEM( ID, "《更新", CLK_MENU or CLK_SHORT )
endif
wend
72名無しさん@お腹いっぱい。:2008/01/30(水) 22:55:45 ID:bDlCrFc60
右クリ禁止のブックマークレストわかった!!
下記アドレス
https://www.squarefree.com/bookmarklets/zap.html#restore_context_menu
「Bookmarklets for Zapping Annoyances」で紹介されている
restore context menu というブックマークレットを「お気に入り」に登録します。

ブックマークに登録の仕方はIEならボタンの上で右クリックする
「お気に入りに追加」を選ぶと
「追加しようとしているお気に入りは安全でない可能性があります。続行しますか?」
とでてくる
「はい」を選ぶとめでたくお気に入り入りだ

Firefoxはボタンの上で右クリックして「お気に入りに追加」でもいいし
ボタンを「お気に入り」までドラッグ&ドロップしてもいい

効果のほうは今のところ全線戦勝www
右クリ禁止にキミらもつかってみるといいよ

UWSCでお気に入り選んで操作できるのかね??
すっげー楽しみだwwwww
73名無しさん@お腹いっぱい。:2008/01/30(水) 23:14:16 ID:fdddoo4m0
何か一人のせいでこのスレ森下がってるよね
KY←本人読めるかな?
74名無しさん@お腹いっぱい。:2008/01/31(木) 00:11:32 ID:y3uw26PH0
・゚・(ノД`)・゚・
あかんかったー
IERECではお気に入り押せないじゃん
しかし右クリ突破のスクリプトは凄いのー

UWSCでジャバスクリプの実行の仕方教えてくれ
75名無しさん@お腹いっぱい。:2008/01/31(木) 11:34:05 ID:PgtFh2oA0
EXEC(”ジャバスクリプ”)
76名無しさん@お腹いっぱい。:2008/01/31(木) 14:33:30 ID:Sz8SXbBx0
COMのみでできんのがスマートじゃないけども

ie.navigate("javascript:window.external.AddFavorite('http://google.co.jp/','グーグル')")
clkitem(getID("お気に入りの追加"), "OK", CLK_BTN)

これを埋めればおk

ちなみにこちら大阪 カレーおごってくさい
osaka_karee@yahoo.co.jp
77名無しさん@お腹いっぱい。:2008/01/31(木) 15:24:53 ID:y3uw26PH0
>>76
そのままだと「IEが定義されていません」とエラーになるよ

んで2行足してやってみたら「IEではダウンロードできません」「エラーが特定できません」となる
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
ie.navigate("javascript:window.external.AddFavorite('http://google.co.jp/','グーグル')")
clkitem(getID("お気に入りの追加"), "OK", CLK_BTN)

ちなみにjavaスクリプトも実行できなかったよ
それからお気に入りに追加したいんじゃなくて
IEのお気に入りボタンを押して選んで押す
「ブックマークレット」ぐぐってみ
ブックマークレットで右クリ禁止を対策したいの
ちなみに右クリ禁止ページでテストしてるけど今のところ全勝
右クリ禁止サイト全てのページで右クリできるようになったもんね
だからこのブックマークレットをUWSCで使いたいのさ
カレーライスはおあずけねw
んじゃ
78名無しさん@お腹いっぱい。:2008/01/31(木) 15:46:14 ID:PgtFh2oA0
駐車禁止対策もUWSCで使いたいよな。
79名無しさん@お腹いっぱい。:2008/01/31(木) 23:25:21 ID:M6YVRQDk0
ページ内に右クリ禁止の記述を発見したらそこを書きかえるってのを
SleipnirかFoxのプラグ印としてぶちこんどいたらいいんじゃない?

あと、ブラウザのアドレス部に
javascript:XXXXXX; (XXXXX = javascriptの記述)
を入力するとページに対してjavascriptを実行できる。これを使ったらUWSCがもっと便利になるべな。

ゆうたら、そのブックマークレットをアドレス部にぶちこんでひらくUWSCを書けば
お気に入りの中のボタンを押す必要もなくなるんよ。

カレーおごってくさい


80名無しさん@お腹いっぱい。:2008/02/01(金) 00:53:58 ID:lH8A3iAH0
アドレスに入力するのも知ってたよ
しかしどうせななら「F5」「TAB」「「マウス」一緒に解禁したいだろ
英語のページにそれらしいソースがあったけど
250行はある
アドレス作戦は520文字までなんだよね
明日は病院か
はぁどーなることやら
んじゃーの
おやすみ
81名無しさん@お腹いっぱい。:2008/02/01(金) 06:48:07 ID:QWFXvWvc0
右クリック禁止を何とかしたかったんじゃないの?
F5 とか TAB って禁止できるの?

そのそれらしいコードと右クリック禁止のコードを js ファイルに保存して
外部スクリプトを読み込むようにすりゃいいんじゃない

OPTION EXPLICIT

DIM url = 対象の URL
DIM js = js のフルパス (ex. file:///X:/hoge.js)

DIM ieobj, headelm, scriptelm

ieobj = CREATEOLEOBJ("InternetExplorer.Application")
ieobj.Visible = True
ieobj.Navigate(url)

REPEAT
  SLEEP(0.1)
UNTIL !(ieobj.Busy) AND (ieobj.ReadyState = 4)

headelm = ieobj.document.getElementsByTagName("head").item(0)
scriptelm = ieobj.document.createElement("script")
scriptelm.type = "text/javascript"
scriptelm.src = js
scriptelm.charset = "Shift_JIS"
headelm.appendChild(scriptelm)
82名無しさん@お腹いっぱい。:2008/02/02(土) 16:58:15 ID:F1ruxvK80
ページの自動再読み込みは、サーバーを毎回チェックするように設定しとけば
↓のコードでいけるけど、F5と同じ動作できんかな・・・キーを送信すると表に出てきてうざいから×
url="http://~~"
IE.navigate(javascript:parent.frames.location='"+url+"'")


>>76
Ctrl+Dで画面なしでお気に入りに追加。
だからSCKEY(ID, VK_Ctrl, VK_D)でいいよ


>>43
これうまくいかんことがある。
やっぱ↓のが確実。submitはボタンの名前かID
ClkItemなら表示名で指定できるけどWebページのボタンには使えんね。
IE.document.forms[0].submit.click()


そうそう。
再表示をメニューから指定しようとしたんだけど、サブメニューがクリックできなかった。
たいていサブメニューになってるからCLK_MENUの実用性が低い・・・
使い方があるのかもしれんけど分からん。
83名無しさん@お腹いっぱい。:2008/02/03(日) 02:10:17 ID:NyiDqMBY0
基本的なことで申し訳ないけど
「座標(11,22)の色が白(FFFFFF)以外になるまで待つ」スクリプトを教えてください
84名無しさん@お腹いっぱい。:2008/02/03(日) 04:48:20 ID:P/GvGTQ30
while peekcolor(11,22)=$ffffff
sleep(1)
wend
85名無しさん@お腹いっぱい。:2008/02/03(日) 15:57:04 ID:OBLbC13y0
>>79
ブックマークレット色々探したんだけど
右クリ突破100%のブックマークレットはいくつかあったけど
「Tab」や「Ctrl」「Shift」「F5」とかまで無効を突破できるのってないもんだな
っと思ってたら1個だけ見つけたw
UWSCでテストしてOKだった
そのスクリプトここに貼ってもいいかどうかわかんないので
もし気になるならそれを置いてるアドレス教えるわ

それから何故画像認証画面にフォーカスを合わせられなかったり
右クリ突破してるのにマウスクリックできないのかわかった!!
そのテストするときはIE7で開いている窓が2つあるんだけど
そのどちらかがアクティブだと思っていたらなんと!!!!

その状態ではUWSCがアクティブ画面になってるじゃん
しかもRECIEで修正しようとしても
RECIEでは「Alt」押さえっぱなし「Tab」1回押して
「Alt」「Tab」両方放すって記録できないじゃん

カメラで記録できるのかな(後でやってみるけど
カメラで記録したのってRECIEで使えないエラーになることあるもんなー

「Alt」「Tab」使ってアクティブウィンドーをIE7に変えたら
前に教えてもらったフォーカスあわせるのができた
今のままじゃアクティブウィンドーに1回マウスクリックでもしないとアクティブにならない
UWSCがアクティブのままだったらIEの画面をマウスクリックしないんだよね

このままじゃ半自動っていうのか半手動っていうのか全自動じゃないってことだ(涙
誰かRECIEの方の命令でAlt押さえっぱなしTab1発教えてクレヨンしんちゃんwww
いつも悪いね。あじがとーー
86名無しさん@お腹いっぱい。:2008/02/03(日) 16:36:32 ID:OBLbC13y0
連投スマソ85です
でけた!
カメラで記録したのをちょっと変更しただけでいけましたw

ALTダウン TABクリック1回 押してアクティブウィンドー切り替えてALTアップ
そしてTABもう1回押してウィンドー内のテキストボックス切り替えて
CTRL押すまで待機。
画像認証を入力→CTRL押して次の画面へ郷ひろみwww
やったー
嬉しい
教えてくれたらカレーライスご馳走しようと思ったんだけど
自己解決でけたwww

KBD(VK_ALT,DOWN,1000)
KBD(VK_TAB,CLICK,1)
KBD(VK_ALT,UP,1000)
SLEEP(0.1)
KBD(VK_TAB,CLICK,1)
SLEEP(0.1)
87名無しさん@お腹いっぱい。:2008/02/03(日) 17:04:25 ID:OBLbC13y0
再び連投
スマソwww

アクィブウィンドーやっと取得できたので
TABでテキストボックスの切り替えしなくても
そのままフォーカス合わせれた
やった!
これで0.1秒速くなったぞwwww

ここは私の日記帳棚w
んじゃノシ

KBD(VK_ALT,DOWN,1000)
KBD(VK_TAB,CLICK,1)
KBD(VK_ALT,UP,1000)
SLEEP(0.1)
IE.document.forms(0).elements(5).focus()
88名無しさん@お腹いっぱい。:2008/02/03(日) 18:07:18 ID:pYlZOk5l0
読んでる限り何がしたいのかよくわかんなってきたけども
フォーカス合せて入力するなら
IE.document.forms(0).elements(5).value = input("にゅうりょくしてください")
がクールなんちゃうかいな
これならフォーカス外れててもぶちこめる
89名無しさん@お腹いっぱい。:2008/02/03(日) 21:20:40 ID:VOpowv0z0
2ゲットスクリプト実行してたら規制された。
90名無しさん@お腹いっぱい。:2008/02/03(日) 21:29:36 ID:VOpowv0z0
一応完成したんだけどまだまだ高速化できるかなと、内部処理作ってる途中だったのに。

スレッド一覧だと更新が遅れることがあるんで、普通にニュース速報+のページを更新。
ただし、フォームとかリンクとか多くて時間がかかるんで、HTMLだけを取得。
昨日は文字化けの解決法が分からなくて寝てしまったんだけど、
ソースがシフトJISのデータはバイナリで受信すればいいことが分かった。
とりあえずIE画面なしでHTML取得するスクリプト
↓↓↓
oHttp = CreateOLEObj("MSXML2.XMLHTTP")
oHttp.Open("GET", "http://mamono.2ch.net/newsplus/", False)
oHttp.setRequestHeader("If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT");
oHttp.Send
str = BETWEENSTR(DECODE(oHttp.responseBody, CODE_BYTEARRAY),"<form method=GET name=f","<form action=")


どうせ規制くらうんだし前バージョンのスクリプトアップしてもいいのかな?
業務妨害になっちゃうかもしれないからやめとくか。
91名無しさん@お腹いっぱい。:2008/02/03(日) 21:50:16 ID:VOpowv0z0
92名無しさん@お腹いっぱい。:2008/02/03(日) 22:37:20 ID:BrcBr9Sw0
UWSCで作る意味がない
93名無しさん@お腹いっぱい。:2008/02/03(日) 22:40:57 ID:fSn7+mzp0
>>92
吹いたww
94名無しさん@お腹いっぱい。:2008/02/03(日) 23:24:19 ID:r2Z5rDPi0
日記、というより独り言になってるな。
だらだら書きたいならブログでも作ってそっちに書いたら?
95名無しさん@お腹いっぱい。:2008/02/03(日) 23:26:06 ID:fSn7+mzp0
>>94
いやほんとそうだよね
お手上げだよ。
96名無しさん@お腹いっぱい。:2008/02/03(日) 23:36:12 ID:VOpowv0z0
>>92
ほかにいいスクリプトがあるなら教えてください。
97名無しさん@お腹いっぱい。:2008/02/04(月) 00:00:33 ID:r2Z5rDPi0
>>96
とりあえず何がしたいのか3行でまとめてみ。
98名無しさん@お腹いっぱい。:2008/02/04(月) 00:06:35 ID:iTB6+LfJ0
>>97
あれとか
これとか
いろいろ
9992:2008/02/04(月) 00:35:51 ID:GzuoCs/D0
ちなみにさっきのレスは上げっぱなしの奴に対してね
100名無しさん@お腹いっぱい。:2008/02/04(月) 00:40:31 ID:xbI3oztW0
●に対応しないと規制されるよん
101名無しさん@お腹いっぱい。:2008/02/04(月) 00:41:37 ID:F2S5bE040
>>90
アップよろしく
102名無しさん@お腹いっぱい。:2008/02/04(月) 01:11:53 ID:iTB6+LfJ0
>>101
http://scripts.web.fc2.com/scriptsup/Auto2Get2chNSP.uws

まあなるようになるだろ。
うpは予定してなかったしゴミが残ってるけど>>91の実績のあるやつ。
やばかったらいきなり削除とか通報とかじゃなくここに書き込んでもらえるとありがたい。
103名無しさん@お腹いっぱい。:2008/02/04(月) 01:53:59 ID:F2S5bE040
>>102
thx!
見てみるぜ
104名無しさん@お腹いっぱい。:2008/02/04(月) 02:40:32 ID:iTB6+LfJ0
内部処理でできて通信規制かからなければこーゆーのも夢じゃないんだけど
>>90のやり方で作りかけてるスクリプト実行するのに2秒かかっちゃうんだよね。
HTMLもそれなりなサイズだし文字コード変換してるしスクリプトだし、1秒未満は無理。
取得したデータをストリームとして逐次必要な分だけ受け取って処理するとか、
文字列がバイナリ配列と等価なC言語とかなら余計な処理を省けていいんだけどなあ。

http://mamono.2ch.net/test/read.cgi/newsplus/1202057922/1-2
1 名前:sek ◆inter/GWwg @sek漬けφ ★[] 投稿日:2008/02/04(月) 01:58:42 ID:???0 ?2BP(1113)
 
2 名前:2ゲットちゃん ◆.r1OODycY. [] 投稿日:2008/02/04(月) 01:58:42 ID:iNELh+Ip0
2ゲット
105名無しさん@お腹いっぱい。:2008/02/04(月) 03:29:59 ID:iTB6+LfJ0
新しいスクリプトを考えたんだけどさすがにUWSCじゃ無理だ。

手前に表示されてるブラウザから表示中のURLをゲットして、
URL中の数字部分を抜き出して、ボタン一つで増減したページを開くようにできたら
リンクが張られてないけど連番になってるのを見るのに便利棚と思ったんだけど。
数字が何箇所かある場合はボタンの数も変えないと使えないし。
106名無しさん@お腹いっぱい。:2008/02/04(月) 03:44:11 ID:iTB6+LfJ0
>>104
2秒かかるって間違い。
sleep(1)が入ってた。
sleepが必要になる部分を調整したら1秒未満は問題なく出せる速度だった。
107名無しさん@お腹いっぱい。:2008/02/04(月) 13:23:11 ID:t8qljaZM0
>>105
そんなフリーソフトあった気がする。ベクタで探してみたら。
まあ作るのが楽しいならいいけど。

UWSCと似たようなソフトでAutoItも良いよ。ドキュメント充実してるし。
英語だけどなw
108名無しさん@お腹いっぱい。:2008/02/04(月) 18:21:10 ID:iTB6+LfJ0
>>107
Windows上のあらゆるコンポーネントをツリー開いて選択するのがあったけどあれってAutoItだったっけ?
確かに高機能だったけど、めんどくさかった気がして放置してた。
英語なのもめんどいし、書式が複雑な気がしたのと、あとは、日本語のコメントが使えない気がした。

入力サポートがあるのはよさげだけど・・
http://www.autoitscript.com/autoit3/scite/

オンラインドキュメントは機械翻訳が使えるから助かる。
リンク先まで自動で翻訳してくれるのが便利
http://honyaku.yahoofs.jp/url_result?ctw_=sT,eCR-EJ,bT,hT,uaHR0cDovL3d3dy5hdXRvaXRzY3JpcHQuY29tL2F1dG9pdDMvZG9jcy8=,qlang=ja|for=0|sp=-5|fs=100%|fb=0|fi=0|fc=FF0000|db=T|eid=CR-EJ,ka3870e59ef7ec44819488f2a85ac769e,t20080205060421,

そうそう。
インストールしないと使えないんだよね。やっぱ。
まあおいおい使って見る。

それはそうと、2ゲットツールを改造して規制食らわないようにしてるんですよ。
板のトップページで確実に最新のスレ覧をゲットしようと思ったのに
連続で読み込んでると更新したページを返してくれなくなるから、
Janeを見習って15秒に1回の読み込みに制限し、さらに、
先頭10件まではプレビューが出るけど、プレビューの出ない11件目以降まで落ちるのを待つと言う・・・
1分以上放置されるようなおこぼれを拾うと言う戦略。
これだと全然2ゲットできないんだけど、スクリプトによる書き込みかどうか判断できないし。

スレ立てた本人が続けて投稿する場合に割り込めなくなるけど、
割り込みするとどうやら目をつけられるようだから仕方ない。
109名無しさん@お腹いっぱい。:2008/02/04(月) 20:54:01 ID:HsWmb/re0
19時に規制されてたぞ、ほどほどになw
スレが立つ前の時刻で2getする方法もあるけど、
ここまで荒らすとなると教えられないな。
110名無しさん@お腹いっぱい。:2008/02/04(月) 21:05:49 ID:iTB6+LfJ0
>>109
2ゲットがあらしとか馬鹿みたい。
みんなが2ゲットのためにF5アタックするくらいなら、2を取らせないほうが負荷は減るはず。

>スレが立つ前の時刻で
スレ番を予想してPOSTするんだろ。
111名無しさん@お腹いっぱい。:2008/02/04(月) 23:02:29 ID:Hux/5Icf0
awtを使ったJava GUI アプリでサーバーと通信しているものがあります。
(得意先コードを入れると得意先名を読み込んできて表示したり)
サーバー負荷によって帰ってくる時間が違うので、IEのbusyやreadystateの様に待ちたい
のですが、どうしたらいいでしょうか?

何か方法があれば教えてください。
112名無しさん@お腹いっぱい。:2008/02/05(火) 00:29:54 ID:bHal2eZv0
ニュー速+のほとんどのスレで、スレが立つとすぐにAA張ってるやつらいるのに
僕だけがなんで規制されるのか分からない。
手動っぽいスクリプトならいいんかと。
それとも単に通報されたのが僕だけなのかと。


>>111
oHttp = CreateOLEObj("MSXML2.XMLHTTP")
oHttp.Open("GET", "http://mamono.2ch.net/newsplus/", False)

Openの最後がFalseなら非同期なので待たない。
Trueなら同期なので返事を待つ。

更新がない限りなにもしないのなら、>>90では1970年とか指定してるところを、
保存したLast-Modifiedをセットする。

LastModified = "Thu, 01 Jun 1970 00:00:00 GMT"
while 1
oHttp.setRequestHeader("If-Modified-Since", LastModified);
oHttp.Send("")
ifb 200 <> oHttp.status Then
continue
endif
LastModified = oHttp.getResponseHeader("Last-Modified")
wend

・・・UWSCのコードだからawtでは関係ない気がするけど。
まあどの言語でもOLE使う場合はほとんど一緒だと思う。
113名無しさん@お腹いっぱい。:2008/02/05(火) 02:55:04 ID:hWzTsUwB0
あるwebの文章からある文字列の直後の数字を変数に入れたいのですが、
やり方知ってる方教えてください、、。

例えば

次の時刻は10時です。

と書かれてあるページから「時刻は」の文字列の直後にある「10」
を、ある変数に入れる

とかの処理なのですが、、。
114名無しさん@お腹いっぱい。:2008/02/05(火) 03:14:16 ID:bHal2eZv0
文字列 = "次の時刻は10時です。"

BETWEENSTR( 文字列, "次の時刻は", "時です。", [省略] )
戻り値:"10"
STRCONV("10", SC_HALFWIDTH)
戻り値:"10"
VAL( "10" )
戻り値:10

VAL( STRCONV(BETWEENSTR( 文字列, "次の時刻は", "時です。"), SC_HALFWIDTH) )


ああ、今日免許更新しないと失効しちまうが昼までに起きれる自身がない・・・
免許取得とか更新のときはいっつも寝不足で目つきわるいんだよ。
徹夜明けで一発免許とったときはつらかったずら。
115名無しさん@お腹いっぱい。:2008/02/05(火) 03:36:06 ID:bHal2eZv0
>>112
ちょいミス。
Openして同期通信しないとね。
んで自己レスしなくても専用ブラウザで自己レスのプレビューしたら見れるね。
>>115

oHttp = CreateOLEObj("MSXML2.XMLHTTP")
LastModified = "Thu, 01 Jun 1970 00:00:00 GMT"
while 1
oHttp.Open("GET", "http://mamono.2ch.net/newsplus/", True)
oHttp.setRequestHeader("If-Modified-Since", LastModified);
oHttp.Send("")
ifb 200 <> oHttp.status Then
continue
endif
LastModified = oHttp.getResponseHeader("Last-Modified")
wend


暗示かかってるおかげで2:30〜3:00は眠くなるんだけどその時間帯を外すと少しも眠くならないと言う・・・
116名無しさん@お腹いっぱい。:2008/02/05(火) 07:53:03 ID:i9OkSWcM0
検索して出てきた情報を全自動で全部の情報をエクセルに取り込みたいんだけど
(UWSCとエクセルのWEBクエリー機能を使ってです)
曜日や時間によっては検索されて出てきた情報が3ページのときもあれば6ページのときもあります
UWSCを使って1ページ目はエクセルに取り込んで保存できました
変数使って2ページ目3ページ目と同じ事を繰り返すことは可能だと思います

困ったことにわからないことができました
検索で出てきたページ数ってどうやってUWSCに判断させればいいの?

エラーになって止まったままになってしまうと2件目の検索サイトに行けないです
どなたかページ数の判断のさせかたを教えて下さい
117名無しさん@お腹いっぱい。:2008/02/05(火) 09:18:37 ID:bHal2eZv0
// 投稿処理 ////////////////////
// 戻り値: TRUE:正常、FALSE:エラー
// 引数:
// IE :IEオブジェクト
// conturl :スレの場所
// TNo :スレ番
// text :投稿テキスト
// メモ帳=0 :メモ帳ID
// メモ帳IDはデバッグ用
Function Cont( Var IE, conturl, TNo, text, メモ帳=0)
result = true
ID = HNDToID(IE.HWND)

str = conturl+TNo+"/l1&nohead"
for i = 0 to 2
IE.navigate(str)
REPEAT; sleep(0.1); UNTIL !IE.busy AND IE.readystate = 4

// エラーページチェック
str = Status(ID, ST_TITLE)
errortitles[4] = str
for e = 0 to 4
ifb 1 <= Pos(errortitles[e], str) Then
select e
case 4 // エラーがなければ続行する。
break 2
case 0 // 接続エラーなら規定回数試行する。
sleep(2)
continue 2
default // その他エラーならエラー終了する。
SendSTR( メモ帳, errortitles[e] + "<#CR>", 1, false, false )
IE.navigate("about:blank")
118名無しさん@お腹いっぱい。:2008/02/05(火) 09:28:01 ID:bHal2eZv0
result = false
exit
selend
endif
next
// ここには来ないはず
msgbox("エラー判定ミス")
exitexit
next

// 投稿画面で既に書き込みがあればキャンセルする。
src = IEGetSrc(IE, "dt", 1)
ifb 1 <> Val(BetweenStr(src, "<dt>", " :")) Then
result = false
exit
endif
119名無しさん@お腹いっぱい。:2008/02/05(火) 09:29:14 ID:bHal2eZv0

// テキストセット
IESETDATA(IE, text, "MESSAGE")
// 送信
IE.document.forms[0].submit.click()
REPEAT; sleep(0.1); UNTIL !IE.busy AND IE.readystate = 4

str = Status(ID, ST_TITLE)
ifb 1 <= Pos("書き込み確認", str) Then
IE.document.forms[0].submit.click()
REPEAT; sleep(0.1); UNTIL !IE.busy AND IE.readystate = 4
endif

IE.navigate("about:blank")
REPEAT; sleep(0.1); UNTIL !IE.busy AND IE.readystate = 4
Fend
120名無しさん@お腹いっぱい。:2008/02/05(火) 09:55:18 ID:bHal2eZv0
ThreadNoにスレ番(ニュース速報+のスレのURLのnewsplus/の後の数字)をセットして
>>117-119のContを呼び出す。
エラーを出したくないい場合、Contの中で、"/l1&nohead"としてるのを"/1"として条件のあったページにします。

>>116
検索ページにそのままは使えませんが、エラーの判定と戻る操作のサンプルです。
これがエラーに飛んでしまった場合、タイトルバーで判定するのが早いですが、
さまざまなページには対応しきれないので、完全な動作は保障できません。
エラーが出た場合、 .Navigateじゃなく、IE.GoBack() を使えばいいです。
以下は、Contを呼び出すコード

conturl = "http://mamono.2ch.net/test/read.cgi/newsplus/" // スレッド保存場所
PUBLIC errortitles[]="サーバーが見つかりません", _
"ERROR", _
"ERROR", _
"error", _
""
text = "てきとうに"

// 投稿用ブラウザを起動
IE = CreateOLEObj("InternetExplorer.Application")
IE.visible = True

メモ帳 = Exec("notepad.exe")
ThreadNo = スレッド番号

ifb Cont( IE, conturl, ThreadNo, text) Then
  SendSTR( メモ帳, "good<#CR>", 1, false, false )
else
  SendSTR( メモ帳, "err<#CR>", 1, false, false )
endif
121名無しさん@お腹いっぱい。:2008/02/05(火) 13:36:58 ID:i9OkSWcM0
116です
>>117-120
エラーで判断して処理するってことですね
アドバイスありがとうございます
自分的には初めて作る大掛かりなものなので気長にやってみます
ありがとうございました
122113:2008/02/05(火) 22:41:59 ID:hWzTsUwB0
>>114
華麗にお答えありがとう。参考になります。
123名無しさん@お腹いっぱい。:2008/02/06(水) 03:57:18 ID:K7KdaWNn0
すいませんまたですが、あるウィンドウのローカル座標を扱う方法を
教えてください、、。
124名無しさん@お腹いっぱい。:2008/02/06(水) 05:06:35 ID:lHr9HGwD0
>>123
目的の窓をマウスクリックする操作を録画し、ファイルに保存する。
ヘルプを開き、記録された操作をする関数名でキーワードから検索
MOUSEORGね。
125名無しさん@お腹いっぱい。:2008/02/06(水) 12:08:49 ID:sGC7YRQn0
UWSCでテキストエディターの秀丸を起動させたいんだけどどうすればいいですか?
126名無しさん@お腹いっぱい。:2008/02/06(水) 12:19:09 ID:K7KdaWNn0
失礼します。
ある処理が終わるまで他のウィンドウをアクティブにさせない
方法を教えてください。他の自動で開くウィンドウにキー操作が
取られてしまう、、、。
127123:2008/02/06(水) 12:20:21 ID:K7KdaWNn0
>>124
ありがとうございます。
ちょっと分りませんが調べてみます。
128名無しさん@お腹いっぱい。:2008/02/06(水) 12:21:01 ID:QMr5shAm0
exec("C:\Program Files\Hidemaru\Hidemaru.exe")
129名無しさん@お腹いっぱい。:2008/02/06(水) 12:21:35 ID:QMr5shAm0
誤爆
130名無しさん@お腹いっぱい。:2008/02/06(水) 13:54:22 ID:sGC7YRQn0
>>126
それ私の逆だね
私の場合サイト側が不正対策や自動スクリプト対策の為に色んな仕掛けがしてあって
UWSCがアクティブになりIEで開いている窓は手動でマウスクリックしないとアクティブにできなかったんだ
IEでウィンドー開いてサイトを見ているのにアクティブがUWSCに戻されていたのはなかなかわかんなかったよ


あなたの場合は私と逆にすればいいのではないでしょうか
一旦「Alt」+「Tab」を使ってUWSCにアクティブしてみたらどうでしょうか?

KBD(VK_ALT,DOWN,1000)
KBD(VK_TAB,CLICK,1)//この行最後の数字はUWSC意外に動いているプログラムの数で変更して下さい
KBD(VK_ALT,UP,1000)
SLEEP(0.1)

IEにアクティブ戻すときにもう一度同じ命令してもどしてね

>>128
あじがと
それやってみてダメなんだよね
どうやって秀丸をきどうさせるんだろね??
わかんないよw
131名無しさん@お腹いっぱい。:2008/02/06(水) 14:51:11 ID:lHr9HGwD0
>>126
>他の自動で開くウィンドウにキー操作が取られてしまう、、、。

そんなあなたにSCKEY
// ショートカットキーの実行
SCKEY( ID, キー, [キー, キー, キー, ...] )

シフト、Alt、DELとかの順に指定するとタスクマネージャが出ると思うけど、
別にシフトキーとか指定なしにF5とかを指定しても使える。
問題は再生時間の指定がないことだけど、
僕はKBD使うときも時間指定は0でsleep入れてタイミング取ってるから。
132名無しさん@お腹いっぱい。:2008/02/06(水) 18:38:40 ID:sGC7YRQn0
>>128
ありがとう
前回、それで起動させれないと判断したのは私の入力ミスのようでした
もっかいやってみたらそれで秀丸を呼び出せました^^
ありがとうです
133名無しさん@お腹いっぱい。:2008/02/06(水) 19:14:24 ID:sGC7YRQn0
秀丸を立ち上げれたけど終わらすのはどうするの?
HIDEMARU.quit
HIDEMARU.out
HIDEMARU.down
HIDEMARU.exit
これ全部ダメですよー
134名無しさん@お腹いっぱい。:2008/02/06(水) 19:32:24 ID:oGdGMBlc0
(^ω^;)
135名無しさん@お腹いっぱい。:2008/02/06(水) 21:42:39 ID:sGC7YRQn0
自己解決
uwscで終了の指示を出すのではなく
秀丸のマクロで自動終了させることにしたのだw
136名無しさん@お腹いっぱい。:2008/02/06(水) 22:57:24 ID:lHr9HGwD0
>>133
>>135
ヘルプで「終了」を検索したら一発で出てくるんだけど。
137名無しさん@お腹いっぱい。:2008/02/07(木) 00:12:19 ID:wx7kSWwB0
http://scripts.web.fc2.com/scriptsup/test15.uws

↑は>>120でさらしたやつの本体。
スレトップページから拾ってくるのが早いだろうと思って作ったけどまったくの無駄だった。
トップページは連続して読み込んだりできないし人が多いとまったく更新されない。

まったくの失敗作なんだけど、スレの書式が違うのに対応したり更新のチェックをしたりしてるので
Webページ読み込む処理の参考にはなるかなと。

とはいえ、データを丸ごと受け取っても、区切りがはっきりしてないテキストを
UWSCではうまく扱えないので意味ないかも。
HTMLとかなら改行コードを省いてくれるのは助かるんだけど
2chの.datファイルで改行コードが消されてしまうと処理できないしな・・・
138名無しさん@お腹いっぱい。:2008/02/07(木) 07:03:10 ID:wx7kSWwB0
2ゲットツールをPythonで書き直してるんだけど
アプリケーションを操作するのは環境依存してしまうから基本NGのようでできない。
一応WindowsのCOMを使えるようにしたり、
Macでアプリケーションを作るフレームワークがあったりするけどややこしい。
まずソフトが日本語じゃないからインストールがめんどい。

アプリを操作するんだったら簡単なのに
目に見えないプロパティやらメソッドやらをマニュアル見て・・・

Pythonでやるのが間違ってんのかなあ
139名無しさん@お腹いっぱい。:2008/02/07(木) 08:44:12 ID:rT0F5c6A0
全然間違ってないけどスレを間違ってる。
140名無しさん@お腹いっぱい。:2008/02/08(金) 02:06:34 ID:lKiof+0a0
XPのIE7でサイトの巡回と自動ログインと保存にUWSC使用中。
今度PCをVistaに買い換えるんだが、同じIE7だからスクリプトはそのまま動くかな?
使用法にもよるだろうが、XP→Vistaにした人で問題あったりした人いたら教えて。
141名無しさん@お腹いっぱい。:2008/02/08(金) 03:46:27 ID:bciAgBLk0
>>140
そういえばIE7になると、タブブラウザだから
IEオブジェクト作る前にWindowsのShellオブジェクト作らないといけないとか書いてあった。
142名無しさん@お腹いっぱい。:2008/02/08(金) 04:47:40 ID:8R1SZh0d0
誰か秀丸エディターの「grepの実行」
検索文字「時間」で入力する方法教えてくれ
昨日からずっとやってるけどダメだ
取り合えず「grepの実行-秀丸-」の窓はアクティブにして
検索文字入力のところへフォーカスあわせるまではいくんだけど
自動では英数字しか入力できないのかな??

30時間は寝てない・・・
まじやば寝るわ
143名無しさん@お腹いっぱい。:2008/02/08(金) 12:01:40 ID:bciAgBLk0
>>142
秀丸が文字コード違うのかも
文字コード違うとNULLに置き換えられることがある。
メモ帳にならUWSCの文字はそのまま出力されるから、
同じように秀丸の編集画面に貼り付けられるか試し、
そんでダイアログにもできるかどうか試す。

あと、データの送信方法が、API使うのとユーザビリティーなんとかってのと2タイプがあるけど、
APIでだと動かない場合がある。
APIで動かないのは、コントロールの種類を間違って指定した場合があるけど、
ACC指定してやれば番号さえ間違わなければまず確実に送信できるよ。

ACC指定は、スタティックテキストも探し出してくれるから見た目に忠実。
ACC指定するとウィンドウがアクティブになっちゃうから動作は遅くなるし、
裏で動かすことが出来なくなるけど、とりあえず動作させたい場合は使える。
144名無しさん@お腹いっぱい。:2008/02/08(金) 12:34:25 ID:MXedu2vt0
exec("C:\Program Files\Hidemaru\Hidemaru.exe")
hidemaru=GetID(" - 秀丸","Hidemaru32Class")
scKey(hidemaru,VK_ALT)
scKey(hidemaru,VK_S)
scKey(hidemaru,VK_G)
grep=GetID("grepの実行","#32770")
sendstr(grep,"時間",1,TRUE)
clkitem(grep,"OK",CLK_BTN)

これじゃだめなん?
145名無しさん@お腹いっぱい。:2008/02/08(金) 12:40:17 ID:8R1SZh0d0
>>143
いよー^^
いつも悪いね
さっきもやってたんだけどわかんないよ
取り合えずカメラで記録したものを色々やったけどダメっぽい

RECIEで他に記録しておいた命令で使えそうなのも試してみたけど
まったくわけわかめ^^;
お手上げですよ

秀丸のマクロの記録、終了、保存、再生テストとやっても
検索文字は手動入力になってしまう
どうなってんだか??
今日はもう時間が無いのでまた夜にでもテストしてみる
ちょっと出かけてくる
ありがと
んじゃ
146名無しさん@お腹いっぱい。:2008/02/08(金) 12:42:48 ID:8R1SZh0d0
>>144
おぉ!
私が書き込んでる間にレスくれてたのか
ありがとー!
それ夜にでもテストさせてもらうよ
今、まじでスグ出かけないとダメなんだ
夜になっちゃうけどテスト結果報告するよ
ありがと
んじゃ行って来ます^^
147名無しさん@お腹いっぱい。:2008/02/08(金) 23:58:57 ID:8R1SZh0d0
>>144
ありがとう
テスト結果良好!!
読み込めない文字があったときのエラー対策なんかで少し時間かかっちゃったけど
grep機能はバッチリGOO!
あなた凄いですね^^
マジでカレーライスおごらせてください
時間があるときにでも連絡下さいメル欄
自分は小島ですよろしく
ここでさらしてから変な勧誘メールが多くなったので
そろそろ捨ててしまおうかと思ってるアドレスだから
もし大阪に来れるなら早めに連絡下さい^^
よろしく

それから聞いてばっかしでほんと恐縮なんだけど
grepしてる時間のあいだはSLEEP(0.1)しかないかな?
今は1ファイルを作ってテストしてるけどSLEEP(3.0)以上にしないとエラー画面でるんだよね
IEのこんな感じの命令あればいいのにね
今はテスト仕様なのでかまわないんだけど
使うとなったら20ファイルや30ファイル読み込ませることもある
どうにかならんかね?
  ↓こんな感じの秀丸にはできないの?
REPEAT
SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4
148名無しさん@お腹いっぱい。:2008/02/09(土) 00:23:44 ID:6WdrkSyQ0
ごめん たまたまレス見て秀丸もってたから適当に書いただけで今までの流れというか何を作ってるのかわからんから(書いておいてなんだがGREP自体どんな機能か知らん)答えようがないです。
149名無しさん@お腹いっぱい。:2008/02/09(土) 01:29:17 ID:Q50fZGOu0
>>147
IEの場合は公開されたオブジェクトとプロパティ、メソッドがあるから利用できるけど
それ以外のでは自分でコントロールを読み取って、
基本的にUWSCにある機能しか使えないからその範囲内でなんとかする。


僕はシステムメニューを読み取るためにWindowsAPIを使ったりしましたけど大変です。
どっかから関数定義を拾ってきてUWSCに合わせて定義。
API使うにはデータを書き込む場所をあらかじめ用意しないといけない。
一つしか使わなかったからnameを用意できたけど、APIっていろいろ組み合わせないと
それだけではたいしたこと出来ないわけで。
しかもスペースが一つになってるけど実際には>>149のように
受け取る可能性のある最大サイズを用意してあり・・ませんが。

CONST MF_BYCOMMAND = $00000000
CONST MF_BYPOSITION = $00000400
DEF_DLL GetMenuItemID(HWND,Long):Long:USER32.DLL
DEF_DLL GetMenuStringA(HWND,Long,Var string,Long,Long):Long:USER32.DLL

DIM name = " "
GetMenuStringA( GETCTLHND(ID, GET_SYSMENU_HND), 8, name, namelen, MF_BYPOSITION )
150名無しさん@お腹いっぱい。:2008/02/09(土) 20:43:56 ID:2kt35Fqa0

while getId("grep処理中") <> 1
sleep(0.05)
wend

while getId("grep処理中") = 1
sleep(0.05)
wend

すごく単純に。
0.1秒やとウインドウが消えるのが早すぎて0.05秒ということで
適当に grepWait() とかでまとめてポンポンおいたらええのんとちゃうかな
ごっちゃんです^^
151名無しさん@お腹いっぱい。:2008/02/09(土) 21:49:06 ID:32nxHd5t0
了解ですよ^^
あとでメールしますね
よろしく
152名無しさん@お腹いっぱい。:2008/02/10(日) 00:17:37 ID:3HZ9GDLo0
しかし終了条件書かないと永遠ループで
ALT+F2で強制終了
そのあとの処理できんね

REPET
繰り返し処理
UNTIL//終了条件
次の作業へ

grepの終了条件ってなんだろね
153名無しさん@お腹いっぱい。:2008/02/10(日) 00:39:20 ID:kb8o5vnU0
grep実行したら、「grep 処理中」て小窓がでない?
さっきのは、実行ボタン押した直後に置いて
小窓出る→小窓消える→脱出
て流れだったんだけど。
ちなみにVer7でVistaです。

もしたまに失敗とかなら、
c = 0
while getId("grep処理中") <> 1
sleep(0.05)
c = c + 0.05
if c >= 3 then break
wend

while getId("grep処理中") = 1
sleep(0.05)
c = c + 0.05
if c >= 3 then break
wend

てな感じで保険かけといたらいいんじゃないかな
154名無しさん@お腹いっぱい。:2008/02/10(日) 02:26:24 ID:fJsN/Fjm0
すみません教えてください。

IE.navigateで開いたページに載っているリンク先をIELINKで開き、
そのリンク先のページのテキストをIE.DOCUMENT.BODY.INNERTEXTで
取ろうとしたのですが、何故かリンク元のテキストがコピーされてしまいます。
リンク先のテキストをコピーするにはどうしたら良いのでしょうか?
(事情があり、直接リンク先のURLは取得出来ないんです、、。)


IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = true
IE.navigate("http://www.yahoo.co.jp/")

REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.READYSTATE = 4

IELINK( IE,"ショッピング")

REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.READYSTATE = 4

TEXT = IE.DOCUMENT.BODY.INNERTEXT

sendstr(0,TEXT)
155名無しさん@お腹いっぱい。:2008/02/10(日) 02:40:20 ID:kb8o5vnU0
ielink()を使わない方法になるけども

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = true
IE.navigate("http://www.yahoo.co.jp/")

REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.READYSTATE = 4

a_tag = IE.document.getElementsByTagName("A")

for i = 0 to a_tag.length-1
ifb a_tag.item(i).innerText = "ショッピング"
IE.navigate(a_tag.item(i).href)
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.READYSTATE = 4

print IE.document.body.innerText
break
endIf

直では飛べないもんだと勝手に解釈して、
試してないけどだいじょうぶなはず
156名無しさん@お腹いっぱい。:2008/02/10(日) 02:40:59 ID:kb8o5vnU0
プラス
最後に next ね
157名無しさん@お腹いっぱい。:2008/02/10(日) 02:48:17 ID:qFjON2CV0
>>154
WinXPのIE6でやったけどちゃんとショッピングのページが取れたよ。

目的のHPかIEのバージョンの問題じゃないかな。
158156:2008/02/10(日) 17:48:22 ID:Jvn5XWpQ0
さらに
IE.navigate(a_tag.item(i).href) は
a_tag.item(i).click


>>157の言うとおりいけるとおもうけど
159名無しさん@お腹いっぱい。:2008/02/11(月) 01:26:54 ID:K8IzIXto0
すいません自分の勘違いでした。>>154の例ではちゃんとショッピングの
ページのテキストが取れました、、。

自分の見ようとするページで例を書きたかったのですが、会員制ページ
だったので、、、。そしてその会員制ページはやはりリンク元のテキスト
が取れちゃうんですよ、、、。やっぱりショートカットでコピーかな。

>>156さん
例ありがとうございました。何故か動かないのですが、知らないtag
とかまだ良く分らないので調べてみます。
160名無しさん@お腹いっぱい。:2008/02/11(月) 13:03:03 ID:Wqck78ny0
これ、HP見るとVistax64での動作検証をしてないと書いてありますが、
やはり、不具合でるのでしょうか?というのは、

MOUSEORG(ID,0)
ACW(ID,0,0)
MMV(50,141)

で、マウスが移動せずに、IDで指定されたウインドウが移動するのです。
UWSCは管理者権限+XPSP2の互換モードで実行しています。
161名無しさん@お腹いっぱい。:2008/02/11(月) 13:28:14 ID:MCjoPHjp0
MOUSEORG()で基準が変わるのは
MMV()、BTN()、PEEKCOLOR()、CHKIMG()
だからACW()でウインドウが移動される。
162名無しさん@お腹いっぱい。:2008/02/11(月) 13:40:44 ID:Wqck78ny0
すいません、舌足らずでした。
ACWで(0,0)にはわざと移動させてます。
そのあとMMVで再度ウインドウが動きます。
位置的には-400,200ぐらいに(画面の外にウインドウが半分出ます)
163名無しさん@お腹いっぱい。:2008/02/11(月) 14:53:16 ID:7fZalG9R0
ACWはウィンドウを動かすコマンドだからね。
164名無しさん@お腹いっぱい。:2008/02/11(月) 15:00:50 ID:7fZalG9R0
MMVで・・か

マウスを移動する前にマウスクリック(左ボタン押し下げ)したことになってれば窓が動くし。
ACWで変なところに飛んでるわけじゃないなら、
マウスボタンをあげる操作を送信したらいいかも。
BTN( LEFT, UP )
とかで。

ただ、MOUSEORG()の影響を受けるかもしれないから、
それの実行前と後で試すのがいい。
165名無しさん@お腹いっぱい。:2008/02/12(火) 04:49:52 ID:XVM9B7S70
166名無しさん@お腹いっぱい。:2008/02/13(水) 01:53:26 ID:E5I/Ahuu0
すいません教えてください。GETACTIVEOLEOBJ()でURLがそのまま
ウィンドウのタイトルになってるそのタイトルを入れたのですが、
エラーが出ます。どう指定すれば良いでしょうか?


IE = GETACTIVEOLEOBJ("internetexplorer.application","http://www.audiojapan.jp/2005ex.jpg")
167名無しさん@お腹いっぱい。:2008/02/13(水) 03:26:54 ID:Qm3jXXZF0
>>166
"internetexplorer.application"が小文字に変更されてるからとか
168名無しさん@お腹いっぱい。:2008/02/13(水) 16:29:15 ID:Xc+dVYa80
ACW(GETID("Microsoft Excel - Book1","XLMAIN"),-4,-4,1032,746,0)
これの"XLMAIN"とはどういう意味なんだ?

その後ろの-4,-4,1032,746,0これもわかんね

サイトのページを次々にを貼り付けていきたいんだけど
1ページ目しか貼らないよ
-4,-4,1032,746,0 ←これが味噌のようなきがする
だれかよろしく^^
169名無しさん@お腹いっぱい。:2008/02/13(水) 16:33:33 ID:Xc+dVYa80
ちなみにエクセルに貼り付けたい場所は
A.1
A,143
A,,286
A,428

つまり前の位置より142行下げた位置にはりたいんだけど
わかんないよ(涙

エクセルのA列って何行まで貼れるのだ??
10万行はOK??
170名無しさん@お腹いっぱい。:2008/02/13(水) 16:39:54 ID:dgBolca10
おkおk
171名無しさん@お腹いっぱい。:2008/02/13(水) 19:00:15 ID:fAW86VWu0
取得した色情報をリアルタイムで表示ってどうやるんでしょう?
ヘルプからほぼ丸写しなのにできない・・・

x=G_MOUSE_X; y=G_MOUSE_Y
WHILE x>0
c=PeekColor(x,y)
FUKIDASI(c)
Sleep(0.5)
FUKIDASI()
WEND
172名無しさん@お腹いっぱい。:2008/02/13(水) 19:24:50 ID:+4Qi9Lna0
x=G_MOUSE_X; y=G_MOUSE_Y
これをWhileの中にも入れればいい
173名無しさん@お腹いっぱい。:2008/02/13(水) 19:33:46 ID:fAW86VWu0
ありがとうございます、座標定義付けその都度やらないといけないんですね
出力された色情報が10進数orz
これって16進に変えられますか
174名無しさん@お腹いっぱい。:2008/02/13(水) 19:39:35 ID:Wx8acyUb0
Format(c,0,-1)
175名無しさん@お腹いっぱい。:2008/02/13(水) 19:45:06 ID:fAW86VWu0
ありがとうございます、関数あったのですね
よく調べずに聞いて申し訳ありませんでした
176名無しさん@お腹いっぱい。:2008/02/13(水) 19:53:17 ID:Wx8acyUb0
ごめん、こっちのほうがいいかも
c=Peekcolor(x,y)
b=(c AND $FF0000) / $010000
g=(c AND $00FF00) / $000100
r=c AND $0000FF
Fukidasi(CHGMOJ(FORMAT(c,6,-1)," ","0"))
177名無しさん@お腹いっぱい。:2008/02/13(水) 19:57:11 ID:Wx8acyUb0
度々すまん。b,g,rの3行無視してくれ
178名無しさん@お腹いっぱい。:2008/02/13(水) 21:54:54 ID:fAW86VWu0
>>176
ありがとうございます、CHGMOJ入れたのは黒が000000になるようにでしょうか
179166:2008/02/13(水) 23:43:56 ID:E5I/Ahuu0
>>167
ありがとう。しかし
IE = GETACTIVEOLEOBJ("InternetExplorer.Application","http://www.audiojapan.jp/2005ex.jpg")
でも
IE = GETACTIVEOLEOBJ("INTERNETEXPLORER.APPLICATION","http://www.audiojapan.jp/2005ex.jpg")
でもCOM_Errorが出てしまいます。ちゃんと該当ページは裏に出してあるのですが、、。
180166:2008/02/13(水) 23:51:25 ID:E5I/Ahuu0
あぁ
http://pc11.2ch.net/test/read.cgi/software/1176677869/13
の方も詰まってますね、、、。一度ホームページの方でも聞かせて
もらいます。
181名無しさん@お腹いっぱい。:2008/02/14(木) 06:34:24 ID:vVJB7APg0
DLLでUWSCに命令送ったらUWSCが動作するようにしたいのですが・・・
ウェイトを置いて命令がきていないかチェックするしかないですか
182名無しさん@お腹いっぱい。:2008/02/14(木) 11:24:09 ID:LyEfCpZO0
すんません、uwscをBATファイルで記述したいですけど(簡易exe化のため)
どんな風にかけばいいですか?
マクロファイルとuwsc本体は別のフォルダにあります。

183名無しさん@お腹いっぱい。:2008/02/14(木) 12:41:25 ID:bxIdMo7a0
マイドキュメントにあるtes123.txtを切り取って
c:\tmp\作業場 に貼り付けたいです
作業をした後は名前を123-OK-001.txtに変更してC:\tmpに保存して
c:\tmp\作業場のtes123.txtは削除

どなたか教えて下さい
184名無しさん@お腹いっぱい。:2008/02/14(木) 12:46:20 ID:iYmsxljW0
dosコマンド使えばOK
185名無しさん@お腹いっぱい。:2008/02/14(木) 18:53:54 ID:6xO5R7ZY0
>>182

ヘルプの起動オプション読め。

それから起動するだけならBAT不要。ショートカットに引数指定で十分。
186名無しさん@お腹いっぱい。:2008/02/14(木) 19:04:58 ID:bxIdMo7a0
sendstrで:とか;とか,とかどうやって書けばいいの?
「:」「;」「,」こういうの特殊文字っていうんかな??
変数置換が定義されてませんって出てきて進めない(涙
よろひく^^;
187名無しさん@お腹いっぱい。:2008/02/14(木) 19:20:44 ID:bxIdMo7a0
Uスクリプト 変数置換が定義されていません

どうすればいいのか??
誰か頼む

//秀丸置換@
hidemaru=GetID(" - 秀丸","Hidemaru32Class")
SLEEP(0.1)
scKey(hidemaru,VK_ALT)
SLEEP(0.1)
scKey(hidemaru,VK_S)
SLEEP(0.1)
scKey(hidemaru,VK_R)
SLEEP(0.1)

sendstr(置換,":",1,TRUE)
SLEEP(0.1)
sendstr(置換,";",2,TRUE)
SLEEP(0.1)
clkitem(置換,"OK",CLK_BTN)
SLEEP(2.0)
KBD(VK_RETURN)
SLEEP(0.1)
188名無しさん@お腹いっぱい。:2008/02/14(木) 19:31:19 ID:L/XlfUKK0
>>187
「置換」っていうのがUWSCの変数扱いになってる。

そこGetIDとかで取得したウィンドウIDを入れるところだし。
189名無しさん@お腹いっぱい。:2008/02/14(木) 19:49:26 ID:bxIdMo7a0
>>188
187だけどこれは秀丸でgrepしてそのままこの作業に入ろうとしてるんだけど
秀丸の窓は取得してると思うんだ
もっかい取得からやりなおしてみるありがとう

UWSCのヘルプ
//<マルチステートメント>
 ; (セミコロン)   // N88Basic的な1行IF文での変態的使い方はダメ
意味わかんねー^^;
190名無しさん@お腹いっぱい。:2008/02/14(木) 19:55:23 ID:L/XlfUKK0
if a then b; ccc

これはif文の一部に処理cccが入ってるけど、;で区切られてるからif文と関係なく実行されるもの。
つまり行を分けるべきだけど;を使うとこういうことができちゃうんだけど駄目だよってこと。
N88Basicのころは行数を短くすると処理が早くなるし、狭い画面いっぱいに使えるから変態行為もやってた。かも。
191名無しさん@お腹いっぱい。:2008/02/14(木) 20:05:55 ID:bxIdMo7a0
>>189
おお
ありがとう!

置換=GetID("置換","#32770")
SLEEP(0.1)

この2行を足したら先に進めた
結果的にエラーのままだけど
文字の問題のような希ガス

:を1つめのボックスに入力してくれない
;は2つ目のボックスに入力されてた

エラーになったのはこれです

sendstr(置換,":",1,TRUE)
SLEEP(0.1)
sendstr(置換,";",2,TRUE)
SLEEP(0.1)
clkitem(置換,"OK",CLK_BTN)
SLEEP(2.0)
KBD(VK_RETURN)
SLEEP(0.1)

なんとか検索文に: ←これ入力できないかね??
私じゃわけわかめだよ^^
192名無しさん@お腹いっぱい。:2008/02/14(木) 20:07:31 ID:bxIdMo7a0
最近しみじみ思うことがあるんだ
WEBとかパソコン関係は頭の良い人が圧倒的に有利だって事。
よろしく^^
193名無しさん@お腹いっぱい。:2008/02/14(木) 20:10:10 ID:bxIdMo7a0
あ、レス番間違い^^;
上のは
>>188さん
>>190さんへのレスね
まあ流れでわかるだろうけどw
194名無しさん@お腹いっぱい。:2008/02/14(木) 20:10:41 ID:KgRR6rpx0
exec("C:\Program Filesl\Hidemaru\Hidemaru.exe")
hidemaru=GetID(" - 秀丸","Hidemaru32Class")
scKey(hidemaru,VK_ALT)
scKey(hidemaru,VK_S)
scKey(hidemaru,VK_R)
grep=GetID("置換")
sendstr(grep,";",1,TRUE)
sendstr(grep,";",2,TRUE)
sleep(55)
clkitem(grep,"OK",CLK_BTN)

こうじゃね
195名無しさん@お腹いっぱい。:2008/02/14(木) 20:19:10 ID:bxIdMo7a0
>>194さん
レスありがとう
grepの窓と置換の窓は別のようなんだ
grepのときはgrepの実行と窓に書いてあったけど
置換のときは
白色□の後ろに置換って書いてあったよ
ありがとう^^
196名無しさん@お腹いっぱい。:2008/02/14(木) 20:25:02 ID:bxIdMo7a0
なんとなくわかってきた^^
ご飯食べてきてからもっかいテスト
夜に結果報告するよ
いつも悪いね
ありがとう
197名無しさん@お腹いっぱい。:2008/02/14(木) 20:59:36 ID:vVJB7APg0
表示しているページが適切であるか(404とかでない)を確認するにはどうしたらいいですか
198名無しさん@お腹いっぱい。:2008/02/14(木) 21:00:40 ID:sOXSfCfs0
カレー奢れよ
199名無しさん@お腹いっぱい。:2008/02/14(木) 21:38:15 ID:bxIdMo7a0
わかりましたー

OKボタンを押すのをオルト+Aに変えたらいけましたwww
置換=GetID("置換","#32770")
SLEEP(0.1)
sendstr(置換,":",1,TRUE)
SLEEP(0.1)
sendstr(置換,";",2,TRUE)
SLEEP(0.1)
KBD(VK_ALT,DOWN)
SLEEP(0.1)
KBD(VK_A,CLICK)
SLEEP(0.1)
KBD(VK_ALT,UP)
SLEEP(3.0)
KBD(VK_RETURN)
SLEEP(0.1)

みんなありがとう!
これをエクセルに読み込ませるんだけど
インデントの設定とかできるんかなあ?
まあやってみるよw

>>198
いいよ
連絡待ってるね
んじゃ
200名無しさん@お腹いっぱい。:2008/02/15(金) 00:21:39 ID:Sa76au+E0
Internet Exploereのウィンドウ操作に関するプロパティで、以下以外の
ものはあるでしょうか?
IE.Goback()
IE.GOforward()
IE.GoHome()
IE.Quit

特にリロードをしたいのですが、そのプロパティはあるのでしょうか?
201名無しさん@お腹いっぱい。:2008/02/15(金) 01:21:14 ID:z6KQ1/Pj0
リモコンの無い古いビデオデッキのチャンネル合わせするにはどんなスクリプトですか?
202名無しさん@お腹いっぱい。:2008/02/15(金) 01:48:34 ID:1nIrDTGD0
>>201
自動サーチだし。

>>200
メソッド入れてぐぐったらいいよ。
MSのサイトじゃないと一通りは出てこなかったけどURLが分からない。
203名無しさん@お腹いっぱい。:2008/02/15(金) 03:12:14 ID:1rOMlzijO
>>36のコードをOpera等 IE以外のブラウザで使用したいのですが,
どうしてもProgIDがわからず,CreateOLEObjが通らなくて困っています。

IE以外で Opera Lunascape Sleipnir なんでも構いませんので,操作方法のわかる方
ご教授ください。よろしくお願いします。
204名無しさん@お腹いっぱい。:2008/02/15(金) 09:02:49 ID:SJzUv89i0
SleipnirならCOMもってたと思うぞ
205名無しさん@お腹いっぱい。:2008/02/15(金) 16:13:26 ID:3aTa5ZAi0
スレッドの終了を待ちたいのですがHANDLEが使えません
whileで監視するほか無いですか
206名無しさん@お腹いっぱい。:2008/02/15(金) 16:24:10 ID:3aTa5ZAi0
4バイト変数はつかえませんか
207名無しさん@お腹いっぱい。:2008/02/15(金) 16:36:43 ID:QJujwoCz0
CHKIMG関数で、FOR〜NEXT文を使わずにA又はBの画像がある場合クリックとするにはどうすれば良いんでしょうか?
208名無しさん@お腹いっぱい。:2008/02/15(金) 19:23:07 ID:1nIrDTGD0
>>207
普通に両方chkimgすればいいよ。

>>206
数値は4バイトっぽいよ

>>205
終了を待つのならスレッド使わなければいいんじゃない?
スレッドでやりたいんならグローバル変数で終了フラグ使うかな。

それともWindowsのスレッド?
209名無しさん@お腹いっぱい。:2008/02/16(土) 09:40:39 ID:U+vL/fya0
>>200
更新の方法
1.sckey(ID, VK_F5)
2.IE.navigate("javascript:parent.frames.location='"+url+"'")

Javaスクリプト実行テスト
IE.navigate("javascript:alert(document.lastModified)") // テストコード
210名無しさん@お腹いっぱい。:2008/02/16(土) 10:13:58 ID:N+G4OVqo0
ヤフオクで(時計 ダイヤ)で検索したものを秀丸に貼り付けてるんだけど
ヤフーの窓が 「yhoo!オークション (時計 ダイヤ))」になってるんだ

秀丸への貼り付けで窓の取得は(時計 ダイヤ)で取得できてる
ヤフーオークションでページが行き過ぎて窓名が「yahoo!オークション」だけに変わったら
次に組んであるリピートを飛び越えてファンクション111に飛びたいんだ

IF GETID("(時計 ダイヤ)")<>("(時計 ダイヤ)")
next ふぁんくしょん111
ENDIF

IF文がエラーになるんだよね??
()を取っ払ったり付けたりしたけどわかんない
わかる方おねがいします
よろしく^^
211名無しさん@お腹いっぱい。:2008/02/16(土) 10:28:47 ID:wJj9sYpN0
いえいえ
こちらこそよろしくです^^
212名無しさん@お腹いっぱい。:2008/02/16(土) 11:53:32 ID:U+vL/fya0
>>210
GetIDの戻り値は数値
数値と文字列を比較しても常にFalseになる。

ウィンドウタイトルが同じだと、GetIDが期待したとおりには動かない。
ウィンドウの並びによってうまくいったりいかなかったり。
だからそのタイトルが一つしかないタイミングがあるんなら、
そのときにGetIDで取得したIDはその窓が入らなくなるまで保存して使う。

「名前を付けて保存」とかは確認画面まで同じだったりする。
そういうときに、確実に子の方のIDを取る関数をさっき作った。

//////////////////////////////////////////////////////
// 子ウィンドウを探す
// PID:親ウィンドウID
// CID:子ウィンドウID
Function GetChldID( PID, CID )
Result = 0
Ifb PID = STATUS( CID, ST_PARENT ) Then
result = CID
exit
endif

// リストから検索する
窓数 = GETALLWIN()
for i = 0 to 窓数 - 1
ifb PID = STATUS( ALL_WIN_ID[i], ST_PARENT ) Then
result = ALL_WIN_ID[i]
exit
endif
next
Fend
213名無しさん@お腹いっぱい。:2008/02/16(土) 12:01:11 ID:U+vL/fya0
GetChldIDで子IDが分かってないのに渡してる理由は、
「保存」をクリックした後に窓が閉じてるかチェックするためにGetIDしてるから。
そして、保存クリックするときに使ったIDDは、窓が閉じるまで変更しない。

そのチェックループ

// 保存窓が開くまで待ち、開いたら「保存」をクリック。
REPEAT; sleep(0.1); IDD = GetID("画像の保存"); UNTIL -1 <> IDD
sleep(0.1); ClkItem( IDD, "保存" )

// 窓を閉じる
while 1
sleep(0.4)
i = i + 1
// IDD = GetID("画像の保存")
IDC = GetID("画像の保存")
If -1 = IDC Then break

CID = GetChldID( IDD, IDC ) // 子ウィンドウがあればそのIDを取得
Ifb CID Then
ClkItem( CID, "いいえ" ) // ファイル保存ダイアログ終了ボタン
Else
ClkItem( IDD, "キャンセル" ) // 上書き確認メッセージ終了ボタン
Endif
wend
214名無しさん@お腹いっぱい。:2008/02/16(土) 21:11:55 ID:N+G4OVqo0
いよー^^
>>212
私はスクリプトは詳しくないんだけどよろしくw

>>213
>GetIDの戻り値は数値
>数値と文字列を比較しても常にFalseになる。
そうなんだ
数値が帰ってくるのか勉強なった!

>確実に子の方のIDを取る関数をさっき作った。
なんか凄い
全然理解できてないんだけどそれで戻り値がわかるんだね
おっしゃー修行するぞーw

なんとかエラー無しにデータをまとめれるようになってきたんだけど
調べてるときにページの行きすぎを止めれないんだよねw
エラー処理とか分岐とかわかんないしーwww

でも>>213がすっごいのを作ってくれたようだ
私はよくわかんないけど後でうちのUWSCちゃんに読み込ませてみるよ^^
いつも悪いね
ありがとう^^
215名無しさん@お腹いっぱい。:2008/02/17(日) 21:29:24 ID:f7Kyp/bt0
COMインタフェースを利用してもっと便利にUWSCを使いたいのですが、
ググってもCOMインタフェースについてあまり分らないのですが、
詳しいページや書籍等ご存じの方教えていただきたいのですが。
216名無しさん@お腹いっぱい。:2008/02/18(月) 03:48:29 ID:EJhG70Bd0
質問です。

エクセルから読み取ったデータを元に、
自動にプロフィールを入力してくれるマクロを作りたいです。
そこで問題になったのですが、
サイトから自動的に割り当てられたPASSが入力欄に

●●●●←こんな感じですでに入力されており、
それが邪魔して自分の好きなPASSを入力できません。

どうしたらいいのでしょうか?
元から入力されているPASSを消す方法が知りたいです。
どなたか詳しい方、教えてくださいよろしくお願いします。

217名無しさん@お腹いっぱい。:2008/02/18(月) 04:50:06 ID:iQ/tGdHz0
>>216
既存テキストを選択状態にして、Sendtextの後半の引数でTrueとかFalseとかいろいろ試す。
または、IE.Document・・・.Valueに代入する。
218名無しさん@お腹いっぱい。:2008/02/18(月) 12:41:58 ID:ETi5X6nr0
>>215
俺も知りたい。誰か説明サイトきぼんぬ。
219200:2008/02/19(火) 11:27:49 ID:EgETKIbh0
>>209
お答えしてくださってたのですね。ありがとう。お礼遅れてすみません。
220名無しさん@お腹いっぱい。:2008/02/21(木) 09:01:53 ID:QfENpo4n0
>>215
COM
http://pc11.2ch.net/test/read.cgi/tech/1168427595/

自作スクリプト置き場作りました。
http://scripts.web.fc2.com/
221名無しさん@お腹いっぱい。:2008/02/21(木) 09:54:27 ID:OkwqyFGT0
222名無しさん@お腹いっぱい。:2008/02/21(木) 16:41:56 ID:AbbPyXiE0
python普及してるだろ。uwscよかずっと。
223名無しさん@お腹いっぱい。:2008/02/21(木) 18:56:08 ID:3oZpW6X/0
ネトゲの操作で質問しにくる奴に朗報
ttp://www.internalsoft.jp/products/util/ghostreplay/about/
224名無しさん@お腹いっぱい。:2008/02/21(木) 20:38:38 ID:QfENpo4n0
【JARO】ゴーストリプレイを買っては…【に報告】
http://game13.2ch.net/test/read.cgi/mmosaloon/1177009352/


724 名前:ネトゲ廃人@名無し[sage] 投稿日:2008/02/20(水) 11:18:30 ID:???
msnのニュースページに「業界レポートDODA(デューダ)」とかいう広告で
気になったのがあったので見たついでに、その会社の概要を見てみようと思ったら
どこかで見かけた女性がいた。
ttp://haken-it.inte.co.jp/landing/hikoukai-m3.html
ttp://haken-it.inte.co.jp/landing/img/hikoukai_majime.jpg
なんか服装も同じような気がするけどこれはなんだろう。
ttp://www.internalsoft.jp/news/anshin/
ttp://www.internalsoft.jp/news/anshin/anshindane.jpg


725 名前:ネトゲ廃人@名無し[] 投稿日:2008/02/20(水) 12:34:26 ID:dxQiJ6bo
>>724
>こんにちは!インターナルのサポート担当松井です。

写真の人がしゃべってるみたい。
モデルさんがサポートなんかするわけないのにあやしいね。
225名無しさん@お腹いっぱい。:2008/02/21(木) 22:27:11 ID:QfENpo4n0
IEでファイルのダウンロードするとき、ゲージのある窓が親なはずなんだけど、
確認メッセージで「保存」クリックしたあと、なぜかID:23のやつが「名前を付けて保存」の子になってる。
最初に同じ名前の窓が同時に出るのを回避しようとしたんだけど、
IDは変わるしプロセスのハンドルも一緒だしスマートな方法が分からない。

最初に作ったときは「セキュリティの警告」が後ろについててなんの問題もなさそうだったんだけど、
警告のないタイプが出るようになったんでウィンドウハンドルで判断しようとしたけどうまくいかなかった。
クリックするたびに0.5秒sleepすればたいていはうまくいくけどまちまちだし・・・

Webページの保存でもプロセスを見て判断しててうまくいったように見えたんだけど、
次の窓が出るまでが一瞬だから、0.1秒のスリープが入るだけでたまたまうまくいってただけのようだ。

結局ウィンドウタイトルの変化をチェックするしかないのか・・・


ID PARENT PROCESS ICON VISIBLE ACTIVE BUSY TITLE CLASS
22 23 3080 0 1 0 0 ファイルのダウンロード #32770
23 -1 3080 0 1 0 0 ファイルのダウンロード #32770
↓↓↓
23 24 3080 0 1 0 0 名前を付けて保存 #32770
24 -1 3080 0 1 0 0 ファイルのダウンロード #32770

ファイル−名前を付けて保存 → Webページの保存
22 23 3080 0 1 0 0 Web ページの保存 #32770
23 -1 3080 0 1 0 0 YourFileHost.com - Free hosting for ALL your files S1 - Microsoft Internet Explorer IEFrame
↓↓↓
21 22 3080 0 1 0 0 Web ページの保存 #32770
22 -1 3080 0 1 0 0 YourFileHost.com - Free hosting for ALL your files S1 - Microsoft Internet Explorer IEFrame
226名無しさん@お腹いっぱい。:2008/02/22(金) 12:15:07 ID:k1zztVaQ0
>>225でWebページの保存の話をしてるが、これはちゃんとIDTOHNDを使って問題なかった。
区別がつかないのはST_PROCESSの話。

ところで、IDが変わる問題はある。
Vid-DL.UWSで名前を付けて保存やってるんでIDとハンドル取得してみた。
書式はID/ハンドル
想定どおりに動作する場合、親ウィンドウのIDはそのままで、古いIDD2のハンドルが消えてる。
想定しない動作の場合、親の方のIDが消えてる。
ハンドルは確かに親のウィンドウハンドルを維持しているから、IDを振る順番が間違っちゃったのかな。
これはバグ?

想定どおりの動作
http://www.yourfilehost.com/media.php?cat=video&file=beauty8.17_2.wmv
IDD:102/7080614 IDD2:103/8850052
IDD:102/7080614 IDD2:103/7080614 IDD3:105/8915588

途中で止まるのでIDDから取り直した場合。
http://www.yourfilehost.com/media.php?cat=video&file=beauty8.17_2.wmv
IDD:108/17959490 IDD2:107/8981124
IDD:108/17959490 IDD2:107/17959490 IDD3:0/9046660
IDD:107/17959490 IDD3:110/9046660
227名無しさん@お腹いっぱい。:2008/02/22(金) 13:26:39 ID:l6900mrp0
今日初めてuwscを知り仕事の単純作業を記憶させ再生して作業してる者ですが他作業しようと別窓開くと止まってしまいます。自分でも調べてるのですがまだまだ勉強途中で差し支えなければ教えてください。例@エクセルキー操作再生時にネット操作or別窓にてエクセル操作等です。
228名無しさん@お腹いっぱい。:2008/02/22(金) 13:30:12 ID:l6900mrp0
sage忘れてしまいましたすみません
229名無しさん@お腹いっぱい。:2008/02/22(金) 13:45:18 ID:k1zztVaQ0
>>227
たとえばメニューなら2度クリックしますが、その操作中に他の窓をクリックすると消えちゃってキャンセルされますよね。
そういうのはhttp://www.uwsc.info/download.html
の、一番下のツールでメニューのIDを調べてSendMessageする。

キー操作を再生することで自動化している場合、キー入力できる対象はアクティブウィンドウの一つだけだから
他のウィンドウをクリックしてアクティブにしちゃうと操作が中断されちゃう。
SCKEYとかなら操作対象をIDで指定できるけど、sleepを入れないと。
キー操作が早すぎても操作できないから。

>>226とかみたいにウィンドウがあっちがでたりこっちがでたりするようなやつとか
思い通りに操作できないことがある。

そんな感じで途中で止まってしまうってことがあるんで、
IF文を使ってちゃんとできた場合とできなかった場合とそれぞれ分けてコーディングする必要はある。

マクロに完全に任せてキーとか触らなければ、sleepで十分な時間を取っていれば単純にやることの羅列でもそれなりに使えるけど。
230名無しさん@お腹いっぱい。:2008/02/22(金) 14:36:25 ID:l6900mrp0
>>229 さんありがとうです。一応ツールでメニューのIDというか黄色い文字でるとこ
まで辿り着き左上に題名(←黄色文字 題名みたいなの)みたいな物がでた所まで行きました。(黄色文字)
そこからがメニューで終了とでるのですが???って感じで・・・(終了whi?)
でも機械音痴な私には凄い進歩でマクロがんばって勉強します。
夜までいじってどうしても解決しなければまた質問させて
ください。恐らくSendMessage←これのやり方が理解できてない(笑)
231名無しさん@お腹いっぱい。:2008/02/22(金) 14:55:54 ID:k1zztVaQ0
>>230
付属テキストに書いてありますが、
.uwsファイルの先頭にこの2行を追加し、
DEF_DLL PostMessageA(HWND,Long,Long,DWORD):Bool:user32.DLL
WM_COMMAND = $111

これでメニューを呼び出します。
PostMessageA(IDtoHND(ウィンドウid), WM_COMMAND, 調べたコマンドID, 0)

最初僕も迷いましたが、UWSファイルを直接実行しても窓がすぐ消えるので、
UWSC.exeを起動し、ChkCtlID.uwsファイルを開き、メニューIDを調べたいウィンドウをクリックし、メニューを選択。
っていう手順でやると、コマンドIDがとれるんで、それをPostMessageAの
「調べたコマンドID」のところに入れてやりますです。
もちろんIDtoHND(ウィンドウid)は、そのメニューを持つアプリのハンドルが必要なので、
ID = GetID("InternetExplorer")
とかで取得したIDがあれば、
PostMessageA(IDtoHND(ID), WM_COMMAND, 108, 0)
みたいにできます。


けど、IEとかでなく、メモ帳とかならこんなめんどくさいことをせず、
ClkItem( ID, "ファイル\開く" )
とかだけで開けたりします。

そのメニューが使えるかどうか確かめるには、
http://scripts.web.fc2.com/
に置いてあるGetItem.uwsでメニューアイテムを取得して確かめるのがいいかと。
232名無しさん@お腹いっぱい。:2008/02/22(金) 17:01:10 ID:1q4ksorC0
>>230
取っ掛かりとしては
ttp://lukewarm.s101.xrea.com/misc/SendMessage.html
からたどってみると判りやすい。UWSCじゃないがw
233名無しさん@お腹いっぱい。:2008/02/22(金) 23:48:52 ID:l6900mrp0
230です・・・・マクロって凄い便利です。でもでもでも
いじる事10数時間・・・・殺意が芽生えてくるぐらい
難しいですねww
でも知ってしまったら覚えなきゃ損だしPCスキル向上の為
頑張ります。まず本を買おう そして皆さん親切だから
わからなければ教えて君します。
ちょっとスレ違いっぽくなりましたが皆様感謝しております。
そして毎日ココ覗くの日課にします^^^
234名無しさん@お腹いっぱい。:2008/02/24(日) 21:47:22 ID:4hj+kB5v0
教えてください。IEをSCKEY(ID,VK_F5)で更新しているのですが、
いちいちウィンドウがアクティブになってしまい処理が重くなり
困っています。バックグラウンドで更新させる事は出来ないでしょうか?
235名無しさん@お腹いっぱい。:2008/02/25(月) 00:22:59 ID:JNkrKoMk0
すみません続けて質問お許し下さい。

自作関数の定義の部分でプログラムが終わってしまいます。
例えば以下の文を実行したのですが、msgbox(1)が実行されないまま
終わってしまうのです。

FUNCTION A(B)
RESULT = 1
FEND

MSGBOX("ok")

何か間違ってますでしょうか?自分だけでしょうか?
236名無しさん@お腹いっぱい。:2008/02/25(月) 02:33:50 ID:BlXku21t0
>>235
関数定義を先にやったことはないんだけど、
もしかしたら関数定義があるとメインプログラムの終了とみなすのかもね。

// メインの開始
MSGBOX("ok")
// メインの終了

FUNCTION A(B)
RESULT = 1
FEND

こうしたら動くよ。

>>234
1.IE.Refresh()
2.IE.navigate
3.url="http://~~"
  IE.navigate(javascript:parent.frames.location='"+url+"'")

http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/object/ie.htm
237名無しさん@お腹いっぱい。:2008/02/25(月) 03:47:04 ID:3s9ZBqva0
>>236
『更新ボタンをクリック』あるいは『F5 キーを押下』なら Refresh メソッドだけでいいんじゃないでしょうか
ttp://msdn2.microsoft.com/en-us/library/aa768258(VS.85).aspx
> This method is the same as clicking the Refresh button or pressing F5 in Microsoft Internet Explorer.

現在表示されてるページを Navigate するのなら
わざわざ JavaScript の一行野郎を実行しなくても
IE.Navigate(IE.LocationURL)
で出来ますよ

JavaScript の『parent.frames.』は不要だと思います
location だけで window オブジェクトの location プロパティにアクセスできます
更に location オブジェクトには reload メソッドが存在します
238名無しさん@お腹いっぱい。:2008/02/25(月) 04:26:34 ID:BlXku21t0
>>237
それが、キャッシュから読み込んでくるから更新状況が分からないんだよね。

refresh2で指定できるみたいだけどどう違うのかいまいち分からなくて。

で、自分がキャッシュを読んでるだけなのかサーバーが古いデータしか返してくれないのかも
自分では確認できなくて混乱するんで。
239名無しさん@お腹いっぱい。:2008/02/25(月) 04:30:44 ID:BlXku21t0
>>237
ああ、そうじゃない。

リフレッシュを繰り返すでしょ。
するとたまに通信できなくなって、エラーになるんですよ。
エラーになってリフレッシュすると、エラーのページをもう一度表示してしまうんで、
目的のページを表示するには、前のページに戻るか、もう一度URLを指定で、
ああ、そういうわけだから少なくともRefreshはだめなんだけど、・・・
240名無しさん@お腹いっぱい。:2008/02/25(月) 05:34:45 ID:3s9ZBqva0
>>238
それは知りませんでした
それなら URL を保存しておき Navigate するほうが手っ取り早いですね


Refresh2 はリロードの方法をオプションで指定できるようになってます
指定できるのは以下の定数
typedef enum RefreshConstants {
    REFRESH_NORMAL = 0,
    REFRESH_IFEXPIRED = 1,
    REFRESH_COMPLETELY = 3
} RefreshConstants;

REFRESH_NORMAL:
  サーバへ送信するヘッダに "Pragma:no-cache" を含まない
REFRESH_IFEXPIRED:
  未実装
REFRESH_COMPLETELY:
  サーバへ送信するヘッダに "Pragma:no-cache" を含む
  IE で Ctrl-F5 を押下するのと同じ

"Pragma:no-cache" ヘッダは、キャッシュされたコピーを返すのではなく、情報が確実に最新になるようにサーバに命じます
ユーザがブラウザで Refresh するとき、通常、このヘッダを送りますが、いくつかのサーバに問題を引き起こします


location オブジェクトの reload メソッドは
オプショナル引数でキャッシュやサーバからページをリロードするかどうかを指定できます
241235:2008/02/26(火) 00:17:05 ID:rAAfz3EM0
皆さんお答えありがとうございました。

しかしIE_KAWASE.Refresh2(3)やIE_KAWASE.location.Reload()、IE_KAWASE.REFRESH()
は自分の環境(XPとIE6)ではcomエラーが出ました。

IE.Navigate(IE.LocationURL)を実行するとhttp:///を読み込もうとしてエラーと出ます

url="http://www.yahoo.co.jp/"
IE.navigate(javascript:parent.frames.location='"+url+"'")
を実行すると、'"+url+"'"という変数はないと言われ実行出来ませんでした。

IE.navigate(javascript:parent.frames.location.reload()) では
変数javascript:parentが定義されていませんと出ました。

このスレの上の方で紹介されていた
IE.navigate("javascript:alert(document.lastModified)")
のテストコードはうまく作動するのですが、、。残念です。

>>236
関数の定義は後ですか、、、。分りました。ありがとう。
242235:2008/02/26(火) 00:43:32 ID:rAAfz3EM0

url="http://www.yahoo.co.jp/"
IE.navigate(javascript:parent.frames.location='"+url+"'")

IE.navigate(javascript:parent.frames.location.reload())
は()内の""が足りませんでしたね、、。一人で混乱してすみません。

どうもそれで旨く行きそうです。ありがとう。
243名無しさん@お腹いっぱい。:2008/02/26(火) 01:34:46 ID:2ogxLSNE0
ああ、ダブルクォート(”)抜けたまま書いちゃってすいません。

× IE.navigate(javascript〜
○ IE.navigate("javascript:parent.frames.location='"+url+"'")
○ IE.navigate("javascript:alert(document.lastModified)")
244名無しさん@お腹いっぱい。:2008/02/26(火) 02:46:57 ID:+iqRG5od0
>>241
説明が足りませんでした
>>237 は既に目的の URI を IE で開いてあることが前提です
IE.Navigate(IE.LocationURL)
http:/// を読み込もうとすることなどから推測すると
ページを表示していない状態でメソッドを呼んでいませんか?

location オブジェクトをいきなり参照できるのは JavaScript の話です
IE オブジェクトから location にアクセスするには
IE.Document.parentWindow.location
としなくてはなりません


OPTION EXPLICIT

DIM url = "http://pc11.2ch.net/test/read.cgi/software/1200289634/l50"
DIM ieobj = CREATEOLEOBJ("InternetExplorer.Application")

ieobj.Visible = True
ieobj.Navigate(url)

wait(ieobj); ieobj.Refresh2(3)
wait(ieobj); ieobj.Document.parentWindow.location.reload()
wait(ieobj); ieobj.Refresh()
wait(ieobj); ieobj.Navigate(ieobj.LocationURL)


PROCEDURE wait(browser)
  REPEAT
    SLEEP(0.1)
  UNTIL !browser.Busy AND (browser.ReadyState = 4)
FEND
245235:2008/02/26(火) 22:00:50 ID:rAAfz3EM0
すみません良く見るとオブジェクト関係でミスしてました、、。
自分でも簡単なサンプル書いて走らすと以下の全てで更新出来ました。

IE.Refresh()

IE.Refresh2(3)

IE.Document.parentWindow.location.Reload

IE.Navigate(IE.LocationURL)

IE.navigate("javascript:location='"+url+"'")

更新コレクションが出来ましたが、やはり一番信用があるのは
上から二番目か一番下なんでしょうかね。

皆さん本当に助かりましたありがとう。
246名無しさん@お腹いっぱい。:2008/02/26(火) 23:01:43 ID:p/wPDY2Y0
いつかqらIEsureになったんだよ
247名無しさん@お腹いっぱい。:2008/02/27(水) 18:42:51 ID:oRtd6cXy0
いよー諸君!元気でやっとるかねw
私は相変わらず貧乏暇なし状態(涙

以前ここでIE6からIE7にしたらおかしくなってIE6に戻せなくて困ったって話しただろ
あれ、解決できたんだよねwww
私がノートンゴーバック、ノートンセキュリティー入れてるのが原因なのかもしれないけど
WindowsのコントロールパネルからIE7を削除してもレジストリーいじくっても必ず復活してたのだ
仕方ないのでシマンテックに電話してノートンの一時的なOFF方法を確認して
ノートンゴーバックをOFFにしてもIE7はアンインストールできなかったんだ
(あちこちのサイトでアプリケーションの削除でIE7はアンインストールできるって解答してる馬鹿解答者は嘘つきなんだよね)
実際何回試してもIE7を削除できなかったんだ
ま、前置き長くなってスマソ
私みたいな状況で困ってる人がいたら下記のツールを使えばいいよ
見た目はIE7のままだけどUWSCを困らせる動作は止まった!
一応ざっとでいいから頭の隅っこに覚えておいて損はないと思うよ
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
↓ ↓ ↓ ↓ ↓
自動配布の無効化ツールキット (Blocker Toolkit) は英語版のみの提供ですが、日本語環境でも問題なく動作いたします。
マイクロソフトのページ
http://www.microsoft.com/downloads/details.aspx?FamilyID=4C12D92F-808D-4C21-96CA-DC191A0A8E41&displaylang=ja
一番下のほうにある↓これらも一緒にインストしたよ^^
setup.exeつーのが必要だったけどマイクロソフトのサイト内をくるくる廻ってたら見つかった^^
自動配布の無効化ツールキット (Blocker Toolkit) をダウンロードした人は、次の製品もダウンロードしています。
Windows Service Pack ブロッカー ツール キット
Virtual PC 2007 - 日本語
Windows XP Service Pack 2 サポート ツール
Windows 2000 および Windows XP 用の Windows Script 5.6
Office 2000 アップデート: Service Pack 3 (SP-3)
ページ トップへ

248名無しさん@お腹いっぱい。:2008/02/28(木) 02:12:03 ID:apCasTZq0
何度もすみません。スレッドとCOMインターフェイスを使って実行すると
以下のエラーメッセージが出ました。

「COM_Error:アプリケーションは、別のスレッドにマーシャリングされた
インターフェイスを呼び出しました」

もしかしてメインで定義されたCOMオブジェクトをスレッドで使うから
怒られているのでしょうか?


PUBLIC IE
PUBLIC URL = "http://www.google.co.jp/"

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.VISIBLE = TRUE
IE.NAVIGATE(URL)

REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.READYSTATE = 4

Thread IET()

PROCEDURE IET()
IE.navigate(URL)
FEND

メインとスレッド両方を跨いでCOMオブジェクトを使う方法があれば
教えていただきたいのですが、、。
249名無しさん@お腹いっぱい。:2008/02/28(木) 06:03:20 ID:o0h5i15Y0
>>248
メインでクリエイトして、別スレッドでGetするとか。
それがだめならメインでIEオブジェクトを使って、別スレッドではそのIEのIDを使って
ID経由で操作するとか。

IE = CREATEOLEOBJ()
ID = HNDToID(IE.HWND)

ん?
Thread IET(IE)

PROCEDURE IET(IE)
  IE.navigate(URL)
FEND

って引数渡しでもだめなのかな?
250248:2008/02/28(木) 22:53:15 ID:apCasTZq0
ありがとうございます。

>メインでクリエイトして、別スレッドでGetするとか。
それはダメでした。

>それがだめならメインでIEオブジェクトを使って、別スレッドではそのIEのIDを使って
>ID経由で操作するとか。
HWNDというのがあるんですね。IDを使ってどうやって操作するのか分りません。
UWSCの独自関数で使えるIDなのかな、、、。

>って引数渡しでもだめなのかな?
どうもスレッドの中でオブジェクトを扱えない様な、、、?

PUBLIC URL = "http://www.google.co.jp/"

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.VISIBLE = TRUE
IE.NAVIGATE(URL)

REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.READYSTATE = 4

Thread IET(IE)

PROCEDURE IET(IE)
  msgbox(IE.DOCUMENT.BODY.INNERTEXT)
FEND
251248:2008/02/28(木) 22:53:48 ID:apCasTZq0
そもそもスレッドの中でオブジェクトを生成する事さえも出来ません、、、。

thread IET()

PROCEDURE IET()

URL = "http://www.yahoo.co.jp/"

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.VISIBLE = TRUE
IE.NAVIGATE(URL)

MSGBOX("OK")

FEND
252名無しさん@お腹いっぱい。:2008/02/29(金) 00:21:16 ID:NsWU8N7p0
>>251
あ、メインが終わるとスレッドも終わるからね。
簡略化してるだけならいいけど。
とりあえず待ちの処理をいろいろ入れてみた
thread IET()
sleep(3)
str = input("入力してください。")
for i = 0 to 1000
next
MsgBox(str)
// ここでメインの終了
PROCEDURE IET()
FEND
253248:2008/02/29(金) 00:56:35 ID:6G2Wsix70
ありがとうございます。

メイン終わったらスレッドも終わる。気づきませんでした、、、、。

取りあえずsleepでメインを延命させ、引数はIEをわたしましたが、
やはりcom_errorが出ました。メインでオブジェクトを作り、
スレッドでそれを操作する事は出来ないのかな。
254名無しさん@お腹いっぱい。:2008/03/01(土) 17:12:41 ID:eAldKUe80
はじめまして、いつもありがたく使わさせて頂いてます

質問なのですが、サンプル集などにある【開いているウインドウを全て閉じる】スクリプトを実行すると
常駐アプリまで終了してしまう事があります。これを回避したいのですが、

// 開いているウインドウを全て閉じる
for i = 0 to GETALLWIN()-1      // 全てのウインドウIDをゲット(ALL_WIN_ID[]変数に入る)
  if STATUS(ALL_WIN_ID[i], ST_CLASS) = "Shell_TrayWnd" then Continue  // タスクバーはスキップ
  if STATUS(ALL_WIN_ID[i], ST_VISIBLE) then CTRLWIN(ALL_WIN_ID[i], CLOSE)
next


if STATUS(ALL_WIN_ID[i], ST_CLASS) = "Shell_TrayWnd" then Continue  // タスクバーはスキップ
↑この行の"Shell_TrayWnd"の部分を変更して追加?などと思っているのですが、ヘルプを見てもよくわかりません・゚・(ノД`)・゚・
具体的なアプリとは極窓、ObjectDockなのですが、常駐以外にも通用する回避方法を教えて頂けると嬉しいです

よろしくお願いします!
255名無しさん@お腹いっぱい。:2008/03/01(土) 18:00:35 ID:9+P79t8n0
>>254
Shellはタスクとか管理するプログラム。
TrayWndはタスクバーのこと

256名無しさん@お腹いっぱい。:2008/03/01(土) 18:25:09 ID:eAldKUe80
>>255
極窓、ObjectDockなどの一般アプリを管理するプログラム
また”TrayWnd”に該当する記述(単なるアプリ名なのか、はたまた…)

を代入すればいいということですよね?
それを調べる術が分からないんですが…
257名無しさん@お腹いっぱい。:2008/03/01(土) 18:30:42 ID:9+P79t8n0
>>256
調べる方法って、"Shell_TrayWnd"ってサンプルを使ってググるか
動いてる全部を拾ってリストを表示するかだよ

ST_VISIBLEがそうだったかは知らないけど、画面を持っているやつを消せばいいと思うよ。
258名無しさん@お腹いっぱい。:2008/03/01(土) 18:31:47 ID:9+P79t8n0
>>256
STATUSで取れる全部をリスト化して、
自分が消したいやつを選んで、
消したいのと消したくないのを区別するデータを選んで、それを条件に組み込めばいいんだ。
259名無しさん@お腹いっぱい。:2008/03/01(土) 18:33:08 ID:97OlrBbm0
そのSTATUS(ALL_WIN_ID[i], ST_CLASS)を表示させてみれば分かるだろ・・・
260名無しさん@お腹いっぱい。:2008/03/01(土) 19:44:25 ID:eAldKUe80
>>257-259
ありがとうございます!できました

サンプルの【全ウィンドウのタイトルとクラス名を取得する.UWS】で生成されるリストから行末尾" , @"を
if STATUS(ALL_WIN_ID[i], ST_CLASS) = "@" then Continue  // @はスキップ
とし、>>254の式に代入ですね!

ただリストの段階でのピックアップがアプリによっては面倒ですね…
Janeなんかは1つでも、ObjectDockは4つ必要でした(もしかしたらもっと少ない?)
効率的な抽出方法を模索してみます、ありがとうございました。
261名無しさん@お腹いっぱい。:2008/03/02(日) 00:46:24 ID:Yi/U7J7N0
スレッドを色々試していて、変な動作に気づきました。下の例ですが、
getidの部分で処理が固まります。でふいに通過したりするし、、、。
後ウェイトの処理の所で固まる事もあります。何か間違えているでしょうか。

thread test()
SLEEP(60)
PROCEDURE test()
while true
Print "ループの中に入りました"
ifb -1 = getid("google")
Print "getid処理終わりました"
IE= CREATEOLEOBJ("InternetExplorer.Application")
IE.VISIBLE = TRUE
IE.NAVIGATE("http://www.google.co.jp/")
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.READYSTATE = 4
endif
IE.navigate("javascript:location='"+"http://www.google.co.jp/"+"'")
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.READYSTATE = 4
sleep(1)
gettime()
Print G_TIME_SS
wend
FEND
262261:2008/03/02(日) 00:54:50 ID:Yi/U7J7N0
半角のスペースがみんな消えてる、、。見にくくなってすみません、、。
263名無しさん@お腹いっぱい。:2008/03/02(日) 08:02:54 ID:0Hd7f3qw0
>>261
GETID() で待ち時間を指定したらいいんじゃないでしょうか
GETID("google", "IEFrame", 0.1)
264名無しさん@お腹いっぱい。:2008/03/02(日) 11:13:56 ID:3bX/dcQb0
265261:2008/03/03(月) 00:10:03 ID:HohBPKNx0
>>263
ありがとうございます。そ、その様です、、。何のためにあるのか
分らなかった、、。
266名無しさん@お腹いっぱい。:2008/03/03(月) 15:28:56 ID:z3mUEoGC0
uwsc上からファイル内に特定の文字があるか高速に検索する方法って何かありますか。
なんとなく専用検索ソフトより遅い気がするのですが。
267名無しさん@お腹いっぱい。:2008/03/03(月) 15:36:12 ID:KGD2hC6R0
>>266
そりゃあスクリプトなんだから専用検索ソフトより遅くて当たり前でしょう。
んで漢字コードとかも自動認識だし余計時間もかかりますよ。
268名無しさん@お腹いっぱい。:2008/03/03(月) 15:44:42 ID:JPCXwBcX0
c言語かアセンブラでDLLをつくれ
269名無しさん@お腹いっぱい。:2008/03/03(月) 18:51:03 ID:8RHKXI150
その専用ソフトを呼び出すのが本筋
270名無しさん@お腹いっぱい。:2008/03/04(火) 20:27:53 ID:Uksio1e80
いよー諸君久しぶり〜^^
元気でやっとるかねw
私が聞きたいこととよく似た質問を誰か先に聞いてるねw>>266
私は相変わらずですよーwww

タグをコピリンしたいんだけど
タグとその上1行をコピペしたいんだよね
例えば<a href 〜 </a>なんだけど
その上の1行も一緒にコピリンしたいw
ソースのどこにあるかわからない <a href を探して
その上の行のhomeから<ahref えを超えて </a>までを少々コピリンをば^^
下の2行みたいな感じw

恵美の青空日記2008年3月4日
<a href="http://ooommmeeekkkooo">今日は青カン(ウフはーと</a>


誰か教えて下さい
いつも悪いね^^;
今度こそカレーおごらせて下さい

271名無しさん@お腹いっぱい。:2008/03/04(火) 20:45:09 ID:Uksio1e80
連カキスマソ
>>270です
できればフォルダー内にあるファイル全部一括で・・・

いやーここまで厚かましいと自分で恥ずかしいねwww
あ、<a href の上の行にある文字列は
英数字、漢字、ひらがな、カタカナ、空白、なんでもありで何文字かもわかんない^^;
ちょっと無理っぽいかな(´;ω;`)
誰かおながいしますよ(;´д⊂ヽ
272名無しさん@お腹いっぱい。:2008/03/05(水) 03:17:55 ID:wRSS+jLU0
正規表現で文字列を抽出できるDLL、文字が存在するか調べられるDLLを作ってやるよ
273272:2008/03/05(水) 06:22:57 ID:wRSS+jLU0
つくったよ
複雑な正規表現を使うと落ちます 
サポートはここでします
たとえば、次のようにサーチすれば、ローカルの、で始まる文書が取得できます

a=serach("test.txt","ローカルの.*?$");

http://fx10.web.fc2.com/test.zip
274名無しさん@お腹いっぱい。:2008/03/05(水) 06:53:10 ID:j4WRiulV0
>272

別にわざわざDLL作らなくても
VBScript.RegExp使えばいいんじゃね?
275名無しさん@お腹いっぱい。:2008/03/05(水) 07:06:49 ID:Wqjl56Jy0
>>270
”<”これを区切り文字として文字列を分割し、一塊ずつ取り出す。
サンプルは2chのスレの一覧からの切り出し
URL中のダブルクォートとかを拾わないために、>カッコを含む出来るだけ長いキーワードを使った方が良いと思う。
できるだけ長いといっても、/l50 みたいに必ずつくやつ。

2chは機械的に作り出したリンクだから間違いなく取り出せるんだけど、
手入力だと ” と > の間にスペースが入ってたりまちまちなんで、
それを自動で判断するとしたら、正規表現とかいうややこしいのを使う必要がある。

src = IEGetSrc(IE, "body")
// SendSTR( メモ帳, src + "<#CR>", 1, false, false )
for i = 1 to 100
  str1 = token( "<", src, true, false )
  if "" = str1 Then break

  // 切り出し
  str2 = BetweenStr( str1, "a href=<#DBL>", "/l50<#DBL>>" )

next

ちなみに、文字列の先頭からの切り出しは、自分で文字列を追加。
 BetweenStr( "先頭" + str1, "先頭", "/l50<#DBL>>" )
文字列の最後を切り出すには
 BetweenStr( str1 + "最後", "a href=<#DBL>", "最後" )
276名無しさん@お腹いっぱい。:2008/03/05(水) 07:19:19 ID:Wqjl56Jy0
あと、UWSCでは1文字ずつの取出しができないと思ってたんだけど、copyでできた。
これと、VK_の定義が文字コードと一致する仕様を利用して、
文字列→キーで入力を作った。
文字列が配列になってるのは、リストから選択したやつを使ってるだけなんで、普通に半角英数文字列入れたら動きます。

for i = 1 to length(PassList[SlctNum])
  sleep(0.01)
  char = Copy( PassList[SlctNum], i, 1 )
  if !CHKNUM(char) Then char = STRCONV(char, SC_UPPERCASE)
  KBD(ASC(char))
next
sleep(0.2)

ちなみにループ中とループ後のsleepは必須。
これがないと入力したキーが一部無視され、短くなる。
sleepなしに数箇所の入力をすると一つも入力されないので、
フォーカス移動の前後にも十分なsleepが必要。

これを使ったサンプルがある
対象がVMware+オンラインゲームなので動かせる人は少ないと思うけど、
コードとかやり方は参考になるかもなので見てみて。
http://scripts.web.fc2.com/VMware/
ここの、自動ログイン。
自分で使ってるけど、パソコンが重くなってるときにクリックできない場合があるのと、
Windowのサイズを間違ったときにフォーカスが合わなくて入力できない場合があるけど
フォーカスが合えばしっかり入力できますよ。
277272:2008/03/05(水) 07:42:00 ID:wRSS+jLU0
>>274
そんなのがあるんだ しらなかった
バグはUWSCと正規表現DLLの組み合わせによって起こるらしいことがわかり
回避する手立てはなさそうなことは判明しました
ちゃんと動くやつがあればそれを使えばいいんだけど
278名無しさん@お腹いっぱい。:2008/03/05(水) 07:46:15 ID:Wqjl56Jy0
>>277
UWSCで受け取る領域をあらかじめ割り当てないとだめですよ?
279272:2008/03/05(水) 08:41:42 ID:wRSS+jLU0
修復できました
http://fx10.web.fc2.com/test1-1.zip

>>270さんの1行前の取得も出来ます
初めのバージョンと互換性のあるサクラエディタ付属のDLLを使わせてもらいました
280名無しさん@お腹いっぱい。:2008/03/05(水) 12:59:57 ID:M+yWSsUM0
>>279
ありがとおおおおお!
マジで<a href= の部分取り出せた^^
>>279さんスゴス(驚いた!

あのーマジで言いにくいんだけど
<embed>abcdefg</embed>ではできないですか?
ホントはサーチしたいのは<embed>タグなんですよ^^;
ここでヒントもらって自分用に書き直そうと思ってたんだけどできないよー・゚・(ノД`)・゚・

何故なんだろか??
<embed>タグをサーチさせると
 ↓
「empty

-62366448文字目に出現します」
のエラーになっちゃうんだよね^^;

もう正直に言っちゃうと<embed>タグは約5000個集めたんだけど使えない^^;
秀丸のgrep機能ですぐ5000個のタグはバッチリ抜けたんですよ
でもタグに応じた文字が飛んじゃってる^^;

本当に申し訳ないんだけどお手数お掛けして恐縮しまくりなんだけど
お手すきのときで結構ですので例のUWSファイルの3行目と4行目を
<embed>タグに対応したものを教えていただけないでしょうか??
.dllはあのまま同じものを使えるんですよね
ホントにゴメン
すいませんけどおながいしますm(_ _)m
281272:2008/03/05(水) 23:20:14 ID:2mDDoFQk0
レスない・・動かないですか?
282名無しさん@お腹いっぱい。:2008/03/06(木) 00:18:39 ID:VQYLCHRN0
すみません。
excel = CREATEOLEOBJ("EXCEL.Application")
excel.VISIBLE = TRUE
excel.workbooks.add()
で作ったエクセルのオブジェクトから、ウィンドウの
タイトルを得るにはどうすればよいでしょうか?
283名無しさん@お腹いっぱい。:2008/03/06(木) 07:37:13 ID:sk3LEM5V0
>>282
IEなら、
status( HNDToID( IE.HWND ), ST_TITLE )
284282:2008/03/06(木) 23:07:04 ID:VQYLCHRN0
>>283
ありがとうございます。
status( HNDToID(EXCEL.HWND ), ST_TITLE )
でも行けました、、、。
285名無しさん@お腹いっぱい。:2008/03/06(木) 23:08:46 ID:mKRH7ZgZ0
タスク完了通知メール送信設定ってできますか?
もしくはログを自動で保存とかありませんでしょうか・・・
286名無しさん@お腹いっぱい。:2008/03/07(金) 01:41:00 ID:k6cMCfzr0
>>285
ログの保存ならコマンド実行が確実。

DOSプロンプトから
C:\> ECHO Hello! > CCC.txt

C:\> ECHO Hello! > CCC.txt
だと新規ファイル
C:\> ECHO Hello! >> CCC.txt
だと既存ファイルに追加
だったと思う。

UWSCにメール機能はないけど、COMでつかえるメールがどこかにあるらしい。
むずかしくてやめたけど。
ブラウザ利用で、自動ログイン自動メール送信なら可能。
時間かかるし、重い処理してると失敗すると思うけど。
287名無しさん@お腹いっぱい。:2008/03/08(土) 12:36:34 ID:cbPy6nuh0
おぱよ^^
ちょっとしつこくてスマソ
<object>〜</object>の取得はどうすんの?
いつも悪いね^^
288名無しさん@お腹いっぱい。:2008/03/08(土) 14:55:39 ID:cbPy6nuh0
連投ごめんちゃい^^
いつも使ってる有名なエディターなんだけど
</object>は検索するんだけど
何故か<object>を検索しないんだよね
んで下記のようなサイトを発見したんだけど
管理人さんへ問合せ先もメアドもない(;´д⊂ヽ
誰か<object>〜</object>の取り込み方教えて下さい

もの凄く詳しく書いてあるんだけど基礎がわかっていない私には理解できないんだよね・゚・(ノД`)・゚・
   ↓
UWSC:正規表現の導入
http://iriyak.adam.ne.jp/wiliki/uwsc.cgi?UWSC%3a%c0%b5%b5%ac%c9%bd%b8%bd%a4%ce%c6%b3%c6%fe#H-1ibce7p
289名無しさん@お腹いっぱい。:2008/03/08(土) 18:49:50 ID:9p4PYPfv0
条件分岐で違うブロックにジャンプさせる
GOTOみたいなものはどう記述したらいいんでしょうか?
また、ラベルに代わるようなものはありますか?
290名無しさん@お腹いっぱい。:2008/03/08(土) 19:49:27 ID:1+fYPJ8v0
>>289
ifb ?? then
 ??
else
 ??
endif

> GOTOみたいなもの
UWSC本家の掲示板に最近あった。
291名無しさん@お腹いっぱい。:2008/03/09(日) 01:00:14 ID:mJh/bzDH0
>>290
掲示板検索してみたらGOTO文にかわるものはないみたいですね
他のコードで代用もできるみたいなので
ありがとうございます。
292名無しさん@お腹いっぱい。:2008/03/09(日) 08:09:15 ID:n5HWgRrk0
いまどきGOTO実装してる言語のほうが珍しくね?
使う必要ないし。
293名無しさん@お腹いっぱい。:2008/03/09(日) 14:13:10 ID:FnBMSjIN0
そういう事じゃなくて>>289はジャンプしたい場所にある機能を
独立したプロシージャにすればいいだけだよ。
294名無しさん@お腹いっぱい。:2008/03/09(日) 21:02:51 ID:ymf/Bfq90
例外処理用の関数もあるしGOTO+ラベルいらねえな
295名無しさん@お腹いっぱい。:2008/03/09(日) 21:41:40 ID:tCNubXHu0
そういえば例外処理ついてたね
296名無しさん@お腹いっぱい。:2008/03/10(月) 02:56:41 ID:/jQr6EVQ0
確かにテスト時や例外エラー時だけはGOTOラベル使いたい時がある。
それが無かったら見た目がごちゃごちゃになって見にくい。
297名無しさん@お腹いっぱい。:2008/03/12(水) 10:01:48 ID:Ydsmuhdk0
FOR文の中で変数をかえていけないの?

kakurenbo = 1
for kakurenbo = 1 to 30
s = IEGetData(IE,"TAG=SPAN","kakurenbo") //
kakurenbo = kakurenbo + 1
print s
next

ページ内で取りたいタグネームは決まってるんだけど
コロコロ番号が変わるんだよね(kakurenbo)には本来、数字が入るんだけど
同じサイト内なのに数字がコロコロ変わるんだよ(X X)
んで変数使って”kakurenbo”を1〜30全部取得してみたいんだけど
For文の中では変数変わんないの?

他に何かいい方法あったら教えて下さい
いつもの小島ちゃんです^^
よろしくー

298名無しさん@お腹いっぱい。:2008/03/12(水) 10:07:48 ID:Ydsmuhdk0
ん?
間違えたプリントしてからkakurennboを変更しなきゃw
これです
今、間違いに気づいたのでちょっとテストしてくる
結果が良好だったら報告するので
報告がない間はこの質問は有効ということでよろちくびw

kakurenbo = 1
for kakurenbo = 1 to 30
s = IEGetData(IE,"TAG=SPAN","kakurenbo") //
print s
kakurenbo = kakurenbo + 1
next
299名無しさん@お腹いっぱい。:2008/03/12(水) 10:23:37 ID:Ydsmuhdk0
こんちわ連投スマソ小島ちゃんデシ
だめだー・゚・(ノД`)・゚・

変数は変わんないままUWSCがタイムオーバーエラーになっちゃうよ

ページ内のタグネーム全部取ってみることはできないですか?
よろしくお願いしますm(__)m 
300名無しさん@お腹いっぱい。:2008/03/12(水) 11:16:22 ID:Ydsmuhdk0
何度も連投すいません小島ちゃんです
結局ソース直読みしてきたんだよね^^;
こんなかんじなんだけど↓
「こんにちは小島ちゃんです^^」の部分をテキストとして保存したいんだ

----------------------
取得したい部分のHTMLはこんな感じ
<div id="kojima">
<span >こんにちは小島ちゃんです^^</span>
</div>
----------------------
やったこと@
s = IEGetData(IE,"TAG=SPAN","kojima") //
print s
結果@ uwscがタイムアウトエラー(プリント表示なし)
-----------------------------------
やったことA
s = IEGetData(IE,"kojima") //
print s
結果Auwscがタイムアウトエラー(プリント表示なし)

-----
「こんにちは小島ちゃんです^^」をテキスト保存の方法
どなたかわかる方おながいしますm(__)m
301名無しさん@お腹いっぱい。:2008/03/12(水) 11:50:13 ID:Z4vMk30L0
小島ちゃんが女の子だったら手取り足取り教えてあげる^^
302名無しさん@お腹いっぱい。:2008/03/12(水) 11:54:09 ID:Ydsmuhdk0
小島ちゃんレポ
やったことB
s = IEGetData(IE,"<div id=<#DBL>kojima<#DBL>>") //
print s
結果B UWSCがタイムアウトエラー(プリント表示なし)orz

小島ちゃんただ今UWSCのヘルプと格闘中w

>>301
過去すれ嫁www
303名無しさん@お腹いっぱい。:2008/03/12(水) 12:06:10 ID:Z4vMk30L0
>>302
読んだけどわかりませんでしたので諦めます^^
304名無しさん@お腹いっぱい。:2008/03/12(水) 12:07:29 ID:Z4vMk30L0
ヘルプはわかりづらいからぐぐったほうがいいよ^^
305名無しさん@お腹いっぱい。:2008/03/12(水) 12:10:26 ID:Ydsmuhdk0
テストしてる間にUWSCから「関数BusyWait(IE)がありません」ってでてくるんだよね
なんでだろか??
さっきまで動いていたのにね
一度パソコンリセットしてみよか?
306名無しさん@お腹いっぱい。:2008/03/12(水) 12:21:27 ID:Ydsmuhdk0
ダメだ・゚・(ノД`)・゚・
なんか頭の中がおかしくなってきたw
UWSC.LOGより
08/03/12 12:06 Uスクリプト: 関数: BUSYWAIT がありません
4行目: BUSYWAIT(IE)
08/03/12 12:07 Uスクリプト: 関数: BUSYWAIT がありません
4行目: BUSYWAIT(IE)
08/03/12 12:08 Uスクリプト: 関数: BUSYWAIT がありません
4行目: BUSYWAIT(IE)
08/03/12 12:14 Uスクリプト: 関数: BUSYWAIT がありません
4行目: BUSYWAIT(IE)
08/03/12 12:15 Uスクリプト: 関数: BUSYWAIT がありません
4行目: BUSYWAIT(IE)
08/03/12 12:16 Uスクリプト: COM_Error:例外が発生しました。
146行目: UNTIL (! IE.busy) AND (IE.readyState=4)

ちょっと用事に出かけてくるね^^
その予定って本当は午前中に済ませる予定だったのだがwww

みんなぁおらに力を貸してくれ
おながいしまうm(__)m

でわ行って来ます^^
307名無しさん@お腹いっぱい。:2008/03/12(水) 16:38:50 ID:Qmf9SonL0
>>285
亀レスだがsmailならコマンドプロンプトで使えるよ。
ttp://dip.picolix.jp/disp2.html
308名無しさん@お腹いっぱい。:2008/03/12(水) 22:31:03 ID:Ydsmuhdk0
こんばんは!
^^
本家の過去ログ見てたらもの凄いツールを配布されてる方が居た!
そのツールのお陰で問題解決できそうだよ^^
ここにも紹介したいくらいなんだけど
勝手にリンク貼っていいのかわかんないのでやめておくけど
ホント感謝ですよ
本当にありがとうございます!詩人さんm(__)m
309名無しさん@お腹いっぱい。:2008/03/12(水) 23:04:42 ID:svbcowWk0
>>308
そんなすばらしいものを見つけたんならリンクを貼りまくってGoogle検索の上位に上がってくるように配慮すべき
310名無しさん@お腹いっぱい。:2008/03/12(水) 23:41:15 ID:Ydsmuhdk0
>>309
お礼のメールを出しておいたんだけど
初めてなのでそこまで話できなかったよ
全く知識0でここまでやってこれたのみんなのお陰だよ^^
作者のumiumiさんはじめUWSC繋がりで私にアドバイスくれた方達のおかげだよ(;´д⊂ヽ
みんなマジでありがとぉー
これかたもよろしくー
311名無しさん@お腹いっぱい。:2008/03/13(木) 01:39:54 ID:gHDCdWsY0
なんか日記化してるな...
312名無しさん@お腹いっぱい。:2008/03/13(木) 02:00:43 ID:j6+mhtLj0
最近、「UWSCの小島です」って色んな方にメールしますタ^^;
おやしみー
313名無しさん@お腹いっぱい。:2008/03/13(木) 02:02:33 ID:j6+mhtLj0
あ〜眠すぎて間違えた
「UWSC(スレ)の小島です」ってメール出してます^^;
ちかれた〜おやすみー^^;
314名無しさん@お腹いっぱい。:2008/03/13(木) 05:13:12 ID:j7l7jR/NO
エクセルのセルのデータを取得してブラウザ起動してそれにURL渡す(次のセルデータに行って繰り返し)
このような場合、どうやったら早いでしょうか
315名無しさん@お腹いっぱい。:2008/03/13(木) 10:23:48 ID:R3S1mQwG0
>>314
セルをクリック
316名無しさん@お腹いっぱい。:2008/03/13(木) 14:22:37 ID:j6+mhtLj0
こんちちは! ^^
URLにpgって名前で変数を使いたいんだけど"pg"だとエラーになります
(pg)ではタイムアウトエラーです
っていうかIE.Navigateでサーチ機能すると遅すぎてタイムアウトエラーになるのかな?
URLに変数使う方法教えて下さいお願いします

クリックで次へ進もうとすると他の命令が原因だと思うんだけど
読み込み違反になっちゃうんだですよ
なのでナビゲーターからアドレス指定したいんだけど
URLに変数使おうとテストしてるんだけど進まない(xx)
グーグルみたいに検索機能のあるサイトなので
とりあえず例として下記グーグルでUWSCをググッたアドレスです
よろしくお願いします
----------------------------------
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
BusyWait(IE)
Sleep(0.2)
pg=0
FOR pg = 0 to 300
IE.Navigate("http://www.google.co.jp/search?q=UWSC&hl=ja&lr=&start=0&sa=N")
BusyWait(IE)
Sleep(0.2)
pg = pg + 10
NEXT

//          エンドから1個目の&の左側の数字を↓ 変数pgにしたいんです
//http://www.google.co.jp/search?q=UWSC&hl=ja&lr=&start=0&sa=N //1ページ目
//http://www.google.co.jp/search?q=UWSC&hl=ja&lr=&start=10&sa=N //2ページ目
//http://www.google.co.jp/search?q=UWSC&hl=ja&lr=&start=20&sa=N //3ページ目
//よろしくお願いします
// IE.Quit // IE終了
317名無しさん@お腹いっぱい。:2008/03/13(木) 14:41:08 ID:R3S1mQwG0
>>316
ループカウンタの使い方が悪い。

pg=0
pg = pg + 10
while pg <= 300
wend

または
for pg = 0 to 300 step 10
next

あと、ループにこだわる必要はない。
ためしにやるだけなら直接書く。
データの加工は段階的に試す。
そして一つ一つを実行したら十分な時間を空ける。
中身がちゃんとできたらループに入れる。

pg = 0
url = "http://www.google.co.jp/search?q=UWSC&hl=ja&lr=&start=" + pg + "&sa=N"
print url
IE.Navigate(url)
sleep(3)

ループごとにメッセージ表示でとめる方法もある。
if msgbox("メッセージ", BTN_YES or BTN_NO)
ヘルプのサンプルコードを見ること。

ヘルプの使い方は、関数とかなら「キーワード」で検索。
定数とかは「検索」で検索
分類で見るときとか一通り確認したいときに目次を使う。
318名無しさん@お腹いっぱい。:2008/03/13(木) 14:42:14 ID:R3S1mQwG0
訂正

pg=0
while pg <= 300
  pg = pg + 10
wend
319名無しさん@お腹いっぱい。:2008/03/13(木) 15:18:39 ID:j6+mhtLj0
>>318さん
即レスありがとうございます!
貴重なご指摘重ねてお礼申し上げます^^
ループ参考になおさせて頂きます^^
それからURLの件もありがとうございます!
まだまだ先は長そうなんですが皆さんのお陰で少しづつですが前進できています
ありがとう!! ^^

PS:先ほどの読み込み違反の原因がわかりました
検索結果をプリントしてたんですが
上から順番に読み込んでは戻って次のところへってやってるうちに
検索結果が変わっちゃうときがあるみたいなんです
その時に print str の部分が読み込み違反になってUWSCのerror画面が出るみたいなんです
対策方法は思いつかないので取り合えずいまはこのままテスト続行してみます
細かいところまでホントにありがとうございます
でわ修行続けますね^^
320名無しさん@お腹いっぱい。:2008/03/13(木) 17:45:16 ID:j6+mhtLj0
>>318さん
ありがとうございます!
無事ページを移行することが出来るようになりました^^
まだまだ先は長そうなんですけど
今日の一歩は本当に大きな一歩のような気がします
本当にありがとうございました!

まだうwscから出る読み込みエラーの対処方法はわかんないけど
頑張ります^^

あ、それからさっき接続先のサーバーから下記のような文字が帰ってきてエラーになりました
スリープをもっと入れたらエラー回避できそうでしょうか?
---------------------------------
500 Internal Server Error
問題が発生しました。
対応を開始します。 問題 をカスタマー サービスに報告してください。
Also, please include the following information in your error report:
この下に暗号文のような意味不明な英数字が40行ほど続く。
ー----------------
スリープで回避できるかな?
それとも、また検索時と実際にページにアクセスしたときのずれなのふぁろうか??
とにかくみなさんありがとうです
321名無しさん@お腹いっぱい。:2008/03/13(木) 18:25:59 ID:j6+mhtLj0
これなんだよね我が家のUWSCさんはよくこれなるんですよ
多分、検索結果とページを読み込みにいった時に既にそのデータが無くなっているか
順番が変わってしまっているのかという気がするんですが
どうすればいいのか( ゚д゚) (゚д゚ )ワカラン
------
08/03/13 18:15
Uスクリプト: COM_Error:モジュール 'UWSC.EXE' のアドレス 00527A24 で
アドレス 00000000 に対する読み込み違反がおきました。
36行目: STR = ":"小島ちゃん^^ + IE.document.getElementByID["kojima"].innerText + "<#CR>"
--------
リターンしてすぐゴーバックすれば復旧しそうな気がするんだけど
if errorのあとどう書けばいいのか?
わかんないんですよ(涙
また過去スレ読ませてもらお^^;
いつもありがとう
322名無しさん@お腹いっぱい。:2008/03/13(木) 18:50:57 ID:R3S1mQwG0
>>319
strが空っぽのときにprintするとエラーになるのかもね。
僕はprint使わずに、メモ帳に書いてるからそういう経験あまりない。

回避するには、
if len(str) Then print str

とかしたらいいかも。
323名無しさん@お腹いっぱい。:2008/03/13(木) 20:34:17 ID:j6+mhtLj0
>>322さん
なるほど読み込むものがない可能性もあるよね^^
そのif文頂きます!
ありがとう本当に助かってます
私一人では本屋さんに行ったり図書館に行ってもあまり進まなかったんです
(なんせ覚えはよくないほうだからねw)
でもみなさんのお陰で大きな一歩を前進できました
ホントありがとう
まだまだ修行しますのでご指導よろしく^^
324名無しさん@お腹いっぱい。:2008/03/13(木) 20:37:50 ID:FPBVV4/s0
UWSCなら本よりググったほうが情報多いでしょ
325名無しさん@お腹いっぱい。:2008/03/14(金) 13:09:31 ID:1KrL1vwK0
UWSCを最近知ったのですが、当方前にpythonのマニュアルを少し見てループや条件分岐の仕組みを少し理解した位でまったくの素人です。
UWSCに関してググってもサンプルコードだけで、
基本的な事を解説してるサイトが少ない為、まず小林シンヤさんの本を買いました。

VBスクリプトなどを理解したらUWSCも扱いやすいでしょうか?
この機会にスクリプトの勉強をしたいのですが、その他に勉強になるような言語はありますか?
326名無しさん@お腹いっぱい。:2008/03/14(金) 13:30:37 ID:wmpjZOyV0
>>325
Pythonの方が絶対使いやすいし、
将来サーバサイドスクリプトを作るときにも役立つし絶対お勧め。
Win32ライブラリもかなり豊富。
Win32特化ならAutoIt32がお勧め。UWSCと同じようにCOMとの強調もできる。
ただし海外モノはUnicodeが扱いにくい。
327名無しさん@お腹いっぱい。:2008/03/14(金) 16:04:19 ID:CP6wZR9q0
Rubyも良いかもね。
328名無しさん@お腹いっぱい。:2008/03/14(金) 19:31:30 ID:JrxQc9QB0
>>326
Pythonおもろいわ。Rubyもいいんだけど、なんかすっきり書ける。
この辺りは好みで分かれるんだろう
329名無しさん@お腹いっぱい。:2008/03/14(金) 21:07:26 ID:XxySJsyA0
Tabkeyを1秒間隔で20回連続でクリックする簡単な命令あれば教えて下さい
330名無しさん@お腹いっぱい。:2008/03/14(金) 23:53:33 ID:qcKgsiwY0
これはいったい何のソフト?
張ってあるリンクからHPとんで調べようと思ったけど
ウィルスバスターが邪魔するからちょっと警戒してるんだ。
331名無しさん@お腹いっぱい。:2008/03/15(土) 00:33:16 ID:Zlv2GiF00
>>330
別に要らないだろ・・・危険なんだから見ない方が
332名無しさん@お腹いっぱい。:2008/03/15(土) 03:31:04 ID:QvEkJigM0
教えてください。以下の方法でメインとスレッドを同期させようとしましたが、
途中で止まります。どこかおかしい所があれば教えてください。

PUBLIC cnt
PUBLIC testS
PUBLIC sleeptime = 0.01
THREAD testS()

for cnt = 0 to 100000 //メインループ開始

while !(testS = "READY") //スレッドがREADYするまで待機
sleep(sleeptime)
wend

testS = "GO" //スレッドにGOの合図

while !(testS = "WORK END") //スレッドがWORK ENDするまで待機
sleep(sleeptime)
wend

testS = "RETURN" //スレッドにRETURNの合図

cnt = cnt + 1

next //メインループ終了
333名無しさん@お腹いっぱい。:2008/03/15(土) 03:32:12 ID:QvEkJigM0
//続き、、、

PROCEDURE testS() //スレッド定義

while true //スレッドループ開始

ptestS = "READY" //メインにREADY完了の合図

while !(testS = "GO") //メインのGOの合図待ち
sleep(sleeptime)
wend

print cnt //WORK

testS = "WORK END" //WORK ENDの合図

while !(testS = "RETURN") //メインのRETURNの合図待ち
sleep(sleeptime)
wend

wend //スレッドループ終了

FEND

もし何か良い同期の方法があれば教えてください。
334名無しさん@お腹いっぱい。:2008/03/15(土) 03:41:35 ID:QvEkJigM0
すみません、、、、、
×ptestS = "READY" //メインにREADY完了の合図
○testS = "READY" //メインにREADY完了の合図

自分の環境ではだいたいcntが1000までで止まります。
335名無しさん@お腹いっぱい。:2008/03/15(土) 04:32:53 ID:xSY6GtgH0
先日、私が言ってたもの凄いツールなんだけど
あまりにも強烈でそのファイルばっかりあちこちで使ってたんよ^^
まぁ調査系のファイルなんだよね
で、そのファイルと他で探してきたサンプルファイルを合体させると超凄いことになるw
はずなのに・・・
callしたらなぜか1行目のIEが変数定義されていませんってなる
んでその超凄い調査系のファイルをCALLしないようにすれば治る
ん〜〜
非常に美味しそうなこと思いついたのに残念でしゅ^^;
私はマクロの勉強中で初心者なんだけど自動マクロってオモシロイよね
あーCALL・・・
336332:2008/03/16(日) 01:34:46 ID:7nlFsKrV0
>>332
ダメですしばらくするとやはりtestSにゴミが入ってエラー出ます、、。
不思議ですね。
337名無しさん@お腹いっぱい。:2008/03/16(日) 10:29:58 ID:xu6yVOAt0
>>336
変数名と関数名が同じだとしたら問題じゃね?
338名無しさん@お腹いっぱい。:2008/03/16(日) 13:55:07 ID:lHEaIYsA0
AutoItXにUWSCのChkImg相当の機能って無いですかね?
339名無しさん@お腹いっぱい。:2008/03/16(日) 14:49:40 ID:yhkNh2H90
なんでここで聞くの?
340名無しさん@お腹いっぱい。:2008/03/16(日) 16:46:52 ID:3+1/OsBi0
>>338
たしかautoitxはwshとかからautoit32の機能を使うためのDLLだろ?
uwscから使えばいいんじゃね?
341名無しさん@お腹いっぱい。:2008/03/16(日) 17:05:18 ID:yu4lpC7C0
ありがとうございます
342名無しさん@お腹いっぱい。:2008/03/16(日) 19:12:45 ID:sydmBoC60
主ファイル名の末尾が数字であるものを検索したいのですが
検索結果が思い通りにいきません。
例えば、getdir(xxx,*1.txt) とした場合に、123456789.txt や abcdefghijk.txt
といったファイルも検出されてしまいます。
何がおかしいのか分かる方がいらっしゃいましたらご教授お願いします。
343名無しさん@お腹いっぱい。:2008/03/16(日) 19:51:52 ID:3+1/OsBi0
>>342
Windowsのバグ(仕様)。
コマンドプロンプトで同様にやってみると判る。
SFN形式で"xxx~1.txt"みたいのが引っかかるから。
最後が数字の場合はとりあえず全部拾ってからregexpなりで検索した方がいい。
※ひょっとしたら解決方法もあるかもしれんが、
少なくともuwscでは直接サポートしていない。
344名無しさん@お腹いっぱい。:2008/03/16(日) 20:11:03 ID:bQCmAcvk0
俺ならgetdir(xx,"*.txt")でtxtファイル名を全部取得してから
ファイル名の文字列から ".txt"の前の文字を取り出してそれが数字"0-9"なら該当ファイルとして判断する、

という具合にする
345342:2008/03/16(日) 20:14:08 ID:sydmBoC60
>>343
早速の回答、ありがとうございます。
正規表現は自分には敷居が高いっぽいので、getdirではすべてのファイルを取得しておいて
最後が数字かどうかは別スクリプトを書いて判断させるようにします。
346名無しさん@お腹いっぱい。:2008/03/16(日) 21:35:24 ID:3+1/OsBi0
その例に絞れば ”*1.txt” でリストを取得して
拡張子の前のファイル名の最後が”1”じゃないのをはじけばいいね。
GetDirやったあと…↓みたいな?

For i= 0 to Length(GETDIR_FILES)-1
str= GETDIR_FILES[i]
If Pos(”1.txt”,str,-1)=0 Then Continue
Print str
Next
347332:2008/03/16(日) 21:46:00 ID:7nlFsKrV0
>>332
分りました。testSに合図を文字列で送っていたのですが、
数値にすると転けなくなりました。インタープリターが
処理について行けなくなる様ですね。でもスクリプトが
見づらくなるなあ。
348名無しさん@お腹いっぱい。:2008/03/16(日) 22:21:35 ID:xu6yVOAt0
>>346
短縮される場合、~(チルダ)数字.拡張子ってなるから、
str = Between(文字列, "~", ".txt")
とやって、strが数字文字列かをチェックすればほとんどの場合でいいんじゃないかな。

もちろん、直接チルダ+数字とかいう名前を指定してたらはじいちゃうけど、
そんな名前をつけるやつが悪いわけで。
349342:2008/03/16(日) 22:43:45 ID:sydmBoC60
あわわ、親切な人がいっぱいだ。

for i=0 to getdir(xx,"*.tib",false)-1
 if chknum(copy(GETDIR_FILES[i],length(GETDIR_FILES[i])-4,1)) = true then ほにゃらら
next

で完了しました。thx!
350名無しさん@お腹いっぱい。:2008/03/17(月) 01:27:09 ID:du5tLGOf0
教えてください。
try except を使って、エラーが出たらスクリプトを再起動させたいのですが、
callで自分自身を呼び出すと当然多重定義で怒られます。どうすれば良いで
しょうか?
351名無しさん@お腹いっぱい。:2008/03/17(月) 01:49:31 ID:QDXtGff10
>>350
try〜は使ったこと無いが…

call ”自分自身”
 ↓
Exec("uwsc.exe 自分自身.uws")
exit
じゃ駄目?
352名無しさん@お腹いっぱい。:2008/03/17(月) 02:23:45 ID:du5tLGOf0
ありがとう。
Exec("uwsc.exe 自分自身.uws") っていう書き方が出来るんですね!
今テストでエラープログラムしてみたんですが、最後にexitexit
書き忘れてuwsc無限増殖してます。システム止まる前にお礼します。
さようなら。
353名無しさん@お腹いっぱい。:2008/03/17(月) 11:39:56 ID:RhbcoUhH0
ワロタw
354名無しさん@お腹いっぱい。:2008/03/17(月) 15:33:59 ID:QcvQ6V6R0
いよー諸君^^
元気でやっとるかねw
今更ながら自分の無能振りを再確認できる事実をただ今わかったw
超亀レスですが
>>272さん本当にマジでありがとう!
テストでは私のターゲットとするものがエラーになってションボリしてたんだけど
これを応用すればよかったんだ!

ヒントは既にだしてくれていたんだ
本当にありがとうございましたm(__)m
たった今、活用することに成功!
>>272さん
遅くなりましたが心からお礼申し上げます
ありがとうございました!!
355名無しさん@お腹いっぱい。:2008/03/18(火) 01:36:11 ID:5RrgFx/F0
昨日tryの事でお聞きした者ですが、またで申し訳ないのですが、

TRYがループやブロックを跨いでいる、もしくはブロックの対応が取れていない

というエラーが出るのですが、ループは跨いでいないので、ブロックを跨いでいるか、
もしくはブロックの対応が取れていないのだと思いますが、ブロックとは何でしょうか?
356名無しさん@お腹いっぱい。:2008/03/18(火) 17:58:20 ID:juIaKe4V0
UWSCのクラスから、オブジェクト指向を学ぼうかと(本格的にではなく)
思っているんですが、
基本的にはウィンドウ操作が目的のUWSCでどんなクラスを作ればいいのかよくわかりません。

とりあえず入会とかの自動投稿データを連想配列使っているので
それのデータの保管と取り出しをクラス化してみようかと思いますが・・・

あと、プロ版でもないのにWindowsの画面を作れないのは分かってますが、
グラフィックライブラリを使ったそういうのがあれば教えてください。
357名無しさん@お腹いっぱい。:2008/03/18(火) 18:02:59 ID:BSUro9Qf0
uwscはオブジェクト指向ではないので学ぶのはムリです
358名無しさん@お腹いっぱい。:2008/03/19(水) 01:38:01 ID:K+RBk8Rf0
なにかと最近タイミングの悪いことが続く小島ちゃんです^^
こんばんはwww

FOPENについて聞きたいんだけど
FOPENについてなにやら難しそうな話をしてたのでカキコしないで退散してきましたよw
ヘルプに書かれてる「ファイル名」とは場所の指定とかしなくていいの?
c:\にあるtest.txtを読み込んで1行目と2行目をメモ帳に書き込みたいんだけど
できねー・゚・(ノД`)・゚・

ほとんどサンプルのコピペなんだけど3行目で行き詰ってしまったよ^^;
TEST.TXT : 定義が間違ってます←UWSCさんがお怒りですw

id = FOPEN("TEST.TXT", F_READ or F_WRITE)
For MODE = 1 to FGET(id, -1)
TITLE = FGET("TEST.TXT", 1) //ここでエラーになるんよ(;´д⊂ヽ
HONBUN = FGET("TEST.TXT", 2)
next

C:¥とか場所は書かなくていいんのかな?
どなたか優しい方お願いします
359名無しさん@お腹いっぱい。:2008/03/19(水) 06:24:35 ID:6AecRCJe0
ヘルプ見れば分かるでしょ。
戻値 = FGET( ファイルID, 行, [列, ダブルコーテイション] )

なんのためにID取ってるのかと。
ていうかループで行数取るときはIDて書いてるのに・・・

ディレクトリは、何も書かなければカレントディレクトリでしょう。

>>357
手続き型だけどオブジェクト指向でやれるよね?
360名無しさん@お腹いっぱい。:2008/03/19(水) 14:46:19 ID:K+RBk8Rf0
こんちわ^^
>>359さんレスありがう小島ちゃんです^^
お陰さまで3行目をクリアーできたよ
まだ結果が思ったように行かなくてちょっと困ったチャンです^^;

C:\にあるTEST.TXTをカット&ペーストしたいんだけど
FGETしてないみたい
TEST.TXTのエンドに123456って書き込むんだよね
メモ帳立ち上げて貼り付けるテストしてみたんだけど
1行目2行目をクリップボードに取り込んでいないみたいFGETが間違ってる??
--------
id = FOPEN("C:\TEST.txt", F_READ or F_WRITE)
if id < 0 then EXITEXIT
A = 1
For A = A to 5 step 1
FGET(id, -1)
Fget(id,A)
Fput (id,A)
A = A + 1
Fget(id,A)
Fput (id,A)
A = A + 1
NEXT
----------
あとファイル名に日時を入れたいんですよ
こっちもも失敗続きなんだよね(x x)
TIME = G_TIME_YY4 + G_TIME_MM2 + G_TIME_DD2 + G_TIME_HH2 + G_TIME_NN2
SCKEY(GETID("#32770"),VK_K,VK_J,VK_M, "+TIME+" )
どなたか教えていただけませんかお願いします
361名無しさん@お腹いっぱい。:2008/03/19(水) 15:19:05 ID:6AecRCJe0
>>360
何土地狂ってんですか。
SCKey()はKBD()と同類で、ただ単にCtrl+Cとかいう組み合わせキーを操作できるってだけで、
文字列を送信するためのものじゃありません。
ちゃんとこっちを使いましょう。
SENDSTR( ID, 文字列, [番号, 送信モードフラグ, ACC指定] )

関数を忘れたらヘルプの解説のほうを検索してみるとか
過去に作ったやつを参考にするとか・・・

IEのJavaScriptでURLをつなげる部分を勘違いしたんでしょうけど
"+TIME+"
っていうのはそのままの文字列になってしまいます。
IEのところでやってたのは、何かって言う文字の間にURLをはさむっていうやつです。
"何か" + url + "何か"

>For A = A to 5 step 1
>FGET(id, -1)
・・・
FGET(id, -1)は行数です。
最後の行とか全部の行を見ないなら関係ないですね。
行数分繰り返すって書いてたのは、、、

>For A = A to 5 step 1
>A = A + 1
>A = A + 1
>NEXT
・・・あの、無理にループしなくてもいいんですよ?
FORのループカウンタをループ内で変更するのは最悪の方法です。
362名無しさん@お腹いっぱい。:2008/03/19(水) 19:03:05 ID:6AecRCJe0
http://www.google.co.jp/
なんかグーグルが使いやすくなった。

GoogleのOfficeはバグだらけって話だったけど、トップページから呼びやすくなってるし
データもGoogleに保存できるんだろうし(使ってないから知らないけど)
個人的なものでスクリプト組むんなら、MS Officeが入ってない環境でも使える
GoogleDocumentなんかいいんじゃないかと思う。

まあ、
OLEの機能を使うにはローカルにインストールされてないといけないから、
IEの中のアプリの操作は、かえって使いにくいかもしれない。

スクリプトの待ちも回線状況次第だし、いつまで待てばいいのか調べようがないし。
363名無しさん@お腹いっぱい。:2008/03/19(水) 22:39:03 ID:K+RBk8Rf0
>>361さん
いよー^^
小島ちゃんです
お忙しい中、ご解答頂きありがとうございます
その行単位なんだけど先に大切なことを調べるのを忘れてた^^;
エディター式とかワープロ式とか言うらしいんだけど
改行コード単位で2行づつ切り取りたいんだ
さっきもあるエディターのアドインで
禁則処理とか調べてツールををダウンロードさせてもらって
試してみたんだけど
設定が良くわかってないからなのか上手くいかなかった
ちなみにエクセルの分割処理で有名らしい
分割君ってフリーを先ほど試させてもらったら
7分程度で固まってエラーになってたw
1万行(約4M)くらいのファイルが多いんだけど
大きいものになれば4万行(16M)くらいのもある
1000行程度10個に分けてからやってもいいんだけど
最後はそうなるかも・・・
これらをすべて改行コードでの2行で分割したいんだ
1行で(1つ目の改行コード)まで半角で400から500くらいかな??
FGETって改行コード単位で取得できるのか調べないといけなかった(x x)
とにかくありがとでした^^
364名無しさん@お腹いっぱい。:2008/03/19(水) 23:50:04 ID:6AecRCJe0
>>363
1万行のファイルを2行ずつでファイルに分割するとかアホみたい・・・

そういうのはDOSのバッチファイルでやればいいんだけどね。
typeが表示コマンドで、行を表示するたびに > でファイルに出力できれば最高なんだけど。
たとえば
split.batファイルを作って
for てきとう
  type 2行 > ファイル%番号%
next
みたいな。
まあ、標準コマンドはこういうことできないから拡張されたDOSコマンドを探せばいいと思ったけど
ズバリそのものがありました。
http://www.vector.co.jp/soft/dos/util/se300863.html

ファイル名の指定が分からないけど
まあ
rename でてきたファイル名のリスト 変更後のファイル名
っていう1万ほどの行を自動生成してバッチファイルにして実行でおk。

こういうこまごましたツールを使う場合、それぞれの手順と名前付けとかのルールとかを
しっかり手順書に書いておかないとわけが分からなくなるから。
どこでどのツールを使うかもね。

結局データに変更が加わったときとか、壊れたデータが見つかったときとか、
やり直す手順とか、作成後のデータに手を加えてた場合にどうするかとか。

UWSCは便利だけどFGETとかは行番号の指定がおかしくても特別エラー返さないから問題ある。
もしUWSCでする場合でも、いちいちID取得とかしてたら時間の無駄だから
DOSコマンドで ”echo 文字列 > ファイル名”   (>が新規で>>が追加かな)
って言うのを実行してDOS任せがいいよ。
365名無しさん@お腹いっぱい。:2008/03/20(木) 00:13:00 ID:AOC2U8Id0
どうも1行ずつの処理は出来ないっぽいけど、DOSコマンドを組み合わせて使うとこんなことができます。
http://homepage2.nifty.com/zaco/dos/page09.html

UNIXだったら1行ずつを処理できると思うんだけどね。

ちなみにDOSコマンドで結合するときはこれをループで回す。
巨大分割ファイルの結合には今もDOSコマンド使うはず。
http://homepage2.nifty.com/zaco/dos/page10.html

いまどきDOSやってる人はいないだろうけど、
テキストファイルの操作はDOSでかなり出来ちゃうんです。
DOSにできないことをUWSCでしようとしても逆に大変。
UWSCでやるくらいならもうちょっと本格的なプログラミング言語使った方がいい。
せめてpythonあたり。
366名無しさん@お腹いっぱい。:2008/03/20(木) 01:35:59 ID:4KQCVSQX0
>>363

なんでUWSCでやるかな。
perlとかruby覚えな。数行で書ける。

そもそも4万行を2行ずつ分割したら2万個のファイルできるわけだが、いったい何に使うんだ?
目的をかなえるための手段を間違えてないか?
367名無しさん@お腹いっぱい。:2008/03/20(木) 04:01:35 ID:AOC2U8Id0
>>366
なんでPerlとかRubyみたいなクソ言語勧めるかな。
UWSCはそれらよりましだよ。
もちろん守備範囲の違いは分かってるけどさ。
あと、UWSCは読み書きがCSVを前提にしてるから順次アクセスみたいに効率よくなさそうなのは欠点。
けど行数を言うならアセンブラでもない限りそう変わらん。
この程度は。
まあ逐次処理を前提にしてないから逆に行番号を指定するのはめんどい。
2行程度ならいいけど・・・
複雑になるとファイルごとに行番号を管理しないとな。

>>363
とりあえずこんな感じ。動かしてないけどたぶんいけるんじゃないかな。
予定通りファイルを開けなかった場合中断するとか必要だよ。
InFileName = "???"
IFID = FOPEN( InFileName, F_READ )
For i = 1 to FGet(IFID, F_LINECOUNT) / 2
 OutFileName = "???" + FORMAT( i, 5 ) + ".txt"
 OFID = FOPEN( OutFileName, F_WRITE )
 str = FGET( IFID, i*2-1 )
 FPUT( OFID, str, 1 )
 str = FGET( IFID, i*2 )
 FPUT( OFID, str, 2 )
 FCLOSE( OFID )
Next
FCLOSE( IFID )
368名無しさん@お腹いっぱい。:2008/03/20(木) 19:01:28 ID:AOC2U8Id0
>For i = 1 to FGet(IFID, F_LINECOUNT) / 2
これは
For i = 1 to FGet(IFID, F_LINECOUNT) step 2
って書いたほうがわかりやすいな。
せっかくstepあるんだし。

InFileName = "???"
OFCnt = 1 // 出力ファイル数カウンタ
IFID = FOPEN( InFileName, F_READ )
For i = 1 to FGet(IFID, F_LINECOUNT) step 2
 OutFileName = "???" + FORMAT( OFCnt, 5 ) + ".txt"
 OFID = FOPEN( OutFileName, F_WRITE )
 str = FGET( IFID, i )
 FPUT( OFID, str, 1 )
 str = FGET( IFID, i + 1 )
 FPUT( OFID, str, 2 )
 FCLOSE( OFID )
 OFCnt = OFCnt + 1
Next
FCLOSE( IFID )
369名無しさん@お腹いっぱい。:2008/03/20(木) 23:30:45 ID:gu1azQFe0
『タスクトレイの特定のアイコンを右クリック
(負荷等の影響で一定時間メニューが表示されなかったらもう一度右クリック)

メニューが表示されたら任意の操作をクリック
(メニューが何らかのウィンドウに隠れてしまった場合でもクリック可なら尚いいです)』


となるようなスクリプトはどのようにして記述したらよろしいでしょうか。
getidやTasktray.GetList等をググったりして試してみましたが、
良好な結果は得られませんでした。
アイコンの判別は画像処理ではなく、WindowIDにて行いたいです。
370名無しさん@お腹いっぱい。:2008/03/20(木) 23:32:07 ID:1wGbtP/h0
こんばんわ^^
>>364
おぉ探してくれたんだありがと!
あとでテストさせてもらうよ^^

>>365
気遣ってくれてありがと
パイホン??おっぱいほんww

>>366
答えは簡単な理由だよ
あくまで目的は「全自動」だからUWSCに決めた他と比べることはしない
細かいことが出来るからこの言語あの言語とかいう発想はないんだよね
最初に「オート」「マクロ」「スクリプト」ってのを探しまくったときに
自動で色々してもエラーが少ないのがUWSCだとおもったからさ
プログラミングとか特に興味があるわけでもないからね
今は目標達成までにはパソコンでの情報も一部必要だかなっておもったからやってるだけw
ところが思ったように進まないんだよねw

>>367->>368さん
いつも悪いね涙もんだよ(;´д⊂ヽアリガト
大切に使わせてもらうね

シフトジスとかエンコードは知ってたけど
改行コードも3種類あったんだね初めて知ったよ
DOS時代の先人がいいもの残してくれていた。これで綺麗なテキストになるよ^^
みんなのサンプルもきっと後進の人たちに役に立つはずだよ
いつもありがとう
んじゃノシ


371369:2008/03/21(金) 00:24:55 ID:G1v5m36m0
たびたび失礼します。
私がやりたいことは以下のURLに書いてあるようなことです。
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=65&log=ON&cnt=1
現在もコンテキストメニューのアイテム取得方法は確立されてないのでしょうか。
372名無しさん@お腹いっぱい。:2008/03/21(金) 01:01:06 ID:Yx+HtvA50
>>369
カラー判定ではエラーになることがあるから気持ちはわかるよ^^
ベクターで「ショートカットキー」で調べたら色々あった
動かしたいソフトにホットキーがないのならWindowsの設定を変更して
OS全体に反映させることの出来るショートカットキーを作るツールで
起動と終了のショートカットキー設定してそれからUWSで操作するのがよい鴨^^;
私は言語の事はわかんないけどそう思ったんよ^^
オヤシミノシ
373名無しさん@お腹いっぱい。:2008/03/21(金) 01:43:45 ID:bim0ANEG0
>>371
右クリックのメニューは専用のWindowsAPIがあった。
UWSCでも右栗メニューはあった気がする。
ちょっと探してみたけど分からない。
とりあえずシステムメニュー取得に使った関数あげときます。

UWSCのGETCTLHNDでメニューハンドルが取得できるけど
標準メニューとシステムメニューだけ。

GetMenuStringA.....MF_BYPOSITION
で、メニューハンドルと項目の位置から、メニュー項目名は取得できるけど
これが、・・・
一度は表示したメニューじゃないと取得できない。
つまり、表示のためにクリックしてやらないといけない。
最後に表示された状態を記憶していて、それを取得するから。

DEF_DLL GetMenuItemID(HWND,Long):Long:USER32.DLL
DEF_DLL GetMenuStringA(HWND,Long,Var string,Long,Long):Long:USER32.DLL


確実に右クリメニューを表示する方法は、Winキーとセットの、メニューキーを使うのがいいかと。
右クリメニューの取得方法は・・・
374名無しさん@お腹いっぱい。:2008/03/21(金) 07:12:22 ID:Yx+HtvA50
おぱよ^^
>>368さんがせっかく作ってくれたUWSファイルなので
早速、使わせていただこうとしたら 変数1が定義されていません
とエラーになるのでOFCNTの前に1 = 1 とか 1 = 2 って入れたり
もしかして変数名が使ってはいけない名前なのかと思い
OFCNTをCNTにしたけど変数定義できない
変数宣言を1行目に移動させても定義できない^^; なぜだろか?


>>371
もっかい>>369を読んで見た
>メニューが表示されたら任意の操作をクリック
>(メニューが何らかのウィンドウに隠れてしまった場合でもクリック可なら尚いいです)』
メニュー操作はWindowsの関連付けでは無理ぽ
ベクターでダウンロードさせてくれるこのツールどうでしょうか?
Winsize
ttp://www.vector.co.jp/soft/win95/util/se054629.html

使いたいソフトをこれで四隅に固定させると
UWSCカメラの座標でメニュー操作できそうな希ガス
95、NT、汎用とか古いソフトのようなのでどうかわかんないけど
私も必要になることがあるかも知れないのであとで試用レポいれるね
んじゃ^^
375名無しさん@お腹いっぱい。:2008/03/21(金) 07:16:02 ID:bim0ANEG0
>>374
>変数1が定義されていません

ああ、
OFCnt = 1 // 出力ファイル数カウンタ
これが全角数字だからですね。
半角に直したらいけると思います。
376名無しさん@お腹いっぱい。:2008/03/21(金) 08:29:08 ID:Yx+HtvA50
おぱよ2回目〜^^
>>371さん
私が進めてみたツールは使えるけど使えないかなw
念のためウィルスチェックして設定して色々試していたら
このツールはショートカットキーが使えるのかテストしておこうと試してみたんだ
使ってみたら面白いのであれこれと遊んでいたら
なんと画面が逆さまになっちゃった(X X)ほえ=
それでマウスで終了させようとしたんだけど
画面が逆さまになっているとこれが難しい
仕方ないのでパソコンをリセットしたら
びっくり!!
なんとリセットしても設定はそのまんま東だよwww
(全部設定しなおすのは簡単なんだけどマウスを上手く操作できなくて起動させれない)
ダハハw
来たか!このときがw
私はノートンGOBACKをインストールしているので時間を戻せることが出来るのだwww
って事でGOBACKして画面をなんとかもどしたけど
お勧め取り消しておくよ
ごめんね^^;
377名無しさん@お腹いっぱい。:2008/03/21(金) 08:31:00 ID:Yx+HtvA50
>>375さん
早速ありがとうです
今から書き直してみます^^
いつもすいません^^;
378名無しさん@お腹いっぱい。:2008/03/21(金) 08:51:18 ID:Yx+HtvA50
やった!
>>375さん
マジでありがと!!
上手くできました^^
しかもきちんと改行コードづつにしてくれてある(∩´∀`)∩ワーイ
本当にありがとうございました!
ここで相談してみてよかったです
ありがとうございました!

379369:2008/03/21(金) 13:22:35 ID:G1v5m36m0
多数レスありがとうございます。
結果的に言うと、やりたいことは達成できました。
ChkCtlID.uwsにてコマンドIDを調べる方法です。

DEF_DLL PostMessageA(HWND,Long,Long,DWORD):Bool:user32.DLL
WM_COMMAND = $111

id = GETID("対象アプリウィンドウ名の一部")
PostMessageA(IDtoHND(id), WM_COMMAND, コマンドID)

実はやりたいことは、このアプリに実装されているアプリ自身を再起動すると言うものです。
そこで・・新たな問題にぶち当たってしまいました。
再起動した後、新たに出現したウィンドウをクローズし、タスクトレイアイコンのみにするということを行いたいのですが、
新たにgetidを行ってもエラーも出ず無反応で、スクリプト実行中のまま止まって(待ち状態)しまいます。
以下スクリプトを記載します。

----------ここから
while id > 0 //アプリが完全に終了するまで待つ
sleep(0.2)
wend

id2 = GETID("対象アプリウィンドウ名の一部")  
while id2 < 0 //再起動されたアプリが完全起動するまで待つ
sleep(0.2)
wend
ctrlwin(id2,close) //再起動されたアプリのウィンドウを閉じる
----------ここまで

idとid2の関係は要するに、ウィンドウタイトルとクラス名が同じで、PIDが違うということだと思います。

380名無しさん@お腹いっぱい。:2008/03/21(金) 14:03:01 ID:bim0ANEG0
>>379
IDは変数だから代入した後、自分で消さない限り変化しませんよ。
IDTOHAND()とかでハンドル値が取得できなくなればアプリが終了したと判断できるかも。
381369:2008/03/21(金) 16:10:49 ID:G1v5m36m0
ありがとうございます。
-----------
h = IDToHnd(id)
while h = empty
sleep(0.2)
wend
-----------
こんな感じでよろしかったでしょうか。
これはこれで上手く動いてるように思えます。
しかしまだ問題が・・・。

情報後出しで申し訳ないですが、この対象アプリは起動中、タスクトレイと実ウィンドウの2つを有します。
GETALLWINでの結果も複数のウィンドウ名が存在します。
sleepを各所に入れて確認してみると、どうもid2=GETIDの処理がウィンドウの描画を待たずに行われているらしく、
後続のctrlwinが正しいウィンドウに適用されてないように見えます。
実際の視覚的な見え方としては、アプリが終了した段階でスクリプトが完結します。

適当なsleepをid2=getidの前に入れ、確実にウィンドウ自身のIDを取るようにするとctrlwinまで正常に完結します。
しかしsleepだと負荷等の要因でウィンドウの描画が遅れるとダメなので・・・。
382369:2008/03/21(金) 16:16:09 ID:G1v5m36m0
よくよく考えたらh=enptyも違いますね。もうどうしたら。。
383名無しさん@お腹いっぱい。:2008/03/21(金) 17:23:16 ID:bim0ANEG0
>>381
>こんな感じでよろしかったでしょうか。
だめです。

while IDToHnd(id)

無効なIDを指定した場合にハンドル値に0が返る場合はこれで動きます。
たしか0になりますよ。

GetAllWinで取得すると、たとえばIEの名前を付けて保存は、
「ファイルを開く」という名前のウィンドウが取得できます。
これが時間がたつと「名前を付けて保存」に、名前だけじゃなく姿も変身します。

自分の環境(PenM1.7GHz、メモリ768MB)では、0.1秒のスリープを2回入れて足りなかったことは
今のところありません。
まあわざわざスリープのループを入れる以外に、時間のかかる場面では必ず
sleep( 0.1 ) としていますが。

画像がプレビューされるのは tweakdlg.exe で抑えてます。

GetAllWinでとったら、あとは親子関係を見れるんですが、IEの名前を付けて保存では
(窓が重なって出るタイプの場合)親子関係がちぐはぐに取れてしまうので
どちらを取得しても操作できるように、キー操作を送ります。

どちらかが閉じるなど変化した場合、改めてIDを取り直す必要があります。

それぞれのループが期待したタイミングで抜けているか分かるように、
何か画面に表示したほうがいいと思いますよ。
384名無しさん@お腹いっぱい。:2008/03/22(土) 04:00:57 ID:hYv9PU5Y0
教えてください。
IEでエラーダイアログが出るのですが、それを自動で消すには
どの様な関数を使えば良いでしょうか?ウィンドウのIDを使って
SCKEYで送りましたが、反応しないのです。やはりダイアログの
IDとかあるのかな、、、。どうやって取得するのか分りません。
どうかご教授お願いします。
385名無しさん@お腹いっぱい。:2008/03/22(土) 04:06:55 ID:/9GaBY/s0
>>384
IDが分からなくても、IDに0を指定するとか、KBDで操作することも出来るよ。
その場合にはアクティブにしておく必要があるけど。
386名無しさん@お腹いっぱい。:2008/03/22(土) 10:48:35 ID:uwluNexQ0
さっきから触り始めてるけど関数名やら定数名がclk,chk,slctとか
母音の省略してるのが覚えにくいな
perlのelsifみたいな半端な省略になじめなかったのを思い出した
多少冗長でも英単語として打ち込みやすい名前にしてほしかったなぁ
387名無しさん@お腹いっぱい。:2008/03/22(土) 20:54:34 ID:hXhCPs/k0
fukidasi
fukidashi
hikidashi
hikidasi
katsuodashi
irikodasi
388名無しさん@お腹いっぱい。:2008/03/24(月) 17:09:06 ID:KvbvCAaW0
UWSC内で20行程度のvbsスクリプトを実行する方法はありませんか?
exe化してexecでvbsを実行するのはプロセス起動のたびに重くなり実用的ではありませんでした。
389名無しさん@お腹いっぱい。:2008/03/24(月) 18:11:55 ID:Vlmb/vSp0
公式のサンプルでも見てみたら?
390名無しさん@お腹いっぱい。:2008/03/24(月) 20:06:47 ID:UkOeBQsK0
いまUWSCを学んでる最中なのですが
whileやrepeatでの条件の間や条件まで繰り返すのではなく
条件になったら処理実行、みたいなのはどう書けばいいですか?
391名無しさん@お腹いっぱい。:2008/03/24(月) 20:25:37 ID:kvNqIwSe0
>>390
ループを抜けたら実行
392名無しさん@お腹いっぱい。:2008/03/24(月) 20:41:33 ID:kvNqIwSe0
>>388
vbsの仕様は知らないけど、
たとえばuwsファイルもuwscに関連付けるとuwsファイルをexe化しなくても実行できるようになる。
vbsが関連付けてあって実行できるようにしてあれば別にexe化する必要はないよ。


>>390
Repeat sleep(1) Until 条件 // 条件を満たすまで待機
処理

または
While True // 無限
 sleep(1)
 If 条件 Then 処理 // 条件を満たしたときだけ処理。
Wend

下のやり方で注意するべきなのは、一旦条件を満たすと、条件を満たさなくなるまで何度も繰り返すこと。
そして、条件を満たすのが一瞬だけだった場合、たまたま処理されたりされなかったりすること。
条件を組み合わせたり条件に範囲(不等号)を使って解決する。

たとえばC言語のforループなら
for( i = 0; // 初期値
  i < 10; // 条件
  i++) { /*処理*/ }

これはUWSCでは
for i = 0 to 9 step 1
next
と同じループ
393名無しさん@お腹いっぱい。:2008/03/24(月) 20:46:35 ID:UkOeBQsK0
>>391 >>392
親切にありがとうございます
今から試してみます!

394384:2008/03/25(火) 02:11:07 ID:5jeLiSq40
>>385
ありがとう。結果が出たら報告しようと思ってましたが、
IEにエラーが出た時点で何故かtry-exceptが反応せず、
IEのエラーメッセージのOKボタンをクリックした時点で
反応するという腹立たしい状態のままなのでお礼遅れてしまいました。
try-exceptは捨てます。
395名無しさん@お腹いっぱい。:2008/03/26(水) 17:25:32 ID:XKgd3I8+0
ランチメニューの0〜9番をキーボードに割り当てて
ボタン一つでそれらを切り替えることって出来ないですか?
猫まねきを使って割り当てられるかなと思いましたが
ランチメニューを出して0〜9のボタンを押せるようになるまでに
1秒ぐらい待たないと押せないみたいで猫まねきでは無理でした。
396名無しさん@お腹いっぱい。:2008/03/27(木) 15:32:02 ID:nQk3KZjN0
>>384
ClkItem(getid(ダイアログ名),"OK")
で行きませんか?
397名無しさん@お腹いっぱい。:2008/03/28(金) 06:17:26 ID:UI5QIPHr0
>>385
AutoHotKeyではどうか
398名無しさん@お腹いっぱい。:2008/03/28(金) 19:45:51 ID:XHzVdbzE0
自宅pc内での作業なのですが指定したフォルダーにある全てのHTMLファイルから
@:<title></title>部分と<a href= </a>を抜き出してリンクつきのタイトル一覧表を作る
A:出来上がったタイトル一覧表のタイトル部分をクリックして対応HTMLファイルを表示させる
この流れを行いたいんです
@を行う方法を教えて下さいm(__)m
399名無しさん@お腹いっぱい。:2008/03/28(金) 23:10:23 ID:V3lXQSp40
HTMLファイル読み込んで文字列操作すればいい。
またはその手のソフトを使って自動そうさする。
400394:2008/03/30(日) 01:50:49 ID:yIU7/GAD0
>>396>>397
お答えしてくれてたのですねありがとう。

COMエラー用のエラー検出を使うとうまくいきました。
たまに転けますが、、、。
401名無しさん@お腹いっぱい。:2008/03/30(日) 02:50:15 ID:NsCCO6F10
>>398
// 指定文字列間の文字列を返す
戻値 = BETWEENSTR( 文字列, 前文字, 後文字, [n個目] )
402名無しさん@お腹いっぱい。:2008/03/31(月) 00:37:12 ID:JX4H+kcq0
すみません。教えてください。
クリックしたリンクのURLを得るにはどうすればよいでしょうか?
移動先のページを読み込む前に得たいのです、、。
403名無しさん@お腹いっぱい。:2008/03/31(月) 01:23:04 ID:tFVzXwgY0
>>402
IELinkを使わずにやる方法に、タグのソースを見る方法がある。
・・・
URLがソースに書いてあれば取れるけど、JavaScriptとかを実行する場合は開くまで分からないよね。

スクリプトレベルじゃなくプログラムレベルでなら開こうとする動作を横取りすることも可能だけど。
新しくウィンドウを開くのを監視して・・とかどっかにあった。
404名無しさん@お腹いっぱい。:2008/03/31(月) 01:58:55 ID:JX4H+kcq0
ありがとうございます。

結構難しい事なのですね、、。
良かった事に自分の場合はjavaのページではないので、
タグのソースを見る方法を教えていただきたいのですが、、。
405名無しさん@お腹いっぱい。:2008/03/31(月) 02:01:24 ID:8WDZhiYU0
IEならヘルプにのってるから見てみるといい
406名無しさん@お腹いっぱい。:2008/03/31(月) 02:19:52 ID:JX4H+kcq0
ありがとうございます。
ソースを見るってそういう事だったのですか、、。
407名無しさん@お腹いっぱい。:2008/03/31(月) 08:19:35 ID:FiJafPt10
繰り返しについて質問です。
UWSCのプログラムを実行するたびに
○回目の繰り返しです。
とかいう文字列を入力していきたいのですが可能でしょうか?
プログラムの実行は手動です。
408名無しさん@お腹いっぱい。:2008/03/31(月) 11:08:10 ID://0f1Vmj0
マウスのクリックやキー入力を関知するにはどうしたら良いですか?
409名無しさん@お腹いっぱい。:2008/03/31(月) 12:30:58 ID:tFVzXwgY0
>>408
DWebBrowserEventsの場合は変更が加わらないと拾えないようです。
しかもWebページ上のコントロールに関しては見当たりませんね。
http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20030717/2/hyo2.html?ST=security

クリックやキー入力の場合は、HTMLとかに書いてないと無理じゃないでしょうか。
HTMLドキュメントに対して書き加えることは多分可能ですが、
既存コントロールのイベント部分に挿入できるかは分かりません。
UWSCから離れて考えたほうがいいかと。

>>402
たまたま見つかったので試してみましたが、どうもエラーが起きます。
いちおうテストコード載せておきます。

STOPFORM(true)
public メモ帳 = Exec("notepad.exe")

IE = CreateOLEObj("InternetExplorer.Application")
IE.visible = True
IE.navigate("about:blank")

OleEvent( IE, "DWebBrowserEvents2", "BeforeNavigate2", "test" )

while true
 sleep(1)
wend

Procedure test()
 //MsgBox(EVENT_PRM[1]) // メッセージで止めるとおかしくなる。
 //print EVENT_PRM[1]  // 固まる
 SendSTR(メモ帳, EVENT_PRM[1] + "<#CR>", 1, false, false ) // どっちみちエラーになる
Fend
410名無しさん@お腹いっぱい。:2008/04/01(火) 01:20:05 ID:ZAQp9cUG0
>>407
意味が分かりません。
繰り返しとは、一般的にはfor〜nextとかrepeat〜untilとかwhile〜wendのことを言うと思うのですが、
実行するたびにということは、実行回数のことを意味してるように思われ、それにしては文字列を
入力するというのはどういうことでしょうか?
まだ出力するというなら実行回数を知りたいのかなとも思うのですが、入力と出力だと意味が真逆だし・・・。
411名無しさん@お腹いっぱい。:2008/04/01(火) 03:23:20 ID:nWaBOoJn0
>>407
スクリプトの最初にInput()を入れれば入力可能です。
あと、可能かと言われれば、可能です。

普通に考えれば
> ”○回目の繰り返しです。”とかいう文字列
とかいうのは
for i = 1 to 100
 print i + "回目の繰り返しです。"
next
で、
>プログラムの実行は手動です。
っていうのは、ループの実行制御を、ボタンをクリックするまで待つのかなとか思うんですが、
これでは出力になるし、
単純に手動実行ならスクリプト起動のことかもしれないけど
起動を自動というのはスタートアップに設定したりスケジューラに登録するなどして起動することを言うので
普通に考えれば起動はほとんど手動になるはず・・。

スクリプトを何回起動したかというのは、データファイルに書きこんでおけばいいので
何回目の起動かというのは手入力する必要はありません。
ファイル入出力やり方が分からないときにとりあえずでやることはあります。
412名無しさん@お腹いっぱい。:2008/04/01(火) 06:57:27 ID:nWaBOoJn0
>>408
有料のVisualC++ MFCライブラリを使った例が紹介してありました。
無償版VisualC++ にはMFCやATLがついてません。
http://k-gensai.hp.infoseek.co.jp/tools/hige2ch/kowaza.html#list2
413名無しさん@お腹いっぱい。:2008/04/01(火) 09:07:06 ID:nWaBOoJn0
>>409
バグる問題は、Procedure test() 内に
EVENT_PRM[1] = true を加えればいいって本家掲示板で教えてもらった。

んで、サムネイルをクリックするたびに新しい窓を開きまくるのを抑制するのを作ってみた。
まさかUWSCのオブジェクトを渡して期待通りに動くとは思ってなかったけど、
新規ウィンドウを抑制して、2つ目の窓で画像を開いてくれる。
STOPFORM(true)
public gIE = CreateOLEObj("InternetExplorer.Application")
gIE.visible = True

IE = CreateOLEObj("InternetExplorer.Application")
IE.visible = True
IE.navigate("http://thumb.uploda.org/tha0.html")

OleEvent( IE, "DWebBrowserEvents2", "NewWindow2", "test" )

sleep(1000000)

Procedure test()
 EVENT_PRM[0] = gIE // 新しく指定するブラウザオブジェクト
 EVENT_PRM[1] = True // Cancel flag
Fend


NewWindow2ではキャンセルフラグ立てれば新規ウィンドウを抑制できるのに
BeforeNavigate2では止まらないのはなんだろうね。

EVENT_PRM[0] = gIE を省略すると
EVENT_PRM[1] = True を指定しても、キャンセルしてくれなかった。
つまり単純に開かないという選択肢はないってことかな。
414名無しさん@お腹いっぱい。:2008/04/01(火) 23:31:58 ID:aW4K4uFV0
>>408
ありがとうございます。すいません理解が追いつきません今実験ちゅうでう。
415名無しさん@お腹いっぱい。:2008/04/02(水) 19:30:50 ID:ScfPXn9/0
UWSCでバイト配列を扱うことはできますか?
DLLに渡すために使いたいんですが…
416名無しさん@お腹いっぱい。:2008/04/02(水) 19:43:04 ID:GqmCEG9U0
>>415
<DLL 使用定義>
 // DLL (API等)の関数を使用する事ができるようになります

 DEF_DLL 関数名(型, 型, ...): 戻り型: DLL名
 型: int、long、bool、uint、hwnd、string、Wstring、float、double、word、dword、byte、char、pchar、Wchar、pWchar、boolean、longlong、Extended、SafeArray

 参照引数(ポインター渡し)として使う場合は Var 宣言を付ける
 構造体:型を { } にて展開して書く   関数名(型, {型, 型, 型} ) 

 ※ int=long=bool(4byte)、 dword=uint=hwnd、 char=boolean(1byte)
   ヌルポインタを渡す時は NULL定数を使用して下さい
417415:2008/04/03(木) 14:11:40 ID:ePngtmzp0
某スクリプトを参考に、文字列型を使うことで一応解決しました。
418名無しさん@お腹いっぱい。:2008/04/04(金) 08:08:30 ID:hEPK0qhM0
文字の組み合わせを作るクラス
Class key
 dim s = "0123456789" //abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
 dim s_len
 dim k[10] = 0,0,0,0,0,0,0,0,0,0,0
 dim keystring
 Procedure key
  s_len = Length(s)
 Fend
 Function next()
  inc(0)
  keystring = ""
  For i = 10 to 0 step -1
   Ifb k[i] Then
    For i = i to 0 step -1
     keystring = keystring + copy( s, k[i], 1 )
    Next
    Result = keystring
    Exit
   Endif
  Next
 Fend
 Procedure inc( c )
  k[c] = k[c] + 1
  Ifb s_len < k[c] Then
   k[c] = 1
   inc(c+1)
  Endif
 Fend
EndClass
419名無しさん@お腹いっぱい。:2008/04/04(金) 08:37:47 ID:hEPK0qhM0
>>418を使うサンプル
NTパスワードをクラックするツールを使ったことがあるけど、
400MHzのを使って9桁の数字の答えを見つける間に(10桁目に入るころ)、
このスクリプトでは5倍の性能のパソコンを使ってもやっと7桁目に入った。

まあ他のアプリケーションを操作する目的のスクリプトだからアセンブラと張り合う必要はないんだけど
やっぱり性能差って結構あるなあ。

メモ帳 = Exec("notepad.exe")
dim len = 0
Start = GetTime()
while 1 // keyテスト
 If !IDToHND(メモ帳) Then Exitexit
 s = key.next()
 Ifb len < length(s) Then
  len = length(s)
  t = GetTime()-Start
  s = s + "<#TAB>" + format(t/60/60 MOD (24*60*60), 2) + ":" + format(t/60 MOD (60*60), 2) + ":" + format(t MOD 60, 2)
  SendSTR(メモ帳, s + "<#CR>", 1, false, false )
 Endif
wend
420名無しさん@お腹いっぱい。:2008/04/04(金) 10:06:23 ID:hEPK0qhM0
IEの反応が遅すぎて待ちループを抜ける場合があるので、
いつものループの前に、待ちループに引っかかる条件になるまで待ちっていうのを入れた。
もちろん、反応が早すぎる条件でこれは自殺行為だけど。
Whileじゃなくてforで回数限定するべきだったかな。

urlを指定する場合は直後に移動開始するけど、
スクリプトが動く場合は、クライアントでの計算が終わるまでなにもしないようで。

 IE.document.forms[0].submit()
 while !IE.busy AND IE.readystate = 4
  sleep(0.1)
 Wend
 REPEAT; sleep(0.1); UNTIL !IE.busy AND IE.readystate = 4
421名無しさん@お腹いっぱい。:2008/04/05(土) 21:23:14 ID:7kGhbBWQ0
>>413
すみませんまだ考えているのですが、オブジェクトを二つ作るのは何故なんですか?
422名無しさん@お腹いっぱい。:2008/04/05(土) 21:33:48 ID:sGOewx620
DosCMD("echo 俺様天才",False,True)
DosCMD("pause",False,True)



"俺様天才"が出てこないんだけど、何か間違ってる?
423名無しさん@お腹いっぱい。:2008/04/05(土) 22:36:18 ID:/puhaVc50
>>422
print DosCMD("echo Hello!World.")
↑表示  ↑コマンド実行

>>421
まず、新規ウィンドウを抑制するためには、誘導先が必要なこと。
ぐぐったら2chブラウザで、飛び先を調べる専用のブラウザを作ってるとか書いてあったからそんな風にしてみた。
けど、元のブラウザに表示させるならオブジェクトは一つでいいかもね。

二つ作るのは、ウィンドウを二つ作るため。
オブジェクトって言うのは基本的にその内部に配列を持たないなら、
それ自身を複数作ることで、、
つまりIEオブジェクトはブラウザは一つしかもてないから
2つ目のブラウザを持つためにオブジェクトをもう一つ用意した。
グローバル宣言したのは関数内で使うため。

けど、グローバルはよくないから、修正してクラス化しました。

Class 2つ目の窓
  Dim IE
...
  初期化とか関数とか
EndClass
424名無しさん@お腹いっぱい。:2008/04/05(土) 22:39:18 ID:/puhaVc50
>>421
窓2つ使うやつをうpしました。
こういう感じなら窓一つよりいいでしょ。
http://www.uploda.org/uporg1352891.uws

サムネイルをクリックし、サムネイルの窓を閉じると、
画像が表示された窓で保存が実行されます。
425422:2008/04/05(土) 23:25:03 ID:sGOewx620
>>423
javaで出力を受け取りたくてやっていたが、ファイル経由でしか出来ないようですね。
ありがとうございました。
426名無しさん@お腹いっぱい。:2008/04/06(日) 08:42:23 ID:Lme/ktYg0
>>425
>DosCMD("echo 俺様天才",False,True) ← コマンドプロンプトで一瞬表示されて終了
>DosCMD("pause",False,True) ← ↑が終わったあとに別のコマンドプロンプトでポーズがかかる

UWSCに取り込みたいのならば、
echo = DosCMD("echo 俺様天才",False,False)
427名無しさん@お腹いっぱい。:2008/04/06(日) 18:57:32 ID:A8zzHTdv0
大量のファイルのコピーを、
DOSCMDでMkDirとCOPYと呼び出してやってるけどめちゃめちゃ時間かかる。
何がそんなに時間かかるか分からないけど時間かかる。

DOSコマンドのほうが早いだろうけど、フォルダ名をランダムにしたくて、
DOSにランダムのコマンドないし
まあ作ればいいかもしれんけど最近やってないからめんどくさいし。

で、UWSCのランダム関数使ってバッチファイル書き出し。
CALL ほげ.bat ランダムファイル名

ほげ.batで
MkDir %1
MkDir %1\規定フォルダ
Copy ファイル %1

ファイル数何十万だしそれでも時間かかるけど。
さすがにCallするだけのバッチファイルが何メガもあるしな。
それでも1時間かかってたのが15分で終わる。
仮想マシンじゃなかったらもっと早いかも。

こういうのにsleep入れたらまったく動かないんだな。
たった100回のループに何秒もかかっちゃう。

ああ、でも時間は体感だから4倍も早いのかどうかわかんないな。
428名無しさん@お腹いっぱい。:2008/04/06(日) 19:51:53 ID:nq/z3AuG0
ランダムファイル名を使ったバッチをつくってから実行しろよ。
429名無しさん@お腹いっぱい。:2008/04/06(日) 20:03:35 ID:A8zzHTdv0
>>428
うん。そうしたって話したんだが。

それでコピーしまくったらフォルダが1800に断片化してる。
まあたいした問題じゃないんだ。他は空っぽだから。
けど、なんにもしてない、メモリも150MBもあいてるのにずーっとがりがりがりがりがりがり

ディレクトリキャッシュが小さすぎなんかな
430名無しさん@お腹いっぱい。:2008/04/06(日) 20:15:37 ID:nq/z3AuG0
>>427を読んだ限りでは単発コピー用のバッチを
UWSCのループで実行しているように見えるが?
その代わりにUWSCのループでバッチを書き出して
最後に一発実行すれば…という意味なんだが?
ただ10万ファイルならどうやっても時間かかるだろうな。
なんかのクラックとか悪事をやろうとしてるのか?
431名無しさん@お腹いっぱい。:2008/04/07(月) 07:36:16 ID:q1+xZxGJ0
>>430
> CALL ほげ.bat ランダムファイル名

たしかにUWSCにもCALL文はありますが、.batをCALLでは呼べません。
その下に4行のDOSコマンドを書いてますが、あれを出力するわけじゃなく、
ランダムな数字をあのバッチに渡して実行するわけです。

そのまま全部書き出すとサイズが数倍のギガバイト単位になっちゃうし、
記述ミスが起きた場合に、それを探すのが大変な作業になります。

> なんかのクラックとか悪事をやろうとしてるのか?
まあクラック用のキー生成を作ったから、あれを応用しようかと。
実際クラックといっても性能が悪くて実用性は0に近かった。

とりあえずコピーをいっぱいしてメールアカウントが大漁だから
うにょうにょしようかと。

けどキャッシュがきかなくて一日中ディスクががりがりゆってて
100万アカウントとかメル鯖が耐え切れんようで。

ケータイ程度でも人気サイトになるとそれなりなスペックがいるんだなあとおもた。
432名無しさん@お腹いっぱい。:2008/04/07(月) 19:24:44 ID:ZeM7Earh0
かかわらら無い事にした。
433名無しさん@お腹いっぱい。:2008/04/07(月) 20:16:49 ID:q1+xZxGJ0
ポイント登録サイトに登録しまくろうかと思ったんだけど
「同一PCからは1件しか登録できない」って言われたから断念。

無料のメル鯖でアカウント作りまくったけどプロバイダの規制に引っかかるから送信できないし。

架空の注文入れて逮捕された話は聞くけど、登録しまくりで逮捕された件はないから大丈夫かと思ったら
そもそも登録しまくりが無理なんだね。
チェック機能を改造して通るように出来たとしても不正アクセスとかになるだろうし。
残念。
434425:2008/04/07(月) 22:23:16 ID:ioJJxEpk0
>>426
俺は馬鹿だな。そんな単純なことも気付かないなんて・・・。
ありがとうございました。
435421:2008/04/08(火) 00:10:06 ID:kRmCRuCE0
>>423
お礼遅れましたがありがとうございます。勉強します、、、。
436名無しさん@お腹いっぱい。:2008/04/10(木) 09:33:37 ID:5QXM2TUk0
ファイルネームにTimeの入力教えて下さい
437名無しさん@お腹いっぱい。:2008/04/10(木) 10:08:10 ID:Tm8bDLac0
gettime()
fopen(gg_timeなんとか)
438名無しさん@お腹いっぱい。:2008/04/10(木) 19:00:14 ID:RlouoZz50
UWSCで人工無能を作るにはどうすればいいですか?
439名無しさん@お腹いっぱい。:2008/04/10(木) 19:59:42 ID:6esASg+H0
exec("人口無能.exe")
440名無しさん@お腹いっぱい。:2008/04/10(木) 20:02:07 ID:JRtBr2A50
exec(">>438.exe")
こうじゃね
441名無しさん@お腹いっぱい。:2008/04/10(木) 20:19:39 ID:6esASg+H0
天然無能なら俺のことだよ。
442名無しさん@お腹いっぱい。:2008/04/11(金) 05:14:33 ID:Oxl/mYRQ0
レジストリのバックアップをUWSCで行いたいです
先人が公開されているGETTIME部分を参考にさせて頂いたのですが
ファイル名に応用するのに上手くいきませんよろしくお願いします

ACW(GETID("レジストリ ファイルのエクスポート","#32770"),0,46,654,478,0)
Sleep(1.0)
GETTIME()
function time→string()
    GETTIME();
    result = G_TIME_YY4 + ":" + _
        G_TIME_MM2 + ":" + _
        G_TIME_DD2 + ":" + _
        G_TIME_HH2 + ":" + _
        G_TIME_NN2 + ":" + _
        G_TIME_SS2 + ":" + _
        FORMAT(G_TIME_ZZ2, 3, 0);
fend
SendStr("#32770", "G_TIME_YY4 + ":" + _G_TIME_MM2 + ":" + _G_TIME_DD2 + ":" + _G_TIME_HH2 + ":" + _G_TIME_NN2 + ":" + _G_TIME_SS2 + ":" + _", 2)

>>437レスありがとうございます
443名無しさん@お腹いっぱい。:2008/04/11(金) 07:01:18 ID:L6sAhUvE0
すごく初歩的な質問なのかもしれませんが
検索した限りでは答えを得られなかったので
教えていただけるとありがたいです。

同一ソフトを多重起動している場合
getidでそのアプリケーションを取得する場合
起動している二つを区別して取得することはできるのでしょうか?
444名無しさん@お腹いっぱい。:2008/04/11(金) 07:20:27 ID:rsE4IjJp0
>>443
IEのように、タイトルが表示するページによって変わるなら区別可能。
その場合でも、同じタイトルになる場合、GetIDでは区別できない。

>>442
functionで関数定義すると、メインはそこで終わり。だと思う。
SendStrは前に持ってくる。

もう一つ。
実際にエクスプローラーでどんな名前にしたいかサンプルを作るといい。
”:”入りファイル名は禁止。
ドライブ名のために使われるから。
”:”でもこっちの全角なら使えたりする。
普通日時は2けたずつだから、今日の日付は080411か、20080411。日本の場合。
外国では順番違うから、Apr1108とかかな。

Format()は頭0だとスペースになっちゃうからChjmojiかなんかで” ”を”0”に置き換えないといけないかも。
445名無しさん@お腹いっぱい。:2008/04/11(金) 07:32:06 ID:L6sAhUvE0
>>444
レスありがとうございます。

重ねて質問で申し訳ないのですが

バックグラウンドでの動作をさせるために
クリックなどの動作の指示を送ろうと思うのですが
その指示を多重起動している同一のソフトに区別して
送るための手段はあるのでしょうか?

446名無しさん@お腹いっぱい。:2008/04/11(金) 11:40:37 ID:Oxl/mYRQ0
>>444さん
>>442です
アドバイスありがとうございます

>>445さん
ヘルプか作者のumiumiさんのHPか忘れたけどID取得のサンプル
//【全ウィンドウタイトルの表示】
これでIDわかるかもしれないです

あと先人の方でHtmlAnalyzer.uws(同一名称があったので今は名前が変わったと思う)
これは全ウィンドーの詳細版のようなツールです
その手の調査にはとても優れものです
447名無しさん@お腹いっぱい。:2008/04/11(金) 13:19:13 ID:Oxl/mYRQ0
>>445さん
秀丸で多重起動させて全ウィンドやってみた
表題が同じだと窓名は同じでした
この場合、どのようにして操作するのかわからないので
解答待ちをするか本家の掲示板で尋ねてみて下さい
全ウィンドの結果はこんな感じでした

ID=28,"(無題) - 秀丸","Hidemaru32Class"
ID=29,"(無題) - 秀丸","Hidemaru32Class"
(ID=28とか出ているのは僕のパソコン内での順番ですので窓取得には関係ないかもしれません)

僕がgrepする時に使っているキー入力です
他にもっと良い方法があるかもしれませんが取りあえずこれでキー入力できています
よくわからないけど
UWSCのプロ版で作成したマクロはフリー版で動かない命令があるようです
役に立てばいいんですがドゾ

//秀丸エディターで「時間」をgrep検索する
EXEC("C:\秀丸エディター\Hidemaru.exe")//秀丸起動
SLEEP(0.1)//0.1秒休憩
hidemaru=GetID(" - 秀丸","Hidemaru32Class")//秀丸アクティブ
scKey(hidemaru,VK_ALT)//ALTキークリック
scKey(hidemaru,VK_S)//Sキークリック
scKey(hidemaru,VK_G)//Gキークリック
grep=GetID("grepの実行","#32770")//出現した小窓をアクティブ
sendstr(grep,"時間",1,TRUE)//文字”時間”を入力
clkitem(grep,"OK",CLK_BTN)//okボタンクリック
448名無しさん@お腹いっぱい。:2008/04/11(金) 13:51:15 ID:Oxl/mYRQ0
>>445さん
>>447です
一応補足です
3行目と7行目にある下記の行ですが
hidemaru=GetID(" - 秀丸","Hidemaru32Class")//秀丸アクティブ
grep=GetID("grepの実行","#32770")//出現した小窓をアクティブ

(" - 秀丸","Hidemaru32Class")を入力するのが面倒なので
hidemaruという変数に変更しています
この行以降は(" - 秀丸","Hidemaru32Class")はhidemaruで呼び出せます
7行目の小窓の取得も同じです
("grepの実行","#32770")を変数grepにしているのでその後呼び出す時は
下記の様にgrepで呼び出せるようにした変数です
sendstr(grep,"時間",1,TRUE)//文字”時間”を入力
clkitem(grep,"OK",CLK_BTN)//okボタンクリック
呼び出すための変数は>>445さんの任意の文字で構いません
言葉足らずですが補足しておきます
僕もUWSC初心者です
お互いガンガレ^^
449名無しさん@お腹いっぱい。:2008/04/11(金) 14:51:58 ID:Oxl/mYRQ0
アクティブ簡略化の一例(レジストリエディタで試してみる)

//変数 = GETID("全ウィンドで調べる","全ウィンドで調べる")
//()の中は全ウィンドで調べたものをそのまま貼り付け

EXECでレジストリエディタが起動している状態にする

//変数=tes333を作ってみる

tes333=GETID("レジストリ エディタ","RegEdit_RegEdit")//このカッコ内は全ウィンドよりコピペ
Sleep(1.0)//休憩1秒

//以降レジストリエディタが起動している状態で窓名に変更がなければ下記で呼び出せる
ACW(tes333)
450名無しさん@お腹いっぱい。:2008/04/11(金) 15:44:12 ID:L6sAhUvE0
>>446-449
返信が遅くなりすいません。

非常に役立つアドバイスありがとうございます。
私はUWSCを昨日から初めて使い始めたような人間なので
このように実例を交えたアドバイスをしていただけると本当に助かります。

>>445の質問に関しては、自分で調べた限りでは
解決法がわからなかったので、どなたかにアドバイスいただけるのを待ちます。
451名無しさん@お腹いっぱい。:2008/04/11(金) 17:27:45 ID:Oxl/mYRQ0
>>450さん
レスどうもです
僕のほうはファイル名に変数を使いたいんだけど
色々試したんだけどわからないままです
改めて先人に相談してみようと本家で質問して来ました

多重起動のID判別も探してみたのですが
ちょっと見当たらないです
参考にならないかもしれなけど「多重起動のIDを調べる uwsc」ググってみました

下記は2chの過去ログです
144番と145番がそれっぽい内容を会話していたようですが解決していない模様です
http://f57.aaa.livedoor.jp/~atechs/pukiwiki.php?plugin=attach&pcmd=open&file=AutoHotkey%20Thread%202.htm&refer=Download

僕もわからない事だらけなんですが
何か情報がわかればお伝えいたします
>>450さんの場合、多重起動のID判定の情報は極端に少ないかもしれないので
umiumiさんのHPで相談されてみてはどうかと思いました
お互いガンガレ^^
452名無しさん@お腹いっぱい。:2008/04/11(金) 23:38:32 ID:rsE4IjJp0
>>445
ちょっと意味分からなくて放置してた。

無題ドキュメント複数ってのはありがちですね。
簡単な回避方法は、uwsスクリプトで
ID = Exec("notepad")
として起動から管理する方法と、

GetAllWinで取得した一覧をSelectで選ばせ、選択したウィンドウをActiveにして見せて、
MsgBoxにYes、Noのオプションつけて「これですか」と聞いてみるとか。

さらに、無題ドキュメントでも編集中であればGetStrとかでテキストの文字は読み取れるから、
なにか特定のキーワードがあればそれを探してみるとか。
453名無しさん@お腹いっぱい。:2008/04/11(金) 23:49:16 ID:rsE4IjJp0
http://karimofu.org/dlp/mofu1_1787.lzh.php
パスワード:pasu

スクリプトうpしておきます。
tracertとipconfigの出力からグローバルとプライベートのIPアドレスを取得します。
WindowsXPで動きます。
454名無しさん@お腹いっぱい。:2008/04/12(土) 00:00:41 ID:Vt+E92zO0
>>451-453
ありがとうございます。
実は私もついいましがたexecで起動からの管理をするという方法に
たどりつきました。
本家の過去ログにあることでした。
すいません。

いろいろなアドバイスを頂き本当に助かりました。
まだまだ初歩的な点で、うまくいかないことなどが山積みですが
根本的にどうすればよいかわからなかったことは解決したので
独力で頑張ってみようと思います。
ありがとうございました。
455名無しさん@お腹いっぱい。:2008/04/12(土) 01:17:14 ID:T1mSM1XB0
>>453のバグってました。
×:length(ipconfig[i]-43))
○:length(ipconfig[i])-43)

// IPアドレス検索
Ifb Pos( "IP Address", ipconfig[i]) Then
   print "Found:" + ipconfig[i]
   MyPrivateIP = Trim(copy(ipconfig[i], 44, length(ipconfig[i])-43))
456名無しさん@お腹いっぱい。:2008/04/13(日) 00:36:59 ID:iN/+POZc0
>>453
YahooBBを使っていて、Yahoo鯖へのtracertで外部IPアドレスを取得できると思って作ったんですが、
tracertは毎度違うアドレスを経由してしまいます。
だからサーバーから見た自分のグローバルIPアドレスはこの方法では取得できませんでした。
他のISPだったらうまくいくのかどうか、よく分かりません。
457名無しさん@お腹いっぱい。:2008/04/15(火) 14:43:38 ID:QcgqV3KO0
ファイル操作で質問です
ファイルオープンする時に見当たらなければ
ファイルを自動で新規作成できますか?
正規表現で検索して文字列抽出した後にファイルへ書き出したいです
UWSCで可能ですか
458名無しさん@お腹いっぱい。:2008/04/15(火) 16:21:42 ID:QFc8RYr90
>>457
>  F_WRITE        // 書き専用モード (既にファイルがあれば前の情報は消去)

「ファイルがあれば」と書いてありますが、なければ新規作成になります。
ヘルプの説明が不十分と言えるかもしれませんが、
自分で動作を確認するテストコードを書かないとあちこちでつまづきます。
ISOとかで動作が保障された言語ではないので。
459名無しさん@お腹いっぱい。:2008/04/15(火) 23:48:21 ID:QcgqV3KO0
>>458
了解しました
ありがとうございます
460名無しさん@お腹いっぱい。:2008/04/16(水) 16:14:47 ID:7yWsW+WN0
chkimgをすると

メモリもしくはリソースを確保できません

と出るんですがなにかメモリの設定で
やってはいけないことあるんでしょうか?
メモリは2Gあるので足りてるはずです。
461名無しさん@お腹いっぱい。:2008/04/16(水) 16:20:02 ID:XHmj0xx70
>>460
検査対象の座標が左上右下の順なのに逆転してマイナスになってるとか
ファイル形式が無圧縮ビットマップじゃないといけないのにjpg指定してるとか、
でなければメモリ多すぎとか。
462名無しさん@お腹いっぱい。:2008/04/16(水) 20:38:07 ID:7yWsW+WN0
>>461

メモリ大杉とかあるんですかねw?
463名無しさん@お腹いっぱい。:2008/04/16(水) 21:03:39 ID:uWVNqvCF0
UWSCをサーバー上のプログラムに使用したとき 
使用された側でそれを感知することは可能なのでしょうか?
素人なのでわかりづらい内容かもしれませんが、よろしくです。
464MdujSOhb:2008/04/16(水) 21:05:11 ID:EsSGyAhF0
465名無しさん@お腹いっぱい。:2008/04/16(水) 21:20:51 ID:XHmj0xx70
>>462
Windows9xとかならありますが。
ディスク大杉もよくありますね。

>>463
サーバー上ってCGIとかでしょうか。

そういうのは感知できないでしょうが、
自動化ソフトによるものという推測をする方法はありますね。
何度も繰り返し行われた場合にその時間とかで。

キーやマウスによる操作かどうかをチェックして、ユーザーが操作したかをチェックしてるユーザー登録画面もありますね。
466名無しさん@お腹いっぱい。:2008/04/16(水) 21:24:15 ID:uWVNqvCF0
>>465
ありがとうございます。
ネットゲームなんです。今まで使えていたのですが
UWSC自体を立ち上げているときは手動でもその動作ができず
UWSCを立ち上げていなければその動作を手動ではできる状態です。
467460:2008/04/16(水) 21:46:27 ID:7yWsW+WN0
>>465

xpですが対処する方法ってないものでしょうか?

CHKIMG("0001.bmp")

と書いただけでも上記のエラーが出てきます。
468名無しさん@お腹いっぱい。:2008/04/16(水) 23:22:56 ID:XHmj0xx70
>>467
スクリプトと同じフォルダにそのファイルありますよね?
で、そのファイルのあるドライブの空き容量が2GB以上あったりとかはしますか?
あと、UWSCのバージョンは最新ですか?一応最新にしてみるとか。
保存されたビットマップの色数と画面の色数がまずいとか。

他にはちょっと見当がつきません。
基本的に、nProtectGGが入っている場合でも、画像を読み取ることは出来なくてもエラーになったりはしないものなので。

>>466
>UWSC自体を立ち上げているときは手動でもその動作ができず
コントロールしようとして結果的に邪魔をしてるような感じでしょうか・・

>UWSCを立ち上げていなければその動作を手動ではできる状態です。
見当もつきません。

マクロ禁止なゲームでなければ、ゲーム名と画像を本家掲示板に報告したら
バグフィックスとかのお役に立てるかも。
他の人の環境で動くようなら意味ないかも・・・
469460:2008/04/16(水) 23:45:29 ID:7yWsW+WN0
>>468

同じフォルダにあります。
空き容量も6Gあります。
バージョンが古かったので
最新版にしてみたけど
変わらずでした。
画像も変えてみたけど同じ。
あーなんでだろう・・・
470名無しさん@お腹いっぱい。:2008/04/17(木) 20:38:14 ID:qcgD6UGO0
すいません、質問なのですが
とあるゲームで簡単なマクロが組みたくUWSCで自分で書いた簡単なキーを打ってくれるスクリプトを再生しようとしたのですが
何故か全く動きません…再生中にメモ帳に窓を切り替えたらちゃんと文字を打ってくれるのですが又ゲームの窓に切り替えると止まってしまいます
何が原因なんでしょうか…?
471名無しさん@お腹いっぱい。:2008/04/17(木) 20:42:51 ID:aeOUbYHz0
>>470
操作対象を特定しない操作でゲームは操作できない理由は2つ考えられる。

1.DirectInputを使ってるからUWSCからの送信をゲームが見てない。
2.nProtectGameGuardがブロックしている。

ゲームをマクロ化したければマクロ機能付きジョイパッド使うとか。
472名無しさん@お腹いっぱい。:2008/04/18(金) 07:12:07 ID:rmFTL4xG0
>>471
レスありがとうございます!
なるほど…恐らくnProtectGameGuardが原因かなあ…ちなみにGR使って回避する事は可能ですかね?
473名無しさん@お腹いっぱい。:2008/04/18(金) 11:29:54 ID:Epu0r/rt0
質問なのですが、「特定の画像を認識するまで待機」という命令ってUWSCで可能ですか?
474名無しさん@お腹いっぱい。:2008/04/18(金) 12:02:39 ID:gcHCVnLo0
可能ですよ
475名無しさん@お腹いっぱい。:2008/04/18(金) 12:15:11 ID:Epu0r/rt0
>>474
出来ますか、ありがとうございます!
色々試しても上手くいかなかったので不可能かと思いました・・・
頑張ってみます!
476名無しさん@お腹いっぱい。:2008/04/18(金) 16:53:53 ID:MIrXIxMi0
>>472
>ちなみにGR使って回避する事は可能ですかね?

最近のGameGuardを回避できるものはありません。あきらめること。
仮想マシンでゲームを実行すれば、GameGuardとか関係なくホストから操作できるけど、3倍〜10倍重いから。

477名無しさん@お腹いっぱい。:2008/04/19(土) 16:46:00 ID:IJKtNPAd0
一時停止機能つけてください
478名無しさん@お腹いっぱい。:2008/04/19(土) 17:03:37 ID:HVvBA1d50
あるだろ?
479名無しさん@お腹いっぱい。:2008/04/23(水) 23:57:46 ID:/hAdiY3L0
>>477
Alt+F3
480名無しさん@お腹いっぱい。:2008/04/26(土) 08:25:17 ID:H+8T5fbW0
リモートデスクトップで使用しているときのUWSCについて質問したいことがあります。

WindowsXP SP2マシンからリモートデスクトップ接続して使っているPC(WindowsXP SP2)
でUWSCを使っているのですが、リモートデスクトップを最大化したり通常ウィンドウで
使っているときは問題ないのですが、最小化したり接続を切ったあとにUWSCのマウス
操作関数MMVが動いていないのです。接続を切ったときはともかく、最小化したときぐらい
は動いて欲しいのですが…。対策方法をご存知の方は教えてください。
481名無しさん@お腹いっぱい。:2008/04/26(土) 08:53:28 ID:TMA6Exrw0
>>480
そういう特定条件の話は本家でお願いします。


最小化したウィンドウにマウス操作を送る設定なら、マウス操作が無効なのは当然だと思います。
最小化から復帰したときにだめなら、とりあえず、マウス操作対象を割り当てなおすことで対処できるかやってみたら。

あと、リモートデスクトップなら、UWSCをどっちで動かし、最小化ウィンドウがどっちのどの画面でのことなのか正確に書いたほうがいいと思います。
482名無しさん@お腹いっぱい。:2008/04/26(土) 09:44:29 ID:H+8T5fbW0
わかりました。マウスの操作対象を割り当てなおすところからやってみます。
ちなみに最小化は、リモートデスクトップ内のウィンドゥではなく、接続元画面に
おけるリモートデスクトップの画面です。
483名無しさん@お腹いっぱい。:2008/05/04(日) 10:43:23 ID:/2+mMGbw0
AutoHotKeyと較べてUWSCの方が優れている面とかあります?
出来る事自体はAHKの方が多く基本的にUWSCで出来る事はAHKで実現可能な様ですが・・・
個人的にはコードの書き安さや文法等はUWSCの方が使いやすいんですけどね
484名無しさん@お腹いっぱい。:2008/05/04(日) 12:01:22 ID:mTh/+5o30
・Ahk
 ・スクリプト構文が原始的
 ・アドホックな拡張 (関数、構文など全般)
 ・Unicodeがネイティブじゃない
 ・GUIサポートが豊富
 ・日本語サポートが未熟
 ・英語コミュニティは活発だが日本語コミュニティは少ない
 ・ライブラリは豊富
 ・ホットキーに複雑な機能を割り当てるのが楽(もともとそういうソフト)
・Uwsc
 ・まとまっていて馴染みやすいBasic風構文
 ・アドホックな拡張 (組み込み関数郡)
 ・Unicodeはネイティブに近い。日本語・多言語もそこそこ扱いやすい。
 ・GUIサポートはない。IE/MSアプリに依存しすぎる面がある。
 ・日本語サポートは必要十分
 ・国際的コミュニティは皆無に近い。日本語は本家掲示板以外にいくつか存在する。
 ・ライブラリ化は馴染まない性質のため皆無に近い
 ・IE操作が楽。ソースにデータを置ける機能、マルチスレッド機能等が特徴
・Autoit3
 ・比較的厳格なBasic風構文
 ・頻繁な更新により全体的にかなりまとまっている
 ・Unicode対応は進んでいるが未だにネイティブではない
 ・GUIサポートはかなり豊富
 ・日本語サポートはまだまだ限定的
 ・公式コミュニティは非常に活発。しかし日本語コミュニティは皆無に近い
 ・ライブラリはかなり豊富 (全体像が把握しにくくどれを使っていいか迷う)
 ・他のスクリプトからAutoit3の機能を利用する機能/開発環境一式を提供/その他
485名無しさん@お腹いっぱい。:2008/05/05(月) 05:39:53 ID:C1h+51mg0
print したものをテキストにコピしたいんだけどどうすればいいですか
どこかにLOG残ってるんでしょうか?
486名無しさん@お腹いっぱい。:2008/05/05(月) 05:43:47 ID:2ZZVIKL40
ヘルプくらい読むとか
インストールフォルダくらい見るとかしないものか
487名無しさん@お腹いっぱい。:2008/05/05(月) 05:47:00 ID:C1h+51mg0
あのヘルプは初心者にはきついですよ
わかんない
ドライブごと.LOGを検索したら
拡張子LOGがいっぱい出てきてわかんない
わかったらここで聞かないよ
488名無しさん@お腹いっぱい。:2008/05/05(月) 05:56:15 ID:2ZZVIKL40
初心者のくせにファイル検索が出来るなんてすげーよ
その調子でUWSCのインストールフォルダの場所を検索する作業に戻りなさい
489名無しさん@お腹いっぱい。:2008/05/05(月) 06:05:54 ID:C1h+51mg0
>>488さん
UWSC.logってのがあった!
ありがとー!
490なぜだ?:2008/05/05(月) 09:22:03 ID:cFWGsJpt0
Uwsc Ver.4.2 + WinXP SP2
script.uws file1
関連付け起動時にこんな感じでスクリプトにパラメータ渡しても
うまく受け取れないようなんだが? Win2000では問題ない。
この問題のせいでWinXPで動かないスクリプトが多くて困ってる。
ちょっと前まで、あるいはWinXpSP1の頃、あるいは以前のUwscでは
問題なく動いていたように思うんだが、久々移植したらこの問題が…。
普段Xp使ってるヤツ、心当たりあれば事情説明頼む。
491名無しさん@お腹いっぱい。:2008/05/05(月) 13:56:32 ID:FiF55k6b0
アクションの定義のせいかな
"D:\Program Files3\uwsc\UWSC.exe" "%1"

上記はデフォルトの定義だけど、これではUWSファイル名しか渡さない。(XP)

> 実行時に引数を付けていた場合は「%2」〜「%9」が対応する。「%*」は%2以降の引数全てを表す。
492名無しさん@お腹いっぱい。:2008/05/05(月) 23:37:06 ID:Tkv85+Ez0
>>491
そういえば、pro版のインスコでも第2引数以降の %* は自分で追加しないと駄目だけど、
これってなにか意図あるのかしら?
493名無しさん@お腹いっぱい。:2008/05/06(火) 03:16:05 ID:KQyOUxZM0
お世話になります
プリント窓からメモ帳にコピしたいのですが文字列を取得できません
スリープ10秒している間にALT+A ALT+Cを手動でするとコピ出来ているのですが
下記スクリプトではコピできないんです
ヘルプのSCKEYの例にはオルトダウンで実行しているようなんですが実際にはコピ出来ていません
どなたかアドバイスお願いします

CTRLWIN(GETID(GET_LOGPRINT_WIN), ACTIVATE)
sleep(10.0)
SCKEY(VK_ALT,A)
sleep(1.0)
SCKEY(VK_ALT,C)
sleep(1.0)
494名無しさん@お腹いっぱい。:2008/05/06(火) 03:21:48 ID:bIpYkxoz0
print命令の代わりに
FOPEN FPUT FCLOSEでテキスファイルに直接書いてったほうが早くない?
それじゃダメなの?
495名無しさん@お腹いっぱい。:2008/05/06(火) 03:40:42 ID:KQyOUxZM0
>>494さん
即レスありがとうございます
そうしたいんですが参考にさせていただいているスクリプトがprintなんです^^;
よろしくお願いします
496名無しさん@お腹いっぱい。:2008/05/06(火) 03:50:47 ID:iSNE8MrM0
参考にしてPrint部分を書き換えればいいじゃん
参考にするってのはそう言う事だよ
497なぜだ?:2008/05/06(火) 07:16:44 ID:nXY1j0ks0
>>491
サンクス。
あーなんとなくそれズバリ臭い。
関連付けはたぶんアプリケーションから開くで
「このタイプにはこれを云々〜」を使ったんじゃないかと。
498名無しさん@お腹いっぱい。:2008/05/06(火) 09:49:02 ID:NM2S3mo50
>>492
必要ないからじゃないかな。

ファイル名に引数なんて、コマンドラインから実行か、ドキュメントファイルへのショートカットかでしょ。

>>493
普通コピペはCtrlキーなんだけど
499名無しさん@お腹いっぱい。:2008/05/06(火) 14:42:36 ID:KQyOUxZM0
お世話になります>>493です
SCKEYでprint窓をコピできなかったのはVK_CTRLです
先のVK_ALTは間違い。下記ミスです
-----------------------------
↓print窓をコピできないスクリプト
CTRLWIN(GETID(GET_LOGPRINT_WIN), ACTIVATE)
sleep(1.0)
SCKEY(VK_CTRL,A)
sleep(1.0)
SCKEY(VK_CTRL,C)
sleep(1.0)
----------------------------
↓これではコピできます
KBD(VK_CTRL,DOWN)
SLEEP(0.2)
KBD(VK_A)
SLEEP(0.2)
KBD(VK_CTRL,UP)
KBD(VK_CTRL,DOWN)
SLEEP(0.2)
KBD(VK_C)
SLEEP(0.2)
KBD(VK_CTRL,UP)
SLEEP(0.2)

UWSC4.4aです
500名無しさん@お腹いっぱい。:2008/05/06(火) 15:15:34 ID:NM2S3mo50
>>499
KBD()はキーコードだけでいいけど、
SCKEY()は操作対象のウィンドウIDが第一引数だよ。
ちゃんとヘルプで確認。

あ、Print窓はID取れないよね。自分自身のだし。

ということはKBDでやるか、メモ帳に出力してそっからコピペするかのどっちかになるけど
キーボード操作がいらないという点でメモ帳をお勧め。
メモ帳ならPRINTの代わりにSendSTRで
キーボード操作の変わりにGetSTRで。
501名無しさん@お腹いっぱい。:2008/05/06(火) 16:01:51 ID:KQyOUxZM0
>>500さん
お世話になります>>499です
直接エディターの行頭に整理番号付けれましたありがとうございます!
いつもすいません感謝です

i = 0
FOR i = 1 to 9999//行頭に4桁でプリント窓に整理番号
 SendSTR(hidemaru, CHGMOJ(FORMAT(i, 4), " ", "0"))
KBD(VK_RETURN)
NEXT

あの後学のためにきいてみたいんですけど
CTRLWIN(GETID(GET_LOGPRINT_WIN), ACTIVATE)
>>499のこれはprint窓をアクティブにできていないでしょうか?
502名無しさん@お腹いっぱい。:2008/05/06(火) 16:07:50 ID:lCJ/wsCI0
そもそもUWSCのログウィンドウから文字列を取得しようっていう考え自体がおかしいんだよ
ログウィンドウに書かれているって事は、UWSCでログ出力したから書かれているわけで
すでに取得(所持)しているデータなんだから、わざわざ再度取得しようなんてあり得ない
ログウィンドウ以外にも同じデータを書き出したいなら
ログの他に別なファイルに書き込むようにすればいいだけのことなんだよ
503名無しさん@お腹いっぱい。:2008/05/06(火) 16:15:19 ID:KQyOUxZM0
>>502
えっ
そうだったんですか知らなかったよorz
ログは自動で取れているものだったんですね
ありがとうございます
504名無しさん@お腹いっぱい。:2008/05/06(火) 16:35:36 ID:jk048VFj0
結局、本当にやりたい事は「0001〜9999をテキストファイルに出力したい。」だったのに
> 文字列出力ってことはPrintかな?
「0001〜9999までPrintするマクロ教えてください」
> Printできたけど好きなファイルにコピーしたいな…
「ログウィンドウからコピペしたいんですが教えてください」

そんな遠回りする面倒な事しなくても最初から「0001〜9999をテキストファイルに出力したい。」
って聞けば、回答者の手をなんども煩わせる事をしなくていいんだよ
505名無しさん@お腹いっぱい。:2008/05/06(火) 16:55:08 ID:KQyOUxZM0
紛らわしくてすいません今回の質問は2つだったんです
・ログを取る→printしなくても自動でログを保存していることが判明解決
・行頭に整理番号を付ける(KBDとSCKEYの違いがわからない)→SendSTRで解決
お手数をお掛けして申し訳なかったです
506名無しさん@お腹いっぱい。:2008/05/06(火) 17:44:16 ID:aYCQ7xWi0
情報を小出しにすると良いこと無し!の見本例だなw
507名無しさん@お腹いっぱい。:2008/05/06(火) 17:52:12 ID:ffLrEvzE0
>>505
解決…
よく分かってないけど出来たからいいや。解決って事にしておこう
を解決というならお好きにどうぞ…
ちなみに「printしなくても自動でログを保存」なんてしませんから。
508名無しさん@お腹いっぱい。:2008/05/06(火) 18:05:18 ID:KQyOUxZM0
ログ保存解決できてないや
ログを保存するときとしないときがありますね
509名無しさん@お腹いっぱい。:2008/05/06(火) 22:10:56 ID:nXY1j0ks0
> そもそもUWSCのログウィンドウから文字列を取得しようっていう
> 考え自体がおかしいんだよ
なこたーない。これは一種のコンソールだから。
このワザを使うとログウィンドウを使っていろいろ面白いことができる。
この話の流れのことは知らんが。
510名無しさん@お腹いっぱい。:2008/05/07(水) 01:24:10 ID:VHXZp6YbP
秀丸エディターのgrep検索窓のID(2種類)わかる方おられましたらお願いします
秀丸エディターでALT→S→Gで出てくるgrep検索の小窓ID調べています
UWSCの全窓で新規ファイルを調べたら"(無題)(更新) - 秀丸","Hidemaru32Class"のようなんですが
下記のようにしたのですがエラーになりました

test1
 SendSTR("(無題)(更新) - 秀丸","Hidemaru32Class"," 分|時間|日 ")
test2
 SendSTR("(無題)(更新) - 秀丸","検索する文字列"," 分|時間|日 ")

その下の「検索するファイル(N)」のIDもわかりません
(現在のファイル)が出てる小窓です
わかるかたお願いします
PS:私の使っているプロバイダーがまた2chのアクセス規制に引っかかっているようで
モリタポ使ってP2P書き込みしています
レス遅くなるかもしれませんが
ロムってますのでよろしくお願いします
511名無しさん@お腹いっぱい。:2008/05/07(水) 01:47:50 ID:21nmEq040
>>509
>このワザを使うとログウィンドウを使っていろいろ面白いことができる。

ちと思いつかないんだけど、例えば?
暇があったら教えてくださいまし。
512名無しさん@お腹いっぱい。:2008/05/07(水) 02:00:04 ID:VHXZp6YbP
お世話になります>>510です
以前教えて頂いたのを数字を変えたら2つとも入力できました
あの時教えてくれた方本当にありがとうございました

hidemaru=GetID(" - 秀丸","Hidemaru32Class")
scKey(hidemaru,VK_ALT)
scKey(hidemaru,VK_S)
scKey(hidemaru,VK_G)
grep=GetID("grepの実行","#32770")
sendstr(grep,"分|時間|日",1,TRUE)
sendstr(grep,"(現在の内容)",2,TRUE)
clkitem(grep,"OK",CLK_BTN)
513名無しさん@お腹いっぱい。:2008/05/11(日) 12:39:40 ID:gbPkk0Gd0
新着情報 / お知らせ
 2008/05/11 UWSC Ver4.4b、 Pro版と Free版をリリースしました。

[Ver4.4b]
  GETOLEITEM関数にてメモリ漏れがあるのを修正
  マイナス座標のマルチモニタにて正しい位置にダイアログが出ないのを修正
  スレッド終了時に正しくスレッドが終了しないパターンがあるのを修正
  記録機能で出来るだけ時間遅れが発生しないよう修正
  CLASSを MODULEに名前を変更した(旧名も維持)
  Pro版:
  CREATEFORM関数にてFOM_NORESIZE指定時にキャプション部のアイコンが消えないようにした
  RecIE:コンテキストメニュを出しキャンセルすると、その後の記録がダメになるのを修正
  RecIE:コンテキストメニュが有効にならないパターンがあるのを修正
  RecIE:マルチフレームにて正しく記録できないパターンがあるのを修正
  UDebug:エデット可能とした
  UDebug:変数表示領域のヒント表示にて変数の型を表示するようにした
514名無しさん@お腹いっぱい。:2008/05/11(日) 16:26:24 ID:qilwJKmR0
あるオンラインゲームで、UWSCを使ってみようと思っています。
UWSのファイルを頂いたのですが、○○のX座標、Y座標の位置を設定して、と言われました。
ゲーム内の座標の位置はどのようにわかるorどのように設定すれば良いのでしょうか?
わかりづらい質問ですみません。
わかる方いましたら教えていただけないでしょうか?
515名無しさん@お腹いっぱい。:2008/05/11(日) 16:40:37 ID:do1BUoJ/0
>>514
動作を録画してクリックしてみたら良いんじゃないの?
録画不能だったらそもそも再生も出来ないからUWSCは無理って事だろうし
516名無しさん@お腹いっぱい。:2008/05/16(金) 19:41:40 ID:deeE7I5Q0
質問です。
1つのUWSCでの2つの動作を同時に監視ってできますか?
ゲームでのライフとマナの回復を自動化しようと思ってます。
ライフのみ、マナのみの回復は動作したのですが
二つを同時に、ってのはどうやればいいんでしょう?
UWSC2つ起動してすれば一応は動くのでしょうが重くなりそうで・・・
517名無しさん@お腹いっぱい。:2008/05/17(土) 01:34:08 ID:wP2KVQdq0
その熱意があればゲームの開発に参加したほうがいい。
518名無しさん@お腹いっぱい。:2008/05/18(日) 07:02:49 ID:sxZsKHaJ0
>>516
ライフとマナの監視を順番に書けばいいんじゃね?
519名無しさん@お腹いっぱい。:2008/05/18(日) 17:09:03 ID:/lsnwOlK0
どうしても同時にやりたいならthread使えばいいけど
順番でやったほうがいいだろうね
520名無しさん@お腹いっぱい。:2008/05/19(月) 15:53:19 ID:LQUUjva40
>>516
動作を同時には受け付けないから、スレッド分割する意味はないよ。

それぞれループしてると思うけど、そのループの中に2つとも続けて書けばいいだけ。
sleep()入れるべきだけど、sleep()抜けた最初にチェックするべきはライフかマナか。
回復魔法があるならマナが優先だろうけど、普通はHP回復が優先だろう。
あ、処理をひとつにまとめても、待ちループ中でsleep()はひとつに絞るべき。
521名無しさん@お腹いっぱい。:2008/05/19(月) 19:37:42 ID:RrkO6zW10
先日購入したのですが、初心者なものでEXE化のやり方が全くわかりません。
どのようにすればいいのですか?
522名無しさん@お腹いっぱい。:2008/05/19(月) 20:35:40 ID:rswfMWpc0
釣れますか?
523名無しさん@お腹いっぱい。:2008/05/19(月) 21:57:47 ID:ffUMw8EC0
>>521
釣りなのだろうか?
一番右のボタン押して
UWS2EXEをクリック
スクリプト選んで必要ならオプションも選んで「OK」クリック
524521:2008/05/19(月) 23:56:41 ID:RrkO6zW10
釣りじゃありません^^;
ファイル名だけを書いても駄目だったのですが
右にある...をクリックすると参照ができ
作成することができました
スレ汚しすみません(_)
525名無しさん@お腹いっぱい。:2008/05/21(水) 21:15:35 ID:2jpr9e4g0
ある座標の色が、指定した色に変わったと同時に、指定したキーを一度押す。そして20秒待機。
この操作をしながらいくつかのキーを連打する、というプログラムは組むことが
できるのでしょうか?
526名無しさん@お腹いっぱい。:2008/05/21(水) 21:45:44 ID:kuqclFj70
できます
527名無しさん@お腹いっぱい。:2008/05/21(水) 21:47:53 ID:lkc2liHj0
>>525
いくつかのキーってのが同時押しなのかが良く解らんけど
できるんじゃね?
528名無しさん@お腹いっぱい。:2008/05/21(水) 22:17:57 ID:vZ2z66SD0
公式とのマルチじゃん。
自分でやる気ないなら”こんなソフトウェアつくってください”にでも行ってくれ。
529名無しさん@お腹いっぱい。:2008/05/21(水) 23:56:27 ID:snD+WCDt0
>>525
キー操作がどの関数か分かってるんだから
UWSCとKBDでぐぐったらいいんじゃね?

あと、質問が大雑把杉。
もしかしたら待機中に他のキー操作するのかな。

ていうかなんかのキーを連打しつつ、なんかを監視して条件が一致すれば指定キーを押すのかな?
そういうことならキー操作のたびになんかが変化していくからこーなったらこーするみたいなことで理解できるけど
動作がイメージしにくくて分からない。
530名無しさん@お腹いっぱい。:2008/05/22(木) 02:28:32 ID:vnehCKe80
もうあからさまなネトゲのマクロ系質問にはうんざり
531名無しさん@お腹いっぱい。:2008/05/22(木) 02:55:42 ID:q/uyq3L+0
それをここに書いてなんかメリットあんの?
532名無しさん@お腹いっぱい。:2008/05/22(木) 07:28:13 ID:01+mHv0G0
>>530
じゃあまともな質問しろよ
533名無しさん@お腹いっぱい。:2008/05/23(金) 00:00:31 ID:iPWGRvL70
明日の7時に飯作ってから起こしてくれるスクリプトよろしく。
534名無しさん@お腹いっぱい。:2008/05/23(金) 07:32:29 ID:hlMaIdlO0
>>533
嫁探せw
535名無しさん@お腹いっぱい。:2008/05/23(金) 10:35:29 ID:K076AzmG0
おはようございます。
ブログを削除したのでgoogleキャッシュ削除ツールで
キャッシュを削除しようと思っているのですが
消したいページを1ページずつ指定しないと消せないみたいなのです
同じ作業を500回ほど繰り返すのですが
繰り返すたびに特定の箇所の数字を連番で変更することは可能でしょうか?

例えば

http://www.komatta.blogfc2.com/1.htmlの1.htmlの部分を
2回目は
http://www.komatta.blogfc2.com/2.html となるようにしたいのです。

500回目は
http://www.komatta.blogfc2.com/500.html と言った感じで・・。

UWSCでそのように使用するにはどうやって設定すればよいのでしょうか

536名無しさん@お腹いっぱい。:2008/05/23(金) 11:44:10 ID:RzmKyPDr0
FOR I=1 to 500
 URL="http://www.komatta.blogfc2.com/"+I+".html"
 URLに対する処理
NEXT
537名無しさん@お腹いっぱい。:2008/05/23(金) 16:42:17 ID:xm1hj+5Q0
>>534
その手があったか
538名無しさん@お腹いっぱい。:2008/05/24(土) 08:32:48 ID:UNLWPPek0
これ、もっと素早く動かないの?
539名無しさん@お腹いっぱい。:2008/05/24(土) 11:13:10 ID:FcY3L7sW0
良く鍛えて手動でやれば速くなる。
540名無しさん@お腹いっぱい。:2008/05/24(土) 14:03:00 ID:Kcczvecr0
記録したマクロをすばやくすることはできる。
541名無しさん@お腹いっぱい。:2008/05/24(土) 17:04:11 ID:0Ok14byu0
IEGETSRCってもしかしてフレームの中身見れなくね?
542名無しさん@お腹いっぱい。:2008/05/25(日) 02:58:37 ID:JPE8Gymh0
>>541
IE操作系は可能な限りDOM使った方が確実だぞ。
例えばこんな感じ。
IE.document.frames("フレーム名"もしくは番号).document.getElementsByTagName("タグ名").item(番号).outerHTML
543名無しさん@お腹いっぱい。:2008/05/25(日) 09:27:29 ID:uI/JGpW+0
Internet Explorerを操作する際に
IE.document.form[0].elements[0].value= 32
などと表記されるのですが、他にどのようなプロパティがあるのかを
調べるにはどのようにすればよいのでしょうか?
544名無しさん@お腹いっぱい。:2008/05/25(日) 10:40:55 ID:Ic6QAa1t0
chkimgで2番目に一致する画像の座標を取得したいのですが、
調べてみてもいい方法が見つからず、対処方法が分かりません。
どなたかいい案、または解決法をご存知の方、ご教授お願いします。
545名無しさん@お腹いっぱい。:2008/05/25(日) 18:01:51 ID:5WXdhQve0
>>544
一回目の一致はスルーするようにすれば?
一致回数を変数に足して数え上げすればいいんじゃない?
546名無しさん@お腹いっぱい。:2008/06/01(日) 09:27:29 ID:13IHbrBe0
つーか最近質問してる奴、その後どうなったかしりたいんだが…
できたのかできなかったのか…
547名無しさん@お腹いっぱい。:2008/06/06(金) 02:40:02 ID:olGf4iNc0
変数Aを変更していきたいのですが上手くいきません
どなたかお願い致します
tes_00001というIDをセットして次はtes_00002って感じで
IDを順番に変更したいのですが
上手くいきません
変数を使わないでtes_00001とかtes_00002として
UWSファイルに記入しておくとログインできます
SetDataで変数の使い方教えてください

下記は上手くいかないUWSファイルです
A=00001
//IDの数字を変更する
//////////////
IESetData(IE,"tes_"A"","login") // TEXT
A = A + 1
548名無しさん@お腹いっぱい。:2008/06/06(金) 05:04:19 ID:FDme0qe80
>>547
ログインする前に文字列が正しいか確認汁
手軽な確認方法は PRINT "文字列"

× "tes_" A""
× "tes_" "A"
× "tes_" A
△ "tes_" + "A"
○ "tes_" + A
549名無しさん@お腹いっぱい。:2008/06/06(金) 09:24:24 ID:Wgrfof9G0
画像認識で認識した場合、認知した画像だけをクリックすることは出来るのでしょうか
ウィンドウの位置がいちいち変わるのでどうやればいいのかわからなくて困ってます。
550名無しさん@お腹いっぱい。:2008/06/06(金) 09:48:44 ID:FDme0qe80
ウィンドウIDが取得できるならMouseORG()でマウス座標をアプリケーション基準にすればいい。
画像のクリックは、取得した座標またはそれを基準に計算した座標をBTN()に渡せばおk。
551名無しさん@お腹いっぱい。:2008/06/06(金) 10:36:56 ID:Wgrfof9G0
すいません自己解決しました
552名無しさん@お腹いっぱい。:2008/06/06(金) 13:47:42 ID:olGf4iNc0
>>548さん
>>547です
お陰さまでかなり前進できましたありがとうございます
実は数字部分を5桁にしたいのですが
下記のようにすると数字部分は1桁になり
tes_5というIDになります
これをtes_00005としたいです
もしわかるようでしたらまた教えて頂けないでしょうか
何度もすいません

下記はtes_5となるuwsファイルです
(希望のIDは数字部分が5桁→tes_00005です)
A = 00005
//IDの数字を変数にする
//////////////
IESetData(IE,"tes_" + A ,"login") // TEXT

//結果:tes_5
553名無しさん@お腹いっぱい。:2008/06/06(金) 14:06:52 ID:kJ7wGqLb0
>>552
>>501このへんとかで既出でしょう
554名無しさん@お腹いっぱい。:2008/06/06(金) 14:09:17 ID:r43nN9jJ0
迷惑行為に協力するな。
555名無しさん@お腹いっぱい。:2008/06/06(金) 14:14:33 ID:olGf4iNc0
>>553
うっかりしてましたありがとうございます
>>554
迷惑行為じゃないですよ
先方のサイトには1ID単位でお金払いますのでむしろ優良会員です^^
556名無しさん@お腹いっぱい。:2008/06/06(金) 15:06:04 ID:olGf4iNc0
>>553
できました
ありがとうございました
i = 0
FOR i = 1 to 99999
i = CHGMOJ(FORMAT(i, 5), " ", "0")//5桁
id = "t_e_s_" + i
IESetData(IE, id ,"login")
557名無しさん@お腹いっぱい。:2008/06/07(土) 19:13:45 ID:Ox7fp0ej0
クリックする時ある一定の範囲内でランダムにクリックする方法はあるのでしょうか
558名無しさん@お腹いっぱい。:2008/06/07(土) 19:37:46 ID:9D62L0dl0
RANDOM (Range)   // 0 <=X <Range の範囲にある乱数を返す

50〜100なら
50 + RANDOM(51)
559名無しさん@お腹いっぱい。:2008/06/07(土) 21:51:28 ID:Ox7fp0ej0
>>558
出来ましたどうもありがとうございます。
560名無しさん@お腹いっぱい。:2008/06/08(日) 13:11:52 ID:sl1oTxhe0
特定のメモリアドレスの値を取得することって出来ますか?
561名無しさん@お腹いっぱい。:2008/06/08(日) 13:52:33 ID:y2+PLs1g0
DLL経由でできるよ
562名無しさん@お腹いっぱい。:2008/06/08(日) 14:05:35 ID:sl1oTxhe0
ありがとうございます
何というDLLか教えてもらえませんか
563名無しさん@お腹いっぱい。:2008/06/08(日) 16:58:35 ID:y2+PLs1g0
俺はp_memory.dll使ってるな
564名無しさん@お腹いっぱい。:2008/06/08(日) 17:09:00 ID:sl1oTxhe0
使ってみます
どうもありがとうございました
565名無しさん@お腹いっぱい。:2008/06/09(月) 12:54:07 ID:V8q+DOZz0
ファイルサイズを取得したいのですが何か良い方法はありませんでしょうか?

例えばファイルサイズが5kB未満のファイルのみ削除というような処理がしたいのです。
566名無しさん@お腹いっぱい。:2008/06/09(月) 13:30:28 ID:xo+Ed/yr0
DOSのDIRコマンドでサイズ順にソートしたリストを取得。
1行ずつ、5kB以下のファイル名を取得し、
DEL ”ファイル名”
のようなリストを作り、ファイル名を .bat 、つまりバッチファイルにする。
作成したバッチファイルを実行する。

DOSコマンドはレイアウトが固定文字数だからCOPYコマンドで必要な部分を取り出せばいい。

他の方法を取るなら、OLEでフォルダオブジェクトからいっこずつファイル情報取り出して処理。
この場合プロパティ・メソッドが分かれば名前を指定するので、場合によっては楽。

DOSコマンドは80文字×行数のレイアウトと文字列操作が自在にできるなら難しくはないけど
そこら辺からやるなら難しいかも。
DOSコマンドを使う場合はExecじゃなくてDOSCMD()の戻り値の文字列を使う。
1行ずつの処理はTOKEN()で区切り文字に"#CR"を指定かな。

文字列をイメージで書くと
"1行目。。。#CR 2行目。。。。。。#CR 3行目。。。。。。。。。。"
567名無しさん@お腹いっぱい。:2008/06/09(月) 16:48:25 ID:TfPNg1HY0
UWSCで
エクセルでエラーがでた場合のダイアログの対応をしたいんだけど
エラーがでるとUWSCの動作自体とまってしまうようです

なんとかなりませんか
568名無しさん@お腹いっぱい。:2008/06/09(月) 17:09:51 ID:xo+Ed/yr0
COMエラーなら、エラーが出ないような作りにするか、COMエラーを無視するか。
予定外の画面でループに入ってるとかじゃありませんよね?
569名無しさん@お腹いっぱい。:2008/06/10(火) 12:23:31 ID:ua4CvFBN0
>>567
それ俺が本家で質問した内容と獄似じゃん。別スレッドで
監視して処理すれば良いと教えてくれたよ。
570565:2008/06/10(火) 18:55:38 ID:9wU31cQm0
>>566
ありがとうございます!
DOSコマンドの方で実現できそうです!
571名無しさん@お腹いっぱい。:2008/06/11(水) 12:59:30 ID:xPrC/3An0
>>569
そのスレ教えてください
572名無しさん@お腹いっぱい。:2008/06/11(水) 13:03:45 ID:jahWJzA+0
>>571
2chのことじゃねーよw
ヘルプ見てみろ
573名無しさん@お腹いっぱい。:2008/06/11(水) 13:53:47 ID:+ocdyabV0
>>571
本家掲示板でけんさっく
574名無しさん@お腹いっぱい。:2008/06/11(水) 14:26:46 ID:tJobPv/+0
>>571
ここで言う本家とはUWSC作者のうみうみさんのサイトの事だよ
ヘルプからいける
575名無しさん@お腹いっぱい。:2008/06/11(水) 20:14:00 ID:VnvveVTd0
>>572-524
公式サイトの掲示板において
どんなキーワードで検索すればいいのでしょうか?
576名無しさん@お腹いっぱい。:2008/06/11(水) 23:32:57 ID:tJobPv/+0
>>575
エクセル エラー ダイアログ じゃないのか?
見つからなければ
>>567の通りに質問すればいいかも
自分がエクセルのことわかってたら教えてあげるんだけど
エクセル使わないのでわかんない
本家で聞いてみて
577名無しさん@お腹いっぱい。:2008/06/11(水) 23:37:59 ID:jahWJzA+0
というか>>569が答え書いてくれてんのに検索する必要もないじゃん
578名無しさん@お腹いっぱい。:2008/06/11(水) 23:41:49 ID:tJobPv/+0
ダイアログの監視ってのがわかんないんだろ
>>569が時間のあるときにでもうpしてあげれないのかな
579名無しさん@お腹いっぱい。:2008/06/14(土) 01:04:05 ID:d4UCkG9u0
自分の場合はIEなんだけど、iexplore.exeというタイトルの
ダイアログが出たらリターン押して回避し、スクリプトを
起動し直す処理として以下の文を別スレッドに書いたよ。
IEを使うスレッドはCOMエラーがでない様にしてる。

procedure error()

while true

id = getid("iexplore.exe")

ifb !(id = -1)

SCKEY(id,VK_ENTER)

Dim ExePath = GET_UWSC_DIR + "\uwsc.exe "
Dim FilePath = "C:\Documents and Settings\unknown\デスクトップ\UWSC\???.UWS"
exec(ExePath + "<#DBL>" + FilePath + "<#DBL>")

    exitexit

endif

sleep(1)

wend

fend
580名無しさん@お腹いっぱい。:2008/06/14(土) 01:05:13 ID:d4UCkG9u0
うわ2chってtab無視されるんだな、、。
581名無しさん@お腹いっぱい。:2008/06/14(土) 01:39:01 ID:MuVzecOr0
乙です
582名無しさん@お腹いっぱい。:2008/06/14(土) 02:32:53 ID:+inPBwFe0
>>580
掲示板はたいていそうだよ。

UWSCは全角スペースおkだから頭に入れるといいよ。
エディタで半角スペース2個を全角スペースに置き換えればいいからすぐできる。
583名無しさん@お腹いっぱい。:2008/06/14(土) 17:23:28 ID:7Ar/nefO0
これって任意のx,y座標をクリックってとうやるの?
CLKITEMじゃx,y座標の設定はできないっぽいけど…
584名無しさん@お腹いっぱい。:2008/06/14(土) 17:25:49 ID:7Ar/nefO0
BTN、MMVでした
585名無しさん@お腹いっぱい。:2008/06/15(日) 23:24:20 ID:nD2XrmN+0
どなたか教えていただきたいのですが、
20日とかかれた物を21日
次の日
21日とかかれた物を22日
と毎日直すルーチン作業をやっているのですが
ここで最初の日付のみを定義するだけで作業を完了させたいのですが
置換の部分がうまくいきません
以下作った物を簡略したものです。
x="20日"
y=x+1

id = GETID("xxxxx")
idd = GETSTR(id)

ic=CHGMOJ(idd,"x","y")
SendStr(id,ic,0,true)

文字を含む数値に加算していくにはどうしたらよいのでしょうか?
諸先輩方ご指導いただけたら幸いです
586名無しさん@お腹いっぱい。:2008/06/15(日) 23:48:09 ID:8kyMHoP00
文字と数値は分離しなきゃ駄目でしょ。

そのサンプルで言えば
x=20
ic=CHGMOJ(idd,x+"日",y+"日")
とかでしょ
587名無しさん@お腹いっぱい。:2008/06/15(日) 23:49:47 ID:QAe9Mnuf0
数値(変数)+文字列じゃないでしょうか?
x = 20
y = x + 1

ic=CHGMOJ(idd,"x" + "日","y" + "日")
間違ってたらスマソ
588名無しさん@お腹いっぱい。:2008/06/15(日) 23:50:59 ID:QAe9Mnuf0
>>587です
あ、カキコしてる間に被ったorz
スマソ
589585:2008/06/15(日) 23:52:57 ID:nD2XrmN+0
>>586
>>587
ありがとうございます!
今やったら動作しました
基礎の基礎ができてなかったですorz
明日から早速使ってみます!
ありがとうございました!
590名無しさん@お腹いっぱい。:2008/06/16(月) 14:54:24 ID:F7HHLzRW0
手でやった方が時間稼げていいんじゃない化?
591名無しさん@お腹いっぱい。:2008/06/17(火) 03:09:56 ID:nudcMvGB0
複数のIF文を1つにまとめようと思い

 IFB 条件式 THEN 実行式
  ELSE IF 条件式 THEN 実行式 ・・・・・
にしたのですが、IFB CHKIMGを含む条件式の行でエラーが出てしまいました
元の文ではエラーはでませんでした
592名無しさん@お腹いっぱい。:2008/06/17(火) 15:26:56 ID:bZJXNtcf0
@IFB 条件式 THEN // 後ろには何も書けない
  実行式
 ELSE
  IF 条件式 THEN 実行式 ・・・・・ // IFは1行に書く
 ENDIF // @のIFBの終了が必要

AIFB 条件式 THEN // 後ろには何も書けない
  実行式
 ELSEIF 条件式 THEN // ELSEIFはIFBのブロック扱いだから@と同じ
  実行式 ・・・・・ 
 ENDIF // AのIFBの終了が必要

@の場合、ELSEなので前半と後半のどちらかが実行されるが、
Aの場合はどちらの条件にも当てはまらない場合、何もしないで通過する。
593名無しさん@お腹いっぱい。:2008/06/18(水) 21:44:15 ID:vzguVllq0
質問です。MS-accessのフォーム上のボタンを押すスクリプトを作成したいのですが
作動しません。COMを使うと言うことですが下記の"InternetExplorer.Application"の
部分をどのように変更したらよいかわかりません。"access.application""msacces.
application"などとやってみたのですがaccessが起動しません。

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True

どなたかMS-accessをCOMで動かす手段を教えていただけないでしょうか。よろしく
お願いいたします。
594名無しさん@お腹いっぱい。:2008/06/18(水) 23:31:56 ID:O6cKVQey0
アクセス持ってないので確認できていないんだけど
こんな感じではないでしょうか

アクセス起動前↓
access = CREATEOLEOBJ("access.Application")//エクセルを起動

既に起動しているエクセルを制御するには↓
access = GETACTIVEOLEOBJ("access.Application",ウィンドウタイトル)

access.visible = True

上記でアクティブにならないときはアクセスを起動しておいて
uwscの「全ウィンドウタイトルを調べる」で窓名とかのスペルを確認してみてください
制御できるようになればボタン操作はuwscヘルプの通りでできると思います
Tabキー使って押す位置にフォーカスを合わせたりボタンを押したりです
子ウィンド名がわからなくなったときは
uwscの//【全ウィンドウタイトルの表示】.uwsで調べれば解決できることが多いです
595名無しさん@お腹いっぱい。:2008/06/18(水) 23:33:41 ID:O6cKVQey0
あー見ればわかるだろうけど
カタカナでエクセルと書いてあるところはアクセスに置き換えてください
エクセルで使えるものを応用しました^^;
596名無しさん@お腹いっぱい。:2008/06/19(木) 00:28:53 ID:SDl/sose0
>>594
【全ウィンドウタイトルの表示】.uws
でぐぐったら「UWSCコードの断片生成器」とか出てきた。
すげーもん作ってるなあとおもた。
597名無しさん@お腹いっぱい。:2008/06/19(木) 01:06:23 ID:K7sdZ0wR0
これマクロの構文が実行できなくて途中でとまってしまったときに
自動的かつ強制的にマクロの実行をとめる構文ってふりますか
598名無しさん@お腹いっぱい。:2008/06/19(木) 02:02:09 ID:SDl/sose0
途中で止まったかどうかを検出できるかわからないけど、
スレッドでタイマー監視(一定時間sleep)して時間が来たら終了とかは出来る。

問題は、トラブルが起きたときに期待通り動くかどうか。
599名無しさん@お腹いっぱい。:2008/06/19(木) 02:03:57 ID:6LATMFMW0
一定時間内に終了しなければ終了ということですか?
600名無しさん@お腹いっぱい。:2008/06/19(木) 02:39:49 ID:SDl/sose0
>>599
うん。

スレッド間通信でもすれば、とまった時点で終了するようにも出来るけど、
同じ変数にアクセスするとエラーになるから・・
601名無しさん@お腹いっぱい。:2008/06/19(木) 04:07:46 ID:GlWaBf090
>>597
> これマクロの構文が実行できなくて途中でとまってしまったときに
これがまず判らん。
602名無しさん@お腹いっぱい。:2008/06/19(木) 04:49:15 ID:3d9V6nEm0
だなぁ…言葉通りに取ったら
実行できないような構文ではエラーになるからそもそも実行できません。とか言いたくなる
603593:2008/06/19(木) 16:53:05 ID:ktF13Wok0
>594
レスありがとうございます。試してみたのですが
access = CREATEOLEOBJ("access.Application")
access.visible = True

これを実行すると一瞬画面になにかが現れて消えてしまいます。
タスクマネージャーで見ていてもaccessは現れません。

ところがウインドウのタイトルを調べるスクリプトを追加して以下のようにしてみると


access = CREATEOLEOBJ("access.Application")//エクセルを起動
access.visible = True

// マウスカーソル下のウィンドウのタイトルとクラス名を表示
While True
  id = GETID(GET_FROMPOINT_WIN)    // マウスカーソル下のウィンドウ
  moji = STATUS(id, ST_TITLE) + " , " + STATUS(id, ST_CLASS)
  Fukidasi(moji, G_MOUSE_X+8, G_MOUSE_Y, 3)
  Sleep(0.2)
Wend

このスクリプトを実行するとアクセスが起動した状態となりました。この動作の
違いがなぜ起こるのかがわかりませんが、少しスクリプトを書き足してうまく
いくかどうかチャレンジしたいと思います。ありがとうございました。
604名無しさん@お腹いっぱい。:2008/06/19(木) 18:07:49 ID:uNr783ut0
>>603
アクセスの起動は完了しているけど
アクティブにできていない状態なのかな?

自分が以前エクセルを使っていたときは
//エクセル
EXCEL = CREATEOLEOBJ("EXCEL.Application")
EXCEL.visible = True
EXCEL.workbooks.add()//新規作成
SLEEP(3.0)

↑これで動いていたんだよね

そのあと状況によって下記のようなのも使っていたみたい
(どんな感じで使ってたのか忘れた^^;UWSファイルだけ残ってた)

ACW(GETID("Microsoft Excel","XLMAIN"),VK_RETURN)
SLEEP(0.1)

ACW(GETID("カレントフォルダの設定","#32770"),VK_RETURN)
SLEEP(0.1)

アクセスにも使えたらいいんだけど
曖昧な返事でスマソ
がんがって下さい
605593:2008/06/19(木) 20:47:55 ID:KIGy1Ht30
604様ありがとうございます。uwscとIEやEXCELの関連については色々な所に書いて
あるのですがaccessについてはほとんど情報がなく手探りの状態です。COMについて
もう少し勉強してみます。

とりあえずMMVを駆使(藁)して何とか実行は出来たのですが、環境を選ばないで実行
出来るようになるのはまだまだ先のようです。
606593:2008/06/20(金) 08:01:10 ID:A413DB570
アクセスの既存のデータベースを開くことが出来るようになりました。
OpenCurrentDatabaseというコマンドを用いるようです。お騒がせしました。

access = CREATEOLEOBJ("access.Application")//アクセスを起動
access.visible = True
access.opencurrentdatabase("ファイル名")
607モカジャバ:2008/06/20(金) 12:27:39 ID:wy+L+eJ10
OpenCurrentDatabase メソッド
http://msdn.microsoft.com/ja-jp/library/cc358675.aspx

ネットに情報が少ないなら、公式のリファレンスでメソッドやプロパティの使い方を調べるのが定石。
608593:2008/06/20(金) 12:44:56 ID:A413DB570
607様ありがとうございます。

プログラムというのがよくわかっていないこともありuwscのコマンドについて
調べていたのですがあまり情報が無く質問いたしました。

COMというのはuwscのコマンドではなくCOMという言語がありそれをuwscから
コントロールするという理解でよろしいのでしょうか。
609名無しさん@お腹いっぱい。:2008/06/20(金) 13:03:01 ID:ls2JXAPg0
uwsc自体が何に準拠しているのか明確にしていないので仕方ないよ
あえて言うならWSHって聞いたことある
わからないときはお互い様だ
わかるまで質問していいよ
でもよく調べたね
お疲れです
610593:2008/06/21(土) 07:57:02 ID:sUem1x2/0
609様、ありがたいお言葉、助かります。

むかしBASICで挫折して以来言語というものに手を出せなかったので
正直VBですら全く理解していません。少しずつ勉強しながら安定して
動作するようなスクリプトを目指します。

WSHがwindows script hostというのを今調べましたが初耳です。
仕事が終わったら図書館に行って関連書籍を借りてみます。

ありがとうございました。
611名無しさん@お腹いっぱい。:2008/06/24(火) 22:43:56 ID:+7wAG0iP0
割り込みですみません。
ACCESSのクエリで表示されている特定のフィールド値を最初から順番に取得
するマクロを作成中です。DoCmd.FindrecordやGotoControlを使用し、レコードの
移動には成功していますが値の取得方法がわからず苦戦しております。
どなたか方法をご存じの方いらっしゃいましたらよろしくお願い申し上げます。
612名無しさん@お腹いっぱい。:2008/06/25(水) 15:15:25 ID:klVdyEjQ0
xlsファイルで検索文字が完全に一致したもののみに
セルに色をつけたいのですが

Excel = CreateOLEObj("Excel.Application")
Excel.Visible = True
Excel.Workbooks.Open(C:\Documents and Settings\sadaharu_hoshi\デスクトップ\test.xls)

Excel.Cells.Find(str_Find, LookAt:=xlWhole).Select
Excel.activecell.Interior.ColorIndex = 6

上記のコードを実行すると

Uスクリプト:SyntaxError
5行目:Excel.Cells.Find(str_Find, LookAt:=xlWhole).Select

となってしまいます.
どうすれば,完全に検索文字と一致したものだけのセルの色を
へんこうできるのでしょうか?

ご教示よろしくお願いします
613名無しさん@お腹いっぱい。:2008/06/25(水) 21:57:51 ID:zaCWwpIV0
絶対エクセルのマクロでやったほうがいいと思う。
情報量もUWSCと比較にならない
614名無しさん@お腹いっぱい。:2008/06/26(木) 02:20:39 ID:sqQM/O7j0
>>613
そうですかぁ
わかりました.マクロの方でやってみます
どうもありがとうございました.
615名無しさん@お腹いっぱい。:2008/06/26(木) 13:29:09 ID:mMvm/9WB0
>>612
Find(str_Find, LookAt:=xlWhole)
名前付き引数を使う場合は、全引数に指定する

Find(What:=str_Find, LookAt:=xlWhole)
616名無しさん@お腹いっぱい。:2008/06/28(土) 00:04:53 ID:b1Whp9d10
ファイルのリネームを行う関数を考えてます

Procedure frename( dir, file, name )
  DosCmd("cd "+dir)
  DosCmd("ren "+file+" "+name)
Fend

このようにカレントディレクトリを指定した後
renコマンドを使うってことは出来ないですか?
617名無しさん@お腹いっぱい。:2008/06/28(土) 00:18:47 ID:b1Whp9d10
DosCmd("cd "+dir+"<#CR>ren "+file+" "+name)

でもダメですね。
複数行はやっぱり無理なんでしょうか
618名無しさん@お腹いっぱい。:2008/06/28(土) 00:23:16 ID:WR75zVs00
>>616
ren [Drive:][Path] filename1 filename2
だから Doscmd(”ren "+dir file name) じゃダメなのか?
619名無しさん@お腹いっぱい。:2008/06/28(土) 00:29:18 ID:XI3OReZa0
こうじゃね? 自分のやつからコピペだけど推測して
doscmd("REN "+"<#dbl>"+ filefolder[n] +"\" + zipfile + "<#dbl> <#dbl>"+ zipren +"<#dbl>")
620名無しさん@お腹いっぱい。:2008/06/28(土) 00:36:42 ID:WR75zVs00
あぅ…
Doscmd(”ren "+dir+" "+file+" "+name) か…
スペースあるならDBL関数作っといた方が楽だと思う。
621名無しさん@お腹いっぱい。:2008/06/28(土) 00:57:43 ID:2wvBs21W0
俺ならリネームはFileSystemObject使う。

public FS = CreateOleObj("Scripting.FileSystemObject")

objFile = FS.GetFile(fullPath) // リネームするファイルのフルパス
objFile.Name = str // strはリネーム後の名前
622名無しさん@お腹いっぱい。:2008/06/28(土) 01:39:03 ID:b1Whp9d10
どうもありがとう!!
623gSjGauIANh:2008/06/28(土) 07:36:00 ID:+42q7T9h0
624YbubserYoWqU:2008/06/28(土) 08:32:11 ID:6ECDHc1O0
625GHfigxpcoUt:2008/06/28(土) 09:27:49 ID:NwrNMM+w0
626vYHAQxlnxgFUs:2008/06/29(日) 00:33:38 ID:Vcw/MXEk0
627612:2008/06/29(日) 15:14:49 ID:y910ZLsm0
>>615
ご教示ありがとうございます

> Find(What:=str_Find, LookAt:=xlWhole)

で指定しましたが,

Uスクリプト:SyntaxError
がやはりでてしまいます.
628QtHtXvZyvbaqQC:2008/06/29(日) 19:47:55 ID:nRoHUr660
629615:2008/06/30(月) 10:17:25 ID:wlnysiba0
>>627
名前付き引数を使うとカスケード呼び出しがNGのよう
一度変数に入れるとOK
range = Excel.Cells.Find(What:=str_Find, LookAt:=xlWhole)
range.Select()

もしくは
Excel.Cells.Find(str_Find, , xlWhole).Select()
630612:2008/07/01(火) 00:42:50 ID:Fu8k1XEt0
>>629

ありがとうございます.

> range = Excel.Cells.Find(What:=str_Find, LookAt:=xlWhole)
> range.Select()

> Excel.Cells.Find(str_Find, , xlWhole).Select()

勉強になりました.ホントありがとう
631名無しさん@お腹いっぱい。:2008/07/03(木) 21:50:19 ID:0JVVZLzI0
すいませんtabコードってなんでしょうか?
ぐぐってみてもわかりませんでした

初歩的なことかもしれませんがお願いします
632名無しさん@お腹いっぱい。:2008/07/03(木) 23:49:57 ID:QhOIn+IH0
文字はコードで表されています。
半角なら1バイト、全角なら2バイト。
だけど、表示できる文字以外に制御コードっていうのも一緒に割り当ててあります。
DeleteとかBackSpaceとかTABとか。
TABコードはテキストの中に含まれていた場合、半角4文字とか8文字のスペースと同等の空白になるのが普通です。
特殊な文字のようでもありますが、本来は制御コードなのでTABコードと言います。
これをキー入力として送信するとアクティブコントロールが移動します。つまり制御します。
633名無しさん@お腹いっぱい。:2008/07/04(金) 02:14:35 ID:3i9jmRR10
休止状態から復帰してUWSCのプログラムを動かすことはできたんですけど
処理がおわったらまた休止状態にしたいんです。
どういう手段がありますかね?
634名無しさん@お腹いっぱい。:2008/07/04(金) 02:39:46 ID:37/GdBOi0
スタート -> U -> H とかじゃ駄目なの?
635名無しさん@お腹いっぱい。:2008/07/04(金) 02:48:18 ID:8gGyz43L0
自分ならNircmd使うかな…
専用のTool他、たくさん方法はあるんでない?
636名無しさん@お腹いっぱい。:2008/07/04(金) 03:53:54 ID:8suXK6E50
ある時刻になるまでループする処理を作りたいんだけど
"120000"という文字列で12時ジャストにループから抜けるようなコード作れる?
秒数にするサンプルあさってみたがとんでもない数値になって比較しても時間になってもループ抜けない。
どうしたらいいか途方に暮れてるのですがわかる方いらっしゃいますか。
637名無しさん@お腹いっぱい。:2008/07/04(金) 04:32:04 ID:RsgoRE8V0
Repert
 Gettime
Until Val(G_TIME_HH2 + G_TIME_NN2 + G_TIME_SS2) > Val("120000")

思いついただけ、確認すらしてない
638名無しさん@お腹いっぱい。:2008/07/04(金) 04:32:39 ID:8gGyz43L0
>>633
なんだ、標準コマンドあるじゃん…
// シャットダウン/電源断/サスペンド/モニタOff
POFF( コマンド )
引数
  コマンド:
    P_SUSPEND      // サスペンド  (休止状態)
    P_SUSPEND2      // サスペンド2 (スタンバイ)

>>636
// 日付、時間の取得(時間変数に時間を設定する)
戻値 = GETTIME( [±n日, 基準日] ) 
ではダメ?

これ探して上のを見つけたのは内緒w
639名無しさん@お腹いっぱい。:2008/07/04(金) 06:08:59 ID:3Y1UQhzK0
ぽふ
640名無しさん@お腹いっぱい。:2008/07/04(金) 07:39:44 ID:deccdJhu0
>>636
1周2秒以上かかるループで秒数ぴったりをチェックしてもだめですよね。
59秒のつぎは01秒なので、00秒にはなりません。
つまり、12時ちょうどなら
ifb 12 <= 時 then
 ifb 0 <= 分 then
  ifb 0 <= 秒 then
   // これで条件を満たす。
  endif
 endif
endif

こんな判定条件がいやだというなら単位を秒にそろえて判定
ただし日付が変わる24時を超えることはないので万能でもない。
12 * 60 * 60 + 00 * 60 + 00 <= 時 *60 *60 + 分 * 60 + 秒

時、分、秒はそれぞれG_HHとかのグローバル変数に置き換えてくださいです。

その前にGetTime()の戻り値は秒単位で日付入りらしいので
120000の文字列からGetTime()と同じ形式の数値を作れば
終了時刻 <= GetTime
だけで済む
641名無しさん@お腹いっぱい。:2008/07/04(金) 08:05:53 ID:deccdJhu0
>>636
GetTimeの戻り値は2000年1月1日を基準とした秒数らしいですが、
日付からこれを求めることはできません。
1年は365日の年と366日の年があるので、
基準日からのうるう年については2月29日の日数を加えないといけません。

そんなめんどくさいこと出来ませんよね。

今日の0時ちょうどの日時が分かればいいので、現在の日時を求め、
単位を日とし、時分秒が小数になるのでこれを切り捨てます。
そしてまた単位を秒にあわせます。
すると今日の0時0分0秒の日時が求まります。
式は↓です。
int(GetTime()/24/60/60)*24*60*60

上記に終了条件の時刻を加えたものをtmとすると終了条件は
tm <= GetTime()
となります。


ていうか午前0時をまたがらないなら>>637がシンプルでいいね。
642名無しさん@お腹いっぱい。:2008/07/04(金) 09:25:45 ID:ZgSKBrr/0
UWSCが時間に動作しないことがまれにあるんで
確認のため動作ログを確認したいのですが
UWSCって動作ログをとっていないのですか?
643名無しさん@お腹いっぱい。:2008/07/04(金) 10:21:01 ID:4OkrgPTa0
>>642
print 使ったら?
UWSC.LOGに書き込まれるよ
644名無しさん@お腹いっぱい。:2008/07/04(金) 14:08:34 ID:ZgSKBrr/0
>>643
printをの例文を調べてみたのですが、ちょっとレベルが高すぎてわかりません
簡単にスクリプトの実行したかどうかを記録するにはどうしたらいいのでしょうか
645名無しさん@お腹いっぱい。:2008/07/04(金) 14:22:37 ID:XrjlVSUZ0
Print "スクリプト実行"
646名無しさん@お腹いっぱい。:2008/07/04(金) 16:48:50 ID:deccdJhu0
>>645
それだけじゃいつ実行したか分からないからこの2行でやらないか?

GetTime()
print G_TIME_HH2 + G_TIME_NN2 + G_TIME_SS2 + "スクリプト実行"
647名無しさん@お腹いっぱい。:2008/07/04(金) 17:04:56 ID:XrjlVSUZ0
ログウィンドウには時間でないけど、ログファイルにはちゃんと時間が記録されてるよ
648名無しさん@お腹いっぱい。:2008/07/04(金) 17:06:38 ID:deccdJhu0
そなん?
ログファイル見たことないから知らなかった。
649名無しさん@お腹いっぱい。:2008/07/04(金) 18:58:43 ID:CDmV8Cd30
>>645
>>646
ありがとうございます
マクロの先頭にいれるだけで記録できました
650名無しさん@お腹いっぱい。:2008/07/04(金) 22:52:05 ID:3i9jmRR10
>>638
ありがとう!
651名無しさん@お腹いっぱい。:2008/07/04(金) 22:52:51 ID:3i9jmRR10
ちなみにUWSCからメール送信とかは難しいですよね?
652名無しさん@お腹いっぱい。:2008/07/04(金) 22:58:59 ID:E9FCBAbX0
Outlookをアクティブにして
AltF+N+M(新規メール)
宛先をSenstr
TABキー、2回送る
件名をSendStr
TABキー一回
本文SendStr
Alt+S(送信)

難しいか?
653名無しさん@お腹いっぱい。:2008/07/04(金) 23:02:07 ID:5ppmvBWb0
チェーンメールコワス
654名無しさん@お腹いっぱい。:2008/07/04(金) 23:02:36 ID:5ppmvBWb0
ありがとうございました><
655名無しさん@お腹いっぱい。:2008/07/04(金) 23:15:00 ID:3i9jmRR10
>>652
UWSCのスクリプトから直接は無理ですかね?
656名無しさん@お腹いっぱい。:2008/07/05(土) 00:36:29 ID:ChaTk63p0
>>655
UWSCそのものにはそういう機能はない。
OLEで送信できるツールはあるらしい。
あと、DOSのコマンドラインで送信するツールもある。(これはパスワード入力なのでセキュリティなし)
657名無しさん@お腹いっぱい。:2008/07/05(土) 00:56:05 ID:vx0jzNga0
メール送信のサンプルスクリプト付いてただろ
658名無しさん@お腹いっぱい。:2008/07/05(土) 08:25:51 ID:ChaTk63p0
本家のサンプルページにはないな。

Yahooメールへの入力
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=1711

Gmailとかのスクリプトについても掲示板に書かれていたんだけど検索で出てこない。
スレ主が消しちゃったのかも・・・
659名無しさん@お腹いっぱい。:2008/07/05(土) 10:20:05 ID:vx0jzNga0
サンプルはuwscがインストールされてるとこだよ
660名無しさん@お腹いっぱい。:2008/07/05(土) 13:03:29 ID:ChaTk63p0
>>659
見当たらないけどバージョンは?
有料版だけとかじゃね?
661名無しさん@お腹いっぱい。:2008/07/05(土) 13:08:03 ID:vx0jzNga0
インストールするだけなら金払わなくていいし、やってみればいいんじゃね
662名無しさん@お腹いっぱい。:2008/07/05(土) 14:40:40 ID:PrHECd6k0
スパマに協力しない。
663名無しさん@お腹いっぱい。:2008/07/05(土) 21:23:05 ID:F4EdzD4S0
593で書き込みした者です。その後WSH、VBScriptについてしらべており
Access関連が少し書いてあるHPを発見しました。

ttp://www.happy2-island.com/vbs/

わかっている方には今更かもしれませんが自分のような初心者には参考に
なるページでした。
664名無しさん@お腹いっぱい。:2008/07/06(日) 08:59:48 ID:N9rMW5ah0
全然詳しくはないのですが分からない事があったので質問させてもらいます。

Microsoft Virtual PCで本PCから仮想PCの操作をしようと思ったのですが、
ACWとMOUSEORGとBTNで座標等の指定をしてもカーソルが画面の淵に行ってしまいます・・・

他に何が必要なのでしょうか(´・ω・`)
665名無しさん@お腹いっぱい。:2008/07/06(日) 09:38:31 ID:l+fd55Q80
>>664
仮想マシンの場合、ホストとゲストそれぞれにマウスがあることになってますが、
ゲストを操作してるとき、実際にはホスト側のマウスは非表示になっているはずです。

ゲスト操作モードの場合は表示されているカーソルはゲストのもので、
UWSCが操作したのは見えないホスト側だったりして、操作と実際がちぐはぐに見えることがありますが、
クリック自体はできるはず。

ゲストのマウス操作は仮想マシンのドライバがホスト側マウスを監視してゲストに反映させていると思いますが、
UWSCによる操作を仮想マシンが拾えてないからかも。

VMwareの方はクリックしてみればマウス表示も反映されるので、操作はできると思います。
ただし、ゲストマシンは画像としか認識できないので文字やウィンドウIDで指定して操作できません。
純粋に座標のみでの指定になるので、全画面表示で固定のレイアウトである必要があります。
また画面サイズも固定しなければなりません。
ちなみに仮想マシンの窓枠を基準にした座標になるので、
ツールバーとかの配置次第で仮想マシンの座標も変わってきます。

よく分からないけどとにかくゲストにペイントを全画面で表示してクリックしてみるのがいいかと。
666名無しさん@お腹いっぱい。:2008/07/11(金) 00:08:41 ID:frIKgHJP0
  htmlファイルの中に抜き出したい行が複数行あるのですが
どんな方法がありますか?
抜き出したい所の記述は

<html><body>
〜うだうだ〜
<---ここから開始--->
抜き出したい部分
<---ここで終了--->
〜うだうだ〜
</body></html>

という記述です。
特定の文字があれば、抜き出したり
同じ行番号なれば指定出来るのでしょうが
全部が全部ランダムなのでどうしようかと・・・
自分的には唯一どのファイルにも特定している<ここから開始><ここで終了>
という部分を使えばいいと思うのですが、それをどう料理していいのか

長文になりましたが、何かいい方法ありませんか?
667名無しさん@お腹いっぱい。:2008/07/11(金) 08:17:42 ID:SuB3ejR50
>>666
> 特定の文字があれば、抜き出したり 

<---ここから開始--->  と  <---ここで終了---> は
特定の文字のようにに見えるのだが、なにかダメな理由があるのか?

668名無しさん@お腹いっぱい。:2008/07/11(金) 09:20:59 ID:+v8JH0GP0
「〜うだうだ〜」で抽出すればいい。
669名無しさん@お腹いっぱい。:2008/07/11(金) 11:07:24 ID:KCN23mY00
>>666
悪魔のような質問者ですね。(数字的な意味で)

> 全部が全部ランダム
なら、抜き出したい部分をどうやって特定してるんですか?
670名無しさん@お腹いっぱい。:2008/07/11(金) 23:42:40 ID:frIKgHJP0
質問の仕方が下手で申し訳ないです。
それと、仕事が夜なのでレスが遅くなりました、重ねてお詫びします。

自分で読み返した所文章がおかしい事に今更ながら気がつきました。
「抜き出したい所の記述」ではなくファイルの中身の記述が
上記666のような中身の構成になっておりまして、
必要部分が<---ここから開始---> <---ここで終了--->の間の文章となっております。


>>667さん
駄目な理由は無いのですが、その唯一どのファイルにも共通の記述
<---ここから開始---> と <---ここで終了--->
で挟まれてる文章の抽出方法がわからないのでお知恵を拝借したいと・・・(汗

>>668さん
「〜うだうだ〜」の所を削除しようと思うも、「〜うだうだ〜」がランダムに記述されているので
特定の方法に手を拱いております。
今の所前半の〜うだうだ〜は特定の行番号で終わっているようなので、
1行削るのを指定行数分ループさせて削っているのですが
後半のうだうだの開始位置=<---ここで終了---> の記述行が数行ずつ+にも-にも
ずれているので手詰まり状態ですorz

>>669さん
今気づきました・・・不吉ですね(汗
ややこしい質問をして申し訳ないです。

抜き出したい部分が特定出来ないのでここでお知恵を拝借したいと思っています。
辛うじて<---ここから開始---> と <---ここで終了---> で挟まれている文章という事しか提供出来ないのです。

判り難い質問まことに申し訳ないです。
宜しくお願いします。
671名無しさん@お腹いっぱい。:2008/07/12(土) 02:03:47 ID:SD8FEZLR0
ファイルオープンして
<---ここから開始--->が出るまで1行ずつ読み込んで
<---ここから開始--->出たら
<---ここで終了--->が出るまで1行ずつ読み込んで
抜き出し処理

これだけの話じゃない…ヘルプのスクリプト関数 - ファイル関連を読みましょう
672名無しさん@お腹いっぱい。:2008/07/12(土) 02:37:27 ID:CS8PMpjf0
たしかにFOPEN,FGET,FDELLINE,POSでできそうだな。
673名無しさん@お腹いっぱい。:2008/07/12(土) 02:45:28 ID:5ZM3Kebs0
<---ここから開始--->と<---ここで終了--->が定型文なら
cmdのfindstrで行番号探してから抜き出してやる方法もある。
(uwscで一行づつ読込み、判定させるよりは早い)
674名無しさん@お腹いっぱい。:2008/07/12(土) 06:38:44 ID:yIjoMxpX0
675名無しさん@お腹いっぱい。:2008/07/12(土) 11:01:26 ID:I0tP99PH0
UWSCはFirefoxに対応してるんですか?
下記の命令をFirefoxで行う方法教えてください

@UNTIL !IE.BUSY AND IE.READYSTATE = 4
AACW(GETID,)
BIESetData(IE,True,"","")
676名無しさん@お腹いっぱい。:2008/07/12(土) 12:50:12 ID:J6VPGUm10
>>675
対応してません。
本家掲示板でもその質問はあったと思いますが。

正確には、FireFoxはOLE機能を提供してないので
Webページのオブジェクトにはアクセスできません。

FireFoxは拡張できるのが特徴なので、OLE機能を提供するプラグインをインストールし、
それを利用することでIEのように操作することが可能になるようです。

もうちょっと簡単な方法は、FireFoxのウィンドウにIEを取り込んで使う方法で、
これは実質IEを開いてるのでIEと同じように操作できるはずです。
これもプラグインのひとつです。
677名無しさん@お腹いっぱい。:2008/07/12(土) 15:32:59 ID:I0tP99PH0
>>676
詳しくありがとうございます
了解しました
678名無しさん@お腹いっぱい。:2008/07/14(月) 00:49:54 ID:qqGjhliD0
STOPFORM(true)
Dim oHttp // 通信オブジェクト
url="http://mamono.2ch.net/newsplus/subject.txt" // スレッド一覧
conturl = "http://mamono.2ch.net/test/read.cgi/newsplus/" // スレッド保存場所
DIM text= "2" // 投稿テキスト

oHttp = CreateOLEObj("MSXML2.XMLHTTP")
IE = CreateOLEObj("InternetExplorer.Application")
IE.visible = True
ID = HNDToID(IE.HWND)
LastModified = "Thu, 01 Jun 1970 00:00:00 GMT"
sleeptime = 1
while 1 // 監視ループ
 sleep(sleeptime)
 Gettime()
COM_ERR_IGN  //COMエラー無視
 oHttp.Open("GET", url, True )
 oHttp.setRequestHeader("If-Modified-Since", LastModified);
 oHttp.Send("") // スレッド一覧の取得
 ifb 200 = oHttp.status Then
  sleeptime = 3
 else
  // エラーのたびに間隔を長くして監視を継続する。
  sleeptime = sleeptime + 10
  continue
 endif
 LastModified = oHttp.getResponseHeader("Last-Modified")
679名無しさん@お腹いっぱい。:2008/07/14(月) 01:00:45 ID:qqGjhliD0
 ifb COM_ERR_FLG
  continue
 endif
COM_ERR_RET  //エラー処理復帰
 // ファイルの取り出し
 str = DECODE(oHttp.responseBody, CODE_BYTEARRAY)
 // 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
   str2 = CopyB( str1, 1, 10 )
   ThreadNo = Val(str2, -1)
   if -1 = ThreadNo Then continue 2
  endif
 next
 // 新規のスレがあれば、投稿処理
 Ifb ThreadNo Then
  ret = Cont( IE, conturl, ThreadNo, text)
  Gettime()
  ifb ret Then
   // 投稿したら130秒待つ。
   sleeptime = 130
  else
   sleeptime = 5
  endif
 Endif
wend
680名無しさん@お腹いっぱい。:2008/07/14(月) 01:17:13 ID:qqGjhliD0
>>678-679は2ゲットスクリプトの一部で、
ニュース速報+のスレッド一覧から新規スレを検出し、投稿処理を呼び出す。
以前、HTMLファイルを受信していたが、これだと混雑時に更新しないしエラーでまくり。
テキストファイルをゲットすればサイズも小さく、鯖への負担も軽いし、
何より、かなり確実に更新される。
たまに10秒くらい遅れてる感じだけど。

Subject.txtで取得したテキストは、メモ帳に送るとなぜか改行コードが消えてたので
区切りを検出できないと思ってたけど、内部で<#CR>を区切りにしてみるとちゃんと1行ずつ取得できた。
HTMLを処理するよりだいぶシンプルになった。

スレッドの番号はエポック秒(1970年1月1日を基準にした秒)なので、
GetTime()の戻り値に946652400を加えるとスレッド番号になる。
実際にはその番号のスレがあるかどうかは、取得してみないと分からないが、
逆にスレ番から946652400を引いた数値とGetTime()の戻り値を直接比較するのに便利。
たとえば、現在時刻から何秒前までのスレ番を抽出したり、
UWSCでは日付を指定して取得することもできるので何日前から何日前までのスレ番を抽出したりとかできるかと。

まあ応用は勝手にそれぞれやればいいけど、効率的な方法があるってことで。
681名無しさん@お腹いっぱい。:2008/07/14(月) 01:33:38 ID:bJMmtxHO0
2ゲットは惜しみなく奪う(時間的な意味で)
682670:2008/07/14(月) 01:40:53 ID:TCAGfTzi0
みよう見真似で

CONST AA = "test.txt"

File_ID = FOPEN(AA, F_READ)
if File_ID < 0 then EXITEXIT

BB = fget(file_id,-1)
CC = ""

EEE = Pos("<---ここで終了--->","<---ここで終了--->")

for i = EEE to BB
CC = CC + FGET(File_ID, i) + "<#CR>"
next

print CC

<---ここから開始--->は行番号が決まっていたので、
その行までループで削除するようにしましたが、
後半部分の<---ここで終了--->以降全部削除しようと思うも
検索対象のEEEがどうにも反応してない様子です。

何処か変ですか?EEEだけをプリントで出力すると1と帰ってくるのも変な気がするのですが(汗
ヘルプによると(1から)と記述されてるので、記載されてる行番号が表示されないとおかしい気がするのです・・・
683名無しさん@お腹いっぱい。:2008/07/14(月) 02:20:49 ID:qqGjhliD0
EEE = Pos("<---ここで終了--->","<---ここで終了--->")
for i = EEE to BB

ここ、2行とも間違ってる。
Posはキーワードが出てくるところまでの文字数を取得するけど
BBはファイルの行数。
文字数から開始して行数まで繰り返すのは間違ってる。

「ここで終了」ってキーワードを行単位で探して、次の行からを連結するんなら

  // キーワードの検索
  行数 = fget(file_id,-1)
  cnt = 1
  for i = cnt to 行数
   cnt = i
   text = fget(file_id,cnt)
   If Pos("<---ここで終了--->", text) Then break
  next
  
  // キーワード以後の連結
  CC = ""
  for i = cnt to 行数 // ここで初期値に使うcntが
   cnt = i
   text = fget(file_id,cnt)
   CC = CC + text + "<#CR>"
  next

って感じでやるんだけど、改行つきテキストを連結してどうするんだろ。
FPut()で出力できるのは1行ずつな気がするけど。

アドバイスというかお願いだけど、一つ一つ、ひと塊ずつ、変数に代入するたびprintとかして
期待したとおりになってるか確認してください。
684名無しさん@お腹いっぱい。:2008/07/14(月) 12:32:44 ID:MeDJ1bEO0
動画配信サイトyoutubeでタイトルと埋め込みタグembedを自動で集めたいんだけど
どこに質問してもわからないのでどなたか教えてください
recIEで記録させてみるんですけどIEナビゲータはURLを記録します
同じ動画(同じURL)は必要ないのどうしていいのかわかりません

下記のアドレスはyoutubeで「マジック」を検索したものです
http://jp.youtube.com/results?search_query=%E3%83%9E%E3%82%B8%E3%83%83%E3%82%AF&search_type=&aq=1&oq=%E3%83%9E%E3%82%B8

動画が20個出てきます
動画の部分もしくはリンクをクリックすれば
その動画のページにジャンプします
動画のページでは左側にテレビ画面、右側に埋め込みタグ(embed)があります
このタイトルとembedを記録保存したいんです

タイトルとembedをメモ帳などに保存したら
先ほどの20タイトル並んだ画面に戻り
次の動画で同じようにタイトルとembedを記録したいです

20タイトル終わると
”次へ”をクリックして
次の20タイトルも同じようにタイトルとembedを保存したいです

つまり「マジック」に関する動画のタイトル一覧表みたいなものを
自動で作る方法を探しています

どなたか優しい方、丸投げでお願いいたしますm( _ _ )m
685名無しさん@お腹いっぱい。:2008/07/15(火) 18:06:35 ID:Z+obuikc0
ユーザー切り替え後も切り替え前のユーザーで連打とか動作し続けるツールはありますか?
686名無しさん@お腹いっぱい。:2008/07/15(火) 21:27:17 ID:mnZsQEf80
そういうことは無理だと思うけどXPのマルチログオンで
他のユーザーとオーディオデバイスは共有してるから、
キーボードを共有状態にできればやれるかもね。

デバイスドライバとして動作するキーボードマクロならもしかしたら可能かもしれないけど
パスワードの設定があると他のユーザーでログインすらできないんじゃないかな。

あと、Vistaからはサウンドもユーザーごとに切り替えられるから無理なはず。
687名無しさん@お腹いっぱい。:2008/07/17(木) 13:52:55 ID:3fAWKken0
>>685
>切り替え前のユーザーで連打
ああ
勘違い
裏で継続できるかってことか。
・・・
688名無しさん@お腹いっぱい。:2008/07/17(木) 14:35:07 ID:3fAWKken0

とりあえずUWSCはログイン画面に戻るとフォーカスを失ったような状態なのか、
キー入力はとまる。
「アプリケーションに直接送る」では、期待通りの動きはしない。
メモ帳に送ってみたが、文字が入力されない。

キー操作が入らない2ゲットツールなら問題なく動いた。
689名無しさん@お腹いっぱい。:2008/07/18(金) 17:14:48 ID:8voCrDJ20
スケジュールって秒単位の設定できないの?

Web特価品の自動購入したいけど、試してみたらワンテンポ入れて実行されるみたいなんだよね。
Windowsの時計を一秒遅らせるとかするしかないんだろうか?
690名無しさん@お腹いっぱい。:2008/07/18(金) 17:50:47 ID:rNBqL2L30
>>689
数分前にスケジュールで起動して
プログラムで秒単位で指定した時間に開始するような条件式を作ればよくね?
691名無しさん@お腹いっぱい。:2008/07/18(金) 18:44:37 ID:DWeC3/rB0
>>689
> Web特価品の自動購入

よくそんな恐ろしいことする気になるよな。

> Windowsの時計を一秒遅らせる

時計なんてすぐ狂うから意味ないしょ。

特価品のページが更新されたかをチェックしてループするのが確実。
Webページの更新日時も取得できるけど、自動的に広告が挿入されるのが最近の主流なので使えない。
ページ内に日時が書いてあれば利用可能。
692名無しさん@お腹いっぱい。:2008/07/18(金) 18:57:21 ID:8voCrDJ20
自動購入というか、マウスの動作覚えさせてその時間に誤差なくボタン押してくれれば良いんですよ。
693名無しさん@お腹いっぱい。:2008/07/18(金) 19:08:13 ID:77fZOqmT0
誤差を1秒以内に納めることは出来るかもしれないが、誤差無く…は無理でしょう
694名無しさん@お腹いっぱい。:2008/07/18(金) 19:45:50 ID:DWeC3/rB0
Webページって通信状況とかによってだいぶ時間がずれますよ。
2げっとツールでも3秒で投稿できるときもあれば10秒以上かかることもあるし。

それから、テレビ用の2代目のHDDとかはたいてい回転止まってるんで、
テレビ起動するとき5〜10秒くらいスピンアップのために動作が止まったりします。

より正確に実行するには、1分前には起動し、
ページの表示も済ませておいて、ボタンを押すだけの状態にしておくことですね。

でもその日公開されるページを真っ先にということなら、
1分前から数秒おきに更新してチェックする必要があると思います。
その場合、IEを使うと、確実に再表示できるのは5秒に一回くらいです。
待ち時間を0にすると、毎回表示にかかる時間が違うので
1回あたりの実行時間はだいたい3秒くらいでばらつきがあります(2chのSubject.txtの場合)
しかし、キャッシュを取ってくる可能性があるので100%ではありません。

だからある程度大雑把にしか動作しないんですよ。

しかも上述したのはIE.Navigateすら使わない効率的な方法を取っての話なので、
ページにもよりますが十秒間隔で更新チェックできればいいほうじゃないでしょうか。
695名無しさん@お腹いっぱい。:2008/07/19(土) 20:43:05 ID:rNizFNq90
流れぶった切ってすいませんが
Vistaを使ってまして通常はシャットダウンでPCを終了してますが
uwscを使う時だけスリープにしたいのです
uwscから簡単にスリープにする方法が何か無いですか?
696名無しさん@お腹いっぱい。:2008/07/19(土) 20:47:34 ID:3uNuK02O0
スリープ状態から動くかも問題だね
697名無しさん@お腹いっぱい。:2008/07/19(土) 21:46:27 ID:y8X8e7tl0
>>695
POFF(P_SUSPEND2)
698名無しさん@お腹いっぱい。:2008/07/19(土) 23:34:28 ID:g+iZ7MVs0
Flashベースのソフトを自動化したいのですが、
ハンドルの取得ができません。というかクラス名がわかりません。
どのようにしたら調べられますか?
ちなみにブラウザ上で動作するものではありません。
699670:2008/07/20(日) 00:28:34 ID:I4f/l7Cx0
>>683
超亀レスすみません。アドバイス有難う御座いまた。

いまいち、思った通りの動作をするスクリプトを組めなかったので
かなり遠回りなやり方で事無きを得ました。
レスして頂いたのに呑み込めなくて申し訳ないです。
有難う御座いました。
700名無しさん@お腹いっぱい。:2008/07/20(日) 01:19:57 ID:ssVPdnxs0
>>697
695ですがお礼が遅くなってすいません
望んでいたとおりの動作して感動です
もうメッチャ愛してるw ありがとね〜
701名無しさん@お腹いっぱい。:2008/07/21(月) 00:55:52 ID:kzG2P0jD0
>>684
お願いします
702名無しさん@お腹いっぱい。:2008/07/21(月) 03:36:14 ID:anIQTZGU0
【毎日・変態報道】毎日新聞、20日付で追加処分等発表 元総合メディア局長を減俸20%1月 記事転載サイトには削除要請を実施
http://www.mainichi.co.jp/20080720/0720_06.html

はいはいごめんね悪かった
一ヶ月10〜20%減俸しますよ。昇進もするけどwww
おら!謝ったんだから以後この話すんな!
まとめサイトも消えろ!!

って事ですねw
703名無しさん@お腹いっぱい。:2008/07/21(月) 04:00:44 ID:hnxMA1ZS0
>>701
完全なタイトル か 検索一覧のタイトル どっちを拾いたいの?

> つまり「マジック」に関する動画のタイトル一覧表みたいなものを
> 自動で作る方法を探しています
目的はこれだけ?

> embed
どの部分か教えて。興味ないから全然知らん。

眠いからとりあえず寝る。
CSSだから作りきれるかわかんなそす。
704名無しさん@お腹いっぱい。:2008/07/21(月) 04:31:31 ID:+bnEM3GP0
>>703
ありがとうございます
705名無しさん@お腹いっぱい。:2008/07/21(月) 10:52:37 ID:nWr2udRv0
>>703
それぞれのタイトルまたはサムネイルをクリックすると
その動画のページに飛びます
出てきたテレビ画面の上にあるタイトルです
テレビ画面の横に説明と埋め込みタグがあります
>>684の1つめを例にしたら
「人体切断マジックを透明な箱で種明かし」 これがタイトルです(テレビ画面の上にあります)

テレビ画面右側に↓このよいうにありますので、その下にEMBEDがあります(クリックしないとコピー出来ないようなんです)

投稿者: aiaiaiai00
メンバー登録: 5 か月前
動画: 17 チャンネル登録しますか?
YouTube にログインしよう
Google アカウントでログイン!
追加日: 2008年02月22日 (詳細)
人体切断マジックを透明な箱で種明かし
追加日: 2008年02月22日 (情報を減らす)
人体切断マジックを透明な箱で種明かし
カテゴリ: 映画とアニメ
タグ: 人体切断マジックを透明な箱で種明かし URL:
カスタマイズ 埋め込み:
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/〜2chの文字数制限のため省略〜425" height="344"></embed></object>

このオブジェクトから始まるタグとタイトルを保存していきたいんです
よろしくお願いいたします
706名無しさん@お腹いっぱい。:2008/07/21(月) 11:01:09 ID:nWr2udRv0
>>705です
これ何故かどこに聞いても絶対に教えてもらえないんです

いつもどこかから>>704(偽質問者)のような人が現れて「自己解決しました」とか「もういいです」とか
適当に質問者のように振舞ってその質問を終わらせようとします

UWSCのみなさん是非ともご協力お願いいたします
色んなyoutubeサイトや攻略本や裏ツールとか探しては質問するんですが
必ず邪魔が入って解答なしです
誰かに「それできませんyoutubeの仕様です」とか邪魔されたこともあります
(そういう解答があればみんなその質問はスルーするからです)
youtube自身がembedを提供しているのにembedを取れないはずはないと思うのです
UWSCのみなさん何卒よろしくお願いいたします
707名無しさん@お腹いっぱい。:2008/07/21(月) 13:06:53 ID:LnQrnDjc0
頭が無いなら手動でやればいい。
708名無しさん@お腹いっぱい。:2008/07/21(月) 14:17:47 ID:nWr2udRv0
↑こういう人ばっかりです
他で聞いても絶対教えないように工作してくる人がいてるんです
どなたか>>684お願いします
709名無しさん@お腹いっぱい。:2008/07/21(月) 14:55:11 ID:gLg/Lh7/0
丸投げでお願いします。とかいう馬鹿をついからかいたくなるんだよ
710名無しさん@お腹いっぱい。:2008/07/21(月) 14:56:40 ID:nWr2udRv0
どなたか>>684お願いします
711名無しさん@お腹いっぱい。:2008/07/21(月) 15:04:29 ID:3gZN7LIw0 BE:499678463-2BP(802)
特定のサイトに、高負荷をかける事も出来るから、教えないんじゃないの?
712名無しさん@お腹いっぱい。:2008/07/21(月) 15:09:57 ID:nWr2udRv0
どなたか>>684お願いします
713名無しさん@お腹いっぱい。:2008/07/21(月) 16:10:02 ID:LnQrnDjc0
>>708
そもそも妨害する程のレベルの質問じゃないw
病院行った方が良いんじゃないの?
714名無しさん@お腹いっぱい。:2008/07/21(月) 16:14:36 ID:nWr2udRv0
どなたか>>684お願いします
715名無しさん@お腹いっぱい。:2008/07/21(月) 17:11:12 ID:7aXpC0TL0
久々にスレが伸びてると思ったら夏厨か。。
716名無しさん@お腹いっぱい。:2008/07/21(月) 17:15:41 ID:nWr2udRv0
どなたか>>684お願いします
717名無しさん@お腹いっぱい。:2008/07/21(月) 18:24:23 ID:3mDElLwP0
>>684
YouTubeのような複雑なサイト作れる人がいたとしてもやらないだろ。
あほらしい。

2ゲットツールも改良重ねて正味2週間くらいはかかってるのに。
人間がやる場合F5連打して発言するだけのものをですよ。

このスレで一番ソースを投稿してるボクがやらないのに他にやる人がいるとは思えません。
もし作ってる人がいるとしたらリンクはるかもとは思ったけどいないから
いくらお願いしても無理ですよ。

そんなに欲しければ金払って作ってもらうか、自分で作るかですよ。
まあ、YouTubeくらいのサイトなら結構自動化してる人はいてもおかしくないけど・・・
本家掲示板のほうが出てくる可能性は高いと思いますよ。
718名無しさん@お腹いっぱい。:2008/07/21(月) 18:28:47 ID:3mDElLwP0
>>703に、作ってもいいって人が出てきてて具体的なこと聞いてるのに
>ありがとうございます
の一言しかないんじゃ、話が通じてないってのもあってやってもらえないでしょう。

と思ったら>>705に書いてたか。
誰が書いてるか分かるように、名前欄に684って入れるといいよ。
妨害するまでもなく、ID変更されててわけ分からないから。
719名無しさん@お腹いっぱい。:2008/07/21(月) 18:42:10 ID:uRHfCRky0
>>どなたか優しい方、丸投げでお願いいたしますm( _ _ )m

ワロタ
720名無しさん@お腹いっぱい。:2008/07/21(月) 19:31:50 ID:nqKmX2zM0
自己解決しました。ありがとうございました
721名無しさん@お腹いっぱい。:2008/07/21(月) 19:41:10 ID:nWr2udRv0
どなたか>>684お願いします
722名無しさん@お腹いっぱい。:2008/07/21(月) 19:52:18 ID:hnxMA1ZS0
>>717
> このスレで一番ソースを投稿してるボクがやらないのに他にやる人がいるとは思えません。
そういうのいらねえから^^;きめえし反吐がでる

>>721
これ以上書き込まないで荒らしだから
とりあえず捨てメアドでいいから教えてよ
明日になったら誰が誰だかホントにわからなくなる

それと embed の件
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/0BLrScVPwL8&hl=ja&fs=1"></
param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/0BLrScVPwL8&hl=ja&fs=1" type
="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>
↑全部繋げて埋め込みできるか試してみて
723684:2008/07/21(月) 19:57:03 ID:nWr2udRv0
>>718
どうも邪魔する人が必ず現れるんですよ
2ゲットツールで自慢してる人みたいにどーでもいいことで自慢してるけど
役に立つものは作らない
つまり煽りだらけなんです
youtubeのAPI開設サイトでも
サムネイルの作り方は解説しているのに
タイトルとembedを取得して一覧表を作る方法はどこにも解説されていません
これが一番キモだから大事な部分だから教えないようにしてるんでしょうか?

簡単だとかなんだとか言うのは聞き飽きたのでどーでもいいです
どんだけ自分に対して自慢されてもわかんないので自慢になっていないですよ
自己満足の煽りはお控え下さい
どなたか>>684お願いします
724名無しさん@お腹いっぱい。:2008/07/21(月) 19:58:13 ID:nWr2udRv0
>>722さんありがとうございます
スグ確かめます!
725名無しさん@お腹いっぱい。:2008/07/21(月) 20:02:42 ID:3mDElLwP0
>>723
> 役に立つものは作らない

役に立つって言うか、クラック専門なんで。サーセン。
726名無しさん@お腹いっぱい。:2008/07/21(月) 20:11:31 ID:3mDElLwP0

仕事として金もらってやってる人って、自分は役に立つことしてるって威張ってるけど
書き込み見ても分かるように他人の迷惑も考えない自己中なんだよね。

立派なもん作ったぞって威張ってるけど四国に誰も通らない橋3本もかけたり
無料道路と平行に、誰も通らない有料の高速道路を作ったり
わけ分からんことのために他人の金を勝手に使いまくり。
それを批判すると、金を無駄に使ったことこそが俺の仕事であり偉大さであるとかいう変な威張り方をして
他人の金で養った部下を使って暴力振るいまくり。

ボクも関係ないこと書いてるけど同じことを何度も書いてレス数が1000まで行ったら
このスレがdat落ちしてしまって書いたことが無駄になってしまう。
まあボクの書き込みをごみ呼ばわりする人だから、ごみ掃除してすっきりした位にしか考えてないんだろうね。
>>708
>>710
>>712
>>714
>>716
>>721

だから社会人ってむかつく。
地位の高いやつって殺したくなる。
727684:2008/07/21(月) 20:12:24 ID:nWr2udRv0
不快な思いをされた方、本当にすいません
神が現れたようなので私はこれで消えます

>>722さん
>>684です
教えていただいたオブジェクト試してみました
バッチリです!
驚きました凄いです!

このオブジェクトの取得とあわせてタイトルを取得してタイトルとオブジェクトをメモ帳に保存する
次の動画ページで同じ作業
20回繰り返したら検索ページの”次へ”で次の20タイトルって感じなんです
お手数をおかけして本当に申し訳ないですが
是非とも教えてください
何卒よろしくお願いいたします
[email protected]
728名無しさん@お腹いっぱい。:2008/07/21(月) 21:28:22 ID:Ft2kBUo/0
どなたか >>1 お願いします。
729670:2008/07/21(月) 23:50:04 ID:QW9F5Wts0
htmlタグの文章を置換する時何か良い方法ないですか?

「""」を多様してる箇所だと
サソ = ""
カコ = ""
サソ = ""

testes(アオ+カコ+サソ)
としてごまかしてるんですが、流石に<body>タグとかだと
""がかなり出てくるので区切るのも疲れるというかなんというか
730670:2008/07/21(月) 23:50:44 ID:QW9F5Wts0
名無しに戻るの忘れました。スミマセン
731名無しさん@お腹いっぱい。:2008/07/22(火) 00:23:14 ID:x4b6wCvY0
すみません、正規表現でどうにかなりました。
失礼しました。
732名無しさん@お腹いっぱい。:2008/07/23(水) 00:58:03 ID:0THRRKwe0
ID:hnxMA1ZS0 はどうしてるんだろ。
自慢すると反吐が出るらしいから作ったものを人に見せたりしないのか
それともどっか別のところにうpしてるのか・・・
おっと給与明細の時間だ
733703:2008/07/23(水) 01:45:59 ID:ZO1AyJyI0
>>732
作ってるよーww
それ明らかに厨の書き込みだし

@重要なところはページ遷移だけ
なぜか 次へ が押せない だから別のアプローチで
細かいとこはループ抜けとか
734名無しさん@お腹いっぱい。:2008/07/23(水) 02:04:37 ID:MCt/E1et0
>>733さん
>>684です
お忙しい中、本当にありがとうございます
当方IERECの応用の仕方もわからないので本当に恐縮です
気長に待っていますので
お手すきのときにでもよろしくお願いいたします
735684:2008/07/24(木) 16:29:14 ID:s9fkplSK0
>>732さん
>>684です
>>703さんの名誉のために記載しておきます
先日から連絡を取り合って私の要望など聞いてくれました
プロジェクト名や内容も決定しました
本日、送ってきてくれました
ハッキリ言って驚くぐらい凄いです!
そのツール名や内容は703さんに著作権があるので
ここで私が公開できませんがとにかく凄いツールです
703さん、このツールはマジで購入する人が居てるのではないでしょうか?
732さんが703さんを疑っているようなので
おせっかいのようですがツール完成を記載しておきます
736名無しさん@お腹いっぱい。:2008/07/24(木) 16:40:00 ID:Lxus3TxT0
(・∀・)
737732:2008/07/24(木) 23:29:10 ID:y26Qkfrh0
コピペで済むような決まりきったことならググればヒントくらいは出てくるけど
作るのはそれなりに大変なんですよ。
だから疑ってるというよりは心配してたってのと、
まあいただけるものはいただこうかと。

あと、たまたま作ってくれる人がいたけど、
手間のかかるものをわざわざ無料で作ってくれるひとなんてめったにいないんだから
それを親切に教えてあげたつもりだったのになんか悪意に取られちゃって心外でした。

まあすぐ上のレスも見ずに投稿したのも不注意だったけど
それ前提に書き直すのめんどくさいしどうせひとつの意見だしいっかと。

まあ長々といらんことをと思われるかもしれないけどなんか誤解されてるようなのでね。
738名無しさん@お腹いっぱい。:2008/07/25(金) 06:33:30 ID:oBOCG+fM0
妨害工作だ。とか妄想癖がある人なんだからしょうがないよ…相手にするだけ無駄
739名無しさん@お腹いっぱい。:2008/07/27(日) 21:12:13 ID:h1+dSzEi0
ボタンを画像認識して勝手に押すマクロを作ってみたけど、ボタンが出るまで待つようにしたい場合。
while (G_IMG_X > 0)
ifB CHKIMG("test.bmp",0,450,600,630,625) //画像認識設定
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y) //クリック
Endif //判定終了
wend
じゃダメなんだろうか。
G_IMG_Xは予約されてて一行目で0に初期化することが出来ないし、MsgboxでG_IMG_X表示させてもG_IMG_Xとしかでない…
740名無しさん@お腹いっぱい。:2008/07/27(日) 21:28:43 ID:LaD016mP0
>>739
BTN Clickしたあとbreakでループ抜けないと。

あと、ボタンってボタンだけが出てくるわけ?
ダイアログと一緒にボタンが出てくるってことなら、
ダイアログのウィンドウ範囲をStatusで取って、その範囲だけ見るようにしたほうが効率的。

あと、ボタンはフォーカスがあるときとないときで見た目が変わってくるから・・・
741739:2008/07/27(日) 22:31:36 ID:h1+dSzEi0
Break忘れるとは…追加してきます。
ボタンの位置は固定なので、画像認識範囲を手動で設定しました。
ダイアログが出る場合にはStatusで範囲が取れるんですね。
他の作業で使うときに組み込んでみます。
ありがとう。
742703:2008/07/28(月) 00:42:56 ID:LX3P57sV0
ことが終わって落ち着いたんで,証明のために初期段階のものをうp
>>684にはこれに2〜3点機能を加えたものを配布した
使用の際は自己責任でよろ

DL:uwsc
ttp://sageuploader.if.land.to/cgi-bin/1upload/src/sage1_5565.zip.html

>>684の件でわかったのはここには意外と余裕のない人が多いってこと
俺には向いてないのかもねこのスレw
743名無しさん@お腹いっぱい。:2008/07/28(月) 01:28:02 ID:2JInmHOC0
>>742
あ、703さん
684です^^
更新バージョンもありがとうございます
(今、メール出したよ^^)
この度は本当にありがとうございました
検索文字を変更しながら次々に自動でファイル保存できるのはとても便利なので
私以外の方も反応あると思いますよ^^
お忙しい中、こまめなバージョンアップまでして頂き心から感謝しています
本当にありがとうございましたm(_ _)m
744名無しさん@お腹いっぱい。:2008/07/28(月) 09:48:46 ID:wZb/5B450
>>742
そんな教えたがり作りたがりなら公式掲示板から出ない方がいいね
しこしこ自作したのを公開するサイトでも作ればいい
745732:2008/07/28(月) 10:24:31 ID:XV3kAofM0
>>742
使ってみたよ。
コメントなしで200行にさらに機能追加か・・・大変だね。
リスト取れて便利かもしれないが、、、

リストを作るのが目的ならスペック的に改良の余地がある。
大量に資料を作るのでない限り必要はないけど。

僕も作ってうpしてるけど、結構「うごかん」って言われる。
他人の環境で動くように作るのって大変。
バージョン違いとか吸収する作りにするより、変更しやすいようにしとくのが簡単な解決法だったりする。
746名無しさん@お腹いっぱい。:2008/07/28(月) 21:53:24 ID:cxi8sfU50
// ボタン類(チェックボックス、ラジオボタン)の状態を返す
CHKBTN( ID, アイテム名, [番号, ACC指定] )
↑の前後に何も無いアイテムをチェックしたいので アイテム名がわかりません><

何らかの方法でアイテム名を戻値にでも格納する方法ってないですか?
747名無しさん@お腹いっぱい。:2008/07/28(月) 22:18:50 ID:LX3P57sV0
>>744
残念ながらオンゲの癖で公式は常駐してない
指で数えられるほどしか見てないし
そんなに需要あるの?

>>745
> 僕も作ってうpしてるけど、結構「うごかん」って言われる。
Windowsフォームならしょうがないんじゃ?w
IEオブジェクトは6と7で同じコードで動くから書きやすい

> 変更しやすいようにしとくのが簡単な解決法
public が多くなるのには同意w

>>746
よくわかんない
Winアプリの話?それともWeb?
Webだったらページ教えてくれた方が早いかもね
748名無しさん@お腹いっぱい。:2008/07/28(月) 22:43:38 ID:XV3kAofM0
>>746
名前がないなら、CHKBTN( ID, "", 番号 )
って感じで、番号だけ指定すればいい。

レイアウトが変わるようなものでも、ボタンのID(WindowsのコマンドID)が分かれば
SendMessageで操作できたりするけど無理だろうね。
メニューならツールあるからできるけど。

>>747
CHKBTN()でクリックできるのはWinアプリだよ。

>public が多くなるのには同意w
?? あんまり使わないけどね。
どういう組み方してるのか知らないけど・・・
他の人の作ったの参考にしてる?
僕は・・他の人のは何が書いてあるかさっぱりだから見ないけど。
749746:2008/07/28(月) 22:47:56 ID:cxi8sfU50
>>747 winアプリです やっぱ無理かなー
しかもスクリーンショットしか無いの
一応 怪しい文字列を狙って↓を試させたけどダメだったみたい
戻1 = CHKBTN(ID,"選択",1)
戻2 = CHKBTN(ID,"選択",2)
MSGBOX(戻1 + 戻2)

チェックボックス自体は標準的なアレだから名前さえわかればなんとかなりそうなんだけどね
スクリーンショットうpは勘弁 会社名とか入っちゃてるし
750名無しさん@お腹いっぱい。:2008/07/28(月) 22:50:17 ID:cxi8sfU50
>>748 お! ありがとうです 早速""で試してみます 愛してます
751名無しさん@お腹いっぱい。:2008/07/28(月) 22:57:14 ID:LX3P57sV0
>>748
> CHKBTN()でクリックできるのはWinアプリだよ。
それは承知してるw
文章からして聞かざるを得なかった

変更しやすいようにしとくってそういう意味じゃないの?

参考にはしないね
でも解析の勉強では他人の見るよ
752名無しさん@お腹いっぱい。:2008/07/28(月) 23:29:35 ID:XV3kAofM0
>>751
> 変更しやすいようにしとくってそういう意味じゃないの?
public ってどの関数でも共通で使える変数でしょ。
全体の処理を、単純にStart、Main、Endみたいに部分で分割する場合には
グローバル変数を使いまくるのはかまわないと思うけど、
関数化ってのは、使いまわししたり入れ替えてみたりってのが主な目的なのに
グローバル変数なんか使ったらそういうことがやりにくくなるでしょ。

関数内部で宣言したものをpublic で直接アクセスさせるのは、
クラス変数(MODULE)の初期化とかを単純化するのに便利ではあるけど・・・
あと、WindowsAPIなどで使う固定値、たとえば
def_dll GetWindow(hWnd,long):long:user32.dll
Public GW_ENABLEDPOPUP = 6 // ポップアップウィンドウ
なんてことは必要かどうか知らないけどやる。
def_dllなんて先頭でやっとかないといけないけど、使うときは関数内だからね。

ダイアログとかのID取るときに使ってるんだけどね。
GetWindow( IDToHnd(PID), GW_ENABLEDPOPUP )
欠点は、メニューとかツールチップとかまで取得してしまうから、
ダイアログIDが欲しければそれを無視しないといけない。
753名無しさん@お腹いっぱい。:2008/07/28(月) 23:55:11 ID:XV3kAofM0
>>751
話はそれたけど、 public なんてそういうときしか使わないと思う。

関数内で使いたければ引数で渡せばいいわけで。
関数は依存関係をできるだけ少なくするべきなんですよ。
引数で渡さない場合はコメントにでも書いておかないと。

変更しやすいというのは、プログラムでは基本だけど、ちゃんと変数宣言をしてコメントで説明するとか、
データや設定は別のファイルに・・とか。
クリックするボタンが”送信”とかなら直接
ClkItem(ID, "送信") とか書いちゃうけど、
Webサイトによって違う用語なら変数宣言してファイルの先頭だけ見ればいいようにとか。

2ゲットツールで言えば、投稿するテキストは先頭で
TEXTBLOCK text1 // 投稿テキスト
もうクソスレは〜〜
ENDTEXTBLOCK
って宣言しとけばAAでも見やすいし変更も簡単だし。
これを別ファイルでもつ場合、複数行なのでデータファイルとしては使いにくいから
TEXTBLOCKで宣言したファイルをCALLしちゃうとか。
はっきり言って手抜きではあるけど労力は少なくて済む。

これを関数で分割した場合、変数をグローバル変数として直接使おうとすると・・・
少なくとも変数名は合わせないといけなくなるけど、
引数で渡せば、関数の中では、関数の外のことなんか気にしなくてよくなる。

IEオブジェクトのようなものは普通に引数として渡してコピーを作ると多分おかしくなるから、
グローバル変数にするか、Var宣言して直接参照が必要だと思うけど、
グローバル変数は変数名の問題があるから使わない。

スレッド化するときはIEオブジェクトはグローバル変数でもVar宣言でも問題が出てくると思う。
754753:2008/07/28(月) 23:59:19 ID:XV3kAofM0
GetWindow を使うのが特定の関数だけの場合でも
DefDLLを関数内で宣言できないっぽいよね。
だから使うときはDefDLLとその関数定義とをコピーしてるけど、
汎用関数を集めてライブラリ化してCALLしちゃえばすっきりするのかもしれない。

けど同じ関数を2度宣言しちゃった場合とかどうなるかよく分からないのでCALLは使ってない。
それほどたくさん作ってるわけでもないし。
バージョン違いとかで分けても20こくらいしかない。

使い捨ての小さいのならたくさんあったりするけど。
755名無しさん@お腹いっぱい。:2008/08/01(金) 01:51:21 ID:FNt8XgrD0
とある条件が有効になったらどんな作業中でも中断して、別の作業を行う、みたいなことをするにはIF文を各作業の合間に大量につぎ込んでいくしかない?
756名無しさん@お腹いっぱい。:2008/08/01(金) 02:36:42 ID:q1yVEBdu0
中断するにはそれが必要だね。

Function XClkItem(...)
 XSleep()
 result ClkItem(...)
End

こんな関数作ったらIfの羅列はやらなくて済むよ。
XSleep()は別の作業をするべきか判断して、やるならやって戻る。
引数をそのまま渡し、戻り値もそのまま戻す。
757名無しさん@お腹いっぱい。:2008/08/01(金) 04:09:00 ID:FNt8XgrD0
>>756
XSLEEPのところにIF文とか組み込んでいくわけね

でも全体的な構造としてみればやっぱり作業の合間に別の作業を優先させるかどうかの判断を組み込んでいくのと変わらないよね

マルチスレッドみたいに作業Aの稼動中に、作業Bで作業Aを中断させるかどうかを判断するっていうのを同時進行させるのは無理かな
758名無しさん@お腹いっぱい。:2008/08/01(金) 10:20:42 ID:q1yVEBdu0
>>757
別のスレッドで監視し、実行することはできる。
だけど、もうひとつのスレッドの実行を止めるには、・・

スレッドを外から強制的に止めたり、終了・再開などしない限りはできない。
まあ、普通はフラグを立てて、If文ではそのフラグをチェックするだけにするので
ややこしい条件を2度書くということはない。

安全に作ったスクリプトなら、窓が閉じられてIDが無効になってれば終了するように作るだろうから
タイミングは送れるけどとめることができる。

僕がやってる方法は、IEオブジェクトのIDを保持し、IDToHndで無効なハンドルが帰ったら終了する。
全体のループのSleep()入れた後にそのチェックをしてるだけなので、
他のタイミングで終了したら結局エラーは出る。
もうちょっと細かく入れるなら、IE操作後の待ちループのSleepを、ハンドルチェックし、
おかしければExitExitで即時終了するような関数と入れ替えることもできる。
でも、そこまでやってもIEを正に操作してるときに終了されたらやっぱりエラーになると思う。

ExitExitは呼び出し元でIf文を書かずに済むのがメリットだが、
ひとつのスレッドだけ終了とかができない。
また、再開するにはスレッドが動いてるかをチェックできないといけない。
ExitExitするときに終了することをどっかに書き残せば可能。
他のUWSファイルをCALLするやり方ならExitExitで使えるかも・・


たとえばユーザーにクリックさせない方法なら、ボタンを無効化したり、
モーダルダイアログをかぶせたりして不可能状態にすることができる。
だけど画面ころころ変わるやつだと、
・・

結局は労力と効果、副作用のバランスを考えて、副作用を抑え、高い効果を
どこまで低い労力で得られるかに尽きる。
759名無しさん@お腹いっぱい。:2008/08/01(金) 10:27:39 ID:q1yVEBdu0
>>757
あ、ごめん。
スレッドBからスレッドAを監視、中断はできないね。
普通のプログラミングではハンドルが取得できて、それ経由で操作するもんだけど・・

複数のUWSを使う場合、普通はCALLを使うけど、
Execを使ってID取得したら終了させることができたりするのかな?
実行するUWSC.exeを終了させれば、強制終了と再開はできるかもしれない。

けど、強制的にストップすると、再開は最初からやり直しになるから意味がないかも。
760755:2008/08/01(金) 11:45:42 ID:FNt8XgrD0
>>758-759
なるほど、結局強制的にそういう手段をとらないとうまくいきそうにないなぁ

ありがとうございました
761名無しさん@お腹いっぱい。:2008/08/01(金) 12:27:08 ID:q1yVEBdu0
breakやcontinueで深さを設定できるみたいに
Exitでも関数、スレッド、タスクっていう3種類に増やしてもらえればもうちょっと使いでがあるかも。
どっちみちメインスレッドが終了すると全部落ちるけど。

あと、スレッドのIDか何かで実行状態を見れたり、スレッドが終了する場合に呼び出される関数があれば・・
これは・・もうちょっと本格的にオブジェクト指向でクラスを導入してもらえればできるかも。
762名無しさん@お腹いっぱい。:2008/08/01(金) 14:04:06 ID:MptxscaH0
古典的な同期手法で、
Aは、あるファイルがあるかどうかを確認しつつ作業する
あるファイルがあったら無くなるまで待機

Bは作業開始時にあるファイルを書き込む
作業終了時にあるファイルを消す

みたいなことで可能ではあるけど、今時の手法じゃないね
763名無しさん@お腹いっぱい。:2008/08/05(火) 04:07:16 ID:tubel4JA0
ちょっと質問ですが
PUBLIC abc[][1][2]=1,2,3,4,5,6
index=2
tfunc(abc[1])   //←1
tfunc(abc[index]) //←2
procedure tfunc(def[][])
fend

上の関数を呼び出すときに配列の添え字に変数を使うと定義されていないと出るのですがなんでなんでしょう
764名無しさん@お腹いっぱい。:2008/08/05(火) 05:28:37 ID:xV59BaFl0
>>763
indexが2でオーバーフローしてるからじゃね?
765名無しさん@お腹いっぱい。:2008/08/05(火) 05:34:43 ID:tubel4JA0
>>764
1にして試してみましたがやはり定義されていないとでました
766名無しさん@お腹いっぱい。:2008/08/05(火) 05:44:05 ID:xV59BaFl0
>>763
1次は自動サイズ
2次は0,1の2つ
3次は0,1,2の3つ

定義されたデータは6つ
1次の配列数はちょうど一つなので、最大の添え字は0
・・・あれ?
767名無しさん@お腹いっぱい。:2008/08/05(火) 06:01:09 ID:xV59BaFl0
>>763
procedure tfunc(def[][])

procedure tfunc(def[][2])
または
procedure tfunc(def[1][2])
で定義するとか。

abc[1]は実際にはデータなし
def[][]はデータ個数にあわせて配列を用意するので、なしならなしとなるだけ。
と推測

変数で配列数が不確定に・・なるのかな?
配列データの扱いがあまりうまくないのかな?
768名無しさん@お腹いっぱい。:2008/08/05(火) 06:13:15 ID:tubel4JA0
>>767
やはりいろいろ工夫してみましたが定義されて無いと出ました

別の方法でやってみようと思います
回答してくださった方、ありがとうございました
769名無しさん@お腹いっぱい。:2008/08/06(水) 01:28:25 ID:4TTa2lV/0
peekcolorを使って黒色を認識させたいのですがうまくいきません。
ifb (PEEKCOLOR(x,y) and ○○)
MSGBOX("黒")

○○のところに $0や000000などを入れて見ても反応しません。
BGRの黒色はどう打ち込んだらいいのでしょう?
770名無しさん@お腹いっぱい。:2008/08/06(水) 02:52:41 ID:QE7NROcw0
>>769
普通に下みたいなのはだめなの?

ifb PEEKCOLOR(x,y) = 0 THEN
MSGBOX("黒")
ENDIF
771名無しさん@お腹いっぱい。:2008/08/06(水) 08:26:24 ID:M8pIqM8G0
>>770
その方法でも黒っぽい色のほとんどは取りこぼすよ。
グレーかどうか調べる関数に、最大の明るさを指定してやれば黒っぽい色の判定ができる。
マイナスになるのを想定してなかったけど・・・
//////////////////////////////////////////////////////////////////
// グレーチェック
function isGray( color)
 red = color and $FF
 green = (color and $FF00) / $100
 blue = (color and $FF0000) / $10000
 sum = red + green + blue
 aveH = sum / 3 + 10
 aveL = sum / 3 - 10

 ifb ( red < aveL ) or ( aveH < red ) Then
   RESULT = false
 elseif ( green < aveL ) or ( aveH < green ) Then
   RESULT = false
 elseif ( blue < aveL ) or ( aveH < blue ) Then
   RESULT = false
 else
  RESULT = true
 endif
Fend
772名無しさん@お腹いっぱい。:2008/08/06(水) 12:42:36 ID:C7rwi61A0
真の黒以外は000000じゃないからなぁ。
画像切り出して1x1ピクセルの画像保存してCHKIMGじゃだめなのか?
773名無しさん@お腹いっぱい。:2008/08/06(水) 14:32:51 ID:QE7NROcw0
欲しいのが真の黒か黒っぽい色かで構文が変わってくるよな
774名無しさん@お腹いっぱい。:2008/08/06(水) 20:24:43 ID:Aj2epcIp0
画像系は、下位ビットマスクして幅持たせないと駄目でしょ…
775名無しさん@お腹いっぱい。:2008/08/06(水) 21:03:07 ID:M8pIqM8G0
>>771
 red = color and $FF
 green = color / $100 and $FF
 blue = color / $10000 and $FF
とした方が分かりやすかったな。

んで
aveL = sum / 3 - 10
のあと
If aveL < 0 Then aveL = 0
が必要

あと、
 ifb ( red < aveL ) or ( aveH < red ) Then
   RESULT = false
は、
 ifb red < aveL Then
   RESULT = false
 ifb aveH < red Then
   RESULT = false
って展開すると、ややこしい論理式を展開しなくてよかったかも。
でも値の範囲だしまとめた方がいいかなと・・・

っていうか
red green
green blue
blue red
の組み合わせでそれぞれの差の絶対値を見れば平均値で見なくてよかったかも。
776名無しさん@お腹いっぱい。:2008/08/06(水) 21:17:15 ID:M8pIqM8G0
ということで>>771の改良版
動作未確認。
function isGray( color)
 red = color and $FF
 green = color / $100 and $FF
 blue = color / $10000 and $FF

 Ifb  20 < ABS(red - green) Then RESULT = false
 elseif 20 < ABS(green - blue) Then RESULT = false
 elseif 20 < ABS(blue - red)  Then RESULT = false
 else RESULT = true
 Endif
Fend
777名無しさん@お腹いっぱい。:2008/08/06(水) 23:39:09 ID:M8pIqM8G0
>>776の黒版
黒ならtrue
それ以外はfalse
ただし、黒に見えるかどうかはペイントの色編集画面で見た目で判断。

function isBlack( color)
 red = color and $FF
 green = color / $100 and $FF
 blue = color / $10000 and $FF

 Ifb  24 < red  Then RESULT = false
 elseif 24 < green Then RESULT = false
 elseif 24 < blue Then RESULT = false
 else RESULT = true
 Endif
Fend
778769:2008/08/07(木) 02:22:53 ID:mgr2CkxX0
>>770-777
UWSCをはじめたばかりでよくわからず書き込んでしまったものにお返事いただけてうれしいです。
769で書いた式でも赤とか青などは認識してしまったので???状態でした。
単純に真の黒を認識できればよかったのですが、レスを読んで冷静に考えてみるとこんなことで悩んでいたのかと恥ずかしいです><
お手数かけてすいませんでした。
教えていただいた式はがんばって勉強してこれからに役立てたいと思います。
どうもありがとうございました。
779名無しさん@お腹いっぱい。:2008/08/07(木) 23:22:41 ID:HI2xJv4p0
firefox操作成功した人いますか?色々やってもやはり出来ませんでした。
780名無しさん@お腹いっぱい。:2008/08/08(金) 03:33:50 ID:nslKarZ20
781名無しさん@お腹いっぱい。:2008/08/08(金) 09:45:15 ID:exnyGp8+0
>>780
なるほど。
AutoItなら可能って事か。
他のスクリプトで同様のことってできるのかな?
・・・
ActiveX使うんならUWSCでもできてもおかしくないよね・・
ActiveX使うとせっかくのがIEみたいに遅くなりそうでいやなんだけどやっぱ入れるしかないのかな・・

ttp://www.ellinikonblue.com/blosxom/Mozilla/20050718MozillaActiveXCntl.html
ここを見ると、どうもMozilla ActiveXはGecko内臓っぽいので
FireFoxを最新版にしてもセキュリティの欠陥はパッチできないかも。
安全なサイト以外にアクセスするとクラックされるからやめといたほうがいい。

FireFox公式
ttp://support.mozilla.com/ja/kb/ActiveX%20%E3%81%AE%E5%88%A9%E7%94%A8
>Mozilla ActiveX Plug-in は Firefox 1.5 系列以前のバージョンに対して ActiveX の一部の機能を提供するプラグインです。
>このプラグインは Firefox 2.0 以降のバージョンでは動作しません。

FireFox2、FireFox3は、ActiveX経由では利用できないってことか。
Fx3になって10倍早くなったってことだから、それ以前の遅いGeckoエンジンを使う意味はないね。


>>779
いっそのことJavaでNetscape Plugin Application Programming Interface (NPAPI) を直接操作した方がいいかも。
782名無しさん@お腹いっぱい。:2008/08/08(金) 14:55:07 ID:nslKarZ20
UWSCでなくてもいいならpyXPCOMってのも有るようだな。
XPCOM オートメーションとか良く知らんのだが。
783名無しさん@お腹いっぱい。:2008/08/08(金) 15:33:40 ID:exnyGp8+0
>>782
> 私はLinuxでサンプル・コードを開発しましたが、PythonとXPCOMはクロス・プラットフォームであるため、Windowsやその他のプラットフォームでも私の手順をエミュレートすることができると思います。

いいねえ。
動作が軽快なFx3を操作するだけのために苦労するよりは
クロスプラットフォームでユーザーの多いスクリプトコードを使ったほうが簡単で確実に構築できる。
Pythonはインストール済みだしちょっとやってみっかな。
さすがにユーザー数が少ないXPCOMとUWSCの組み合わせはつらすぎる。
784名無しさん@お腹いっぱい。:2008/08/08(金) 16:37:29 ID:EkcBDlRK0
クロスプラットフォームはでかいなぁ。
785名無しさん@お腹いっぱい。:2008/08/09(土) 21:17:53 ID:r9cqMnI30
UWSCの画像判定って
ttp://www.dotup.org/uploda/www.dotup.org0366.bmp.html
こういうのでも判定可能ですか?
一度うまくいったけどしばらくしたら条件分けできなくなったりなってしまったんですけど
画像のせいか自分の下手な命令のせいかわからないので…
786779:2008/08/09(土) 23:08:11 ID:Y67lUv5A0
>>781
遅くなりましたがありがとう。今Pythonを理解しようと努めています。
787名無しさん@お腹いっぱい。:2008/08/10(日) 00:43:18 ID:ao7tIS0/0
>>785
こういうのってのはどういう意味でこういうのなのか意味が分からない
画像のせいとは思えないので下手な命令のせいだと思う
788781:2008/08/10(日) 08:25:47 ID:AUhGtmQN0
>>786
http://pc11.2ch.net/test/read.cgi/tech/1190395268/545
にちょっと書いてるんだけど
PythonだとFireFox関係のソフトを自分でコンパイルしてインストールしてやらないといけないらしく、敷居が高いかも。
僕もまだ試してない。

だけどXPConnect っていうXPCOM とのブリッジが(たぶん標準で)入っているから、
JavaScript なら使えるらしい。

JavaScriptはWebページ記述の標準言語だし
言語から覚えるならPythonよりもJavaScriptにしたほうがいいと思うよ。

言語そのものの機能としてはJavaScript<Pythonかもしれないけど(逆かも)、
JavaScriptはXPCOM と相互呼び出しも可能だし、
ローカルで使う分には、JavaScriptで記述できないことはJAVA言語で書けばそのまま利用可能で
言語の統一性から覚えやすいだろうしお勧めです。

>>782が言ってたpyXPCOMっていうのは、JavaXPCOM っていうものと同等のものらしくて
JavaScriptができればPythonじゃなくても問題ない。
789785:2008/08/10(日) 08:58:30 ID:0l5vMIcn0
>>787
ごめんなさい。説明へタでした
文字があるかないかで場合分けをしたかったのですが、反応したりしなかったりだったので
>>785の画像が小さすぎて判定できないかとも考えてしまいました
代案はできましたけど柔軟性にかけるので、できれば785の画像だけで判定できたら、と思っています
790名無しさん@お腹いっぱい。:2008/08/10(日) 12:10:05 ID:ZYU9AAym0
>>788
pyかjsかはどうでもいいだろ。
ウェブコンテンツはDOMを使ってるわけで言語はあまり関係無い。
それでも言語に拘ると言うならCを引きずってるパズル的なjsよりpyの方が解り易い。
automationの場合は単にブラウザのコントロールだけでなくその他のリソースと
連携する場合が多いのでそういうライブラリが揃っている事が重要。
このスレ的に言うと日本語とUnicodeの扱いが簡単な事とWin32APIやCOMの
制御は絶対必要。その条件ならUWSCかどうかはあまり重要じゃない。
791名無しさん@お腹いっぱい。:2008/08/10(日) 12:56:39 ID:AUhGtmQN0
>>790
COMならUWSCも使えるけどFireFoxはXPCOMっていう類似品なのでUWSCでは無理。
これを操作するためにどうしようかと言う話。

ライブラリがそろっている事が大事なのは分かっているみたいだけど
どの言語ならその環境がそろっているかと言う問題から言語の話になる。

このスレで最初に話題に上ったのはFireFox3の操作で、
スクリプト向けのインターフェースとしてはXPConnectというのがあって、
これはJavaScriptのみのサポートになる。
だから一番手軽に扱えるのはJavaScriptということになるという話。


まあ、UWSCがXPCOMをサポートしてくれればそれで済む話だけど
XPCOMはライセンスがGPLなので、下手をすればUWSCがGPLに違反してトラブルになる可能性もある。
http://www.ibm.com/developerworks/jp/webservices/library/co-xpcom.html#d

ライブラリをそのまま利用するだけならライセンス違反にならないらしいけど、
それを利用するコードのサンプルとしてGPLなソースを参照し、取り入れてしまい、
それが発覚してもやばいことになる。

そういう注意を払ってまでクロスプラットフォームなXPCOMに対応するのは
Windowsでしか使えないUWSCにとってメリットがあるのかどうか。
そして取り入れたとして既存のCOMと一緒くたに使えるのかどうか。
792名無しさん@お腹いっぱい。:2008/08/10(日) 22:07:43 ID:ZYU9AAym0
UWSCで使いたいならAutoItでやってるのと同じ方法を使えばOK。

XPCONNECTは良く知らんけど javascript というかgecko系アプリに
組み込まれているjavascript処理系で使うんだろ? それなら別にXPCOM
使わなくても自動的にやりたい事をFirefox拡張として作れば済むだろ。
拡張にするのが面倒ならUserChrome.js使えばいい。

FirefoxでiMacroとかの拡張使ってそのスクリプトをUWSCで動的に作って
渡すとかじゃ駄目か? この手はiMacro以外にもいろいろ有ったと思う。
793名無しさん@お腹いっぱい。:2008/08/15(金) 02:26:54 ID:Yv6gtcry0
ここの皆さんはゲームに興味ないかも知れませんが、UWSCが国内で爆発的に広まったのは
オンラインゲームの自動化が可能だったことも大きく普及した一因でありました。
私もUWSCをはじめたきっかけは、ただクリックだけのつまらないゲームをなんとか自動化して
楽しむために必死にプログラムを作って自作のスクリプトを組んではその出来栄えを楽しんでいました。

しかし、皆様もご承知のように最近のPCゲームには、ゲームガードやハックシールド(一種の監視ウイルス)
なる付属ソフトがクライアントPCに自動的にインストールされUWSCのようなマクロ動作するソフトを
悉く廃除してしまう監視ソフトが導入され、ゲーム好きのUWSC愛好家は壊滅状態になっています。

ゲームされないUWSCユーザは、ゲームでUWSCを使うのは違反行為だと思っておられる人もたくさん
いると思いますが、どちらが違反しているのか実は非常に微妙で、個人で楽しむゲームに監視ソフトまで入れられて
情報抜きとっている業者は何も言う権利がないのです。事実、商用の自動化ソフトや中国からと思われる
高性能BOTは、営業妨害に当たるためゲーム業者は何もしません。見つかれば個人ユーザのIDは廃止するだけです。
794名無しさん@お腹いっぱい。:2008/08/15(金) 02:44:28 ID:PbEKh3i/0
今はオンラインゲームやらないのでよくわかんないけど
UWSCをゲームに使うのOKだと思います
そういうソフトなんだからそういう使い方ありだと思います
質問受け付けませんとか書いてる人いてるけど解答してもきりが無いからだと思うのです
自分でマクロ組んで操作する分には使い方までとやかくは言えないでしょ
自動でお小遣い稼ぎのように言う人もいてたけど
そんなに甘いもんじゃないですよね
795名無しさん@お腹いっぱい。:2008/08/15(金) 02:48:41 ID:wC/UBYHm0
>>793
VMware使った監視ソフト回避の方法が>>276

BOT業者に対抗してないとしたら、それは中の人が技術供与してるか、
中の人の副業かじゃないかな。
796名無しさん@お腹いっぱい。:2008/08/15(金) 02:49:30 ID:Yv6gtcry0
何が言いたいかと申しますと、いま自動化ツールのUWSCはゲームに対しては、
まったく機能しないツールとなってしまいUWSC愛好家は壊滅状態になっています。
過去にゲームガードやハックシールドを回避する試みは何度も繰り返され、
別サーバに監視ソフトを置いたり、自動化ツールのプロセスを隠したりするソフトも
出回りましたがすぐに対策がとられ壊滅状態となっております。

それどころか、そのようなソフトにウイルスやキーロガーまで埋め込まれています。
一体誰が埋め込んだのでしょうか?少なくとも開発した人はそのような悪質なソフトは入れないですよね。
そういう訳で、日本で発展した自動化ツールUWSCはPCゲームでは最早使い物にならないソフトになっています。

もう一度UWSC本来の目的に立ち返って、監視ソフト付きのPCゲームでもUWSCが使えるようなソフトを
開発できるような人は日本にはいないのでしょうか?(もちろん違反ソフトではなく回避ソフトです)
ここで偉そうに言ってる人でも何人がそのようなソフト作れるか疑問です。
ゲームで使ってるUWSCユーザは壊滅状態で監視ソフト回避できる人は皆無です。
せいぜい仮想PCを使って誤魔化している程度です。

長い文章すいませんでした。
UWSCの発展のために是非チャレンジしてみてください。
797名無しさん@お腹いっぱい。:2008/08/15(金) 03:09:02 ID:vCjic5Sy0
ていうか自分でやらなきゃゲームつまらんだろ。
そうじゃないというなら自動化前提のゲームをやるべき。
ライフゲームとかなら見てるだけで済むし。楽チンだろ。
798名無しさん@お腹いっぱい。:2008/08/15(金) 03:24:36 ID:Yv6gtcry0
>>795
今出来ることは仮想PC(VMwareのみ)しか無さそうですね。
プログラム的な回避は無理そうですしすぐ回避されます。
ゲームの世界では神降臨と呼ばれますよ。

>>797
クリックだけのゲームなんてまったく興味が無いです。
自分でスクリプト組んで自動化するのが楽しいのです。
最も実践的ですよ。

UWSCのシェアウェア化賛成だけどゲーム用が一番良いと思います。
最近、ネット株やFXでシステムトレードなるものが開発されていますが、
そういう世界はプロの世界ですからいくらUWSCを駆使しても
個人投資家は儲かりませんよw
ご参考まで。。。
799名無しさん@お腹いっぱい。:2008/08/15(金) 03:32:17 ID:vCjic5Sy0
ライフゲームはクリック要らないんだが。
クリックだけのゲームは興味が無いといいながらクリックする事が重要なゲームを
自動化したいとはそもそも考え方間違ってるだろ。ようするに誰か判らんが単に
相手の人間共をズルをしてでも負かしてやりたいという浅ましい根性にすぎない。
UWSCで自動化するのが楽しいのならプログラミングでも学んでマウスクリック
しなくとも頭を使って工夫する事でエキサイトできるゲームでも作れ。
800名無しさん@お腹いっぱい。:2008/08/15(金) 03:33:54 ID:wC/UBYHm0
>>796
そういうの使ってたから基本的な理屈は分かるんだけどね。
トロイを仕込んでUWSCを素通りさせる。
でも、今はむずかしい。

そういうツールを使うことが前提だとしたら、UWSCは機能がちょっと弱い。
ゲーム向けマクロツールには、メモリーを読み取って効率的にマクロを組めたりするし。

んでそういうのをひっくるめた商用ソフトが悪名高いゴーストリプレイ。
商用のマクロツールですら満足には動かないのに個人でそれ以上のを作れる人なんて・・
801名無しさん@お腹いっぱい。:2008/08/15(金) 03:47:38 ID:Yv6gtcry0
>>799
議論するつもりは無いのですがUWSC普及のためにはゲームは避けられないと思いますよ。
最近、ゲームの世界ではUWSCユーザ壊滅状態ですからw

ちなみに、ゲームで本当にズルしているのは、中国産の高級BOTやパケットいじってる人です。
802名無しさん@お腹いっぱい。:2008/08/15(金) 04:54:15 ID:3fbntGAl0 BE:222079924-2BP(802)
>>801
なぜキミが危惧してるのか疑問なんだが?
803名無しさん@お腹いっぱい。:2008/08/15(金) 06:10:12 ID:effM7Ycq0
ゲームゲームって糞ばっかりのチョンゲや国産ネトゲのことだろ…どうでもいい。
804名無しさん@お腹いっぱい。:2008/08/15(金) 09:14:48 ID:wC/UBYHm0
>>801
チートした上でのマクロだろ。
例のとこにあるサイコロマクロみたいなチートなしのマクロもなくはないけど・・・

本家掲示板では多分昔からゲームの話は禁止だろうから、そこは昔から変わらないと思うけど、
確かに僕もゲームでマクロするためにUWSCを使い始めたんだよね。
実は2000年ごろからUWSCの存在は知ってたけど、本職プログラマだったから
「最初からそういう風に作ればいいしWindowsAPI直で操作できるし」とか思ってた。
マクロは市販のが当時あるにはあったし。

いたずらでメニューを消されてなんもできんごとなって、むしろ「なんてひどいツールだ」って思ったっけ。
ウィルスと違ってああいうのは防げないんだよね。
当時勝手に契約させるWebが当たり前にあったから・・・っていうか節穴トラップに引っかかりまくったから
政府宛に意見メール送ったよ。
「確認画面ないものは無効にすべきだ」って。

UWSCのメリットはゲーム以外にGameGuard回避ツールとか動かす上でも小さくて手軽だったところかな。

>>802
まあそれはそうだよね。
ゲームユーザーが有料版使うわけじゃないし。
有料の機能はメールとエクセルなわけで。
あと画面出す機能もあるけど、上で出てきたXULRunnerはGPLで無料だし。
エクセルは標準でVBAあるし、UWSCを使う理由がないかもね。
805名無しさん@お腹いっぱい。:2008/08/15(金) 12:02:52 ID:9cdZOSO10
そもそも自動化ツール使わないことに同意してMMOやってんだろ?
同意しないかツール使わないかどっちかにしろよw
806名無しさん@お腹いっぱい。:2008/08/15(金) 12:26:48 ID:wC/UBYHm0
違法な契約は無効だよ。
法的根拠のない条項に同意したことになっていても無視して問題ないことになってる。
たとえばDVD暗号の解除とかね。
ルール上視聴以外の目的で解除してはいけないし、視聴するときは
コピーもしないことに同意した上で視聴していることになっているが、
法律ではそれらを無視してかまわないことになってる。

自動化ツール使ってる人は同意してないから使ってるんだよ。
つまり問題ない。

ソフト会社は、自動化ツールを使うなと命令してくるくせに、
使いたくないツールを勝手に無断で同意したことにしてインストールしてくるところもある。
JWORDとか。

つまりどっちもどっち。
同意しなければ使わせないと言うなら、同意しない限りインストールも許さないのは当然のこと。
ソフト会社同士が真っ向から対立しているからどっちかのために法律を作ることはできない。
807名無しさん@お腹いっぱい。:2008/08/15(金) 12:36:01 ID:5SSoh8+S0
同意しますか?
・はい
・いいえ

はなんのためにあるのやら
808名無しさん@お腹いっぱい。:2008/08/15(金) 12:46:16 ID:9cdZOSO10
>>806
だったら運営にその規約は無効なので改定してもらうだけでいいじゃないか・・・
本当に無効ならそれが一番簡単だぞ
809名無しさん@お腹いっぱい。:2008/08/15(金) 13:02:35 ID:wC/UBYHm0
>>808
法的に無効な契約というのは、契約した相手に対して抑止力になることと、
裁判で有利に戦うためにあるんだよ。
だから条項からはずしたりしない。

詳しい話は忘れたが、
たとえばパチンコのシステムを真似したアダルトサイトは検挙されたけど、
パチンコが合法だからおれっちも合法だと言い張るためにそういうシステムを取っている。
違法と認識して自分から腰引けてたら商売できないから。

そういうわけだから、相手が出してくる条項を改定してもらうなんて、
それこそ裁判で相手を負かさない限り無理。
または、毎日新聞のWAIWAIのように、インターネットの掲示板だけじゃなく
チラシばら撒いたり広告主に圧力かけたりして実力行使に出ないと無理。

無視してればいいものを改定してもらうなんて言い出すのがもう分かってない。
810名無しさん@お腹いっぱい。:2008/08/15(金) 13:27:25 ID:effM7Ycq0
チョンゲ脳のやつらはこういうウザいところが毛嫌いされてるってのすら理解できてないから困る
811名無しさん@お腹いっぱい。:2008/08/15(金) 16:26:28 ID:vCjic5Sy0
> ゲームの世界ではUWSCユーザ壊滅状態ですからw
それは喜ばしい。
といってもフリーの自動化ツールは他にいろいろあるいので
UWSCがゲーム専用になっても別に構わんが。
812名無しさん@お腹いっぱい。:2008/08/15(金) 18:56:58 ID:wC/UBYHm0
XUL+JavaScriptに手出そうとしてから数日経ってるが
この板のFirefoxのスレとXUL Explorerとかいうツール入手したくらいで
まだ画面作るのも十分分かってないくらい。
っていうか出た。
資料はWebにいっぱいあるからなんとかなるだろうけどやっぱ取っ掛かりで時間食うわ。

窓出す最初でなんでmozillaのアドレスが出てくるのかもようわからんけど削ったら画面が灰色から白になった・・
FireFoxの引数で起動する予定だったけど結局XULRunner(17MB)入れちゃった。

結局Java呼び出すのもまだできとらんが、
どうやら画面なしにスクリプト実行することはできないらしい。というかデフォで画面出る。
基本的にJavaScriptはウェブブラウザの機能としてあるのでブラウザが必要だが、
XUL Runnerみたいのがあれば別にFireFoxとかなくても動かせるっぽい。

具体的な話はあっちに加わるけど、とっかかりはこっちでも参考になるだろうし書いてみた。
813名無しさん@お腹いっぱい。:2008/08/15(金) 21:50:17 ID:vCjic5Sy0
これは間違い投稿か? そうじゃないと仮定して…。
XULな時点で求めてるものと違うんじゃないか?
ちなみにブラウザの機能としてじゃない javascript 処理系もある。
俺は使おうとは思わんが。
814名無しさん@お腹いっぱい。:2008/08/15(金) 23:04:10 ID:ZQFjYSjt0
とあるゲームで
2種類のチェックボックスをクリックして、合成ボタンをクリックして
別のアイテムを合成するってのをやっているんですが

たまにイレギュラーなアイテムができまして、
そのアイテムが出来たときに優先的にそこをクリックする方法ってありますか?

そのアイテムができてしまうと、最初のクリックの場所がずれてしまい
優先的に使ってしまわないとマクロがとまってしまうんです。
815名無しさん@お腹いっぱい。:2008/08/15(金) 23:23:00 ID:wC/UBYHm0
>>813
FireFoxを使う前提からすれば問題ないっぽい
XULファイルに記述され、または呼び出されるJavaScriptでFireFoxをXPCOM経由で操作可能。
http://xul-app.hp.infoseek.co.jp/xultu-janit/xpcom.html


>>814
難しいね。
枠の一部のビットマップからアイテム窓の座標を求めたあと、
たとえば4×3のアイテム欄のそれぞれの座標を計算で求め、それぞれについて、
必要なアイテムのビットマップと、何もない空のビットマップを使って、
どちらでもなければクリックして使うという処理をする。
もし真ん中の点の色だけを見て空かどうか見分けられるなら多少効率的になります。
816名無しさん@お腹いっぱい。:2008/08/15(金) 23:29:17 ID:vCjic5Sy0
> FireFoxを使う前提からすれば問題ないっぽい
なんだその話か。それならFirefox拡張使えばいいよ。
817名無しさん@お腹いっぱい。:2008/08/15(金) 23:41:22 ID:wC/UBYHm0
>>816
話がかみ合わないね。

使うって言うか作るって言う話で、
FireFox拡張としての体裁を取るかどうか分からないからXULって話してるの。
単体ファイルで使えるかどうか知らないけどXULはFireFox拡張のためのファイルの一つ。

FireFox拡張だとインストーラとか必要だし面倒でしょ。
・・・まあ作ったほうがいいのかもしれないけど。
http://codezine.jp/a/article/aid/679.aspx
- chrome.manifest インストール用の設定ファイル
- install.rdf 同上
818名無しさん@お腹いっぱい。:2008/08/16(土) 03:49:42 ID:sCOzyV8s0
userchrome.js使えばインストーラなど要らん。
ていうかfirefox内で閉じた自動化ならその手の拡張を使えばいい。
モジラの?フレームワークの自動化ならXPCOMがらみ。
WindowsのCOMやWin32APIベースの機能を併用したりしたいなら
どうやっていいいか迷う…ってのが元々の話だろ。
せいぜい一生件名検索して天才プログラマになってくれ。
俺はむずいのは駄目だ。
819名無しさん@お腹いっぱい。:2008/08/16(土) 13:24:25 ID:ZZ/0A9sv0
言いたいことはわからなくもないが
クリックだけのつまらないゲームを自動化したらもっとつまらなくなるんじゃないかろうか?
820名無しさん@お腹いっぱい。:2008/08/16(土) 23:08:50 ID:xZwwHa6p0
UWSCでBOT作ろうとしても無理、クリックの自動化だけ。BOTとは比較にならない。
BOT技術は中国が最高、日本でBOT作れる人はまずいないと思われ。
私もだがwゲームガードも回避できないありさま。

いつのまにか、ソフト先進国はインド、中国になり、3Dゲームやアニメは韓国が先進国になってるよ。
日本で唯一自慢できるのは徴兵制のない平和な民主国家だが、
若者はすでに平和ボケして社会でも使い者にならないニート国家になってしまっているのが現状。
悲しいな〜w
821名無しさん@お腹いっぱい。:2008/08/16(土) 23:50:11 ID:Wq8XG4QY0
BOTという名前のソフトは大方はクリックを繰り返すだけのもの。
またはチートとは無関係の久々津
あれ?くぐつじゃなかったっけな?
変換候補に出てこない。
822名無しさん@お腹いっぱい。:2008/08/17(日) 00:02:11 ID:kI6/+5ey0
アニメってのは3Dアニメのことだな
823名無しさん@お腹いっぱい。:2008/08/17(日) 00:06:07 ID:Wq8XG4QY0
普通の日本アニメも、実際に書いてるのは韓国の下請けだよ。
プロジェクトの本体が日本にあるだけ。
824名無しさん@お腹いっぱい。:2008/08/17(日) 01:11:13 ID:Ttpv5SR/0
>>821
何も知らないんだなw
UWSCなどのスクリプトを使って自動クリックするのはマクロ操作で
低級プログラムねw
BOTは、自動で狩り場まで走って行き狩りをはじめドロップを集める。
薬無くなったら町まで帰ってきて薬を補充し、拾ったものがいっぱいになったら倉庫にあずける。
そしてまた狩場までいって狩りをするw

主にリアルマネー業者(プロ主に中華)がドロップ品を売って外貨獲得のためにBOTを使ってる。
最近はゲーム人口も減って停滞気味かな?
個人でUWSC使って自動クリックするのは趣味の範囲内だなw
低レベル名発想でかわい過ぎるよw

チートはメモリいじって自分のレベル上げたりドロップの種類を変えたりするズルイやつw
これぐらいの知識集めてここに来いw
825名無しさん@お腹いっぱい。:2008/08/17(日) 01:44:46 ID:5nAvAVKh0
>>824
そういうのをクリックを繰り返すものって言うんだぞw
メモリいじったりとかもUWSCでできる
何も知らないんだなw
826名無しさん@お腹いっぱい。:2008/08/17(日) 02:07:03 ID:tzmszOaP0
>>824
BOTを作る技術があるのなら自分のレベルを上げてドロップをいいやつに変えたほうが効率いいよな。
つまりチートをズルイと評するくせにBOTを褒め称えるとかなんにも分かってないくせに知ったかぶりだけしてる厨房ってことだな。

っていうか、・・
http://blog.livedoor.jp/botbokumetu/archives/50518431.html
> 売り子ちゃん+ : つまり、BOT対策を行っている方が、BOTをつくっているのです
>+売り子ちゃん+ : RMTの話はご存知とおもいますが、
>+売り子ちゃん+ : 現在のRMTはほぼ中国人、韓国人、在日に寡占されています
>+売り子ちゃん+ : 私は、その中で数すくない日本人でした
>+売り子ちゃん+ : 彼らは、日本人から金をすいとる事しか考えていません

>また、ROのクライアントに不正ツールのdllが混入していた事件もこれで納得がいく。
>オンラインゲーム開発元に日本向けBOT開発者のスパイがいるならば、日本用に
>梱包されたクライアントに不正ツールが混入していても何の不思議でもない。

ハッキングしてるんじゃなくてクライアントを作ってるやつがそのソースコードを使って改造してるので簡単に作れる。
蔵のソースコードがあれば僕ですらBOTは作れる。
そもそもBOTはテストツールとして、ソフト開発時に開発チームが自分で作っているはずだしな。
827名無しさん@お腹いっぱい。:2008/08/17(日) 03:58:24 ID:u5wRQjcQ0
なんか一気にスレが香ばしくなったな
828名無しさん@お腹いっぱい。:2008/08/17(日) 20:48:38 ID:LSY9g8vM0
>>824
そんな知識いらないからここに来るなw
829名無しさん@お腹いっぱい。:2008/08/17(日) 21:01:59 ID:Rn5ABIzb0
>>828
あんた2chの管理人でもないんだろ
ここ見たくなければ自分が来なけりゃいいだけ
過疎ったところで関係ない
来るなとか言う奴が来るな
830名無しさん@お腹いっぱい。:2008/08/17(日) 21:52:01 ID:u5wRQjcQ0
第一次スルー検定実施中
831名無しさん@お腹いっぱい。:2008/08/18(月) 12:58:56 ID:Yjb0tO+d0
>>814
自動錬金うるせぇぞw
みじんこ以下だな。
832名無しさん@お腹いっぱい。:2008/08/23(土) 21:35:45 ID:Ogq9mp++0
窓化不可のオンゲーでこちらを使用したんですが
a→スペース→enter→enter
という操作でwindowsモードを服用しない方法はありませんか?
833名無しさん@お腹いっぱい。:2008/08/23(土) 21:55:42 ID:O+484PQH0
日本語でおk
834名無しさん@お腹いっぱい。:2008/08/23(土) 22:04:05 ID:QZpCC6aN0
>>832
窓化不可以前にマクロ不可だろ。それクリアしてんの?

アクティブになってればウィンドウモードでも全画面でも
KBD() で操作可能。
ただしマクロ防止機能が働いてるから無理。

本家のゴミ削除してこいよ。
835名無しさん@お腹いっぱい。:2008/08/24(日) 20:52:38 ID:rFlaNt+H0
ネトゲって一回もやったことないんだがそんなに面白いのか。
836名無しさん@お腹いっぱい。:2008/08/25(月) 00:03:23 ID:nn4YSUA60
>>835
今TENVIってのがOΒやってるからやってみたら?
ゲームシステムは他のネトゲの改良だからか、Βだけどなかなか安定してて、
今のうちならマップも少ないので容量食わない。

んで2chでいろいろ聞いても、みんな初心者だからウザイとか言われないよ。
まあ情報が錯綜してて何がホントか分からないけど。
TENVI テンビ Part8
http://game13.2ch.net/test/read.cgi/mmominor/1219565089/
837名無しさん@お腹いっぱい。:2008/08/25(月) 05:05:44 ID:8JiHWljz0
MoE錬金スレから来ました
記念下記子
838名無しさん@お腹いっぱい。:2008/08/25(月) 12:04:16 ID:ZOmOewBX0
昔少しだけいじってたUWSC4.2を最近またいじるようになった俺

IE_Sub使ってるんですが
強制窓化するリンク踏んで新窓開いてしまうとその新窓を操作対象にする方法がわからないボスケテ
839名無しさん@お腹いっぱい。:2008/08/25(月) 13:07:30 ID:nn4YSUA60
>>838
新窓開こうとするのをキャッチして指定の窓に開けるよ。
OLEEVENTで。
新しい窓開こうとすると専用窓で開かせる。
窓を閉じようとしたら(っていうか閉じるけど)開いた方の窓で処理する関数を呼び出し。

OleEvent( IE, "DWebBrowserEvents2", "NewWindow2", "NewWin" )
OleEvent( IE, "DWebBrowserEvents2", "OnQuit", "IEOnQuit" )

///////////////////////////////////////////////////////////
// 新規ウィンドウイベント処理関数
Procedure NewWin()
 EVENT_PRM[0] = PicWin.IE() // 新しく指定するブラウザオブジェクト
 EVENT_PRM[1] = True // Cancel flag
Fend

///////////////////////////////////////////////////////////
// 終了イベント処理関数
Procedure IEOnQuit()
 Ifb PicWin.IsEnable() Then
  Thread PicWin.Save()
 Else
  MsgBox("終了します")
  Exitexit
 Endif
Fend
840名無しさん@お腹いっぱい。:2008/08/25(月) 13:09:04 ID:nn4YSUA60
MODULE PicWin
 Dim IE
 Dim ID
 Dim Title
 
 Procedure Init()
  IE = CreateOLEObj("InternetExplorer.Application")
  IE.visible = True
  ID = HNDToID(IE.HWND)
  //REPEAT; sleep(0.1); UNTIL !IE.busy AND IE.readystate = 4 // Navigateなしではストップする。
  //Fukidasi( "このウィンドウに画像が表示されます。", Status(ID, ST_X), Status(ID, ST_X) )
  SetWindowTextA(IDToHND(ID), "このウィンドウに画像が表示されます。")
  OleEvent( IE, "DWebBrowserEvents2", "TitleChange", "TitleChange" )
 Fend
 
 Procedure TitleChange()
  Title = EVENT_PRM[0]
 Fend
 
 FUNCTION IE()
  RESULT = IE
 Fend
 
 FUNCTION IsEnable()
  RESULT = IDToHND(ID)
 Fend
 
 Procedure Save()
  GLOBAL.Save( ID, Title )
 Fend
 
ENDMODULE
841名無しさん@お腹いっぱい。:2008/08/25(月) 13:12:35 ID:nn4YSUA60
>>838
お手軽だけど不完全な方法は、GetIDで窓ID取るかGetActiveOLEObj()でIEオブジェクトを取る。
新規窓は表に来るものだから、順調に動けば一発で取れる。

スクリプトとかで子窓を出すのは、ダイアログみたいなもんだけどどうだろうねえ。
842名無しさん@お腹いっぱい。:2008/08/25(月) 13:23:09 ID:ZOmOewBX0
おおありがとう ちと試してみるよ

以前やってたときは確かIE_Subの関数だけで全部やろうとしてたんだけどなんでだっけな・・・
全部裏で動かないのが気に入らなくて挫折した気がする

立ち上げた窓内でなら思い通りに動いてくれるんだけどなあ
843名無しさん@お腹いっぱい。:2008/08/25(月) 21:17:25 ID:PVKz7f4N0
While-Wendループさせてて
While-Wendループが○回行ったときにIFB-ENDIF命令が実行されて
またWhile-Wendループに戻る動作をしたいんですが
どういう方法がありますか?
少し調べてみましたが、至らないせいか「指定回数ループさせる」方法しか載ってなくて
その後新たな命令を実行した後ループに戻る方法がみつかりません

C言語でたとえると
int i;
i=0;
  While{
       ”ループで行う命令”;
       i++;
   if(i=100){
         ”if命令”;
         i=0;
         }
     }
みたいにループ回数を何か変数でおいてカウントして
変数が一定数に達したところで条件分けする方法を考えたのですが
uwscでのi++の表現の仕方がわからなくて…
何かいい方法教えてください
844名無しさん@お腹いっぱい。:2008/08/25(月) 21:40:51 ID:1NY1epmdP
スクリプト使ったことないけど
i=i+1
じゃだめ?
845名無しさん@お腹いっぱい。:2008/08/25(月) 21:52:11 ID:nn4YSUA60
>>843
5回に1回の処理でしょ。
2タイプあるよ。
i++;
に相当するのは
i = i + 1
ちなみにUWSCのループ変数はループ内で変更できないので無限ループならforは使えない。

その1
while true
 // 内ループ5回に1回
 for i = 1 to 5
  // 毎回の処理
 next
 // 内ループ5回に1回
wend

その2
for i = 1 to 200000000
 // 毎回の処理
 ifb i MOD 5 = 0 Then
  // 5回に1回の処理
 endif
 // 毎回の処理
next
846843:2008/08/25(月) 22:17:38 ID:PVKz7f4N0
>>844
i=i+1使えたのですか…。ありがとうございます。覚えておきます

>>845
そうです。そんな感じです
助かりました。ありがとうございます。そちらを利用させてもらいます
847名無しさん@お腹いっぱい。:2008/08/26(火) 02:04:31 ID:8LA7Ryp30
i++; に i= i+1は相当しないだろ。
↓が正解。
function iplspls(var i)
Result= i
i= i+1
Fend
848名無しさん@お腹いっぱい。:2008/08/26(火) 02:29:48 ID:/MRctTmw0
自分の知識の狭さを披露してなにが楽しいんだか
849名無しさん@お腹いっぱい。:2008/08/26(火) 04:18:39 ID:XW7nC9e10
( ゚д゚)ポカーン
850名無しさん@お腹いっぱい。:2008/08/26(火) 04:22:45 ID:9Pwa2s+X0
・・・
851名無しさん@お腹いっぱい。:2008/08/26(火) 11:14:23 ID:BKUi2ikP0
わかる方居ましたら教えてください。
GETFORMDATAでフォームから取得した数字が、数ではなく文字として取得されてしまいます。
数字として取得するにはどうすればよろしいでしょうか?

説明が下手なんですけど、例をあげると

数 = GETFORMDATA("Text1")+5
フォームでText1の場所に10を入力すると

数が105となってしまいます。これを15にしたいんです。


852名無しさん@お腹いっぱい。:2008/08/26(火) 11:50:08 ID:fdw6hTvm0
>>851
戻値 = VAL( 文字列, [エラー値] ) ではだめなのか?
853名無しさん@お腹いっぱい。:2008/08/26(火) 12:13:07 ID:BKUi2ikP0
>>852
数字に変えることができました。ありがとうございます。
854名無しさん@お腹いっぱい。:2008/08/26(火) 13:20:06 ID:6a9g7OG70
--------------------------------------------------------------------------------

// 文字型を数値に変える
戻値 = VAL( 文字列, [エラー値] )
引数
  文字列: 数値に変える文字列
  エラー値: 数値に変換できない場合に返す値
戻値
  数値
  数値変換できない場合はエラー値を、デフォルトでは ERR_VALUE (-999999) を返す

--------------------------------------------------------------------------------
855名無しさん@お腹いっぱい。:2008/08/27(水) 01:16:29 ID:VbU3kODS0
= 0 + 戻り値
856名無しさん@お腹いっぱい。:2008/08/27(水) 09:33:55 ID:fPzgTOPQ0
CLK_ACCで押せないラジオボタンがあって気が狂いそうボスケテ
全体のソースには表示されてない気がするんだ いや明らかに表示されてない
火狐のページ情報でフォームからそれらしいの探すと 押せないボタンやラジオボタンは大抵フィールド名が入ってる
なにか大幅な勘違いをしてるんだろうか俺は
857名無しさん@お腹いっぱい。:2008/08/27(水) 21:36:36 ID:ZHmAtCjv0
素朴な疑問なんだが、UWSCのスクリプトだけでwindowsのどのような操作でも模倣することができるの?
858名無しさん@お腹いっぱい。:2008/08/28(木) 07:05:31 ID:hnt+9tco0
FireFoxの拡張はXULだって上でやってたろ。
XULってのはHTMLみたいなもんだからUWSCでボタンを認識しないだろう。

>>857
UWSCでコントロール可能なのは、アプリケーションがやり取りをWindowsAPI経由でやっているから。
UWSCはそれをキャッチして録画したり、
WindowsAPI経由でテキスト取得・設定や操縦したりする。

ブラウザで表示するWebページなどは、WindowsAPIなどでやり取りするのはHTMLテキストの状態までで、
それを解釈してボタンを表示するのはブラウザ自身。
外部と通信してないプログラムはいじれない。
まあグラフィックとしては出力してるし、テキストもあるわけだけど。
テキストとして表示されるものについてはテキストとして扱えるからCLK_ACCでいじれたりする。
いや、COMとして通信してんのかな?


ただ、キー操作によって再現できることならまず再現できるね。
操作の結果が常に正しいとしてだけど。
IEとか通信エラーよく起こすからキー操作だけじゃ無理。
859名無しさん@お腹いっぱい。:2008/08/28(木) 07:07:51 ID:hnt+9tco0
>>856
> フィールド名が入ってる

フィールドって言うかフォームだったりする?
フォームのないドキュメントならコントロールのIDか名前だけで操作できるけど
フォームがある場合はどのフォームなのか指定しないといけない。
けど、名前が重複してないならALLを指定すればどのフォームとか考えなくてよくて簡単。

860名無しさん@お腹いっぱい。:2008/08/28(木) 11:43:48 ID:gWwSGqj60
>>856だけど

>>858
火狐はソース確認用に使ってるだけなんだごめんねごめんね
>>859
結局IE_Sub+UWSC旧ver利用で全体の流れ作って触れないとこはCLK_ACCにすることでゴリ押した
その部分に差し掛かるとIEが表出てきてうざったいが仕方ない
試しに試用ProいんすこしてIERecして確認したら触れないとこだけエンコードがなんちゃら&謎URL+長蛇文字列になって再生できんかた

レスさんくす
861名無しさん@お腹いっぱい。:2008/09/02(火) 00:55:45 ID:7lXtgJ4c0
なにもプロテクトのかかっていないソフトでUWSCを
OS VISTAで起動して開始すると窓を開く意外なにもできないんですが
理由は何ですか?
XPではふつうに動作します
862名無しさん@お腹いっぱい。:2008/09/02(火) 02:57:33 ID:XbhxSZ+i0
2008/09/02 UWSC Ver4.4c、 Pro版と Free版をリリースしました。
863名無しさん@お腹いっぱい。:2008/09/04(木) 16:39:57 ID:aAHCFuNU0
>>861
多分、そういう事じゃないかな。
864名無しさん@お腹いっぱい。:2008/09/09(火) 12:30:29 ID:niUbH2ir0
すんませんUWSCは標準出力に書込出来ませんよね。
ファイルで受け渡しするのが最も最適な解でしょうか。
865名無しさん@お腹いっぱい。:2008/09/09(火) 12:54:57 ID:WNY77YiQ0
>>864
公式より

// 標準出力を配列にしてから表示
dim x[0]
stdout = doscmd("dir c:\")
行数 = strToArray(stdout, x)
for i = 0 to 行数-1
 print x[i]
next

// 文字列を配列に格納
function strToArray(str, var hiretu[])
 Result = 0
 while Trim(str) <> ""
  Resize(hiretu, Result)
  hiretu[Result] = Trim(Token(Chr(13), str))
  Result = Result + 1
 wend
fend
866名無しさん@お腹いっぱい。:2008/09/09(火) 13:05:24 ID:TrMX0B3j0
>>864
標準出力って言うのはDOS窓毎に存在するわけで。
DOSCMD()だっけ
あれでECHOとやればUWSCで呼び出したDOS窓の標準出力に吐き出すけど
画面は出ないし完了したらすぐ閉じるから受け取れない。
で、
DOSCMD()の戻り値が実は標準出力の結果なんですね。
S = DOSCMD("echo hello world.")
print s
とやると、hello world.ってログに吐き出すと思います。

DOSCMDは1行コマンドですが、
パイプとか使って1行で複数のコマンドを実行することが出来ます。
標準出力をパイプで別のコマンドに渡せばいいんです。
そして、バッチファイルで書けばUWSCからはそのバッチを呼ぶだけで済みます。

短い出力ならこんなことも出来るかも。メリットないけど。
s = DOSCMD(コマンド)
DOSCMD("コマンド " + S)
867名無しさん@お腹いっぱい。:2008/09/09(火) 14:01:50 ID:dazXiWoU0
stdioは別にDOS窓にあるわけじゃないよ。
868名無しさん@お腹いっぱい。:2008/09/09(火) 14:20:55 ID:TrMX0B3j0
>>867
え?DOSの標準出力の話じゃないの?

Windowsの標準出力って・・・どこで見るの?
869名無しさん@お腹いっぱい。:2008/09/09(火) 15:13:56 ID:dazXiWoU0
プログラム.exe >ファイル
870名無しさん@お腹いっぱい。:2008/09/09(火) 22:58:47 ID:niUbH2ir0
>>865
ご回答ありがとうございます。
自分もこんがらっているのですがdoscmdは呼び出したコマンドの標準出力を
UWSC側で取得できるだけで今回の件とは離れているかなと思います。

>>866
>UWSCで呼び出したDOS窓の標準出力
これがオレオレSTDOUTで
>hello world.ってログに吐き出すと思います。
これがオレオレSTDERRだと思ってます。

一度のforkで処理、結果取得が出来るシンプルな流れでしたら同期等の処理を
考えずにいいかなと思ったのですがマニュアル熟読、ググりまくりでも解決しないので
窓アプリの挙動で動作している現状では仕様的に難しいのかもしれませんね。

期待する動作としては
---test.uws---
PRINT STDOUT "hello world!" // 実際はエラー
-------------
C:\> uwsc test.uws [リターン]
hello world
C:\>_
という感じです。
871名無しさん@お腹いっぱい。:2008/09/09(火) 23:15:19 ID:TrMX0B3j0
>>870
そのレベルでよければ、環境変数使う方法があるよ。
http://ochoja.web.fc2.com/uwsct/getEnvCod.uws.txt

環境変数名をUWSCとして
C:\> uwsc test.uws [リターン]
C:\> SET UWSC [リターン]
hello world
C:\>_
ってなるのかな?
実際受け渡しできるかどうかはわかんね。
872名無しさん@お腹いっぱい。:2008/09/10(水) 06:50:41 ID:ZYPGHYN00
mouseorg(id,2)で、BTNとかのマウス操作が効かないんですがおかしいところあったら教えてください
KBDは効きました

id=getid("xxx")
mouseorg(id,2)
BTN(LEFT,CLICK,xxx,xxx)
873名無しさん@お腹いっぱい。:2008/09/10(水) 07:52:20 ID:zagY1Ubq0
>>872
座標がおかしかったりするかもしれないからそれをチェックした方がいいよ。
クリックじゃマウス ポインタが表示されないこともあるからMMV()で
MMV(xxx + 1, yyy )
874名無しさん@お腹いっぱい。:2008/09/10(水) 11:43:49 ID:ceAKQB9J0
ウィンドウを常に非アクティブで動作させる事はできますか?
875名無しさん@お腹いっぱい。:2008/09/10(水) 12:33:36 ID:iwXzhhAv0
できます
876名無しさん@お腹いっぱい。:2008/09/10(水) 18:30:23 ID:kW9krW0q0
>>870
コンソールに出力するだけなら、以下のコードで可能です。

OPTION EXPLICIT

DEF_DLL AllocConsole(): bool: kernel32.dll
DEF_DLL GetStdHandle(dword): dword: kernel32.dll
DEF_DLL WriteConsoleA(dword, dword, dword, VAR dword, VAR dword): bool: kernel32.dll

CONST STD_OUTPUT_HANDLE = -11
CONST INVALID_HANDLE_VALUE = -1

PUBLIC g_stdout

AllocConsole()  // コンソール割り当て
g_stdout = GetStdHandle(STD_OUTPUT_HANDLE)  // 標準出力のハンドル取得
IF g_stdout = INVALID_HANDLE_VALUE THEN EXITEXIT 1

writecons("hello world<#CR>")
SLEEP(5)


FUNCTION writecons(str)
  DIM n

  RESULT = WriteConsoleA(g_stdout, str, LENGTHB(str), n, NULL)
FEND

プロセスにコンソールを割り当ててるだけなので、プロセス終了と共にコンソールは閉じられます。
また、DOS 窓から『C:\>uwsc test.uws[Enter]』のようにしても、新たに DOS 窓が開かれます。
877名無しさん@お腹いっぱい。:2008/09/11(木) 05:55:38 ID:dHDmKZqE0
>>875
よければやり方を教えていただけませんか?
878名無しさん@お腹いっぱい。:2008/09/11(木) 08:13:16 ID:oKwJMslv0
>>877
アクティブになる操作をしなければいいんです。
KBD()使う前にMOUSEORG( ID, 2 )で窓に直接送信する設定をしておくとか
SCKey()を使うとか
ClkItem()でもACC使わないとか
SendStr()でも SendStr( ID, "text", 1, false, false )のように、後ろにfalseを二つつけるとか
IEの場合にもSendStr()使わずにIESETDATA( )使うとか
IE.Document.Forms(0).Items(0).Value = "なんたら" みたいにDOMアクセスするとか。
879名無しさん@お腹いっぱい。:2008/09/11(木) 10:13:33 ID:pmuBRyFg0
Win32APIだけを使ってアクティブにならないようにすればよい。
880名無しさん@お腹いっぱい。:2008/09/12(金) 19:25:50 ID:PkOPk5xy0
UWSCのスクランブルとAutoHotkeyのexe化ではどちらが
セキュリティ的に優れているのでしょうか?
881名無しさん@お腹いっぱい。:2008/09/12(金) 19:44:39 ID:a5tXiK/00
セ、セキュリティ・・・?
882名無しさん@お腹いっぱい。:2008/09/12(金) 23:38:44 ID:HzirfI/C0
どっちも危険つー事だな。
883名無しさん@お腹いっぱい。:2008/09/13(土) 00:10:07 ID:GPJVc7N10
悪意のプログラムを組むのはどちらも簡単だ。
884名無しさん@お腹いっぱい。:2008/09/13(土) 00:56:22 ID:Zgkgu4gF0
>>881表現が悪かったかもしれません
UWSCのスクランブルを解除される危険性と、パスワードで暗号化された
AutoHotkeyのexeファイルを逆コンパイルされる危険性のどちらが
高いかということです

885名無しさん@お腹いっぱい。:2008/09/13(土) 03:25:43 ID:pzQaxR180
>>884
パスワードがかかってるからって中身が暗号化されてるとは限らないと思いますが、
「データは暗号化されます」なんてどっかに書いてありますか?
プログラムやデータが全て暗号化されるのでないなら、
文字列として存在するデータはバイナリエディタで見れば一発で分かります。

それらを使って安全な方法は、パスワードというかキーを入力して
それを使って自分で暗号データを解除するスクリプトを、暗号データとともに内臓する方法だと思います。
スクリプトや暗号化されたデータを見てもキーが分からないと意味がないですから。

いつだったか、僕がエクセルに大事なデータを誕生日と掛け合わせて暗号化したものを保存していたことがあります。
誕生日を入力すると元のデータに復元する計算式を入力していたわけです。
これなら僕の誕生日を知らない人は元のデータがなんだったか分かりません。
まあ、セルの書式が年月日だったから僕の誕生日を知ってる人に破られましたが。
886名無しさん@お腹いっぱい。:2008/09/17(水) 01:05:39 ID:JVxaBjV70
質問です

peekcolor関数の機能をC++で実現したいのですが、
これはどういうAPIを呼び出しているんですか?
887名無しさん@お腹いっぱい。:2008/09/17(水) 01:14:40 ID:VW2I7ppk0
>>886
GetPixelだと思われます
ただ、Vistaでこの関数を繰り返し使うとGDIの関係上ものすごく重いです
888名無しさん@お腹いっぱい。:2008/09/17(水) 01:19:26 ID:JVxaBjV70
>>887
なるほど
ありがとうございます
すぐに返答いただけるとは思っておりませんでした

これ以上質問するとスレ違いかもしれませんが、ついでですので・・
vistaの場合、画面の一点の色を取得するにはどういうAPIを呼び出すと効率が良いのでしょうか?
889名無しさん@お腹いっぱい。:2008/09/17(水) 02:36:19 ID:VW2I7ppk0
>>888
VistaではCreateDIBSectionでビットマップを作ってBitBltで画面をビットマップにコピーしてから
メモリに直接アクセスする方法が一番速いと思うよ
890名無しさん@お腹いっぱい。:2008/09/17(水) 02:50:35 ID:VW2I7ppk0
>>888
自分も気になって試してみたのでよければ使ってください
短時間に複数の点の比較をする場合に高速に調べられます
ttp://www1.axfc.net/uploader/File/so/11159.txt
891名無しさん@お腹いっぱい。:2008/09/17(水) 22:36:55 ID:JVxaBjV70
>>890
おお、そこまでしていただけるとは
感謝です
892名無しさん@お腹いっぱい。:2008/09/21(日) 15:56:12 ID:bgcFkgOW0
以下のような処理を考えているのですが

動作1

判定1(判定結果によって、続行または「動作1」に戻る)

動作2

判定2(判定結果によって、続行または「動作1」に戻る)

動作3

判定3(判定結果によって、続行または「動作5」に飛ぶ)

動作4

動作5

このように、どこか特定の場所にジャンプさせる場合は、どのように記述すればよいのでしょうか?
昔、(自動化ソフトではないけど)Teraタームというソフトでマクロを組んでいたときは
「ラベル」というのがあって、GO TO **とかいう命令で飛ばせたんですが(ラベル **と記述した部分に飛ぶ)
UWSCのヘルプを見ても同類のものが見つかりませんでした。
893名無しさん@お腹いっぱい。:2008/09/21(日) 18:17:20 ID:kBnNOlaz0
繰返し
 動作1
 もし 判定1 なら 繰返し続ける
 動作2
 条件が一致しなくなるまで 判定2
動作3
もし 判定3 なら 動作4
動作5
終わり
894名無しさん@お腹いっぱい。:2008/09/21(日) 18:23:01 ID:z18B/XZ80
>>892
REPEAT
 REPEAT
  動作1
 UNTIL 判定1 // 条件によってはRepeatに戻る
 動作2
UNTIL 判定2 // 条件によってはRepeatに戻る
動作3
IFB 判定3 THEN
 動作4
ENDIF
動作5
895名無しさん@お腹いっぱい。:2008/09/21(日) 23:23:03 ID:wfJ3Wl0d0
>>893-894
REPEATとかIFBを使ってそうするのですか。
どうもありがとうございました。
896名無しさん@お腹いっぱい。:2008/09/22(月) 13:55:37 ID:SxrggpXm0
DMMのサンプル動画を自動で収集するスクリプトって配布されてないでしょうか?
897名無しさん@お腹いっぱい。:2008/09/22(月) 14:39:21 ID:gaSDCbLx0
2ちゃんの2ゲトとかもそうだけど、
動機が不純だと教える気も失せるんだよな・・・

もっとウソでもいいから、似たような健全な質問に
変えたらどうかな?w
898名無しさん@お腹いっぱい。:2008/09/22(月) 14:46:53 ID:i/Pzz3u10
>>896
無いよ
満喫によってはサービスでDMMアダルト見放題の店あるだろ
その店に行く度、このアニャルズボズボ動画をなんとか自宅にお持ち帰りできないのかやってみた
結果的にできたけど
時間がかかりすぎて満喫代が馬鹿にならんのでやめた
お持ち帰りのやり方は
ストリームから本当のurlを探し出す(海外製のURLSnooper 2 で出来る操作方法は直感的にわかるくらい簡単)
そのurlをGetASFStreamでダウンロードのセットする
ここまでは元動画を再生させながら行う
(セットしてしまえば元動画はストップしておk)
ダウンロードされた動画からコピーガード対策DRMをばbbとかしなければいけない
これはあるツールで完璧にできる(秘密)
まあ頑張ってみてw
899名無しさん@お腹いっぱい。:2008/09/22(月) 15:32:31 ID:iXO49sJn0
今ロケットマウスを使っているのだけど、ロケットマウスからこっちに乗り換えたという人がいたら
こっちの便利なところを教えてもらえないだろうか?
900名無しさん@お腹いっぱい。:2008/09/22(月) 15:52:41 ID:Y/h7UgVh0
>> 897
すみません。
でも、下手に隠したり、言い換えたりすることでちゃんと伝わらなくなるのもあれなので。

もっと詳しく言うと、気になる女優名で検索し、サムネイル形式の検索結果を開いた状態でスクリプトを実行すれば
「各作品のページに飛び、サンプル動画があればダウンロードして保存する」という機能が欲しいのです。
これは省力化以外に、WEB上でサンプル動画を再生させた場合は早送りなどの操作ができないという問題を回避するためです。

>> 898
サンプル動画の方はガードがかかっていないようで、
GetASFStreamの「URL-プロトコル-解析」でURLが出てきて、
それをDLして再生もできました。
901名無しさん@お腹いっぱい。:2008/09/22(月) 16:28:47 ID:gaSDCbLx0
>>900
気持ちはよくわかるよ。
問い詰められて、途中から答えられなくなっちゃうんだよなwww
902名無しさん@お腹いっぱい。:2008/09/22(月) 16:30:28 ID:QWRur2eG0
そういうのはさ…
それ専門のソフトとかブラウザのプラグインでいくらでもあるじゃん。

まして1分かそこらのサンプルで早送りて…w
903名無しさん@お腹いっぱい。:2008/09/22(月) 16:39:42 ID:67ge/b7N0
>>900
もうほとんど答え出てるじゃない

IEオブジェクトでソース見て、各作品ページ毎にどういうソースになっているのか
サンプルある場合はどういうソースになっているのか

ソースで判明したら、ループでアクセスしてGetASFStreamに渡して実行ボタン押すだけだろ
別にダウンロード自体まで自前で作る必要もあるまい
904名無しさん@お腹いっぱい。:2008/09/22(月) 19:14:20 ID:84LdWu7B0
>>902
自動でダウンロードも出来ますか?
そのソフトの名前を教えてもらえないでしょうか。

>>903
そうですね。
ただ、手順のイメージはあるのですが、初心者なので記述の仕方がよく分からない状態です。
まあこれはヘルプ見て格闘するしかないですね。
905名無しさん@お腹いっぱい。:2008/09/22(月) 19:26:25 ID:LteDQIge0
動画のリンク集から自動でダウンロードするの作ろうとしたんだけど
これにIEじゃなくXMLのダウンロードでやろうとしたんですよ。
やっぱ余計な画像とかダウンロードしたくないし。

一応一覧までは取得できたんだけど、動画へのリンクが貼ってある個別のページから
飛ぼうとすると、トップページに飛ばされちゃうんですよね。
どこから飛んできたかとかチェックされちゃってるようで。

途中までのリストを取ったらその先はIEを使えばよかったかもしれないけど、なんか挫折しちゃった。
906名無しさん@お腹いっぱい。:2008/09/23(火) 13:43:54 ID:dcnAuw4v0
アプリのチェックボックスのON/OFFを判断して「もしOFFになってたらONにする」見たいなのって次の方法じゃダメですか?
たとえばButton1という名前の付いたチェックボックスの場合で
IFB CHKBTN(ppjcID,"Button1") = 1 THEN
CLKITEM(ppjcID,"Button1")
SLEEP(0.1)
ENDIF
CHKBTNがチェックボックスの状態を返すなら、値がON(1)になってた場合に
CLKITEMでチェックボックスを新たにクリックさせればOFFになると思ったのですが、反応がありません
「値がOFF(0)になってた場合にONにする」ことはできたのですが、なぜかその逆が反応してくれないんです…
907名無しさん@お腹いっぱい。:2008/09/23(火) 14:03:35 ID:BtEILEqo0 BE:888317748-2BP(802)
ヘルプを見ると、こう書いてあって、

// アイテムのクリック
// (ボタン、メニュー、チェックボックス、ラジオボタン、リストボックス、コンボボックス、タブコントロール、ビューリスト、ツールバー)
戻値 = CLKITEM( ID, アイテム名, [種別, チェックOn/Off, 番号] )
                               ↑
                           ここでTrueかFalseを指定する

んじゃないのかな?
ヘルプの例とかみてみそ。
908名無しさん@お腹いっぱい。:2008/09/23(火) 15:38:02 ID:dcnAuw4v0
あれ、そこで設定できるの…?
ありがとうございます。ちょっと読み足りなかったみたいです。ヘルプ見てきます
909名無しさん@お腹いっぱい。:2008/09/24(水) 16:15:31 ID:3pp7Tbuh0
すみませんが教えてください。

IE7で、リンクをクリックして新しいタブでページを開いたとき
以下の記述で読み込みが完了するまで待たせようと思ったのですが
実際にやってみると、どうも待っていないような気がします。

REPEAT
    SLEEP( 0.1)
UNTIL !Ie.busy AND Ie.readystate = 4

これは元のタブが完了しているので待ち時間も無しになってしまうのでしょうか?
(監視対象を元のタブから新しいタブに移行させるような記述が必要?)
910名無しさん@お腹いっぱい。:2008/09/24(水) 16:36:09 ID:QdafQDbl0
回答になってなくて申し訳ないが、おれタブ切ってるよ。
すごい信用ならない動きするから。
(以上、屑回答者でしたw)
911名無しさん@お腹いっぱい。:2008/10/03(金) 16:24:51 ID:0XezONcO0
ファイル名の10文字ををグラフのタイトル名にしたいのですが、

WITH EXCEL
.LEFT(.ACTIVEBOOK.NAME,10)
ENDWITH

WITH EXCEL
.APPLICATION.WORKSHEETFUNCTION.LEFT(.ACTIVEBOOK.NAME,10)
ENDWITH

を2つを試したのですが『COM Error』となるのですが
UWSCでLEFT関数はつかえないのでしょうか?
912名無しさん@お腹いっぱい。:2008/10/03(金) 17:39:50 ID:qFcBKb120
>>911
まずCOMでExcelの関数を呼べるかどうか調べるんだ。

とりあえず僕が知ってるのはマクロ(Public定義されたVBA関数)を外部から呼び出せるってことだけだ。
913名無しさん@お腹いっぱい。:2008/10/04(土) 00:03:50 ID:5Ws3wtUZ0
>>912
呼び出せるかどうか ググってきます
ありがとうございます
914名無しさん@お腹いっぱい。:2008/10/05(日) 13:56:18 ID:j8aVhhSW0
ttp://blogs.yahoo.co.jp/uwsc_script/36204608.html
AutoHotKeyとUwscを組み合わせて、ショートカットキーを押すとuwscスクリプトが動くようにする
915名無しさん@お腹いっぱい。:2008/10/05(日) 14:10:26 ID:i2Ll+/fc0
どこやったか場所が分からない。って
スクリプトのフォルダ作っておけよ…って話だし

ランチメニューに登録したらショートカットでメニュー出せるじゃんって話だし

スクリプト毎にショートカットキー設定したいんです。ってことなら
普通にショートカット作ってショートカットキー設定すればいいじゃん。って話だし
916909:2008/10/08(水) 11:20:32 ID:KudTSrE20
>>910
遅レスで申し訳ないですが、回答ありがとうございます。
IE7はタブブラウザとして使用しないほうがいいのですか。


もし、あくまでタブブラウザとして使用する場合、

GETSTR( IeId, 1, STR_STATUS) = "ページが表示されました"

で、3回連続で「ページが表示されました」を取得できればOKとするようにしようと思うのですが
(3回連続というのは、読み込み中に一瞬「ページが表示されました」が表示されるのを回避するため)
この場合、何か問題点等考えられるでしょうか?ご存知の方、アドバイスよろしくお願いします。

ちなみに、ステータスバーは画面に必ず表示されているとし、マウスカーソルは退避済みという前提です。
917名無しさん@お腹いっぱい。:2008/10/09(木) 16:17:33 ID:E6ql6kpo0
画面上に表示された画像が、予めuwscディレクトリに保存しておいた画像と一致するかどうかを確認して、
一致した場合、一致した画像のファイル名を取得したいのですが、可能でしょうか?

chkimgだと一致したかどうかと、一致した場合の座標しか取得できないようで、どうしたものか困っています。
uwscでは不可能ですか?
918名無しさん@お腹いっぱい。:2008/10/09(木) 16:59:40 ID:VFGdzEEV0
>>917
UWSCはフォルダ丸ごと処理する関数はありませんよ。

自分でファイルの一覧を取ってループします。
ファイル一つ一つの名前を使って処理するので、
一致があればそのときに使ったファイル名が一致したファイル名になります。

比較するファイル数が多くなり、リアルタイムに繰り返し監視するような場合は
画面キャプチャして自力で画像処理したほうが処理能力が上がっていいと思います。
919名無しさん@お腹いっぱい。:2008/10/09(木) 17:26:06 ID:E6ql6kpo0
レスありがとうございます。

最終的には、比較する画像ファイル数は最小で30、最大で2500ファイルくらいになりそうです。
この場合、逐一saveimgで画像保存していって処理した方がいいですか?

あと
>自分でファイルの一覧を取ってループします。
>ファイル一つ一つの名前を使って処理するので、
>一致があればそのときに使ったファイル名が一致したファイル名になります。

との事ですが、一致したファイル名はchkimgの戻値で返ってこないですよね?
一致したファイル名を変数もしくは定数に入れる事は可能なのでしょうか?
920名無しさん@お腹いっぱい。:2008/10/09(木) 18:22:51 ID:VFGdzEEV0
>>919
ファイル名を変数にできないのはCALLで、これは例外的なものです。
他は変数、配列に格納できます。
そもそもファイル名を渡さないと比較できないのにファイル名を返してもらう意味がありません。

30くらいの画像なら分かりますが、2500ファイルとの一致とかむちゃくちゃです。
通常の静止した入力画面だとして、比較が完了するのに何秒かかかるでしょう。
数十秒かけて入力するのを自動化するのならそれでも意味があるでしょうが、
まずは別のやり方が出来ないかを確かめた方がいいと思います。
921名無しさん@お腹いっぱい。:2008/10/14(火) 12:23:34 ID:0+q0+Xkm0
今朝からヘルプ眺めながらポチポチ打ちこんでるけど
ヘルプがかなり見づらいな
大文字小文字区別しない仕様のせいか全部大文字だし
かと思えば例文とか小文字だったり大文字小文字混じりだったり

922名無しさん@お腹いっぱい。:2008/10/16(木) 13:10:41 ID:6x1YqSue0
>>921=STRCONV( ヘルプ, SC_LOWERCASE )
923名無しさん@お腹いっぱい。:2008/10/16(木) 17:57:55 ID:cFITu95V0
最近使い始めたばかりで、まだまだわからないことが多いんですが、
UWSCでマウスやキーボードの動作を自動運転させていると、モニタが
省電力に入りません。
これは当然だと思うんですが、「電源を切る」以外にモニタを強制的に
省電力状態にして、任意の方法(例えばショートカットキーを操作するとか
マウスの中ボタンをクリックするとか)を採るまで復帰させないような方法
またはソフトはありませんでしょうか?
924名無しさん@お腹いっぱい。:2008/10/16(木) 18:02:51 ID:6x1YqSue0
モニタのケーブルをはずす
925名無しさん@お腹いっぱい。:2008/10/16(木) 19:59:26 ID:cFITu95V0
わざわざのレスありがとうございます。
ただ、そういうのじゃなくて、お願いします。
926名無しさん@お腹いっぱい。:2008/10/16(木) 20:07:06 ID:d7kooL7q0
ソフトを聞きたいのなら完全にスレ違いじゃないですか?
927名無しさん@お腹いっぱい。:2008/10/16(木) 20:33:19 ID:uMdLBIe50
マジで消しとけばいいじゃん
928名無しさん@お腹いっぱい。:2008/10/16(木) 20:58:39 ID:cFITu95V0
スレ違いということで、申し訳ないです。
同じソフトを使っている先輩方から何か教えていただければと甘く考えていました。
自分で探します。
929名無しさん@お腹いっぱい。:2008/10/16(木) 21:54:07 ID:no6SsNM50 BE:666237964-2BP(808)
   〈\_/ /
'´ ̄ ,z≧D≦ \   /
  /´⌒/|  /'⌒ l   ) OSに、私が操作してる様に見せかけるのに
  | /Tメ| /ヘヾハ  )
  |/ l! ∨ l! |`ト  )   こんなに必死で取り組んでいるのに
  | 、_  、_,Y  )
  |///r─‐┐//〉|  ) それを見破って、省電力モード移行とか、スクリーンセーバー起動とか
\|、_V⌒V イヽ|   )
 ト、__了 /j    )   ど ん だ け 〜!?
 \   //r'´    \
930名無しさん@お腹いっぱい。:2008/10/17(金) 13:13:27 ID:LLnFf1E50
でもユーザーログインしない状態で
バックグラウンドで動かせばできるかな?
931名無しさん@お腹いっぱい。:2008/10/17(金) 13:14:27 ID:LLnFf1E50
うん。comとかで値の受け渡しはできたとしても、
マウス・キーボードの動きはやっぱ無理だねw
932名無しさん@お腹いっぱい。:2008/10/17(金) 13:48:13 ID:99X/dvX+0
VectorでHiMacroExとかいう同種のソフトが紹介されてたから使ってみたけど
ウィンドウをD&Dする事とか出来なかった。
UWSCすごいな。
933名無しさん@お腹いっぱい。:2008/10/17(金) 19:54:22 ID:Ta6639300
>>932
HiMacroEXのレビュー見ただけでドラッグできそうだったんですけど。
キー入力の再現だけで見ればあっちはシンプルな記述だね。
http://fefnir.com/index.htm

でも機能はバッチファイルのマウスキーエミュ付き程度のものか。

UWSCの関数呼び出したいけど、プログラムをCOMとして実装したらできるのか。
でもCOMとか大げさなもの使うなら汎用通信オブジェクトみたいにしてどのプログラムでも利用できるようにしないとな。
使うのは簡単だけど・・・
でもサービス名ってあらかじめ登録なのに自由に使えるようにするってどういうことだろ。
ウィンドウプロシージャみたいに引数になんでも渡せるようにするとか?
・・・
無駄か。
934名無しさん@お腹いっぱい。:2008/10/20(月) 12:38:25 ID:d54g8P6j0
別フレームのフォーム項目にデータを入れたいのですが、どうもうまくいきません
(やりたいことは、クリック証券の為替注文フォームですばやく売買・期限などを選択したい)

注文ページのフレームは3つに分かれていて、3つめのフレームに注文画面が入っているのですが

IE = GETID("クリック証券 FX取引 - Microsoft Internet Explorer")
ACW(IE,479,143,1278,942,0)
IESetData(IE,True,"IE.Document.frames[2].Document.forms[0].P002.0","0") // RADIO
IESetData(IE,True,"IE.Document.frames[2].Document.forms[0].P010.0","1") // RADIO
IESetData(IE,True,"IE.Document.frames[2].Document.forms[0].P004.0","1") // RADIO

…のように指定しても動きません。書き方がおかしいでしょうか?
935934:2008/10/20(月) 14:09:40 ID:d54g8P6j0
すみませんできました。
一行目を
IE = GetActiveOleObj("InternetExplorer.Application", "クリック証券 FX取引")
にしてやることで、以後フレーム指定無しで
IESetData(IE,True,"P002.0","0") // RADIO
IESetData(IE,True,"P010.0","1") // RADIO
IESetData(IE,True,"P004.0","1") // RADIO
のように書いたらできました。GETIDとGetActiveOleObjって違うんですね…
板汚し失礼しました。
936名無しさん@お腹いっぱい。:2008/10/20(月) 18:48:16 ID:WFFv3sPY0
IDはウィンドウハンドルの番号で、ウィンドウごとにつき、ウィンドウの制御に使います。
OleObjectはOLEコンポーネントっていう独立したパーツです。
IEは、IEオブジェクトを作っても一緒に起動するしそれが一つのプログラムのように見えますが、
実はウィンドウはIEオブジェクトをコントロールしてるだけなんですね。
937名無しさん@お腹いっぱい。:2008/10/21(火) 09:52:15 ID:2O9rCXCj0
>>935
自動売買なら携帯サイト経由がおすすめ。
フラッシュとか不安定すぎて金預けることなんかできませんよ。
938名無しさん@お腹いっぱい。:2008/10/24(金) 11:11:54 ID:19ko8tZQ0
IEのページ内をスクロールさせながら指定画像を全てクリックする、というスクリプトを作成したいのですが、
参考になるサイト等ないでしょうか?

対象画像が1つで絶対にページ内にある場合だと簡単なのですが、対象画像が複数個ページ内に
ある場合どうすれば良いのか、もしくは無い場合はページの一番下まで行ったら終了するという形に
したいのですがこれも分かりません。

ページの表示位置を数値(ピクセル)で読み書きできればなんとかなる気もするのですが、
SETSLIDER( ID, 値, [番号] )を使ってみても値が読めませんでした。
939名無しさん@お腹いっぱい。:2008/10/24(金) 11:38:54 ID:1GH6BB5B0
>>938
SETSLIDERで操作するスライダーっていうのは、
画面解像度とか設定するときにスライドさせて数値を指定するあれのことですよ。

ページスクロールのは、VScrollBar、HScrollBarっていうコントロールで、
これはUWSCでは対応してないのでウィンドウメッセージで操作することになりますね。
WindowsAPIを使うか、スクロールバーがくっついた状態の画像を検索するかですね。
ただ、IEではスクロールバーの色を操作できちゃらしく、そういうページに対応する場合は色を見ないようにする必要があるでしょう。

API使う場合、スクロールバーっていろんな場所に出てくるから全部対応するのは大変でしょうね・・
940名無しさん@お腹いっぱい。:2008/10/24(金) 12:37:50 ID:AdHNFAXj0
画像のファイル名がわかってるんならスクロールさせずにクリックできるけど(ソースからその画像のリンクを開く)
画像比較じゃないとダメなのかな?
941名無しさん@お腹いっぱい。:2008/10/24(金) 12:44:02 ID:pxpujee70
スクロールさせながら、ってことは
自分がその動いてる状況を見たいってこと?
942名無しさん@お腹いっぱい。:2008/10/24(金) 12:52:55 ID:19ko8tZQ0
>>939 さん
ありがとうございます。
VScrollBar、HScrollBar、ウィンドウメッセージ等がどういうものか分かってないので調べてみます。
943名無しさん@お腹いっぱい。:2008/10/24(金) 13:12:06 ID:19ko8tZQ0
>>940 さん
いくつかのケースを想定しているのですが、例えばFLASHの中のボタンだと画像で押すのがいいのかな・・・と。

FLASHの座標を取得してマウスクリックでFLASHを選択状態にして、TABキーで目的のボタンを選択してエンターで押す、
というのはやったことがありますが(ちなみにこれもページの上の方にあるFLASHでしかやったことがありません)、
TABキーで選択できないタイプもあるみたいですし。

あと、書いてなかったですが指定画像を基点として別のところをクリックすることも考えています。

>>941 さん
最終的に目的物をクリックできればOKなので、リアルタイムに状況を確認できなくても構いません。
944名無しさん@お腹いっぱい。:2008/10/25(土) 02:24:27 ID:B/rs4SEP0
>>932
HiMacroEXもウィンドウをD&Dできますよ。
初期設定だとマウス操作や操作時間を記録してないからじゃない?

どの操作を記録するかとかも設定できるし
HiMacroEXだけでもかなりいろいろできるからこっちメインで使ってる。

俺はUWSCはかなり細かいことしたいときだけに使うかなぁ
記録してから編集するのがHiMacroEXの方がやりやすい
945名無しさん@お腹いっぱい。:2008/10/25(土) 18:51:49 ID:kTL19o7r0
スクリプトの内部で以下のようにEXECを使って別のスクリプトを実行しているのですが、

EXEC( "C:\パスA\uwsc44c\UWSC.exe C:\パスB\ファイル名.uws", TRUE)

この「ファイル名.uws」は「○○○_1025.uws」のように日付をつけるようにしていて、変更・修正するたびに変わります。
そうするとEXECのなかのファイル名も変えないといけないので面倒くさいです。

EXECの中のファイル名をワイルドカードを使って「○○○_*.uws」としてみたのですが反応しませんでした。
どういうやり方が良いかアドバイス頂けないでしょうか。
フォルダ名は変わらず、「○○○_*.uws」というファイルも一つです。(旧版は別のフォルダに移動させているため)

バージョン管理ツールでも使えばいいのかもしれませんが、そっちも無知なもので。
946名無しさん@お腹いっぱい。:2008/10/25(土) 19:27:08 ID:HLUKfRFC0
>>945
○○○は固定なの?
1025 この部分だけ変わる?
ファイル名にある日付は EXECを実行する日付と一緒?
947名無しさん@お腹いっぱい。:2008/10/25(土) 19:34:33 ID:KGc2HRUi0
ファイルを検索して実際に有るスクリプトのファイル名を取得すればいいだろう。
しかしいちいち日付なんかつけなきゃ済む事だろ。
948名無しさん@お腹いっぱい。:2008/10/25(土) 19:38:30 ID:HLUKfRFC0
>>945
俺がした質問の答えがすべてyesなら

GETTIME()
EXEC( "C:\パスA\uwsc44c\UWSC.exe C:\パスB\○○○_"+G_TIME_MM2+G_TIME_DD2+".uws", TRUE)

これでできる
949名無しさん@お腹いっぱい。:2008/10/25(土) 19:41:33 ID:gMwmlNqd0
そういうのは現バージョンのファイル名は固定にして
バックアップしたフォルダのほうだけ日付つけりゃいいだけじゃん。

いろんなソフトみたって、実行ファイル自体のファイル名に
バージョンやら入ってる事なんて無いだろ…常識で考えろ
950名無しさん@お腹いっぱい。:2008/10/25(土) 19:42:14 ID:KGc2HRUi0
それじゃ日付変わったら確実に動かないな。
お前の質問に全てyesになる根拠はどうみてもゼロだろ。
951名無しさん@お腹いっぱい。:2008/10/25(土) 19:47:15 ID:mSYkfDb70
日付とればいいだけのことなのに
どうしても日付はつけたままにしておきたいというのなら
>>947の言うとおり、GETDIRで存在するファイル名取得すればいいだけ
952945:2008/10/25(土) 21:14:29 ID:QrnfltsL0
どうもみなさんありがとうございます。
GETDIRを使えばたしかにいけそうですね。

バージョン管理は普通のファイル(エクセルやワード)の場合は「○○○_1025」でやっていて問題なく、
人に提出するときにも便利だった(むしろ日付なりバージョンの記載が求められる)ので良かったんですが
ソフトなどの場合は、不都合でますね・・・。
>>949 さんの言うとおり変更発生したあとに付けるというやり方に倣いたいと思います。
953名無しさん@お腹いっぱい。:2008/11/04(火) 05:48:40 ID:QjtSZc/e0
UWSCのスクリプトをUWSC自身のランチャー以外から実行すると、
"STOPFORM(FALSE)"を記述しても非表示のウインドウが作成されて
フォーカスを奪い、実行直前のアクティブウインドウを取得できず困っています。
非表示のウインドウが作成されないようにする方法は無いのでしょうか。
954名無しさん@お腹いっぱい。:2008/11/04(火) 06:48:47 ID:f4ddwzSy0
すみません、間違えました。
ウインドウを作成しないなんて無理に決まっています。
ウインドウがフォーカスを奪わないようにする方法です。
955名無しさん@お腹いっぱい。:2008/11/04(火) 06:54:05 ID:LlX4Lb5G0
解決できそうな方法は、
ランチャーをUWSCで作って、CALLするときにアクティブウィンドウを取得しておくとか。

あと、.uwsの関連付けのときにUWSC.exeの呼び出し方法を記述しているはずだけど
UWSC本体を非表示にするオプションを付けて起動するとか。
exeへのショートカットにはウィンドウの大きさを指定するあったと思うけど関連付けで非表示は、できたっけなあ・・・?
956名無しさん@お腹いっぱい。:2008/11/04(火) 06:56:01 ID:LlX4Lb5G0
>>954
起動時に表示で起動されてるかもしれないから難しいよ。
起動後に非表示にしてもフォーカスは奪った後だろうし。
957名無しさん@お腹いっぱい。:2008/11/04(火) 07:27:44 ID:f4ddwzSy0
>>956
たとえば以下のようにしてもアクティブウインドウのタイトルは"Test.uws"です。

Set Shell=CreateObject("WScript.Shell")
Shell.Run "C:\Uwsc\UWSC.exe C:\Uwsc\Uws\Test.uws", 0, false
958名無しさん@お腹いっぱい。:2008/11/04(火) 08:59:46 ID:r1JeEX8R0
>>953
こんな方法もあるけど・・・
窓使いの憂鬱、ノドカ、AHKといったキーカスタマイズソフト(=常時キーを監視するソフト)から
特定のキーを押したときに、スクリプトを呼び出すようにする。
上記のキーカスタマイズソフトには、キーを押した時点の
ウィンドウ名やアプリ名、クラス名を取得できる機能があるので
自分の作ったスクリプトに、引数としてその値を渡すことが出来る。
窓使いの中の設定= key M3-N =&ShellExecute("open", "C:\Appli\AppliWindowName.UWS",$WindowTitleName,,ShowNormal)
UWSCのスクリプトAppliWindowName.UWSに、キーを押した時点の 
アクティブだったアプリのフルパスと、ウィンドウ名を引数で渡すという意味。

スクリプトのPARAM_STRで取得できる値は、":"区切りで渡される以下のものになる。
D:\Jane Style\Jane2ch.exe:Jane Doe Style 【ソフトウェア】 - 【マクロ】 UWSC Part4 
【シェアウェア化】:::::::書き込み:>>953??こんな方法もあるけど・・・??窓使いの憂鬱、ノドカ、
AHKといったキーカスタマイズソフト(=常時キーを監視するソフト)から??特定のキーを
押したときに、スクリプトを呼び出すようにする。??上記のキーカスタマイズソフトには、
キーを押した時点の??ウィンドウ名やアプリ名、クラス名を取得できる機能があるので??
自分の作ったスクリプトに、引数としてその値を渡すことが出来る。
959名無しさん@お腹いっぱい。:2008/11/05(水) 05:15:02 ID:feItVUPD0
>>958
窓使いの憂鬱はMeなので使えません。
ノドカに関してはわかりませんえした。
AHKについても調べましたが、AHKのスクリプトを書けるのなら
そもそもUWSCを使って処理する必要がなくなってしまいます。
UWSC単独では解決できないようなのであきらめます。
ありがとうございました。

(でも、どうして非表示のウインドウがフォーカスを奪ったりするんだろう)
960名無しさん@お腹いっぱい。:2008/11/05(水) 09:29:06 ID:uUSyLZGS0
透明ウィンドウが出現してフォーカスを持っていくんなら、
Alt+EscかAlt+Tabで入れ替えてやればいいかもしれない。
自分自身がアクティブじゃないときにやっちゃいけないから、自分自身がアクティブかを確認しないと。
でも自分がアクティブになってるかどうかって、どのウィンドウで確認すればいいんだろ?

とりあえずアクティブウィンドウを取って、
自分自身に関係するの全部と比較か。
961名無しさん@お腹いっぱい。:2008/11/06(木) 00:44:58 ID:NCVccmDS0
AutoHotKeyのZip版で試したら動いたんで参考がわりに。
環境はWindows2000。MEで動くかはわからん。
以下を TestUWSC.ahk として保存。
autohotkey.exeにドロップするか、関連付けて実行。
↓ではUWSC.exeとAHKtest.uwsのフルパスはとりあえずプログラムフォルダーのUWSC。
Windows+Gキーを押すたびに、AHKTest.uwsに、
アクティブウィンドウの"プログラム名" "クラス名" "ウィンドウ名"が渡る。

#g::
WinGet Process,ProcessName,A
WinGetClass, class, A
WinGetTitle, Title, A
Run,"C:\Program Files\uwsc\uwsc.exe" "C:\Program Files\uwsc\AHKTest.uws" "%Process%" "%class%" "%title%"
return


//AHKtest.uwsの中身。↓で引数で受け取って、メッセージボックスで表示
//AHKtest.uws
プログラム名=PARAM_STR[0]
クラス名=PARAM_STR[1]
ウィンドウ名=PARAM_STR[2]
ID=getid(ウィンドウ名,クラス名)
msgbox(ID+"<#CR>"+プログラム名+"<#CR>"+クラス名+"<#CR>"+ウィンドウ名)

// ちなみに、サクラエディタで試したとき、Windows+Gでフォーカスがアクティブから外れ、
//ウィンドウ名が変わる。そのためIDは-1となった。ほかのアプリは1で取れた。

962名無しさん@お腹いっぱい。:2008/11/06(木) 17:54:07 ID:1r3Epgs00
>>961
大変ご親切にありがとうございました。
こちらの環境でも正常に動作しました。
ですが、先にも書きましたようにAHKを使うのであればなにも
UWSCを使わなくても、処理自体をAHKにやらせれば済む話なので意味がありません。
私は自分が知らないだけで、ウインドウがフォーカスを奪わないようにする方法が
あるのではないかと思い質問した次第です。
失礼な物言いをお詫びいたします。
963名無しさん@お腹いっぱい。:2008/11/06(木) 18:33:11 ID:KQG4S5qW0
>>962
一応ですね、奪ったフォーカスを返すことはできました。
最初ストップフォームのIDを取得しますが、Alt+ESCによって元のウィンドウをアクティブにします。
最初から切り替わってはいけないのならこの方法でもだめですが・・
エクスプローラー上でダブクリしたら、一瞬フォーカスを奪われるけど、またエクスプローラーが手前になります。

stopform(false)のとき、GetID(GET_ACTIVE_WIN)の結果はGetID(GET_THISUWSC_WIN)と同じになります。
stopform(true)のとき、GetID(GET_ACTIVE_WIN)の結果はストップフォームのIDとなり、、
Status(ID, ST_CLASS)で確認するしかないようです。

stopform(true)
ID = GetID(GET_ACTIVE_WIN)
print "ID:" + ID
print "hWnd:" + IDToHND(ID)
print "TITLE:" + Status(ID, ST_TITLE)
print "CLASS:" + Status(ID, ST_CLASS)

KBD(VK_Alt, DOWN); sleep(0.02)
KBD(VK_ESC); sleep(0.02)
KBD(VK_Alt, UP); sleep(0.02)

ID = GetID(GET_ACTIVE_WIN)
print "ID:" + ID
print "hWnd:" + IDToHND(ID)
print "TITLE:" + Status(ID, ST_TITLE)
print "CLASS:" + Status(ID, ST_CLASS)

sleep(5)
input("")
964名無しさん@お腹いっぱい。:2008/11/06(木) 19:37:36 ID:E9PDbUBD0
>>963
960さんでしょうか、961さんでしょうか?
確かにほぼ100%取得可能です。
望んでいた物とは違いますが、処理するプロセスを手直しすれば
実用になると思います。
本当ににありがとうございました。
965名無しさん@お腹いっぱい。:2008/11/07(金) 01:05:03 ID:8LGBQYpD0
>>964
例えば、どんな用途で使う予定だったの?他の人の参考になるかもしれないんでよかったら教えてください。
966名無しさん@お腹いっぱい。:2008/11/12(水) 17:15:28 ID:091ontS70
こちらでお伺いしてよいかもわかりませんのですれ違いなら申し訳ありません。

UWSCとvirtualPCを併用しておりますが、仮想PC内でUWSCでマクロを起動します。
そこで、親機に戻ると操作も止まってしまうのですが、
いわゆる仮想PC内(裏で)マクロを実行し続けることは可能でしょうか?
967名無しさん@お腹いっぱい。:2008/11/12(水) 18:18:38 ID:h3ZIBafh0
>>966
> 親機に戻ると操作も止まってしまう

なんでだろうね。
VMwareでは、仮想PC内のマクロは親とは無関係に単独で動くんだけど。
968名無しさん@お腹いっぱい。:2008/11/12(水) 18:55:14 ID:EGySMsKi0
VirtualPCで非アクティブ時に止まるような設定にしてるんじゃないの
969名無しさん@お腹いっぱい。:2008/11/12(水) 19:36:14 ID:091ontS70
>>967-968
すばやい回答ありがとうございます。
VP上のオプションから見てみましたが、パフォーマンスのところの非アクティブ時に一時停止するは
チェックが入ってませんでした。

UWSCでマウスを動かす操作を保持しつつ、→ALTでホストに復帰してるんですが、どうもUWSCだけが止まってるよう
なかんじです

VPC→ホストに切り替え時にUWSCの動作を保持というのは皆様、問題なくできているのでしょうか?
970名無しさん@お腹いっぱい。:2008/11/14(金) 09:48:18 ID:IEeZ1Zss0
stopボタン押下時のイベントハンドラって書けますか?
やりたいこととしては、マクロ開始時にロードしたdllが
プロセス展開してるのでcloseする処理を入れたいのですが><
971名無しさん@お腹いっぱい。:2008/11/22(土) 17:16:06 ID:CeFFXzl10
調べてもよくわからなかったので質問させていただきます。

とある文字列をクリップボードにコピーして、その中から特定の文字列を抜き出したいのです。

例えば abcdifg ID:123456 abcdefg をクリップボードにコピーします。
この文字列の中からID:の横の123456だけを抽出してクリップボードに戻すという事をしたいです。
ただ、ID:の文字以外の文字は毎回違うのでどうすればいいのか教えていただけませんか?
972名無しさん@お腹いっぱい。:2008/11/22(土) 17:30:05 ID:An2r9i5m0
>>971
SENDSTR( 0, BETWEENSTR( GETSTR( 0 ), "ID:", " ", ), , TRUE, )

無理かな
973名無しさん@お腹いっぱい。:2008/11/22(土) 18:23:53 ID:ObZbScyR0
>>971
検索に正規表現を使ってもいいし、
Between()でID:から改行までを取り出し、それをreplaceで置き換えてもいいし

でも、人間の操作をチカンするのって嫌いなんだよね。
昔MSチャットで自分のメアド交換しようとしているのに、自動的にストーカーのメアドに置換されてて、
メールを送ってもらってもストーカー経由でしか連絡取れず、
当時連絡を取り合った相手は次々に殺されていったよ。

だからスパイウェアっぽいやつは全部嫌い
974nZZnQUDwboA:2008/11/22(土) 18:24:57 ID:3jPGEQYg0
975名無しさん@お腹いっぱい。:2008/11/22(土) 18:34:37 ID:y+IWHAJ+0
>>971
UWSCの仕様がよくわかってない私が答えるのもなんなんだけど
クリップボード内での展開ってのがミソですね
ということはUWSC自体が正規表現を扱えるのかがポイントだと思う
私も同じようなことを模索した経験があるんですけど
結局、私は急いでいたので解答待ちをしないで
正規表現の使えるエディターを自動操作して間に合ったんだけど
クリップボード内での展開でUWSC自身が正規表現を使えるか私も興味あります
解答レスじゃなくてスマソ^^;
976名無しさん@お腹いっぱい。:2008/11/22(土) 18:51:18 ID:lFa4wson0
あんまり関係ないんじゃない?
正規表現だったら1行で表せるけど
使えないから数行使いました。程度でしょ

クリップボードの文字列を取り出して置き換えるだけの話だし
977名無しさん@お腹いっぱい。:2008/11/22(土) 18:55:30 ID:y+IWHAJ+0
>>976
何が関係ないの?
検索するのに正規表現つかわない?
ていうかUWSCで正規表現使えるかが知りたいので
関係ないといわれてもお前のレスのほうが関係ないよってかんじかな
978名無しさん@お腹いっぱい。:2008/11/22(土) 19:05:42 ID:wLfEl6LB0
こんなやつ、つい最近も別スレでみたな…分かりやすい
979名無しさん@お腹いっぱい。:2008/11/22(土) 19:09:30 ID:y+IWHAJ+0
どうでもいい会話が好きなようだ
UWSCで正規表現が使えるのかそれだけ教えてくれってことわかんないのかよ
空気の読めない奴だ
お前のレスはいらないので>>971に詳しく説明してあげればいいよ
といってもお前の会話能力で>>971が理解できるように伝わるのかは疑問だがなw
出かけるのでレスいらないよ
んじゃな
980名無しさん@お腹いっぱい。:2008/11/22(土) 19:12:34 ID:xP32C+F+0
>>975
あなたの言う、「クリップボード内での展開」ってどういう意味?どういうのを想像してるの?
ミソとか言われてもさっぱり想像できない。

クリップボード内の文字列を、取り出し->置換->格納じゃなくて
直接、置換できるような想像してるの?

置換する手段に正規表現を使うかどうかなんてどうでもいい
981名無しさん@お腹いっぱい。:2008/11/22(土) 19:20:19 ID:y+IWHAJ+0
関係大有りさ
正規表現で無いと取り出せない文字はどうすんの
私の場合まさにそれだったんだ
それでUWSCスレや本家サイトに質問しても頓珍漢な解答ばかりで全く進まなかった
結局、テキストにしてエディターでやれば簡単だったってこと
テキストエディター使わなくてもいいかどうかを聞いてたの
つまりクリップボード内で全て完結できますかってこと
もしできるのであればサンプル欲しいね
本当にできるのか検証しないとね
プログラム関係の解答者は自己満足の嘘つきオナニー解答者が多いからな。
以前質問したときはあなた居なかったんだね
サンプルよろしくね
マジででかけるのでレスできないからヨロ
982名無しさん@お腹いっぱい。:2008/11/22(土) 19:34:28 ID:xP32C+F+0
クリップボード内ってどういう事かと思ったらそう言うことですか。

正規表現で表現できるのに
プログラム的に表現できないなんてことはないですよ。

元質問者の方は正規表現なんて関係ない話なのでこれで終わりにしますけどね
983名無しさん@お腹いっぱい。:2008/11/22(土) 19:36:25 ID:An2r9i5m0
つまらんことでスレ伸びすぎ
984名無しさん@お腹いっぱい。:2008/11/22(土) 22:26:12 ID:XDMSxlYA0
トークン取り出せば委員だろ?
もっと低レベルの関数で十分。
下手にregexp使う必要など無い。
985名無しさん@お腹いっぱい。:2008/11/22(土) 23:44:35 ID:7V/62W9+0
>>ID:y+IWHAJ+0
ttp://iriyak.adam.ne.jp/wiliki/uwsc.cgi?

なんでこんなことでスレ伸びるんだべ…
986名無しさん@お腹いっぱい。:2008/11/23(日) 10:37:09 ID:6RUEQI4a0
WHILE TRUE 文で、特定の画像がなければそれまでのループを一時停止して、
他の動作をする。
こういうのを作りたいんですがどうやってループとめるんでしょうか?
987名無しさん@お腹いっぱい。:2008/11/23(日) 10:45:50 ID:wxFyQTZV0
別処理がuwsc内なら、別処理を関数化する。
別処理がuwsc外なら、sleepさせる。
988名無しさん@お腹いっぱい。:2008/11/23(日) 11:28:12 ID:ECfq5F6H0
正規表現ならCreateOleObject("VBScript.RegExp")でええんちゃうのかしら
989名無しさん@お腹いっぱい。:2008/11/23(日) 11:29:33 ID:ECfq5F6H0
あ、CreateOleObjectって関数はないね
CreateOleObjだった
990名無しさん@お腹いっぱい。:2008/11/23(日) 11:40:54 ID:ECfq5F6H0
しばらく触ってなかったから書き方忘れてたけど
今書いて試してみたらCreateOleObj("VBScript.RegExp")で置換できたよ
991名無しさん@お腹いっぱい。:2008/11/23(日) 11:45:46 ID:cSsXoXHM0 BE:1249195695-2BP(808)
>>985
http://pc11.2ch.net/test/read.cgi/software/1176677869/452
botでやっと食いつないでる負け組の人が必死だからじゃね?
992名無しさん@お腹いっぱい。:2008/11/23(日) 12:29:39 ID:IJZCysaS0
>>985のリンクに書いてあるね、見逃してたよ
何度も書き込んでゴメンネ、ゴメンネ(´・ω・`)
993名無しさん@お腹いっぱい。:2008/11/23(日) 13:43:59 ID:wxFyQTZV0
uwscのbotで食いつなぐとか終わってんなw
994名無しさん@お腹いっぱい。:2008/11/23(日) 13:45:20 ID:uKblIZr70
むしろそれだけで食いつなげる現状に圧倒されるww
995名無しさん@お腹いっぱい。:2008/11/23(日) 14:55:53 ID:KwNSV0jj0
シナ人boterとか家が建てられるらしいしな
家を建てるまではいかない日本人でもそれなりにいい小遣いになるはずだ
アイテム課金が増えた今は儲かるのかよく分からんけど
996名無しさん@お腹いっぱい。
UWSCのスレや掲示板見てたら
色判別して何かしたい…って質問があったら
10件中、7,8件はネトゲ、残りの1,2件は株、で残りその他って感じだもんな…