添付画像のように
複数のファイルを選択し、右クリックから自作プログラムを起動してファイル名を変更するソフトを作りたいです。
つまり以下のような処理を行いたいのです。
(1)ファイルを選択 → (2)右クリックメニューから自作ソフトを選択 → (3)自作ソフトがファイル名を変更


(2)の右クリックメニューへ自作プログラムを追加するには、レジストリを修正すればよい事がわかりました。
そうなると後は、自作ソフトがwindowsが現在選択しているファイル名を取得する必要があります。

しかし、Win32APIやgoogleで検索してもそれらしい情報を見つけることが出来ません。
選択ファイル名を取得する方法をご存じの方、ぜひご教授願えたらと思います。
わかりにくい質問で申し訳ございません。本当に困っております。

「C#とwindows APIとの連動方法」の質問画像

このQ&Aに関連する最新のQ&A

A 回答 (3件)

簡単に。

。。

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)自作ソフトが選択されているファイル名を変更する。

上記のような処理を行いたいのですが、自作ソフトに値を渡す方法はコマンドライン引数を使うとして
その引数の取得方法(この場合は、選択中のファイル名)が調べ方が分かりません。
ぜひその部分をご教授願えたらと思います。

補足日時:2014/07/17 19:37
    • good
    • 0

> 自作ソフトに値を渡す方法はコマンドライン引数を使うとして


> その引数の取得方法(この場合は、選択中のファイル名)が調べ方が分かりません。

#2にSystem.Environment.GetCommandLineArgsを使った方法がちゃんと書いてありますけど。
どこがどうわからないのですか?

参考:
http://dobon.net/vb/dotnet/programing/commandlin …

この回答への補足

私のコマンドライン引数の理解がまだ不十分なようです。
詳しいご回答ありがとうございます。

補足日時:2014/07/21 03:07
    • good
    • 0

ドラッグ&ドロップ ファイル名取得 のキーワード検索すれば一杯情報出てきますので


その中から自分で理解できるものでも探してください

Microsoftの説明例
http://support.microsoft.com/kb/307966/ja

この回答への補足

ドラッグ&ドロップを使用する場合
一度自作ソフトを起動して、起動したソフトにファイルをドラッグ&ドロップすることになると思います。
私が作りたいのはその方法ではなく右クリックメニューからダイレクトに処理が実行される形態です。

イメージとしては、例えばファイルを圧縮する場合
ファイルを選択して右クリックから「zipへ圧縮する(Q)」を押せばダイレクトにファイルはzipに圧縮されます。そういうイメージで処理したいんです。

補足日時:2014/07/17 09:40
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qau、SONY端末のメニューアイコンの制作

現在、auの三洋端末を使用しています。
電池の持ちも悪くなってきたので、そろそろ機種変更しようかと思うのですが、三洋機はメニューアイコンを自作して登録することができるのですが、auのソニー・エリクソンの端末は、自作メニューアイコンを作成・登録出来ないのでしょうか?

インターネット等で調べたのですが、三洋やカシオ・日立などはアイコンの制作方法などが解説されているのですが、ソニー・エリクソン端末向けのアイコンの解説等は見つけられなかったので。

ご存知の方、お教え頂けると助かります。

Aベストアンサー

こんばんは

私はソニーエリクソンA1402SIIを使っています。
私の知る限り、そのような機能はなかったと思います。私は説明書はあまり読みませんが、機械オンチではありませんので、大体の機能は把握できているつもりです。

ソニーエリクソンについて一言失礼します。
私はこの機種(A1402SII)の以前は鳥取三洋の機種を使用していました。それと比べてもソニーの携帯は個人的に非常に使いづらいです。
ジョグダイアルは慣れてしまえばこれはこれでありですが、変換の頭の悪さには何をするにしてもストレスがたまります。
例えば「いえにかえると」と一気に打って変換すると候補は「いえにかえると」と「イエニカエルト」しかないんです(!)。たった二文節ですら、「家に」と「帰ると」に分けることをしてくれないので、自分で一文節ずつ区切って変換しなくてはいけません。これは本当にわずらわしいです。ただ、最新機種は改善されているかもしれませんが、これは要チェックですよ。予想変換機能もそれほど使い勝手がよいとは言えません。
ただ、デザインは好きなんです。。。

以上、個人的な意見ではありますが。

こんばんは

私はソニーエリクソンA1402SIIを使っています。
私の知る限り、そのような機能はなかったと思います。私は説明書はあまり読みませんが、機械オンチではありませんので、大体の機能は把握できているつもりです。

ソニーエリクソンについて一言失礼します。
私はこの機種(A1402SII)の以前は鳥取三洋の機種を使用していました。それと比べてもソニーの携帯は個人的に非常に使いづらいです。
ジョグダイアルは慣れてしまえばこれはこれでありですが、変換の頭の悪さには何をするにしてもストレス...続きを読む

Q言語[C#]..フォルダ選択ダイアログで、フォルダ選択のための階層が表示されない

C#を使い、フォルダ選択のダイアログを表示させたいと思っています。WEB上に公開されていた下記コードを使い、フォルダ選択のダイアログを表示できました。
ただ、ダイアログが表示されたのはよいのですが、ダイアログ内に表示されるはずの、フォルダ選択のための階層部分が表示されません。この現象についてご存知の方、助言を頂きたくお願い致します。
また、C#は一昨日から使い初めたばかりです。初歩的なミスであった時は、どうぞお許し下さい。

フォルダ選択ダイアログの表示コード
------------------------------------------------
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.Description = "読み込むフォルダを指定してください" ;

if (fbd.ShowDialog() == DialogResult.OK)
{
txtInputFolder.Text = fbd.SelectedPath ;
}
------------------------------------------------

C#を使い、フォルダ選択のダイアログを表示させたいと思っています。WEB上に公開されていた下記コードを使い、フォルダ選択のダイアログを表示できました。
ただ、ダイアログが表示されたのはよいのですが、ダイアログ内に表示されるはずの、フォルダ選択のための階層部分が表示されません。この現象についてご存知の方、助言を頂きたくお願い致します。
また、C#は一昨日から使い初めたばかりです。初歩的なミスであった時は、どうぞお許し下さい。

フォルダ選択ダイアログの表示コード
------------------...続きを読む

Aベストアンサー

質問のコードで特に問題ありません。
ダイアログ内が何も表示されない・空だというような状態なのですか?

Qドロップダウンメニューの制作で

こんにちわ。
http://javascript.eweb-design.com/0701_pdm.html
のサイトを参考に
ほとんどソースを変えずドロップダウンメニューを制作しようとしていますが

HTMLの定義を
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
にすると、上記のサイトのソースだとできないのです。

この定義にてどうしても制作したいのですが、どこを変えればいいのでしょうか?

参考にし、以下のようにソースを書きました。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<HEAD>
<TITLE></TITLE>

<SCRIPT language="JavaScript">
<!--
// プルダウンメニュー
flag = false;
function pullDown01() {
if(flag) ID01.style.display = "none";
else ID01.style.display = "block";
flag = !flag;
}

//-->
</SCRIPT>

<link href="css/test.css" rel="stylesheet" type="text/css">
</HEAD>
<BODY bgcolor="#ffffff">
<TABLE border="0" cellspacing="0" cellpadding="0">
<TBODY>
<TR>
<TD>
<DIV style="background-color:#ffcccc; width:160px">
<div class="test"><p><a href="javaScript:pullDown01()">テスト</a></p></div>
</DIV>
<DIV id="ID01" style="display:none;"><div class="test2"><p><a href="#">テスト</a></p></div></div>
</TD>
</TR>
</TBODY>
</TABLE>
<BR><BR><BR><BR>
<BR><BR>

</BODY>
</HTML>

こんにちわ。
http://javascript.eweb-design.com/0701_pdm.html
のサイトを参考に
ほとんどソースを変えずドロップダウンメニューを制作しようとしていますが

HTMLの定義を
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
にすると、上記のサイトのソースだとできないのです。

この定義にてどうしても制作したいのですが、どこを変えればいいのでしょうか?

参考にし、以下のようにソースを書きました。

<!DOCTYPE HTML PUBLIC "-/...続きを読む

Aベストアンサー

ああ~

メニューが2つ以上あるなら、グル―バルのフラグはやめた方がいいですね

<style>
.hide{
display:none;
}
</style>
<script>
function pullDown(num) {
var obj=document.getElementById(num);
obj.className = obj.className=="hide"?"":"hide";
return false;
}
</script>
<div><a href="#" onclick="return pullDown('ID01');">テスト1</a></div>
<div id="ID01" class="hide"><a href="#">テスト1内容</a></div>
<div><a href="#" onclick="return pullDown('ID02');">テスト2</a></div>
<div id="ID02" class="hide"><a href="#">テスト2内容</a></div>

のように処理してみては?

ああ~

メニューが2つ以上あるなら、グル―バルのフラグはやめた方がいいですね

<style>
.hide{
display:none;
}
</style>
<script>
function pullDown(num) {
var obj=document.getElementById(num);
obj.className = obj.className=="hide"?"":"hide";
return false;
}
</script>
<div><a href="#" onclick="return pullDown('ID01');">テスト1</a></div>
<div id="ID01" class="hide"><a href="#">テスト1内容</a></div>
<div><a href="#" onclick="return pullDown('ID02');">テス...続きを読む

QC#で、APIを使う

プログラム初心者です、
今度C#でWTSQuerySessionInformation
というコマンドを使おうと思います。
環境は.netを使うのですが、はじめての
ためどのプロジェクトを選んでいいのか
わかりません。
こんな質問ですが教えてくれるとうれしいです

Aベストアンサー

どのプロジェクトでも良いよ。次の構文を使えば、Win32ネイティブDLLの関数(ここではWin32 API)を使う事ができる。

public class API
{
[DllImport("wtsapi32.dll", ExactSpelling=true, SetLastError=true)]
public static extern long WTSQuerySessionInformation(long hServer, long SessionId, WTS_INFO_CLASS WTSInfoClass, char **ppBuffer, long *pBytesReturned);
}

今さっき関数仕様書から適当にC#で使うための構文をつけただけなので、このままでは動かないかも。DllImportあたりをキーに調べてみると良いだろう。

QDVD制作時のメニューのデザイン自作ソフトを探しています。

DVDを自作するときに、チャプターとメニューを書き込みますが、メニューのデザインが、いろいろなオーサリングソフトのテンプレートを探しても、思うようなものは見あたらないので、いっそのこと自作できたらいいのにと切実に考えます。
このようなメニューのデザインが素人でも簡単に書けるような、ソフトをご存知の方は教えてください。

Aベストアンサー

使ったこと無いので使い勝手は解りませんが、フリーでは DVDStylerが有名ですね。
http://www1.bbiq.jp/beginners_navi/howtofreesoft/howtofreesoft.html

QWinアプリ(c#) webアプリ(c#.net) とは?

4月から社会人になります。
職種はシステムエンジニアです。
社員十数名ほどの小さな会社で、研修はありません。

何かやっておいた方がいい事はないか質問すると、
「Winアプリ(c#)やwebアプリ(c#.net)あたりをやっておくといいかもしれない。」
との事で、とりあえずC#の入門書を買ってみたのですが、
わからない事だらけで困っています。
超初心者なので、細かく教えて頂けないでしょうか。

(1)Winアプリ・webアプリとは何ですか。
(2)C#とC#.netは同じなのですか。違うのなら、C#.netとは何ですか。
(3)C#とはVisual C#の事ですか?

その他知っておくべき事等お教え頂ければ幸いです。
宜しくお願い致します。

Aベストアンサー

>(1)Winアプリ・webアプリとは何ですか。
WinアプリとはWindowsアプリケーションソフトのこと。
その名のとおりWindowsというOSで動作するアプリケーションソフトのことです。
アプリケーションソフトとは『特定の目的のために作られたソフトウェア』って意味です。

webアプリは、
ブラウザ(IEなど)で動作させるアプリケーションソフトです。
ですので、WindowsというOSに限らずLinuxなど他のOSでもブラウザさえあれば動作します。
このOKWave自体もWebアプリケーションですね。

>(2)C#とC#.netは同じなのですか。違うのなら、C#.netとは何ですか。
同一です。

>(3)C#とはVisual C#の事ですか?
ほぼそう考えてよいと思います。
正確にはVisual C#とはマイクロソフトのVisual Studioを使って、C#という言語で開発するって意味です。


最初はとにかく入門書の内容に従ってプログラムを打ち込んで動かしてみることですね。

Qflashメニュー制作についての続き

さきほどの質問の続きです。

下記のURLような、メニュー(画像)の下にぴょろぴょろと文字がでてくる感じのものです。(このようにぴょろぴょろとでてくる文字にリンクはされていなくてもよいのですが・・)

http://www.ip.kyusan-u.ac.jp/

別にフラッシュでなくても作れますでしょうか?
さきほどの質問の説明だと不足だとおもい、補足させてもらいました。

Aベストアンサー

別にフラッシュでなくてもというかその指定したURLではjava使ってませんか?
ソースを確認してから質問しましょう。
回答としましては、javaでもflashでも可能です。

Q【C#】ifと#ifの違い、そして#endif

http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_019/csharp_abc03.html

このページを参考にしましたが普通のifと何が違うのかわからなかったです。
何のために必要なのかもう少しわかり易く教えて下さい。
また、#endifってなんでしょう?

Aベストアンサー

プリプロセッサというのは、コンパイル前にプログラムを書き換えてしまうような処理をします
そこにあるプログラムで言えば、次のものと同等になります

// #define MY_SWITCH1→削除
// #undef MY_SWITCH2→削除
using System;

namespace ConsoleApplication1
{
class Class1
{
static void Main(string[] args)
{
// #if true→削除
Console.WriteLine("#if true"); // 条件が成立するのでそのまま
// #endif→削除
// #if false→削除
// 条件が不成立なので削除
// #endif→削除
// #if MY_SWITCH1 || MY_SWITCH2→削除
Console.WriteLine("MY_SWITCH1 or MY_SWITCH2 is ON");// 条件が成立するのでそのまま
// #else→削除
// 条件が成立しているので#elseは削除
// #endif→削除
//#if MY_SWITCH1 && MY_SWITCH2→削除
// 条件が不成立なので削除
// #else→削除
Console.WriteLine("MY_SWITCH1 and MY_SWITCH2 is OFF"); // 条件が不成立なので#elseはそのまま
// #endif→削除
}
}
}


使い道としては「実行中に変化しない条件分岐。使用しないコードは無効にして効率を上げたい」というときでしょう。

デバッグ時の表示に使う例はすでに出ています。

他に、同じソースコードを、GUIアプリケーションとコンソールアプリケーションとで共有する場合
GUI用には GUI_MODEを定義する/コンソール用には未定義にする としておけば

#if GUI_MODE
Messagebox("エラーです");
#else
Console.WriteLine("エラーです");
#endif

とすれば、GUI用にはメッセージボックスに、コンソール用にはコンソール画面にエラーメッセージが表示されるようになります。


C#だと、そんなに使う機会もないかもしれませんが、C/C++だと、CPU、OS等の環境に合せて適切な命令を選択する等に使用したりもします。

プリプロセッサというのは、コンパイル前にプログラムを書き換えてしまうような処理をします
そこにあるプログラムで言えば、次のものと同等になります

// #define MY_SWITCH1→削除
// #undef MY_SWITCH2→削除
using System;

namespace ConsoleApplication1
{
class Class1
{
static void Main(string[] args)
{
// #if true→削除
Console.WriteLine("#if true"); // 条件が成立するのでそのまま
// #endif→削除
// #if false→削除
// 条件が不成立なので削除
//...続きを読む

Qオンマウス効果の動画制作

下記参考URLの上部メニューバーのようなオンマウス効果の動画を制作したいと思っております。

1.このような動画の制作方法をご教授いただけないでしょうか。
2.動画制作に適したソフトも併せてご紹介いただけないでしょうか。

私は、動画関連については一切無知です。
ただし、CSSと静的画像を用いたオンマウス効果メニューバーを制作したことはあります。

宜しくお願いいたします。

参考URL>>http://www.synergy-marketing.co.jp/

Aベストアンサー

このメニュー自体はSWFファイル(いわゆる世間的にFlashと呼ばれるもの)です。

1,について簡単に説明するのは無理です。よくあるメニューバーなので「Flash メニューバー」で検索されれば、解説サイトが出てきますよ。

2,AdobeのFlashが一番良いですが、お高いです。ソフトを購入されるより、制作依頼した方が安くなるでしょう。同じように作れるソフトでは、suzukaというフリーソフトがありますよ。

ご参考まで。

QSNMPトラップ情報をC#.netで作るバッチプログラムで取得しメールに添付して送信したい

VB2012にてバッチプログラムを作成中です。
イベントログとSNMPトラップでエージェントを監視するための
ツールが欲しいということでネットワークエンジニアの方に頼まれてのことです。

特定のイベントログをメールに添付して送信する機能は実装できたのですが
SNMPトラップに苦戦しています。

WMIを通して取得できそうだったので
その線で調べ進めていたのですが
そもそも定期的に動くバッチで
いつ発生するかわからないトラップ情報を受信しようとすることから
土台無理な話ではないかと思えてきました。

まずトラップ情報を受信するための常に起動させておくプログラムを
作り、そのプログラムにトラップ情報をテキストで保存しておいて
それをバッチプログラムでとってくる必要があるでしょうか。
またはそれに代わる仕組みがそもそも標準であればいいのですが無さそう、、、

一週間ほどネットを調べまわっているので
使えそうなサイトは9割がた既読済みだと自負しています。
ただし私は文系大学卒のプログラム自体未経験の15年卒新入社員ですので
読んだサイトの理解度は良くて半分といったところかと思います。

net-snmpなどのツールを使えばいいじゃんと
言ってしまいたくなるかもしれませんが

このバッチでSNMPトラップをもってこれるのかこれないのか
どうしてもってこれないのか(実現不可能な理由)
どうしたらもってこれるのか(実現方法)
ネットワークについての知識、プログラミングについての知識
両方が必要になるかと思いますので
これについてはググっとけ
といったことでも構いません。
なにか糸口がつかめればと思います。

質問するうえでこれを教えてもらわんと回答のしようがない
といった要素がありましたら補足いたします。

お願いします。

実装予定環境は
windows2008R2 .net3.5 です

VB2012にてバッチプログラムを作成中です。
イベントログとSNMPトラップでエージェントを監視するための
ツールが欲しいということでネットワークエンジニアの方に頼まれてのことです。

特定のイベントログをメールに添付して送信する機能は実装できたのですが
SNMPトラップに苦戦しています。

WMIを通して取得できそうだったので
その線で調べ進めていたのですが
そもそも定期的に動くバッチで
いつ発生するかわからないトラップ情報を受信しようとすることから
土台無理な話ではないかと思えてきま...続きを読む

Aベストアンサー

われせんさんの発言を少し理解できていなかったようで申し訳ないです。

いくつか回答させていただきます。

・エージェントを起動する。
・UDP162ポートでリスニング待機させておく。
・任意のタイミングでエージェントから情報が送られてくる。
・受信を契機にメール送信プログラムが送られてくる。
・送信したら再びUDP162ポートでリスニング待機。

この流れで良いんですよね?

ですので
>>このバッチでSNMPトラップをもってこれるのかこれないのか
>>どうしてもってこれないのか(実現不可能な理由)
>>どうしたらもってこれるのか(実現方法)

ここの意味がよくわからず混乱してしまいます。
これってエージェントの仕事ですよね?
開発するのは最初に書いたリスニング機能ではないんですか?


人気Q&Aランキング

おすすめ情報