2011年12月30日

C# サンプル


NovelDL_Src.zipを作っていたときに、思いがけず、いろいろ調べる羽目になったことをまとめました。
半分はExcel VBAとかで調べたことだったりしたのだけれど、そのまま単純には使えず。
昔は簡単にできたのに、C#だと面倒だとか、その反対なことだとか調べました。

1.C#でActiveXを操作するときの方法
(1)C#らしい方法
Type typeShell = Type.GetTypeFromProgID("Shell.Application");
object objShell = Activator.CreateInstance(typeShell);
typeShell.InvokeMember("TrayProperties", System.Reflection.BindingFlags.InvokeMethod, null, objShell, null);
(2)VBっぽい方法(タイプライブラリ)
VisualStudioのプロジェクトのプロパティーなどから、DLLの参照を開き、ActiveXの参照を作る。
※タイプライブラリのときも、System.Runtime.InteropServices.Marshal.ReleaseComObject(object)を使ってもよいものか。。。

IEのActiveX操作関連の情報はこちらがお勧め
http://www.ken3.org/cgi-bin/group/vba_ie.asp

2.C#から、IEでURLを開く
(1)IE限定で開きたい
private void IeOpen(string url)
{
SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer();
ie.Navigate(url);
ie.Visible = true;
}
(2)標準のブラウザで開く
Process.Start("http://google.com/");

3.テキストボックスの一番したの行を表示する
objTextBox.SelectionStart = objTextBox.TextLength;
objTextBox.SelectionLength = 0;
objTextBox.ScrollToCaret();     // ここがVB6と違う
Application.DoEvents();

(3)アプリの設定を保存
ApplicationSettingsBaseを継承する
http://dobon.net/vb/dotnet/programing/applicationsettingsbase.html

XPだと、こんな場所に保存される(実行フォルダのパスで変わる)
C:\Documents and Settings\User1\Local Settings\Application Data\[会社名]\[ファイル名とかフォルダ名]\[バージョン]\user.config

(4)HttpWebRequestでCookieを受けたり、送ったり
ver cookie1 = new CookieContainer();
ver cookie2 = new CookieContainer();
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.CookieContainer = cookie1;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
cookie2.Add(res.Cookies);
string html = "";
using (Stream st = res.GetResponseStream())
using (StreamReader sr = new StreamReader(st, this.Encoding))
{
html = sr.ReadToEnd();
}

(5)起動中のIEの一覧から、必要なIEだけ処理する(ieオブジェクトについては 1-(2) を参照)
var shell = new Shell32.ShellClass();
var windows = (SHDocVw.IShellWindows)shell.Windows();
SHDocVw.InternetExplorer ie;
foreach (object window in windows)
{
ie = window as SHDocVw.InternetExplorer;
if (ie != null && string.Equals(Path.GetFileName(ie.FullName), "iexplore.exe", StringComparison.CurrentCultureIgnoreCase))
{
// 処理
MessageBox.Show(ie.LocationURL);
}
}

(6)(5)のIEオブジェクトからcookieデータを取得
string cookieData = "";
mshtml.IHTMLDocument2 myDocument = ie.Document as mshtml.IHTMLDocument2;
if (null != myDocument)
{
cookieData = myDocument.cookie;
}

(7)(6)で取得したcookieを(4)のリクエストに乗せて送る
ver cookie1 = new CookieContainer();
cookie1.SetCookies(new Uri("http://ncode.syosetu.com"), cookieData);

(8)C#でZIP(ネイティブDLLは使わず)
// ファイルの参照はIonic.Zip.dllだけでOK
// DLLはこちらから:http://dotnetzip.codeplex.com/
using Ionic.Zip;
using Ionic.Zlib;
using (ZipFile zip = new ZipFile(Encoding.GetEncoding("shift_jis")))
{
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
zip.AddFile("圧縮したいファイル");
zip.Save("保存先");
}


だいたい、こんなところかな。
具体的な使い方とかは、NovelDL_Src.zipを参照してください。
仕事じゃないから、動いたらOKという程度しか調べてないです。
鵜呑みにしないほうが自分のためかと。
続きを読む
posted by w033 at 21:42| 東京 ☀| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

「小説を読もう!」「小説家になろう!」一括ダウンローダ for i文庫



小説を読もう!」「小説家になろう!」から、一括でテキストを全話ダウンロードして、「i文庫」で読める形式に保存するツールを作ったので公開します。
プログラムはZIP圧縮していますので、ダウンロードして適当なところに解凍してください。
解凍後に「NovelDL.exe」をダブルクリックすれば実行できます。
起動した画面に説明を書いておきましたが、使い方は次のとおり。

(1)プログラムを起動する
(2)上記サイトをIEで開く(プログラムの画面からも起動できる)
(3)「小説を読もう!」「小説家になろう!」から、一括ダウンロードしたい小説のページを開き、画面下にある「TXTダウンロード」をクリックしてダウンロード画面を開く
(4)(3)を開いたまま、プログラムにある「一括ダウンロード」ボタンをクリックする
(5)保存するファイル名を求められるので、そこでZIPかTXTで保存できます。
※ZIPでファイルを保存すると「i文庫」で小説が読めるようになります。
※TXTでファイルを保存するとメモ帳や、Windowsの縦書きビューワなどで読むことができます。

■プログラム
NovelDL.zip

■ソースコード
NovelDL_Src.zip


■動作環境
Win XP以降 + .Net Framework 3.5 + IE6〜
(ソースコードは VisualStudio 2010)
.Net Framework 3.5はこちらのリンクか、Windows Update(カスタム)からインストールできます。

■動作確認環境
WinXP(32bit) + IE8
Win7(64bit) + IE9

■NovelDL License

非営利目的で使われる限り、ソースを含めフリーソフトです。
プログラムの不具合等による、動作の保障は一切いたしません。
自己責任でお使いください。

Ionic.Zipについては「http://dotnetzip.codeplex.com/」を参照してください。


続きを読む
posted by w033 at 19:47| 東京 ☀| Comment(7) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする

2011年12月29日

エクセルサーガ

いつのまに完結していたのか、漫画喫茶で見かけたら完結していた。
非常に懐かしい。
福島の町にあるホテルの名前が、市征服組織アクロスの構成員の
名前になっているというのは、有名な話なのかね。
まあ、あれが壮大なスケールで完結できたのはすばらしい。
たとえ、話の9割5分がストーリーと関係ない話だったとしてもw
それが好きだったのだけれど。

以下、ネタバレあり。
エクセルサーガと平行して連載されていたホーリーブラウニーという
同作者の話があるけれど、エクセルサーガの最後に、登場人物がひとこと
「ピオ」という呟きが、本編ではまったく説明されていなく、
ホーリーブラウニーを呼んでいない人には意味不明のままスルーされる
だろうけれど、呼んでいる人にはたったその一言だけで、おおかた説明
できてしまう(創造させることができる)のが素晴らしかったと思う。

面白さという点では、色々な意味で超展開の後半よりも、あの物語展開的には
まったく意味のないギャグパートの前半のほうが、私は好きだったり。
存分に楽しめました。

エクセルサーガ
http://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=%83J%83%5E%83J%83i&url=search-alias%3Dstripbooks&field-keywords=%83G%83N%83Z%83%8B%83T%81%5B%83K&x=9&y=18


posted by w033 at 00:36| 東京 ☁| Comment(0) | TrackBack(0) | 感想(本とか) | このブログの読者になる | 更新情報をチェックする

XXX HOLIC

これ、19巻で簡潔らしいけど、最後のほうは週間ヤングマガジンから
別の雑誌に移ったので読んでいなかった。
こういう終わりにしたんだねえ。

はじめ、笑ゥせぇるすまんちっくな話の展開だったのに、
途中からだいぶ違う風味になったのはグループで話をつくるCLAMP
特有なものなのか。
話のブレというか、キャラのブレが大きい気がする。

XXX HOLICはツバサとかカードキャプターサクラとかと
クロスワールドしているのだけれど、ここまで露骨に必要だったのかね?
個人的には単体で面白いのだから、話的にはにおわせる程度で
とどめてほしかったかな。
話は好きだし、全話通して読み終えて、良作だと思うのだけれど、
最後がちょっと急ぎすぎましたかね。
OVA天地無用の第3部みたい。
まあ、理由も似たようなものだろうけど。
最後はもうちょっと時間をかけて、丁寧に複線を張りながら、どこで
キャラがすり替わったのか、わからないように作ってくれると、
カタルシスの波が、もうちょっと大きくなったと思う。
ちと残念。

XXX HOLIC
http://www.clamp-net.com/works/holic
posted by w033 at 00:32| 東京 ☁| Comment(0) | TrackBack(0) | 感想(本とか) | このブログの読者になる | 更新情報をチェックする

2011年12月23日

α55

ソニーの1世代前のAPS-Cサイズのセンサーカメラが安い。
本当はNEX-5がほしかった。
パンケーキのレンズにワイコンと魚眼レンズのコンバータを一緒に買おうと思ってました。
本体が安いもので2万(中古の中で安いやつ)、パンケーキ、ワイコン、(魚眼)ワイコンがそれぞれ1万円くらい(これも中古かな)。
予算が5万円くらい。
NEX-5N(新しいほうのNEX)がボディーだけで6万円なのを考えると、買い時かなと。
で、買いに行ってみたら、2万のNEX-5は売れてしまったらしく、同じくらいの値段のNEX-3しかなかった。
んで、同じ店を見回していると、α55が36,500円。
同じく、α550がほぼ同じ値段。
α550は時期から考えてもこのくらいかね。
でも、α55はずいぶん安くなったものです。
んで、もっと驚いたのが、αマウント用のシグマの18-250mmが29,800円。
他メーカー用だと、中古で40,000〜45,000円なのに安い!
αは手振れが内蔵だから?
そういえば、ペンタックス用のも、いくらか安い。
この価格帯なら、コンデジ買うよりもずっといいなぁ。

どうでもいいけど、オリンパスの24倍ズームのコンデジもヨドバシで2万円切っていた。
安い!
さすがクリスマス?

続きを読む
posted by w033 at 21:31| 東京 ☀| Comment(0) | TrackBack(0) | カメラ | このブログの読者になる | 更新情報をチェックする

2011年12月18日

ps3が死んだ日。。。

PS3に電源入れるとすぐに「ピピピ」って。。。
どうしよう。
電源を抜いたりしても変わりなく、いわゆる熱暴走とかそういう感じでない。
ハードディスクは安定しているからいいだろうって、古いディスクは捨ててしまったあと。
あと一週間早ければ。。。 (T-T)
買いなおすのもなんだしなぁ。

ソフトだけ打りはらってあきらめるか。。。続きを読む
posted by w033 at 18:03| 東京 ☀| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2011年12月17日

ぷっすま

嗚呼、このグダグダさがたまらない。
金曜日の24:50。
タモリクラブのお尻を見たあとにやってた。
番組終了じゃなかったんだ!
うれしすぎる。
posted by w033 at 00:59| 東京 ☁| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2011年12月05日

橋下徹はヒトラーの夢を見るか

最新センセーショナルなニュースがないから、メディアが面白がっているだけでしょうけど、
橋下徹がなんかすごいことになってるような報道ばかりですね。
このままいけばヒトラーにもなれるかもしれない。
そもそも、ヒトラーももとはただの敏腕政治家だったらしいし。
不況にあえぐドイツを救済したのはヒトラーの敏腕だったというのは有名な話ですね。
はじめの志と結果が一致しないなんてよくある話なのかもしれない。
ヒトラーが悪名として名前を残してしまったのは、結局は戦争に負けたからに過ぎないのでしょうね。

・・・あれ? 逆卍って、どいつだよね?
posted by w033 at 00:23| 東京 ☀| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2011年12月03日

大人なんて嫌いだ!

鉄拳ハイブリッドなんてものが売られていたので、速攻で買ってみたですよ。
発売直後でやたらと高いけれど、PS3なんて鉄拳のためにあるようなハードだし。
パッケージには昔の鉄拳TAGも遊べるらしいと書いているけど、やはり鉄拳TAG2でしょ。
ええ、店で見たときは知らなかったのですよ。

鉄拳TAG2 プロローグ

は?!
家でゲームはじめようとおもったら、なんか勝手にプロローグっぽいのが永遠と終わらないし、どうやって終わらせるのかわかんなかったし。
つうか、鉄拳TAG2で使えるキャラが4人。
いやいやいやいやいやいやいやいや、なんじゃこりゃ?
TAGが組めても選べるキャラは4人。
出てくる敵もその4人の組み合わせだけ。

だ ま さ れ た ー ー ー!!

買う前に調べないと、ゲームを買うことすらできない時代になってしまったのか。
パッケージを見るだけでわからないように作ってるこれは確信犯だろう。
大人なんてだい嫌いだー!
これ、詐欺じゃないの?!
某カーレースのゲームも、プロローグなんてものを出したせいで消えたのにね。。。

これ。
http://www.tekken-official.jp/tkhybrid/index.html

続きを読む
posted by w033 at 21:02| 東京 ☀| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする