none
Script p/ impressora/impressão: imprimir e pausar 15 minutos e voltar a imprimir (repetir isso o dia inteiro) RRS feed

  • Pergunta

  • Olá 

    Antes de mais nada obrigado por estar lendo esta dúvida.

    Utilizo uma impressora a laser P&B para fazer um único trabalho e nada mais: imprimir três linhas de texto contendo endereço, telefone, etc. sobre um panfleto colorido que recebemos da nossa central em São Paulo.

    Contudo, como você deve saber, as impressoras a laser esquentam muito e com isso tenho que imprimir 30 panfletos e esperar 15 minutos para ela esfriar para depois mandar imprimir mais 30 e assim por diante.

    A solução que preciso eu não encontrei no Google nem no Baixaki nem em nenhum lugar. Preciso de um script ou programa que mande a impressora fazer isso tudo sozinha. Ou seja, mande ela imprimir 30 e pausar 15 minutos e depois voltar a imprimir 30... fazendo isso o dia inteiro. Serão 4000 impressões por mês.

    Tentei pelo Agendador de Tarefas do Windows mas não deu certo. Até existe um campo para ser preenchido onde se pode colocar scripts, mas não senti confiança. 

    Dados técnicos: tenho notebooks com Windows Vista, Windows 7 e Mac. A impressora é a HP LaserJet P1102w.

    Mais uma vez agradeço pela sua ajuda

    terça-feira, 6 de março de 2012 15:52

Respostas

  • César,

    tente este .VBS

    strComputer = "."
    
    'Tem que colocar o nome da impressora aqui
    strNomeImpressora="HP_PB"
    
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    
    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer Where Name = '" & strNomeImpressora & "'")
    
    do
    	'Iniciar contagem
    	wscript.sleep 60000 * 15
    	
    	'15min e pausa
    	For Each objPrinter in colInstalledPrinters 
    		ObjPrinter.Pause()
    	Next
    
    	'Aguarda mais 15 minutos
    	wscript.sleep 60000 * 15
    	
    	'Resume impressao
    	For Each objPrinter in colInstalledPrinters 
    		ObjPrinter.Resume()
    	Next
    
    
    loop

    Ref.:

    Win32_Printer class (Windows) 

    msdn.microsoft.com/en-us/library/windows/desktop/aa394363(v=vs.85).aspx


    Fábio de Paula Junior

    terça-feira, 18 de dezembro de 2012 14:39
    Moderador

Todas as Respostas

  • Porquê não cria um bat e faz isso em tarefa agendada ? O bat pode mandar imprimir o doc ou txt a cada x minutos.
    terça-feira, 6 de março de 2012 19:27
  • Obrigado pela resposta.

    Não sei qual seria o comando para impressão, espera, etc. Não sei como seria isso. Alguém saberia onde posso pesquisar isso?

    Obrigado.


    César Campello

    quarta-feira, 7 de março de 2012 18:25
  • César,

    tente este .VBS

    strComputer = "."
    
    'Tem que colocar o nome da impressora aqui
    strNomeImpressora="HP_PB"
    
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    
    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer Where Name = '" & strNomeImpressora & "'")
    
    do
    	'Iniciar contagem
    	wscript.sleep 60000 * 15
    	
    	'15min e pausa
    	For Each objPrinter in colInstalledPrinters 
    		ObjPrinter.Pause()
    	Next
    
    	'Aguarda mais 15 minutos
    	wscript.sleep 60000 * 15
    	
    	'Resume impressao
    	For Each objPrinter in colInstalledPrinters 
    		ObjPrinter.Resume()
    	Next
    
    
    loop

    Ref.:

    Win32_Printer class (Windows) 

    msdn.microsoft.com/en-us/library/windows/desktop/aa394363(v=vs.85).aspx


    Fábio de Paula Junior

    terça-feira, 18 de dezembro de 2012 14:39
    Moderador