Article View: fj.lang.visualbasic
Article #579Re: VB4.0 で CreateMutex は使用できますか
From: Sato Masahiro
Date: Wed, 25 Feb 1998 00:00
Date: Wed, 25 Feb 1998 00:00
43 lines
2394 bytes
2394 bytes
In article <6d0r5s$sa3@tusasim.tcs.ts.fujitsu.co.jp>, hiroko kumagai wrote:
>VB4.0で作成したexeの二重起動を防止するため、Mutexを使いたいのですが、
>exeを作成すると、Win32APIビュワーでCreateMutex関数を宣言した部分で、」
>「ユーザー定義されていません」のエラーでてしまい、exeが作成できません。
CreateMutex 等を通常使用する範囲では、特にセキュリティ属性を指定する
必要はないと思いますが、いかがでしょうか? もし不必要であるならば、
NULL を渡せば良いと思います。具体的には、
>Private Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA"
> (lpMutexAttributes As SECURITY_ATTRIBUTES, ByVal bInitialOwner As Long, ByVal lpName As String) As Long
これを、
Private Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA"
(Byval lpMutexAttributes As Long, ByVal bInitialOwner As Long, ByVal lpName As String) As Long
などとして、一番目の引数に 0 を指定してみてはどうでしょうか?
>CreateMutexで使用している"SECURITY_ATTRIBUTES"の型が宣言されて
>いないからだと思うのですが、この型の定義を
>APIビューワーでは検索できませんでした。
もし SECURITY_ATTRIBUTE の指定が必要ならば、
Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Boolean
End Type
としてみてはどうでしょうか。私の使用している API ビューワーでは、
上記の様に定義されていました。
なお二重起動防止に関しては、App オブジェクトの PrevInstance
プロパティを使用すれば、大抵間に合います。実行ファイルが
コピーされてしまった場合には、コピー元とコピー先の二つを
同時に起動できてしまいますが...。
--
Computer Institute of Japan, Ltd.
佐藤正宏 masahiro@cij.co.jp
Technical Details
Message-ID:
<6d12qk$9ma$1@hawaii.ykhm.cij.co.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<6d0r5s$sa3@tusasim.tcs.ts.fujitsu.co.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 105c2e,11acc7e58c8ab5a6 X-Google-Attributes: gid105c2e,public From: masahiro@cij.co.jp (Sato Masahiro) Subject: Re: VB4.0 で CreateMutex は使用できますか Date: 1998/02/25 Message-ID: <6d12qk$9ma$1@hawaii.ykhm.cij.co.jp> X-Deja-AN: 328495052 References: <6d0r5s$sa3@tusasim.tcs.ts.fujitsu.co.jp> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Organization: Computer Institute of Japan, Ltd. Newsgroups: fj.lang.visualbasic