Como usar um mutex em Visual Basic

votos
21

Eu importados a kernel32biblioteca. Então, eu tenho a createMutexfunção disponível, mas não estou muito certo dos vários parâmetros e valores de retorno.

Este é um clássico Visual Basic, não Visual Basic.NET mas eu provavelmente pode trabalhar com qualquer linguagem na forma de uma resposta.

Publicado 04/08/2008 em 02:22
fonte usuário
Em outras línguas...                            


3 respostas

votos
9

Eis as declarações VB6 para CreateMutex - Eu apenas copiou a partir do visualizador API, que você deve ter como parte de sua instalação VB6. VB6 Marshalls cordas para NULL-rescindido ANSI usando a página de código atual.

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

Tenha em mente que se você criar um mutex do IDE VB6, o mutex pertence ao IDE e não será destruída quando você parar de executar o seu programa - somente quando você fechar o IDE.

Respondeu 17/09/2008 em 13:01
fonte usuário

votos
7

O código VB é algo como isto:

hMutex = CreateMutex(ByVal 0&, 1, ByVal 0&)

O primeiro parâmetro é um ponteiro para uma SECURITY_ATTRIBUTESestrutura. Se você não sabe o que é, você não precisa dele. Passar NULL (0).

O segundo parâmetro é TRUE(não-zero, ou 1) se o segmento de chamada deve assumir a propriedade do mutex. FALSEde outra forma.

O terceiro parâmetro é o nome de exclusão mútua e podem ser NULL (0), como mostrado. Se você precisa de um mutex nomeado, passar o nome (algo único) em. Não tenho certeza se os VBmarechais de mensagens publicitárias do prefixo de comprimento VBtipo string ( BSTR) ao longo de um Ascii string terminada em null / Unicode se não, você vai precisar para fazer isso e numerosos exemplos são lá fora.

Boa sorte!

Respondeu 04/08/2008 em 05:58
fonte usuário

votos
2

Bem, com base na documentação que parece:

  1. atributos de segurança (pode passar null)
  2. Se ele está inicialmente propriedade (pode passar false)
  3. O nome dele

HTH

Respondeu 04/08/2008 em 05:48
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more