- - PR -
アプリケーションの2重起動防止
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-02-10 10:03
アプリケーションの2重起動防止はみなさんは
GetProcessesByNameを使われていると思いますが Mutexを使ったことはありますか? もしいらっしゃいましたらぜひ使い方(ロジックの記述方法等)を 教えていただけないでしょうかヘルプを参照したのですが いまいち使い方がわらないもので・・・ よろしくお願いします。 |
|
投稿日時: 2003-02-10 15:47
>>Mutexを使ったことはありますか?
Dim MutexObject As System.Threading.Mutex = New Mutex(True, MutexName, MutexOwner) MutexName As String … Mutexの名前 MutexOwner As Boolean … オーナーになれたか すでに作成済みの場合、MutexOwnerがFalseになります。 |
|
投稿日時: 2003-02-10 16:19
Jittaさん、ありがとうございます。
さっそく試してみます。 |
|
投稿日時: 2003-02-10 21:32
ローカルだと教えていただいたとおりにすればうまくいくのですが
ネットワーク上の共有フォルダからEXEを実行すると 「system.ArgumentExceptionエラー」が発生してしまいます。 なにが原因かわからないのでどなたか教えていただけないでしょうか ちなみにMutexの名前をNothingするとエラーはでませんが 2重起動されます。(あたりまえか・・・) よろしくお願いします。 |
|
投稿日時: 2003-02-12 18:50
自己レスです。
共有フォルダの指定をきっちりとすれば解決しました。 MyDocument\testフォルダに作っていたのですが MyDocumentには共有で読み書き許可をしていましたがtestフォルダには 何も設定していませんでした。これを読み書き許可にすると解決しました。 お騒がせしすいませんでした。 |
|
投稿日時: 2003-02-13 08:27
>>ネットワーク上の共有フォルダからEXEを実行すると
ネットワーク上の共有フォルダだと、VS.NETのプロジェクトを開くと警告がでますが、いろいろ制約がありますよ。 ・セキュリティーポリシーの設定をしなければ、ローカルのリソースにほとんどアクセスできない ・FullTrustにしなければ、他のプロセスを起動できない (1) ・FullTrustにしなければ、Crystal Reportを使えない (2) 今わかっているのはこれくらい。 (1)…設定があるのかもしれないが、日本語ヘルプからはわからなかった (2)…開発元より「ネットワーク共有フォルダからは使用はできない」との返答 |
|
投稿日時: 2003-02-13 10:08
そうですね、VB6時代はなにも設定することなく実行できていましたね。
最初はアプリケーションの作り方に問題があるのかと思いました。 この会議室で「セキュリティ」で検索すると同じようなことが投稿されていました。 参考にさせていただきました。 FrameWork Wizardでイントラネットを完全信頼に設定すればいけました。 あとコマンドもあるようです。 「ヘルプ」はわかりにくいです・・・。 今後ともよろしくおねがいします。 |
1