The Grimoire of Nonsense

個人的なメモを残すブログ

Skypeのスタンドアロンインストーラを入手する

公式からデスクトップ版をダウンロードすると、ダウンローダしか落ちてこないが下記のURLからダウンロードすると、
スタンドアロンインストーラを入手することが可能。

http://www.skype.com/go/getskype-full

2016/09/07 追記
HTTPSでもダウンロード出来るようだ。

https://www.skype.com/go/getskype-full

C#でHTTPのリダイレクト先を調べるもの

リダイレクトされる先を調べるようなっぽいものを諸事情で作りました。
色々参考にしました。
一応、Google短縮URLサービスからここのブログ用のURL作ってテストはしました……です。
きっと色々突っ込み所はあると思うけど、気にしない方向で……(滝汗)


以下コード

using System;
using System.Net;

class HttpRequestViewer
{
	public static void View( string uri )
	{
		HttpWebRequest req = (HttpWebRequest)WebRequest.Create( uri );
		HttpWebResponse res = null;
		bool existLocation = false;

		req.AllowAutoRedirect = false;
		req.Method = "GET";
		res = (HttpWebResponse)req.GetResponse();

		Console.WriteLine( "HTTP/{0} {1} {2}", res.ProtocolVersion, (int)res.StatusCode, res.StatusDescription );

		foreach ( string key in res.Headers.AllKeys )
			Console.WriteLine( "{0}: {1}", key, res.Headers[key] );

		Console.WriteLine( "----" );
		existLocation = isExistLocation( res.Headers );

		if ( existLocation )
			View( res.Headers["Location"] );
	}

	private static bool isExistLocation( WebHeaderCollection collection )
	{
		string[] array = collection.AllKeys;
		int res = Array.IndexOf( array, "Location" );

		return res >= 0;
	}
}

最近目が悪くなったのか誤字を見落としやすくなった気がする……。

VCのコンパイラにアセンブリファイルを出力してもらう

コンパイルする時にオプション/FAを追加するとアセンブリファイルを出力してくれる。
だから何って言われてもそれだけだけど……。

cl /nologo /FA test.cpp

Windows Timeを自動起動できるようにする

手っ取り早く下記リンクの解決策より、方法は3つある。
(※いずれの方法も管理者権限が必要。)

方法1

Windows Timeサービスのトリガを下記コマンドで削除する。

sc triggerinfo w32time delete 


方法2

IPアドレスが付与された時に自動起動/自動停止するようにトリガをセットする。

sc triggerinfo w32time start/networkon stop/networkoff


方法3

Windows Timeサービスを管理ツールのサービスから「自動(遅延開始)」に設定する。
但しこの方法に限り、タスクスケジューラで下記のエントリを無効にする必要がある。

Microsoft\Windows\Time Synchronization\Synchronize Time


※この記事は下記リンクを参考に執筆させていただきました。
Windows 7 および Windows Server 2008 R2 のスタンドアロン環境で Windows Time サービスが自動的に起動しない

STLのvectorで重複を削除

※この記事は下記の内容を参考に執筆させていただきました。
STLのvectorから同一要素を削除 - minus9d's diary


STLvectorにおいて重複を削除するにはsort()後にunique()し、erase()する必要がある。
この辺り関数化して用意しておくといいかも。


以下僕が書いたサンプルコード

続きを読む

最少サイズの.exeを作る

コンパイルする時

コンパイラ(cl.exe)に/MDオプションを付けてコンパイルする。
/MTオプションを付けると.exeが重くなる。

cl /nologo /MD /O1 /Os test.cpp


リンクする時

リンカ(link.exe)に/entry:(メイン関数名)オプションを付けてリンクする。
コンソールなら/entry:mainもしくは/entry:wmainになる。
ウィンドウアプリケーションなら/entry:WinMainになる。

link /nologo /entry:main test.obj



ちょっと今回は見出しとか使ってみましたです……。