LISTAR NOME DA IMPRESSORA DA REDE

NEW10 17/02/2010 01:00:27
#334541
Boa noite,

Queria saber se alguem sabe como faço apra saber o nome da impressora que esta instalada na rede, ou seja o nome do compartilhamento?? em vez de colocar no codigo \\127.0.0.1
omeimpressora, eu queria um jeito de puxar este nome do compartilhamento da impressora !!!

Obrigado!
LIZANDER 17/02/2010 13:31:37
#334578
Caro New10...

Você não tem as impressoras instaladas no micro local (mapeadas na rede)???
Isso facilitaria para vc poder usar a coleção Printers...
MICROSCHEME 17/02/2010 17:50:23
#334612

Salve o código abaixo como .frm e rode.

Verás que está referenciado o objeto commondialog.

Ele te mostra todas as impressoras instaladas, local e de rede, e quando escolheres a impressora desejada, envia a impressão pra ela.

Blz . . .

Código:

VERSION 5.00
Object = [Ô]{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0[Ô]; [Ô]ComDlg32.OCX[Ô]
Begin VB.Form CommonDialog
Caption = [Ô] Definindo Impressora para Impressão com CommonDialog[Ô]
ClientHeight = 5490
ClientLeft = 60
ClientTop = 450
ClientWidth = 9195
LinkTopic = [Ô]Form1[Ô]
LockControls = -1 [ô]True
MaxButton = 0 [ô]False
MinButton = 0 [ô]False
Moveable = 0 [ô]False
ScaleHeight = 5490
ScaleWidth = 9195
StartUpPosition = 2 [ô]CenterScreen
Begin MSComDlg.CommonDialog CommonDialog001
Left = 120
Top = 4920
_ExtentX = 847
_ExtentY = 847
_Version = 393216
End
Begin VB.CommandButton Command001
Caption = [Ô]Imprimir[Ô]
Height = 525
Left = 3975
TabIndex = 0
Top = 4860
Width = 1245
End
End
Attribute VB_Name = [Ô]CommonDialog[Ô]
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command001_Click()
On Error GoTo CancelPrint
CommonDialog001.CancelError = True
CommonDialog001.ShowPrinter
For Copias = 1 To CommonDialog001.Copies
Printer.CurrentX = 1000
Printer.CurrentY = 1000
Printer.FontSize = 12
Printer.Print [Ô]Imprimindo com Commondialog em: [Ô] & Printer.DeviceName
Printer.Print
Printer.CurrentX = 1000
Printer.Print [Ô] CurrentX posiciona a impressão na horizontal[Ô]
Printer.CurrentX = 1000
Printer.Print [Ô] CurrentY posiciona a impressão na Vertical[Ô]
Printer.CurrentX = 1000
Printer.Print [Ô] Texto [Ô];
Printer.Print [Ô] imprime o texto entre os parenteses[Ô]
Printer.CurrentX = 1000
Printer.Print [Ô] Printer.Enddoc Envia a impressão para a impressora[Ô]
Printer.EndDoc
Next Copias
CommonDialog001.Copies = 1
CancelPrint:
If Err.Number = 32755 Then
MsgBox [Ô] A Impressão foi Cancelada. [Ô], vbOKOnly, [Ô] Mensagem do Sistema[Ô]
End If

End Sub

. . .

MICHAELL 01/07/2010 15:07:28
#346296
a duvida do usuario acima é antiga e a mesma que a minha.

ele nao quer listar os nomes das impressoras da rede, ele quer listar os nomes de COMPARTILHAMENTO das impressoras dos outros computadores, mas ele quer o nome do compartilhamento e nao das impressoras.

pois com o nome das impressoras ele consegue apenas utilizar PRINTER... no entanto ele precisa utilizar PRINT para enviar direto para a impressora.
Para utilizar PRINT é necessario enviar para LPT1, COM1 ou entao para uma impressora compartilhada \
ome_pc
ome_compartilhamento

alguem sabe como listar o nome do compartillhamento das impressoras da rede?

ALONERUSSO 09/08/2010 11:25:21
#349783
tbm estou precisando achar o nome de compartilhamento da rede pra jogar direto na porta lpt1, ja procurei em todo lugar e nao achei, o commondilaog nao oferece esse recurso.
MICHAELL 15/06/2011 22:12:19
#376898
duvida cruel.. meses sem solucao
MICHAELL 16/06/2011 09:20:22
#376930
verdade.. tem mesmo!

ai ta o link http://vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=6049
EDERMIR 18/06/2011 09:04:45
#377143
Se você quer imprimir em uma impressora na rede, o Windows AUTOMATICAMENTE coloca a impressora disponível na relação de impressoras como AUTO ...
uando o Windows não coloca, significa a falta do driver específico para a impressora ou a impressora não está COMPARTILHADA por outro computador (ela é SERVIDORA de impressão).

No caso da impressora ser SERVIDORA, deve-se configura-la para IP FIXO e, portanto, não há problema com o nome da impressora.

Há uma função que permite voce imprimir na impressora instalada diretamente da aplicação SEM A INTERFERÊNCIA DO USUÁRIO:
Wimpress_padrao = Printer.DeviceName
Wimpressora = [Ô]Bematech[Ô]
Wrecibinho = False
For Each x In Printers
If x.DeviceName = Wimpressora Then
Set Printer = x
Wrecibinho = True
End If
Next x


E esta volta para a impressora padrão LOGO APÓS A IMPRESSÃO:
Wimpress_padrao = Printer.DeviceName
Wimpressora = Wimpress_padrao
Wrecibinho = False
For Each x In Printers
If x.DeviceName = Wimpressora Then
Set Printer = x
Wrecibinho = True
End If
Next x
Tópico encerrado , respostas não são mais permitidas