CAPTURAR LPT1 PARA UM IMPRESSORA DA REDE
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 -
Desde ja agradeço .....
Programaçao na Veia -
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
Vc pode acessar diretamente o endereço da porta paralela
Qualquer Duvida Lima2003br@yahoo.com.br
eh não ajudou naum, mesmo assim valeu a intenção
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.
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.
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"
eu to fazendo assim:
shell "net use lpt1: \\micro\dfx8000"
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
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
preciso refenrenciar alguma coisa ???? estas duas linhas estaum sendo recusadas .....
Public Const INFINITE = -1&
Public Const SYNCHRONIZE = &H100000
Public Const INFINITE = -1&
Public Const SYNCHRONIZE = &H100000
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
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