アクセスカウンタ

プロフィール

Author:croissant3

カテゴリー

最近の記事

月別アーカイブ(タブ)

最近のコメント

最近のトラックバック

月別アーカイブ

ブロとも申請フォーム

この人とブロともになる

月別アーカイブ

カレンダー

04 | 2006/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

小さな天気予報


-天気予報コム- -FC2-

全ての記事を表示する

全ての記事を表示する

PCノンセクションの10♪
PCに関することを色々と。っつうか最近VBネタばっかorz
スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
↑参考になったら拍手よろろ
リネームツール

ふと仕事で何百何千ものファイルを一括してリネームすることになった。

そっちは単にFileSystemObjectを使ってループしながらリネームすりゃ良いだけ。

ただ前々から欲しかったのがJEPGファイルの撮影時間を使ったリネームツール。(ExIF情報を引っ張ってくるやつね)
↑参考になったら拍手よろろ
■ 続きを読む。 ■

テーマ:プログラミング - ジャンル:コンピュータ

パケットダンプ

ユーザコントロールを使ったダウンローダを作った際、
URLのリストを自作しなきゃあかんって話で。

そのときのお話。

よくホームページに置いてあるファイルをツール使ってポコポコと
ダウンロードされないように右クリック禁止にしたり、
認証を必要とさせたり、はたまたダウンローダのクセを見抜いて対策したりと
色々とあの手この手でサーバ側は対策をしてきます。

それをかいくぐって落とすのをネトラン風に言えば
ぶっこぬきとか言うらしいですが。(苦笑)


ちなみに私の場合、解析の最後の手段は
TCP/IPのパケットダンプです。

いくらHTMLソースを見せなくしたりどっか別の場所に置いてあったとしても
パケットダンプすればバレバレ。(笑)

今はEtherRealとか色々ありますが、当時はvigilを使ってました。
↑参考になったら拍手よろろ
■ 続きを読む。 ■

テーマ:インターネット関連 - ジャンル:コンピュータ

まぁいいや。

エラーの詳細が取れないのはちょっと痛かったけど長所も色々あるし。

んで色々とこねくり回した結果こんなのが出来ました。

↑参考になったら拍手よろろ
■ 続きを読む。 ■

テーマ:インターネット関連 - ジャンル:コンピュータ

うぐ。

あ・このユーザコントロール、というか・・
ユーザコントロールを使ったダウンロード方法・・・
失敗したか成功したかはわかるけど
エラーの詳細がわからないみたい。orz

HTTP 404 エラーなのか 403 エラーなのかも判らない
ってのは致命的。orz

どうするよ?
↑参考になったら拍手よろろ

テーマ:インターネット関連 - ジャンル:コンピュータ

んでこんなコントロールを

VBScriptでバックグラウンドコピーをするのふまえて
ユーザコントロールを作りました。

UserControl.jpg


[画面イメージ]
左上テキストボックス = ダウンロードファイル名
左中テキストボックス = 受信バイト数 / ファイルサイズ
左下プログレスバー = 全体で何%受信したかの目安
右リストボックス = ログ表示

[各種プロパティ]
(1) DownLoadStatus (Get/Let)
ダウンロード状況(Enum)
(2) DownLoadUrl (Get/Let)
ダウンロードURL
(3) SaveDir (Let)
ダウンロードしたファイルの保存先
(4) SaveFileName (Get/Let)
保存ファイル名
(5) Enabled (Get/Let)
コントロール自体のEnable/Disable
(6) RetryCount (Let)
ダウンロード失敗時にリトライする回数
(7) RetryInterval (Let)
ダウンロード失敗時にリトライするまでのインターバル時間
(8) vbsName (Let)
コピー処理を実行するVbScript名

[Public メソッド]
(1) Public Function DownLoadStart() As Boolean
ダウンロード開始メソッド
(2) Public Function DownloadCancel() As String
ダウンロード中止メソッド
(3) Public Sub msgClear()
ログ消去
(4) Public Sub msgSave(SaveFile As String)
ログ保存

このユーザコントロールを使う側は落とすURLやファイル名を指定し、
ダウンロード開始メソッドを呼ぶ程度。

あとはこの砲台を画面上にいっぱい並べて制御すればOK?

↑参考になったら拍手よろろ

テーマ:インターネット関連 - ジャンル:コンピュータ

非同期コピーの件

色々考えてみたけど、コピーするためだけに
別プロセスを用意するのもなんだし。
一般のダウンローダなんかどうしているんでしょうね。

結局コピー処理を実行するVBScriptを
プログラム内部でリアルタイムに生成して
それを実行するようにしました。orz
ウチではノートン先生を動かしてないから
怒られることもないですし。(爆)

こういう場合の常套手段ってどうするんだろ。orz

誰か教えてぷりーず。
↑参考になったら拍手よろろ

テーマ:インターネット関連 - ジャンル:コンピュータ

AsyncRead成功♪でも・・・

いつものようにエンジン部分だけを作ってとりあえずテスト。
うん。ダウンロードは出来た。でも一つ問題が。

ユーザコントロールの中でダウンロード処理をさせるわけですが
この落としたファイルって、Windowsのテンポラリ領域に落ちてくる仕様なので、ダウンロードが終わったら自分で(プログラム内で)自分が指定する場所にファイルを移動させなきゃいけない。

でもこのファイルの移動処理って同期処理なんですよ。orz
落としたファイルサイズが何百メガもあると移動している間はプログラムが止まっちゃう。ユーザコントロールをたくさん実装して
パラレルにドカドカやりたいのにこれじゃ話にならない。

色々調べてみると非同期にコピーを行いたいなら
別プロセスに分けないとダメらしい。

ファイルの移動処理だけを行う別プロセスを作る?
でもその別プロセスも複数のユーザコントロールからリクエストきたら
同じように同期処理をしちゃうから別プロセスに分けた意味ないし。
別プロセスを複数起動して行う?
なんかそれも・・・

また方式を考えましょ。
↑参考になったら拍手よろろ

テーマ:インターネット関連 - ジャンル:コンピュータ

diffはファイル単位orz

仕事をしているとテキストファイルの比較はよく行う。
UNIX上じゃdiff,Windows上じゃDFやWinDiffで。
でもその手のファイルって当然のごとくファイル単位の比較。

もし一つのファイルに同じような記述が
2箇所あってこれらを比較したいって考えたらどうします?

他の人のやり方を見ると
比較したい2箇所をそれぞれ別ファイルに切り出して比較してます。
でもこの方法・・・本当にめんどい。
↑参考になったら拍手よろろ
■ 続きを読む。 ■

テーマ:ソフトウェア - ジャンル:コンピュータ

新たなダウンロード方法の検討

単にファイルをダウンロードする方法はいくつもあるけど
同期式だと落としている最中は処理が止まっちゃう。
パラレルにドカドカ落とす・・・・
VBじゃマルチスレッドでブンブンまわすのは無理だし・・・
なんか方法はないか?と色々とググっていたら
ユーザコントロールに付属のAsyncReadという方法が見つかった。
これは非同期型でダウンロード中の状況もイベントを上げてくれるらしい。

ユーザコントロールを1個作って、Propertyで落とすファイルや色々設定して、
ダウンロード開始のメソッドを用意して、完了時やエラー時にイベントを上げさせれば・・・・
処理を完全にユーザコントロール内で閉じることが出来ますね。

んでこのユーザコントロールをいくつも並べてこいつらに
「君はこのファイルを落としてね」
「終わったの?んじゃ次のファイルはこれね」
と制御してあげれば・・・・良いかも知れない。

これなら勝てる!(by尾崎)(年がばれるかも)

という前にASyncReadで落ちてくるか?検証が先ですな。
話によるとIEコンポーネントらしいから落ちてくると思いますけど。。 ↑参考になったら拍手よろろ

テーマ:インターネット関連 - ジャンル:コンピュータ

田代砲とGUIダウンローダの合作

GUIダウンローダの自動画面入力機能と田代砲のマシンガン機能を
合作させたツールをVBで組んでみました。

同時ダウンロード数を制御してないから画面だらけ。orz
確かに早いですが変に固まったりするし
中途半端なのでヤンピ。ボツにしたツールです。

Main.jpg


この辺りからVBを使った色々なダウンロード方法を検証し始めました。(笑) ↑参考になったら拍手よろろ

テーマ:インターネット関連 - ジャンル:コンピュータ

田代砲との出会い(笑)

GUIダウンローダを作ってしばらくすると
使ってくれていたユーザさんから「パラレルにドカドカ落とせません?」と
要望が出てきた。

パラレルに落とすとなると画面の自動入力する際に
どのリクエストに対する画面なのか判断が難しいのよ。
全く別の方式で1から考えないとダメです。
なんて言って断っていたら・・
田代砲を改造したスクリプトを紹介された。
そのスクリプトはなんと!GUIダウンローダを使うサイトで使えると言う。
ただし画面入力は手作業なので「保存」ボタンを連打する必要があるとの事。

その手のダウンロードツールはサーバ対策を施されているけど
IEからの直リンなら落とせるんだ。へぇ。

なんかパラレルにGOできるのが悔しくて
別のダウンロードツールを作ることにしました。(笑)
↑参考になったら拍手よろろ

テーマ:インターネット関連 - ジャンル:コンピュータ

GUI ダウンローダ(その3)

さて自動入力のエンジン部分はとりあえず動いたので
本格的に小道具作りに入りますか。

とりあえずWEBから落とすファイルは1ページ当り20?30個。
これが多いと100ページにもなる。
確かにこんなの手作業でダウンロードなんかやってられない。(笑)

とりあえず・・・・内容を考える。
1.どのページに何のファイルがあるのか把握する必要あり。
2.どのファイルを落としたかも把握(ダウンロード済みならスキップ)
3.1つのファイルがダウンロード完了した時の判断基準?
4.その他色々。

う?む。

画面構成としては・・・・
Form上にWebBrowserオブジェクトを貼り付けて
実際にForm上にWEBを表示させるでしょ。それに対して
ダウンロードの開始イベント(クリックイベント)を発生せていけばいいか。

あとどのページに何のファイルがあるかって情報もつかむって考えたら
最初のページから最後のページまで順番に巡回させて
INIファイルにファイルのリストを作るでしょ・・・
リストを作ったら、ページ単位にダウンロード作業を行う形にして・・
↑参考になったら拍手よろろ
■ 続きを読む。 ■
GUI ダウンローダ(その2)

落とすファイルの管理うんぬんの話もありますが
とりあえず自動入力部分を簡単に作りこんでみる。

処理する画面単位に関数を用意してタイマー関数を使って
定期的に画面を検索させながら見つかったら処理をさせる形。

Select Case TimerSW
Case 1: 'ダウンロード完了画面の処理

Case 2: '名前を付けて保存画面の処理

Case 3: 'ファイルのダウンロード画面の処理

Case 4: 'ネットワークパスワード画面の入力

Case 5: 'JavaScript画面でDownloadボタン押下

Case 6: 'JavaScript画面のサーバエラーの検出(検出したらFLAGをON)

Case Else
'何もしない
End Select

If (TimerSW Mod 6) = 0 Then
TimerSW = 1
Else
TimerSW = TimerSW + 1
End If ↑参考になったら拍手よろろ
■ 続きを読む。 ■

テーマ:インターネット - ジャンル:コンピュータ

GUI ダウンローダ(その1)

ある日、知り合いがどこぞのサイトから必死にファイルを落としていた。
話を聞くとそのサイトはダウンロードツールの対策が施してあって
そのサイトのポリシーとしては頑張って手作業で落としてちょ♪
という所。

なんとかダウンロード作業を自動化できないか?と相談を持ちかけられた。

どうやら感じとしては
1.サイトにログイン
2.目的のページに移って
3.落としたいファイルをクリック
4.ポップアップされるJavaScriptの画面でボタンを押すと
5.Windows側の認証画面がでてユーザとパスワードを入力、OKボタンをクリック。
6.名前をつけて保存画面で保存先を選んでダウンロード開始、終了。

この作業のうち2?6までを延々と繰り返すそうな。

とりあえずやってみますか。
↑参考になったら拍手よろろ
■ 続きを読む。 ■

テーマ:インターネット関連 - ジャンル:コンピュータ

PCでlddもどき

ある日ポンと置かれた*.exeが一体どのプラットフォームで
作っているのか?判別できるチェックツールを作れないか?
と開発から相談を持ちかけられた。

管理人「ダイナミックリンクしているライブラリ名で判別できんの?」
開発 「判別出来る。UNIXならlddで一発だけど今回PCなんよ」
管理人「Dependency Walkerとかの解析ツールを使えば?」
開発 「あの手のツールって開発環境がPCに入ってないとダメだし
    一回でチェックしたい数が2000個くらいあるんよ」
管理人「それじゃ1個1個その手のツールに読み込ませるのは無理だな・・」

ちょっと調べてみますわ。 ↑参考になったら拍手よろろ
■ 続きを読む。 ■

テーマ:プログラミング - ジャンル:コンピュータ

管理人について

自分はVBユーザ。仕事じゃVBやASP,VBScriptを使ってます。
仕事は開発の第一線でモノ作りをしているわけではなく
社内のシステム構築がメイン。

仕事じゃ適当にモノ作りをして(爆)
時々、小道具欲しさに趣味で作ったりもしてます。
↑参考になったら拍手よろろ

テーマ:プログラミング - ジャンル:コンピュータ


ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

メールフォーム

名前:
メール:
件名:
本文:



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。