レス数が900を超えています。1000を超えると表示できなくなるよ。
【マクロ】 UWSC Part4 【シェアウェア化】
- 1 :ミスターユーダブリューエスシー:2008/01/14(月) 14:47:14 ID:VrXr82Zu0
- 公式サイト
http://www.uwsc.info/
1 http://pc7.2ch.net/test/read.cgi/software/1107738590/
2 http://pc11.2ch.net/test/read.cgi/software/1156416884/
3 http://pc11.2ch.net/test/read.cgi/software/1176358142/
「UWSC」を含む日記 - はてなダイアリー
http://d.hatena.ne.jp/keyworddiary/UWSC
UWSCの落し物部屋
http://siromasa.xxxxxxxx.jp/dl/_dl.html
UWSCの誘惑
http://ochoja.web.fc2.com/uwsct/0610uwsct.html
- 2 :名無しさん@お腹いっぱい。:2008/01/15(火) 00:48:48 ID:6WQevle80
- キタ━━━━━━m9( ゚∀゚)━━━━━━!!
- 3 :名無しさん@お腹いっぱい。:2008/01/15(火) 11:48:23 ID:qSysXr2n0
- 同様の機能を持ったフリーソフト
AutoIt
http://www.autoitscript.com/autoit3/
WindowController
http://chi.usamimi.info
AutoHotkey
http://www.autohotkey.com
http://pc11.2ch.net/test/read.cgi/software/1184556627/
- 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コマンドで別のフォルダに
そのファイルをコピーしたりできると思っているんですが、どうやったらアイテム情報を取得できるでしょうか?よろしくお願いします。
- 53 :50: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
- http://hissi.dyndns.ws/read.php/newsplus/20080203/ZG9NeXR5cm4w.html
- 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
あれとか
これとか
いろいろ
- 99 :92: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
エラーで判断して処理するってことですね
アドバイスありがとうございます
自分的には初めて作る大掛かりなものなので気長にやってみます
ありがとうございました
- 122 :113: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
- 失礼します。
ある処理が終わるまで他のウィンドウをアクティブにさせない
方法を教えてください。他の自動で開くウィンドウにキー操作が
取られてしまう、、、。
- 127 :123: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のバージョンの問題じゃないかな。
- 158 :156: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
- まあちょっと使ってみて
http://scripts.web.fc2.com/scriptsup/AutoScrollingPagesUpLoda.uws
- 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になるようにでしょうか
- 179 :166: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が出てしまいます。ちゃんと該当ページは裏に出してあるのですが、、。
- 180 :166: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
俺も知りたい。誰か説明サイトきぼんぬ。
- 219 :200: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 するとき、通常、このヘッダを送りま