Saya telah diimpor kernel32
perpustakaan. Jadi, saya memiliki createMutex
fungsi yang tersedia, tetapi saya tidak yakin dari berbagai parameter dan mengembalikan nilai-nilai.
Ini adalah klasik Visual Basic, Visual tidak Basic.NET tapi aku mungkin bisa bekerja dengan bahasa baik dalam bentuk sebuah jawaban.
Berikut ini's VB6 deklarasi untuk CreateMutex - saya hanya menyalin mereka dari API viewer, yang harus anda miliki sebagai bagian dari VB6 instalasi. VB6 marshall string null-terminated ANSI menggunakan arus halaman kode.
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
Ingatlah bahwa jika anda membuat mutex dari VB6 IDE, mutex termasuk IDE dan won't akan hancur ketika anda berhenti menjalankan program anda - hanya ketika anda menutup IDE.
Kode VB yang terlihat seperti ini:
hMutex = CreateMutex(ByVal 0&, 1, ByVal 0&)
Parameter pertama adalah pointer ke sebuah SECURITY_ATTRIBUTES
struktur. Jika anda don't tahu apa itu, anda don't membutuhkannya. Lulus NOL (0).
Parameter kedua adalah BENAR
(non-nol, atau 1) jika panggilan benang harus mengambil kepemilikan mutex. FALSE
sebaliknya.
Parameter ketiga adalah mutex nama dan mungkin NOL (0), seperti yang ditunjukkan. Jika anda membutuhkan bernama mutex, lulus nama (sesuatu yang unik) di. Tidak yakin apakah VB
wrapper marsekal panjang-diawali VB
tipe string (BSTR
) atas sebuah null-terminated Ascii/string Unicode jika tidak, anda'll perlu untuk melakukan itu dan banyak contoh di luar sana.
Good luck!
Nah, berdasarkan dokumentasi hal ini terlihat seperti:
HTH