Ojo son muy inestables y no podra ejecutar paso apaso.
en Vbnet ya estan implementados
'formulario
Private Sub Command1_Click()
Call CrearThread
End Sub
'modulo
'Estructura necesaria para la llamada a la función
'CreateThread. En C se puede dar un valor NULL para
'que tome valores por defecto. En VB hay que pasar
'la estructura completa aunque sea con valores por
'defecto para que la cosa chute.
Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Dim SecStruc As SECURITY_ATTRIBUTES
Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, ByVal lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long
Declare Sub ExitThread Lib "kernel32" (ByVal dwExitCode As Long)
Declare Function GetExitCodeThread Lib "kernel32" (ByVal hThread As Long, lpExitCode As Long) As Long
Const STILL_ACTIVE = &H103
Const PROCESS_QUERY_INFORMATION = &H400
Dim ret As Long
Dim hwnd As Long
Dim hwnd2 As Long
Sub CrearThread()
' Damos valores a los campos de la estructura
' SECURITY_ATTRIBUTES
' Adjunto la explicación extraída del help del
' API de Microsoft C++.
SecStruc.nLength = 12
' Specifies the length, in bytes, of this
' structure. This value is to be set to
' the size of the SECURITY_ATTRIBUTES structure.
SecStruc.lpSecurityDescriptor = 0
' Points to a security descriptor for the
%