INTERCALACAO DE PLATAFORMAS VB6 VB.NET

XXXANGELSXXX 13/01/2011 18:52:13
#362212
Boa noite pessoal, vejam só, estou querendo começar a utilizar vb 2010, mas me esbarro ainda na falta de tempo para programacao.. agora pergunto o seguinte, eu vi um sistema ai .. que por falta de te tempo de fazer o projeto inteiro em vb 2010, o cara conseguiu intercalar o sistema dele em vb6, e aos poucos ele foi migrando o sistema e os forms para vb2010, exemplo.. ele tinha o cadastro de clientes em vb6, ele conseguiu uma forma de quando clicasse no cadastro, ele ja abria a nova tela que ele fez em vb2010, gostaria de saber como fazer isso..
MADMAX 14/01/2011 14:11:19
#362270
Resposta escolhida
Eu acho que ele chama um exe passando parametros na parte do .net pelo shell do vb6 assim da para ir intercalando por partes ...já fiz algo parecido mais não por essa necessidade e sim pq o que eu precisava fazer era so em .net mesmo.

segue ai uma rotina que pode te ajudar .. ela executa o comando no shell e so sai depois de finalizado o executavel , coloca ela num modulo

Private Type STARTUPINFO
cb As Long
lpReserved As String
lpDesktop As String
lpTitle As String
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type

Private Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessID As Long
dwThreadID As Long
End Type

Private Declare Function WaitForSingleObject Lib [Ô]kernel32[Ô] (ByVal _
hHandle As Long, ByVal dwMilliseconds As Long) As Long

Private Declare Function CreateProcessA Lib [Ô]kernel32[Ô] (ByVal _
lpApplicationName As Long, ByVal lpCommandLine As String, ByVal _
lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, _
ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _
ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, _
lpStartupInfo As STARTUPINFO, lpProcessInformation As _
PROCESS_INFORMATION) As Long

Private Declare Function CloseHandle Lib [Ô]kernel32[Ô] (ByVal _
hObject As Long) As Long

Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Const INFINITE = -1&


Public Sub ExecCmd(cmdline$)
Dim proc As PROCESS_INFORMATION
Dim start As STARTUPINFO
Dim ReturnValue As Integer

[ô] Initialize the STARTUPINFO structure:
start.cb = Len(start)

[ô] Start the shelled application:
ReturnValue = CreateProcessA(0&, cmdline$, 0&, 0&, 1&, _
NORMAL_PRIORITY_CLASS, 0&, 0&, start, proc)

[ô] Wait for the shelled application to finish:
Do
ReturnValue = WaitForSingleObject(proc.hProcess, 0)
DoEvents
Loop Until ReturnValue <> 258

ReturnValue = CloseHandle(proc.hProcess)
End Sub


Utilização
ExecCmd [Ô]COMANDO[Ô]
Tópico encerrado , respostas não são mais permitidas