C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: アプリケーションとファイルとの関連と設計について


(過去ログ 101 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■60098 / inTopicNo.1)  アプリケーションとファイルとの関連と設計について
  
□投稿者/ うさこ (1回)-(2011/06/20(Mon) 20:11:34)

分類:[VB.NET/VB2005 以降] 

VB 2008(standard)を使用して、文書データを含む、独自の形式のアーカイブファイルを作成・保存し、
また、このファイルに含まれるドキュメントを閲覧できるアプリケーションを作成したいと考えています。
そこで、以下のことをやりたいと考えています。

1.独自ファイル用の拡張子を用意し、この拡張子のファイルとこのアプリとの関連付けを行い、
  エクスプローラー上の該当ファイルをダブルクリックすると、このアプリが立ち上がるようにする。

2.本ソフトで複数のファイルを別々に表示できるようにする。
  (例えば、Adobe Readerのように、複数のPDFを別々に表示するような感じ。)

3.任意のファイルをダブルクリック等で開く時、すでにそのファイルがこのソフトで開いている場合には、
  新しい画面を開くのではなく、そのファイルが開いている画面をアクティブにする。

1.についてはセットアッププロジェクトのファイルの種類エディタで設定することで対応可能であることを
確認しましたし、2.についても複数プロセスを起動すればよさそうですが、3.をどのように実現すれば
いいのか分かりません。

もしかしたら、3.を実現するためには、複数プロセス起動せずに、一つのプロセスで複数のファイルを
開けるようにソフト設計をした方がいいのか、どなたか技術的なアドバイスをお願い致します。
引用返信 編集キー/
■60101 / inTopicNo.2)  Re[1]: アプリケーションとファイルとの関連と設計について
□投稿者/ 逆運の覇者 (2回)-(2011/06/20(Mon) 22:17:04)
1.については、assocコマンドで
プログラムとそれに対応させる拡張子を指定するだけで設定できます。

3.については、こういうのはどうでしょうか。
まず、ウィンドウタイトルには、開いているファイル名を入れるようにする。

ユーザーがファイルを開こうとした。

プロセスの一覧を取得。
System.Diagnostics.Process.GetProcesses();

1つ1つのプロセスに対し、System.Diagnostics.Processのインスタンスとして取得する。
foreach (System.Diagnostics.Process p in ps) {
 Process hProcess = p;
}

ウィンドウタイトル(に入っているファイル名)をチェック。
hProcess.MainWindowTitle;

そのウィンドウをアクティブにする。
SetForegroundWindow(hProcess);
引用返信 編集キー/
■60104 / inTopicNo.3)  Re[2]: アプリケーションとファイルとの関連と設計について
□投稿者/ 逆運の覇者 (3回)-(2011/06/20(Mon) 22:48:18)
肝心の部分が抜けていました。
ファイルが開かれたときに、
A. そのファイル名を共有メモリなどのプロセス間通信する。
B. そのファイル名をテキストファイルに書き出す。

そして、プログラムは定期的に共有メモリなり、テキストファイルなりをチェックして
ファイルが開かれていないかをチェックするようにする。

…美しくないですね。
引用返信 編集キー/
■60109 / inTopicNo.4)  Re[1]: アプリケーションとファイルとの関連と設計について
□投稿者/ やじゅ (1920回)-(2011/06/21(Tue) 02:50:40)
やじゅ さんの Web サイト
No60098 (うさこ さん) に返信
> 3.任意のファイルをダブルクリック等で開く時、すでにそのファイルがこのソフトで開いている場合には、
>   新しい画面を開くのではなく、そのファイルが開いている画面をアクティブにする。

C#ですが参考になるかと、二重起動防止の.NET Frameworkのみでの実装
http://www.cs-dotnet.com/2006/07/3-net-framework-rssnet-framewo.html

引用返信 編集キー/
■60114 / inTopicNo.5)  Re[2]: アプリケーションとファイルとの関連と設計について
□投稿者/ なちゃ (489回)-(2011/06/21(Tue) 11:42:49)
VBだったら、アプリケーションフレームワークを有効にすれば、そういうのもサポートされてませんでしたっけ?
引用返信 編集キー/
■60120 / inTopicNo.6)  Re[3]: アプリケーションとファイルとの関連と設計について
□投稿者/ うさこ (2回)-(2011/06/21(Tue) 13:45:54)
みなさま、書き込みありがとうございます。
みなさまより提示いただいた内容の技術的な部分はこれから調べようと思います。
また分からないことがありましたら質問させて頂きます。

ところで、なちゃさま、
アプリケーションフレームワークについては、アプリケーションの多重起動防止の一例として
これがどこかのサイトで紹介されていたのを覚えていますが(確かにぐぐるといくつかヒットする)、

> 2.本ソフトで複数のファイルを別々に表示できるようにする。
>  (例えば、Adobe Readerのように、複数のPDFを別々に表示するような感じ。)
>
> 3.任意のファイルをダブルクリック等で開く時、すでにそのファイルがこのソフトで開いている場合には、
>   新しい画面を開くのではなく、そのファイルが開いている画面をアクティブにする。

の上記2.と3.を満たすこともできるのでしょうか?
宜しくお願い致します。
引用返信 編集キー/
■60179 / inTopicNo.7)  Re[4]: アプリケーションとファイルとの関連と設計について
□投稿者/ うさこ (3回)-(2011/06/22(Wed) 13:33:25)
書き込みが消えてしまったので、改めて投稿します。

ところで、なちゃさま、
アプリケーションフレームワークについては、アプリケーションの多重起動防止の一例として
これがどこかのサイトで紹介されていたのを覚えていますが(確かにぐぐるといくつかヒットする)、

> 2.本ソフトで複数のファイルを別々に表示できるようにする。
>  (例えば、Adobe Readerのように、複数のPDFを別々に表示するような感じ。)
>
> 3.任意のファイルをダブルクリック等で開く時、すでにそのファイルがこのソフトで開いている場合には、
>   新しい画面を開くのではなく、そのファイルが開いている画面をアクティブにする。

の上記2.と3.を満たすこともできるのでしょうか?
宜しくお願い致します。
引用返信 編集キー/
■60268 / inTopicNo.8)  Re[2]: アプリケーションとファイルとの関連と設計について
□投稿者/ うさこ (4回)-(2011/06/25(Sat) 11:02:37)
> C#ですが参考になるかと、二重起動防止の.NET Frameworkのみでの実装
> http://www.cs-dotnet.com/2006/07/3-net-framework-rssnet-framewo.html

このサイトに接続できないのですが、閉鎖されたのでしょうか?
引用返信 編集キー/
■60275 / inTopicNo.9)  Re[3]: アプリケーションとファイルとの関連と設計について
□投稿者/ やじゅ (1922回)-(2011/06/25(Sat) 23:09:36)
やじゅ さんの Web サイト
No60268 (うさこ さん) に返信
>>C#ですが参考になるかと、二重起動防止の.NET Frameworkのみでの実装
>>http://www.cs-dotnet.com/2006/07/3-net-framework-rssnet-framewo.html
>
> このサイトに接続できないのですが、閉鎖されたのでしょうか?

確かに繋がりませんね、閉鎖ではなくたまたまかも知れませんけど。
該当記事については、Googleのキャッシュで見れます。
http://bit.ly/iWU7er
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -