Criar funções especiais no botão direito do rato

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

Maguilla
Posts: 6
Joined: 10 Jan 2023, 12:13

Criar funções especiais no botão direito do rato

Post by Maguilla » 10 Jan 2023, 12:55

Boas a todos,

Tenho a necessidade de criar uma função especial a atribuir no botão direito do rato.

Recebo dezenas de ficheiros por dia, que tenho de imprimir as páginas 1 e da 4 em diante, logo tenho de abrir, CTRL+P, selecionar páginas 1, 4- e ENTER.

Cria ter uma forma de ao clicar por um tempo no botão direito do rato ou ter uma linha de "impressão rápida" para fazer este trabalho... iria poupar muitos minutos e clicks por dia :D

Se alguém puder sugerir formas ou algum programa a utilizar para esse efeito, agradecia.

NOTA: Uso Windows 10 Pro

Abraço a todos e continuação de Bom Ano!!!

User avatar
flyingDman
Posts: 2838
Joined: 29 Sep 2013, 19:01

Re: Criar funções especiais no botão direito do rato

Post by flyingDman » 11 Jan 2023, 00:50

Qual é o programa que você está imprimindo?
14.3 & 1.3.7

Maguilla
Posts: 6
Joined: 10 Jan 2023, 12:13

Re: Criar funções especiais no botão direito do rato

Post by Maguilla » 11 Jan 2023, 04:31

flyingDman wrote:
11 Jan 2023, 00:50
Qual é o programa que você está imprimindo?
O tipo de ficheiro é PDF, o programa é um desenvolvimento específico para a atividade aduaneira ( GIDWIN ), que não é comercializado ao público em geral.
Esses ficheiros PDF, os demais postos de trabalho acedem através de pasta de rede em um servidor.

Julgo que a melhor forma seria criar um atalho, como quando se instala um programa e ele atribui função específica ( exemplo: instala DropBox e ele cria "send a copy..." ).
Só não sei como fazer isso :roll:

User avatar
flyingDman
Posts: 2838
Joined: 29 Sep 2013, 19:01

Re: Criar funções especiais no botão direito do rato

Post by flyingDman » 11 Jan 2023, 14:46

Alguns programas (principalmente da Microsoft, mas também alguns navegadores) permitem que você imprima programaticamente e defina as configurações de impressão. Seu programa provavelmente não é um desses e você terá que simular as teclas digitadas para obter o que descreveu. Como seu programa é proprietário, há pouco que alguém possa fazer para ajudá-lo.
14.3 & 1.3.7

Maguilla
Posts: 6
Joined: 10 Jan 2023, 12:13

Re: Criar funções especiais no botão direito do rato

Post by Maguilla » 12 Jan 2023, 10:36

flyingDman wrote:
11 Jan 2023, 14:46
Alguns programas (principalmente da Microsoft, mas também alguns navegadores) permitem que você imprima programaticamente e defina as configurações de impressão. Seu programa provavelmente não é um desses e você terá que simular as teclas digitadas para obter o que descreveu. Como seu programa é proprietário, há pouco que alguém possa fazer para ajudá-lo.
OK.
Julguei que fosse possível criar um script que deve para associar no Windows para fazer esse processo. Efetivamente a minha necessidade é somente para ficheiros PDF, que o programa descarrega numa pasta do servidor.

Não encontrando solução, terei que continuar a abrir ficheiro a ficheiro, pois o desperdício de 2 páginas iria fazer que por mês, estragasse uma média de 2500 a 3000 folhas de papel... há que minimizar custos e o ambiente.

Ainda assim obrigado pela ajuda e resposta.

User avatar
DevWithCoffee
Posts: 54
Joined: 13 Oct 2020, 12:16

Re: Criar funções especiais no botão direito do rato

Post by DevWithCoffee » 24 Jan 2023, 07:31

Não sei se é possível sem um comando externo.

Primeiro vamos analisar como funciona qualquer linha de comando padrão da maioria dos Softwares com suporte à impressoras.
Em geral para imprimir páginas especificas é necessário usar virgula:

Code: Select all

2,4,5,7,8,12,13,15,30
Mas para imprimir um intervalo é apenas um traço (hífen), por exemplo se eu quiser imprimir da 3 até a 12:

Code: Select all

3-12
Mas se eu quiser imprimir dois intervalos distintos, bastaria combinar eu imagino:

Code: Select all

4-15,29-35
Mas e para imprimir um intervalo "dá página X até a última, à principio achei que fosse asteristico (*), mas ao que vi na maioria dos programas basta deixar vázio após o hífen.
Um documento com 60 páginas por exemplo e quero começar da 3 pois as anteriores são apenas capa e créditos:

Code: Select all

3-
Então seguindo o que você precisa:

Code: Select all

1,4-
À não ser que todos os documentos tenham a mesma quantidade de páginas, mas aí é contigo pra resolver.

Segunda etapa é encontrar um programa que possa aceitar esses parâmetros na linha de comando, nesse caso eu encontrei esse:
https://www.robvanderwoude.com/commandlineswitches.php#Acrobat

Próxima etapa, criar um método simples que encontre apenas os arquivos PDF de uma pasta:

Code: Select all

#NoEnv
#Warn
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
stop := 0
Loop, Files, *.pdf
{
	if (stop <> 0)
	{
		break
	}
	else
	{
		AcroRd32.exe /p "%A_LoopFileName%" "page=1,4-"
	}
}
ExitApp

;Ctrl + Alt + x - Change to  "True"
^!x:: stop := 1
Eu criei por segurança um comando que pare a aplicação através de um comando de combinação de teclas.

Mas digamos que você imprima parte dos documentos, e não queira repetir o processo, precisamos salvar os anteriores ao encerramento da aplicação em algum arquivo:

Code: Select all

#NoEnv
#Warn
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
stop := 0
Loop, Files, *.pdf
{
	printed := 0
	if (stop <> 0)
	{
		break
	}
	else
	{
		chkf := A_LoopFileName
		Loop, read, _printed.txt
		{
			
			if(A_LoopReadLine = chkf)
			{
				printed := 1
				break
			}
		}
		if (printed <> 1)
		{
			RunWait, AcroRd32.exe /p "%chkf%" "page=1,4-"
			FileAppend, %chkf%`n,  _printed.txt ; Registra o arquivo apos mandar o comando de imprimir
		}
	}
}
ExitApp

;Ctrl + Alt + x - Change to  "True"
^!x:: stop := 1
Vale lembrar que eu não testei esse script, eu mostrei o processo com dialogo de impressão por que não me recordo como realmente funciona e não tenho como testar agora.

A idéia é poder ensinar como funcionam os métodos pra que você mesmo possa preparar sem dificuldades em cima do cenário que você está trabalhando.

Post Reply

Return to “Ajuda e Suporte Geral”