私はExploratorからファイルを開く必要があるアプリケーションを作成しています。もちろん、私はargsを使用してそれを行うことができますが、Exploratorはすべてのファイルに対して新しいアプリケーションを開きます。たとえば、既存のアプリにargsを送信したいのですが、新しいアプリを開かないでください。"Open with ..."既存のフォーム
0
A
答えて
1
エクスプローラは、常にアプリケーションの新しいインスタンスを開きます。必要なのは、開いている他のインスタンスがあるかどうかを制御することです。存在する場合は、コマンドラインを渡して新しいインスタンスを閉じます。
.NETフレームワークで役立ついくつかのクラスがありますが、最も簡単な方法はMicrosoft.VisualBasic
への参照を追加することです(GAC内にあるはずです...名前を無視してC#でも機能します)。 WindowsFormsApplicationBase
から派生することができます。これはすべての定型文のコードです。以下のような
何か:
public class SingleAppInstance : WindowsFormsApplicationBase
{
public SingleAppInstance()
{
this.IsSingleInstance = true;
this.StartupNextInstance += StartupNextInstance;
}
void StartupNextInstance(object sender, StartupNextInstanceEventArgs e)
{
// here's the code that will be executed when an instance
// is opened.
// the command line arguments will be in e.CommandLine
}
protected override void OnCreateMainForm()
{
// This will be your main form: i.e, the one that is in
// Application.Run() in your original Program.cs
this.MainForm = new Form1();
}
}
は、その後、あなたのProgram.cs
で、代わりに起動時に、Application.Run
を使用して、我々はない:
[STAThread]
static void Main()
{
string[] args = Environment.GetCommandLineArgs();
var singleApp = new SingleAppInstance();
singleApp.Run(args);
}
関連する問題
- 1. Open Barebones IE with Shortcut
- 2. Open CL with AMD
- 3. SendTo/Open With
- 4. debug.keystore open with promp
- 5. Open BytesIO(xlsx)with xlrd
- 6. "Open with" - C#プログラムは、Windowsの "Open With"コンテキストメニューのアイコンを表示します。
- 7. 匿名ログインOpen fire with Strophe
- 8. clojureql、open-globalとwith-results
- 9. iPhoneのメールでデフォルトで「Open With」
- 10. Androidで「open with」ダイアログを表示
- 11. 既存のexeをgui with windowsサービスにする
- 12. Open Office Base日時既定値
- 13. ZendフォームsetAttribs with json_encode
- 14. Djangoのモデル/フォーム - 既存のモデルを取得し、別の
- 15. フォームの既存のチェックボックスを無効にする
- 16. 既存のプロファイルを更新する方法Djangoモデルのフォーム
- 17. ASP.NET MVC - 既存のユーザーテーブルを使用したフォーム認証
- 18. ASP.NET既存のフォームに新しいフィールドを追加する
- 19. 既存の 'submit'要素を含むフォームを自動投稿
- 20. 既存のサーブレットにhtmlフォームを追加する
- 21. 既存のasp.net WebフォームにWeb APIを追加するアプリケーション
- 22. ボタンをクリックして既存のtxtファイルを開くC#windowsフォーム
- 23. アップロードを既存のフォームに統合する(PHP)
- 24. ExtJS 4.0:既存のマークアップから基本フォームを作成
- 25. C++/CLI WinFormsプロジェクトに既存のフォームを追加
- 26. Qt:外部プログラムでファイルを開く方法 "open with ..."ダイアログ
- 27. 既存のデータベース
- 28. 既存のジオロケーションリスト
- 29. 既存のエラーメッセージ
- 30. 既存のハッシュマップ
あなたがすべてで何かをしようとしたことがありますか?これはwinformsですか? – Jcl
はい、winformsです。 – Freshek