kernel32
ライブラリをインポートしました。だから、私はcreateMutex
関数が利用可能ですが、私は様々なパラメータと戻り値の非常によく分かりません。Visual Basicでのミューテックスの使用方法
これはVisual Basic .NETではなく、古典的なVisual Basicですが、おそらくいずれかの言語で回答の形で作業できます。
kernel32
ライブラリをインポートしました。だから、私はcreateMutex
関数が利用可能ですが、私は様々なパラメータと戻り値の非常によく分かりません。Visual Basicでのミューテックスの使用方法
これはVisual Basic .NETではなく、古典的なVisual Basicですが、おそらくいずれかの言語で回答の形で作業できます。
VBコードは次のようになります。
hMutex = CreateMutex(ByVal 0&, 1, ByVal 0&)
最初のパラメータは、SECURITY_ATTRIBUTES
構造体へのポインタです。それが何であるか分からなければ、あなたはそれを必要としません。 NULL(0)を渡します。
呼び出し元のスレッドがmutexの所有権を取得する必要がある場合、2番目のパラメータはTRUE
(非ゼロ、または1)です。それ以外の場合はFALSE
です。
3番目のパラメータはミューテックス名で、示されているようにNULL(0)です。名前付きのミューテックスが必要な場合は、名前に何かユニークな名前を渡します。VB
ラッパーが長さ接頭辞VB
の文字列タイプ(BSTR
)をヌル終了Ascii/Unicode文字列にマーシャリングするかどうかは不明ですが、これを行うには多くの例があります。
幸運を祈る!
CreateMutexのVB6宣言は次のとおりです。私はVB6のインストールの一部として持っている必要があるAPIビューアからコピーしました。 VB6は現在のコードページを使用して文字列をヌル終了ANSIにマーシャリングします。あなたはIDEを閉じたときにのみ - あなたはVB6 IDEからのミューテックスを作成した場合、ミューテックスはIDEに属し、あなたのプログラムの実行を停止する際に破壊されないことを念頭に置い
Public Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Public Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" _
(lpMutexAttributes As SECURITY_ATTRIBUTES, ByVal bInitialOwner As Long, _
ByVal lpName As String) As Long
ベア。