Já tentou cancelar uma impressão no Windows e ficou frustrado com o tempo que leva até alguma coisa acontecer? É uma insatisfação comum. O usuário do Reddit Shikyo explica por que isso acontece e oferece uma solução.
Basicamente, o Windows não consegue cancelar impressões enquanto os arquivos temporários criados para elas são usados pelo sistema. A solução: interromper o serviço spoolsv.exe, apagar as impressões pendentes na pasta C:Windowssystem32spoolprinters e reiniciar o spoolsv.exe para poder imprimir novamente. É muito trabalho para fazer manualmente, principalmente se você sofre com esse problema regularmente, mas felizmente o generoso usuário do Reddit preparou um arquivo batch que faz tudo isso automaticamente.
Eis o script. Basta copiar isto em um novo documento de texto e salvá-lo como limparspooler.bat (ou qualquer outro nome que você preferir .bat).
@echo off
echo Interrompendo spooler de impressão.
echo.
net stop spooler
echo Deletando coisas… onde? Sei lá. Isso é o de menos.
echo.
del %systemroot%system32spoolprinters*.shd
del %systemroot%system32spoolprinters*.spl
echo Iniciando spooler de impressão.
echo.
net start spooler
Sempre que você precisar cancelar impressões, execute esse arquivo batch, e ele fará tudo.
Como alertado por vários usuários do Reddit, você não deve usar esse método em um servidor de impressão – no trabalho, por exemplo –, pois ele cancelará todas as impressões, não só as suas.
Why does it take around seventy-two eons to cancel a print job? [Reddit via Addictive Tips; imagem The Oatmeal]