- - PR -
アプリケーションの2重起動チェック
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-05-23 14:41
vb .net2003にてプログラムの2重チェックを行いたいのですが、citrix社のMetaframe環境にて processname、Mutexによる記述を行った場合に リモート コンピュータからプロセス情報を取得できませんでした。 となってしまいます 他にどのようなチェックの仕方があるのでしょうか
| ||||||||
|
投稿日時: 2005-05-23 14:57
こんにちは、じゃんぬ です。
GetProcessesByName で、端末名を指定しているとか...? しかし、何故に ProcessName と Mutex 両方使用?
私の頭の中には、それ以上のものはないです。[ シグネチャを削除 ] [ メッセージ編集済み 編集者: じゃんぬねっと 編集日時 2006-10-12 13:39 ] | ||||||||
|
投稿日時: 2005-05-23 15:09
外していたらごめんなさい。
Metaframeをご使用とのことですが、 「各ユーザについて1インスタンスのみ許可する」 にチェックすれば、二重起動は防げると思うのですが。 .Net側の対策でなくてすみません。 | ||||||||
|
投稿日時: 2005-05-23 15:29
MetaFrameって使った事が無いんですが、用はTerminal Services見たいな物ですか?
もしかしてMutexの名前にGlobal\とかLocal\を付けると旨く動きません? | ||||||||
|
投稿日時: 2005-05-23 16:30
補足説明として processname または Mutex のいづれの指定にて実行した場合であってもSystem.InvalidOperationException' のハンドルされていない例外が system.dll で発生しました。と通知されてしまいプロセス名等が取得できませんでした。MetaFrame側の設定にて1インスタンスのみ の指定をすることにより起動を1つにすることはできましたが、今回の運用としては、公開アプリケーションとしてログオン操作を公開しその後にメニューよりアプリケーションを選択させたいのですがアプリケーションに対する2重起動がうまく制御されない状況です
| ||||||||
|
投稿日時: 2005-05-24 11:33
具体的なコードは提示できませんが、以前同様のことを行った際には
ターミナルサービスAPIを利用して、ターミナルサーバ上の実行中のプロセス数を カウントする形を採りました。同APIについて調べてみると良いかもしれません。 | ||||||||
|
投稿日時: 2005-05-27 09:01
ありがとうございました うまい対処方法が見当たらなかったためoracleのセッション情報を利用することによりチェックを行うことにて対処しました
|
1