添付画像のように
複数のファイルを選択し、右クリックから自作プログラムを起動してファイル名を変更するソフトを作りたいです。
つまり以下のような処理を行いたいのです。
(1)ファイルを選択 → (2)右クリックメニューから自作ソフトを選択 → (3)自作ソフトがファイル名を変更
(2)の右クリックメニューへ自作プログラムを追加するには、レジストリを修正すればよい事がわかりました。
そうなると後は、自作ソフトがwindowsが現在選択しているファイル名を取得する必要があります。
しかし、Win32APIやgoogleで検索してもそれらしい情報を見つけることが出来ません。
選択ファイル名を取得する方法をご存じの方、ぜひご教授願えたらと思います。
わかりにくい質問で申し訳ございません。本当に困っております。
No.2ベストアンサー
- 回答日時:
簡単に。
。。1.レジストリの登録の際に「プログラム名 "%1"」でコマンドパラメータを指定できるようにする。
2.自作ソフト内で起動コマンドラインを取得して名称変更するプログラムを作成。
起動時のコマンドラインの取得方法は、
String[] CmdLines;
CmdLines = System.Environment.GetCommandLineArgs();
で取得できます。
CmdLines[0]:プログラム名称
CmdLines[1]:コマンドラインパラメータ1
CmdLines[n]:コマンドラインパラメータn
この回答への補足
ご回答ありがとうございます。
一つ疑問なのですが
コマンドライン引数はプログラム起動時に、プログラムへ値を渡す方法ですよね?
例えばexplorer.exeを起動する場合は、「explorer.exe C:\text.txt」のように記述すると思うのですが
肝心のC:\text.txtの部分はどうやって調べればよいのでしょうか?
私の作りたいソフトの処理を簡単に書くと以下のようになります。
(1)windowsデスクトップ上で、ファイルを選択する
(2)その状態で、右クリックメニューを表示して自作ソフトを起動する。
(3)自作ソフトが選択されているファイル名を変更する。
上記のような処理を行いたいのですが、自作ソフトに値を渡す方法はコマンドライン引数を使うとして
その引数の取得方法(この場合は、選択中のファイル名)が調べ方が分かりません。
ぜひその部分をご教授願えたらと思います。
No.3
- 回答日時:
> 自作ソフトに値を渡す方法はコマンドライン引数を使うとして
> その引数の取得方法(この場合は、選択中のファイル名)が調べ方が分かりません。
#2にSystem.Environment.GetCommandLineArgsを使った方法がちゃんと書いてありますけど。
どこがどうわからないのですか?
参考:
http://dobon.net/vb/dotnet/programing/commandlin …
No.1
- 回答日時:
ドラッグ&ドロップ ファイル名取得 のキーワード検索すれば一杯情報出てきますので
その中から自分で理解できるものでも探してください
Microsoftの説明例
http://support.microsoft.com/kb/307966/ja
この回答への補足
ドラッグ&ドロップを使用する場合
一度自作ソフトを起動して、起動したソフトにファイルをドラッグ&ドロップすることになると思います。
私が作りたいのはその方法ではなく右クリックメニューからダイレクトに処理が実行される形態です。
イメージとしては、例えばファイルを圧縮する場合
ファイルを選択して右クリックから「zipへ圧縮する(Q)」を押せばダイレクトにファイルはzipに圧縮されます。そういうイメージで処理したいんです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 画像編集・動画編集・音楽編集 Windowsに付属しているビデオエディター。BGMを追加する方法は? 1 2022/06/26 08:54
- その他(プログラミング・Web制作) マウスを使用してpowershellのプログラムを起動して、引数リストを渡したい 1 2022/11/07 21:39
- その他(パソコン・周辺機器) 同じファイル名 上書きしないフリーソフトなどあったら教えて下さい。 仕事で大量の写真などを扱っており 3 2023/05/18 06:43
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/21 16:01
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- その他(プログラミング・Web制作) エクセルVBA 3 2022/06/11 16:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでActiveDirectoryのユーザ...
-
VBA:小数点以下の数字を取得で...
-
VB.NETで DataRow()を利用して...
-
like演算子内に変数って使えな...
-
ListView 項目の選択/選択解除...
-
データ数をカウントしたいのですが
-
ListViewで複数選択された項目...
-
ActiveWorkbook.Path取得できない
-
エクセルVBAで複数選択できるよ...
-
getParameter と getAttribut...
-
count(*)で取得した値をJAVAの...
-
JSP+Servletでのページングの常識
-
時間を分に変換するプログラム
-
JavaScriptでWindowsログオンID...
-
C#でのコンピュータ名変更につ...
-
利用者側のMACアドレスを取得し...
-
Spreadの選択行の取得について
-
VBScriptで数値にコンマを付け...
-
EXCELのリストボックスを選択し...
-
C言語におけるコンピュータ名・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでActiveDirectoryのユーザ...
-
VB.NETで DataRow()を利用して...
-
ListView 項目の選択/選択解除...
-
VBA:小数点以下の数字を取得で...
-
count(*)で取得した値をJAVAの...
-
データ数をカウントしたいのですが
-
like演算子内に変数って使えな...
-
ListViewで複数選択された項目...
-
Flexgridで選択行の列の値を取...
-
エクセルVBAで複数選択できるよ...
-
JavaScriptでWindowsログオンID...
-
利用者側のMACアドレスを取得し...
-
郵便番号検索APIにてget Elemen...
-
COMポート 名前を取得する方法
-
コンボボックス表示文字列を取...
-
VBA Shapesの座標からセル位置...
-
Spreadの選択行の取得について
-
VBScriptで数値にコンマを付け...
-
C言語におけるコンピュータ名・...
-
Excel VBA でログインしてい...
おすすめ情報