- ベストアンサー
C#とWindows APIを活用したファイル名変更ソフトの作り方
- C#とWindows APIを使用して、複数のファイルの名前を変更するソフトを作成したいです。
- 具体的には、ファイルを選択して右クリックし、自作プログラムを選択すると、ファイル名が変更されるような処理を行いたいです。
- しかし、Win32APIやインターネットでの検索でも選択ファイル名の取得方法が分からず困っています。ご存知の方、教えていただけないでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
簡単に。。。 1.レジストリの登録の際に「プログラム名 "%1"」でコマンドパラメータを指定できるようにする。 2.自作ソフト内で起動コマンドラインを取得して名称変更するプログラムを作成。 起動時のコマンドラインの取得方法は、 String[] CmdLines; CmdLines = System.Environment.GetCommandLineArgs(); で取得できます。 CmdLines[0]:プログラム名称 CmdLines[1]:コマンドラインパラメータ1 CmdLines[n]:コマンドラインパラメータn
その他の回答 (2)
- kmee
- ベストアンサー率55% (1857/3366)
> 自作ソフトに値を渡す方法はコマンドライン引数を使うとして > その引数の取得方法(この場合は、選択中のファイル名)が調べ方が分かりません。 #2にSystem.Environment.GetCommandLineArgsを使った方法がちゃんと書いてありますけど。 どこがどうわからないのですか? 参考: http://dobon.net/vb/dotnet/programing/commandline.html
補足
私のコマンドライン引数の理解がまだ不十分なようです。 詳しいご回答ありがとうございます。
- koi1234
- ベストアンサー率53% (1866/3459)
ドラッグ&ドロップ ファイル名取得 のキーワード検索すれば一杯情報出てきますので その中から自分で理解できるものでも探してください Microsoftの説明例 http://support.microsoft.com/kb/307966/ja
補足
ドラッグ&ドロップを使用する場合 一度自作ソフトを起動して、起動したソフトにファイルをドラッグ&ドロップすることになると思います。 私が作りたいのはその方法ではなく右クリックメニューからダイレクトに処理が実行される形態です。 イメージとしては、例えばファイルを圧縮する場合 ファイルを選択して右クリックから「zipへ圧縮する(Q)」を押せばダイレクトにファイルはzipに圧縮されます。そういうイメージで処理したいんです。
補足
ご回答ありがとうございます。 一つ疑問なのですが コマンドライン引数はプログラム起動時に、プログラムへ値を渡す方法ですよね? 例えばexplorer.exeを起動する場合は、「explorer.exe C:\text.txt」のように記述すると思うのですが 肝心のC:\text.txtの部分はどうやって調べればよいのでしょうか? 私の作りたいソフトの処理を簡単に書くと以下のようになります。 (1)windowsデスクトップ上で、ファイルを選択する (2)その状態で、右クリックメニューを表示して自作ソフトを起動する。 (3)自作ソフトが選択されているファイル名を変更する。 上記のような処理を行いたいのですが、自作ソフトに値を渡す方法はコマンドライン引数を使うとして その引数の取得方法(この場合は、選択中のファイル名)が調べ方が分かりません。 ぜひその部分をご教授願えたらと思います。