ubichupas.net

【C#】ショートカットにファイルをドラッグして開いたりしてみる

.NETのフォームアプリケーションでコマンドライン引数をどうやって取得するかって話なんだけど、Environment.GetCommandLineArgs()で取得できるそう。 でもそれをConsole.WriteLine()で確認しようとしたけど出力されない??? と思ったらフォームアプリケーションは標準出力がクローズされてるのね。 MessageBox.Show()で表示したらちゃんと取得できてたわ。(´・∀・`)ヘー

次にEXEファイルにファイルをドラッグ&ドロップしてアプリケーションを起動された場合の処理を変更しよう。 自動生成されたProgram.csにMain()関数があったのでそこを書き換えてやった。

Program.cs
/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
[STAThread]
static void Main()
{
    string[] args = Environment.GetCommandLineArgs();
    if (args.Length > 1)
    {
        // フォームを表示しないで引数を処理しちゃう
    }
    else
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}

コマンドライン引数をフォームに表示する初期値にしたい場合はMain()関数でやらず、Form1のコンストラクタの中でEnvironment.GetCommandLineArgs()を使えば良さげ。c⌒っ゚д゚)っφ メモメモ...



さてコマンドライン引数の扱い方がわかったところで、以前作った無圧縮ZIP作成ツールに新機能を追加してみた。

(σ・∀・)σ[ZipBasket.zip]
※実行には『Microsoft .NET Framework 3.5 Service Pack 1』が必要です。

ZIPファイルの無圧縮ZIP化

アプリケーションのショートカットにドラッグしたZIPファイルを"ユーザー\Local Settings\Temp\ZipBasket"に一旦解凍し、デスクトップに無圧縮ZIPファイルとして出力します。


ダウンロードしたZIPファイルをドラッグ&ドロップ

デスクトップに無圧縮ZIPを作成(元のZIPファイルは削除しない)

解凍して得られたフォルダ名で無圧縮ZIPを作ります。 ネットで拾ったZIPファイルはうpロダの管理番号になってるからこの作業は日常的に必要なんだ。 まさに俺待望の機能。(`・ω・´)シャキーン

0 件のコメント: