🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.visualbasic
Article #579

Re: VB4.0 で CreateMutex は使用できますか

#579
From: Sato Masahiro
Date: Wed, 25 Feb 1998 00:00
43 lines
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-mail
References: <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