CAPTURAR LPT1 PARA UM IMPRESSORA DA REDE

MADMAX 19/03/2005 14:28:43
#73716
Alguem sabe como posso capturar a lpt1 de um impressora intalada no windows que esta na rede , vamos dizer que eu va fazer uma impressao no dos , em uma impressora matricial que esta na rede ....eu tenho que capturar ela na lpt1 para imprimir .alguem sabe como posso fazer isso por um programinha pelo vbm, tipo onde eu informo a localizaçao na rede da impressora (\\micro\dfx8000) ele captura o caminho para a lpt1....


Desde ja agradeço .....

Programaçao na Veia -
USUARIO.EXCLUIDOS 19/03/2005 14:58:55
#73722
Existe uma DLL chamada inpout32.DLL ela deve resolver seu caso
Vc pode acessar diretamente o endereço da porta paralela

Qualquer Duvida Lima2003br@yahoo.com.br
MADMAX 19/03/2005 15:13:05
#73727
eh não ajudou naum, mesmo assim valeu a intenção
PEPE.LEGAL 20/03/2005 00:37:08
#73821
utilize o comando de DOS:

NET USE LPT1: \\micro\dfx8000

grave esse comando num arquivo bat, ex: Ligaprint.bat

e instale no menu iniciar do windows, assim nunca tera problemas.
MADMAX 20/03/2005 07:30:50
#73824
esse comando serviu valeu cara , so mais uma pergunta como faço pra fechar uma janela do prompt do dos que eu abri via codigo .....por que num eh so uma impressora que vai ser mapeada ...vo fazer um programinha pra isso mas....depois de completar o comando a janela do prompt dos fica aberta tem como fechar ela direto
eu to fazendo assim:

shell "net use lpt1: \\micro\dfx8000"
MARCELO.VB.PIRA 20/03/2005 13:41:18
#73858
Resposta escolhida
Tente isso:

Call ChamaExe("net use lpt1: \\micro\dfx8000", 0)

(0-escone, 1-mostra)
Detalhe, o processamento irá parar até o comando em DOS seja executado e terminado. Ou seja: usando esta SUB, o sistema irá parar até obter uma resposta de finalização do processo que foi chamado)

Public Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Const INFINITE = -1&
Public Const SYNCHRONIZE = &H100000

Public Sub ChamaExe(NomeCaminho, Esconde)
Dim iTask As Long, ret As Long, pHandle As Long
If Esconde = 1 Then iTask = Shell(NomeCaminho, vbMaximizedFocus)
If Esconde = 0 Then iTask = Shell(NomeCaminho, vbHide)
pHandle = OpenProcess(SYNCHRONIZE, False, iTask)
ret = WaitForSingleObject(pHandle, INFINITE)
ret = CloseHandle(pHandle)
End Sub

MADMAX 21/03/2005 11:42:42
#74017
preciso refenrenciar alguma coisa ???? estas duas linhas estaum sendo recusadas .....

Public Const INFINITE = -1&
Public Const SYNCHRONIZE = &H100000
LUCASCORREA 21/03/2005 11:52:54
#74023
coloque essa parte em um modulo

 Public Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long 
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Const INFINITE = -1&
Public Const SYNCHRONIZE = &H100000
MADMAX 21/03/2005 16:10:48
#74084
eu testei a programaçao mas o shell continua ficando aberto mesmo depois de aparecer que esta concluido ?????
Tópico encerrado , respostas não são mais permitidas