Artigo: 252607 - Última revisão: segunda-feira, 12 de Maio de 2003 - Revisão: 2.0

PROBLEMA: O método CopyFile não funciona para NomeDispositivo impressora com espaços no NT

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

Quando um ficheiro é copiado para a impressora de rede com o método CopyFile do objeto FileSystemObject e a impressora NomeDispositivo contém um espaço, ocorre o seguinte erro:
Erro de tempo de execução de 52: nome de ficheiro incorrecto ou número

Resolução

Se tiver privilégios administrativos no servidor, mudar o nome da impressora para que o nomedispositivo é uma palavra sem espaços.

Mais Informação

A Microsoft recomenda que não têm espaços na impressora DeviceNames porque outros problemas que podem surgir.

Exemplo passo a passo

  1. Num sistema Microsoft NT 4.0, adicione uma impressora com um nome que contenha um espaço.
  2. Crie um ficheiro de texto na pasta C:\, por exemplo, test.txt .
  3. Inicie um novo projecto EXE padrão no Visual Basic. É criado o Form1 por predefinição.
  4. No menu Project , seleccionar referências , consulte Microsoft Scripting Runtime e clique em OK .
  5. Adicione um CommandButton ao formulário.
  6. Cole o seguinte código na janela de código do Form1:
    Private Sub Command1_Click()
    Dim FSO as FileSystemObject
    set FSO = new FileSystemObject
    
    ' To print on WinNT
    FSO.CopyFile "C:\test.txt", Printer.DeviceName
    
    ' If the devicename is like this: \\servername\HPLaser400, the file prints
    ' If the devicename is \\servername\HP Laser 400, the above mentioned 
    ' run-time error occurs
    
    ' To print on Win9x
    ' FSO.CopyFile "C:\test.txt",Printer.Port
    End Sub
    					
  7. Prima a tecla F5 para executar o projecto e, em seguida, clique no CommandButton .
  8. O ficheiro test.txt é impresso, se o nomedispositivo uma palavra sem espaços.
  9. Em alternativa, pode utilizar a API para ignorar o controlador de impressora e enviar dados para a impressora. Isto está documentado no artigo que Q154078 listados abaixo na secção "Referências".

Referências

154078  (http://support.microsoft.com/kb/154078/EN-US/ ) COMO: Enviar dados RAW para uma impressora utilizando a API do Win32 do VB

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 5.0 Learning Edition nas seguintes plataformas
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
  • Microsoft Visual Basic 6.0 Learning Edition nas seguintes plataformas
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
  • Microsoft Visual Basic 5.0 Professional Edition nas seguintes plataformas
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
  • Microsoft Visual Basic 6.0 Professional Edition nas seguintes plataformas
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
  • Microsoft Visual Basic 5.0 Enterprise Edition nas seguintes plataformas
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0 nas seguintes plataformas
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
Palavras-chave: 
kbmt kbprb kbprint KB252607 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 252607  (http://support.microsoft.com/kb/252607/en-us/ )