Bloc de notas (Notepad): abrir archivos txt ya existentes en forma maximizada

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.

Moderator: Flipeador

User avatar
cholito
Posts: 8
Joined: 10 Mar 2017, 09:09
Location: Perú

Bloc de notas (Notepad): abrir archivos txt ya existentes en forma maximizada

10 Mar 2017, 14:05

El siguiente script de ejemplo inicia una nueva ventana del Bloc de notas (Notepad en inglés) maximizada:

Code: Select all

#z::Run notepad, , Max
Si quisiéramos abrir un archivo txt ya existente en cualquier carpeta, de manera maximizada, ¿cómo sería el script? Muchas gracias.
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Bloc de notas (Notepad): abrir archivos txt ya existentes en forma maximizada

10 Mar 2017, 14:57

Code: Select all

Run F:\Desktop\1.txt,, Max
o

Code: Select all

Path := "F:\Desktop\1.txt"
Run % Chr(34) . A_WinDir . "\Notepad.exe" . Chr(34) . A_Space . Chr(34) . Path . Chr(34),, Max
User avatar
cholito
Posts: 8
Joined: 10 Mar 2017, 09:09
Location: Perú

Re: Bloc de notas (Notepad): abrir archivos txt ya existentes en forma maximizada

15 Mar 2017, 18:41

Muchas gracias por responder Flipeador. Pero tu script no funciona. O tal vez no me he dejado entender.
Tengo archivos .txt en todas la unidades de mi disco duro. Lo que deseo es que al hacer doble clic en cualquiera de ellos, su ventana se abra maximizada. Actualmente todas se cargan en modo no maximizado, de manera que tengo que maximizarlas para leerlas apropiadamente.
La idea es hacer un script donde no haya hotkeys manuales que desencadenen que el Bloc de notas abra los archivos .txt existentes en forma maximizada, sino que cuando se haga doble clic en un archivo .txt, éste se abra automáticamente maximizado.
Cordiales saludos.
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Bloc de notas (Notepad): abrir archivos txt ya existentes en forma maximizada

15 Mar 2017, 18:54

No necesitas AutoHotkey para hacer eso.
  • Abre el editor del registro de Windows (WIN+R, escribes regedit y precionas ENTER).
  • Dirígete a la clave HKEY_CLASSES_ROOT\txtfile\shell\open\command.
  • Doble clic en el valor predeterminado para editarlo. Has una copia de su valor y luego reemplazalo por esto: cmd /c start /max notepad %1.
User avatar
cholito
Posts: 8
Joined: 10 Mar 2017, 09:09
Location: Perú

Re: Bloc de notas (Notepad): abrir archivos txt ya existentes en forma maximizada

17 Mar 2017, 12:53

Gracias otra vez Flipeador. Pero editando de esa manera el registro tampoco ayudó.
Ingresando en Google las palabras: notepad open maximized arroja resultados que parecen funcionar hasta Windows 7. Pero tengo Windows 10 y no he encontrado solución habiendo probado varios métodos. Incluyendo ese de aumentar el tamaño de la ventana de manera que ocupe toda la pantalla, pero sin maximizar, cerrando la ventana y luego abriéndola.
Un código que he encontrado es el que pone el Bloc de notas a pantalla completa, es decir que presenta a la ventana sin la barra de título y de menú. Es el siguiente (pero no es el que deseo), y que se desencadena al presionar Control-q y se sale con Control-w:

Code: Select all

#IfWinActive, ahk_class Notepad
^q:: ;notepad fullscreen on
WinGet, hWnd, ID, A
WinGetClass, vWinClass, ahk_id %hWnd%
if vWinClass not in Notepad
Return

WinGet, vWinMinMax, MinMax, ahk_id %hWnd%
if (vWinMinMax = 1) ;1=max/0=res/1=min
WinRestore, ahk_id %hWnd%

if (hMenu%hWnd% = "")
hMenu%hWnd% := DllCall("GetMenu", "uint", hWnd)

if (vPos%hWnd% = "") OR (vWinMinMax = 0)
{
WinGetPos, vPosX, vPosY, vPosW, vPosH, ahk_id %hWnd%
vPos%hWnd% := vPosX "," vPosY "," vPosW "," vPosH
}

WinSet, Style, -0xC00000, ahk_id %hWnd% ;hide title bar
DllCall("SetMenu", "uint", hWnd, "uint", 0) ;hide menu bar
WinMove, ahk_id %hWnd%, , 0, 0, % A_ScreenWidth + 20, % A_ScreenHeight + 20
Return

;==================================================

^w:: ;notepad fullscreen off
WinGet, hWndZ, ID, A
WinGetClass, vWinClassZ, ahk_id %hWndZ%
if vWinClassZ not in Notepad
Return

hMenuZ := hMenu%hWndZ%
if (hMenuZ = "")
Return
vPosZ := vPos%hWndZ%

WinSet, Style, +0xC00000, ahk_id %hWndZ% ;show title bar
DllCall("SetMenu", "uint", hWndZ, "uint", hMenuZ) ;show menu bar
StringSplit, vPosZ, vPosZ, `,
WinMove, ahk_id %hWnd%, , %vPosZ1%, %vPosZ2%, %vPosZ3%, %vPosZ4%
Return
#IfWinActive
Pienso que un método sería a través del reconocimiento del contenido de la barra del título (opción WinTitle) y luego maximizando. La barra del título de la ventana del Bloc de notas (de un archivo existente en el Explorador) siempre tiene la siguiente presentación:
Nombre_del_archivo.txt Bloc de notas
Entonces cuando AHK reconozca ese título (por cierto hay que usar wilcards como *) desencadenar el comando WinMaximize o similar.
Mi problema es que soy principiante en AHK y para desgracia no sé un lenguaje de programación.
Saludos
A_AhkUser
Posts: 1147
Joined: 06 Mar 2017, 16:18
Location: France
Contact:

Re: Bloc de notas (Notepad): abrir archivos txt ya existentes en forma maximizada

17 Mar 2017, 14:23

Hola

si no importa el hecho que la ventana se maximice un ratito despues que se abre pues existe

Windows+flecha alta

para maximizar la ventana
Pienso que un método sería a través del reconocimiento del contenido de la barra del título (opción WinTitle) y luego maximizando. La barra del título de la ventana del Bloc de notas (de un archivo existente en el Explorador) siempre tiene la siguiente presentación:
Nombre_del_archivo.txt Bloc de notas
Entonces cuando AHK reconozca ese título (por cierto hay que usar wilcards como *) desencadenar el comando WinMaximize o similar.
Mi problema es que soy principiante en AHK y para desgracia no sé un lenguaje de programación.
Saludos
seguro eso se puede hacer con un RegEx con el titulo de la ventana, mas si te importa Notepad en general pues lo mejor es no tomar como referencia el titulo sino la clase de la ventana (la cual es la misma por tadas la ventanas perteneciendo al proceso Notepad)

Code: Select all

ahk_class Notepad
eso podria funcionar por su proposito:

Code: Select all

while (true) {
WinWaitActive ahk_class Notepad
WinMaximize ahk_class Notepad
WinWaitNotActive ahk_class Notepad
}

lo siento por el espanol el hecho es que yo soy francés
Last edited by A_AhkUser on 17 Mar 2017, 14:30, edited 2 times in total.
my scripts
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Bloc de notas (Notepad): abrir archivos txt ya existentes en forma maximizada

17 Mar 2017, 14:26

El método que te he pasado tiene que funcionar correctamente, lo he probado en Windows 10.
Tal vez lo hayas echo mal, ejecuta este script:

Code: Select all

RegWrite, REG_SZ, HKCR\txtfile\shell\open\command,, cmd /c start /max notepad `%1
if (ErrorLevel)
	MsgBox ERROR!
Si tira ERROR! ejecuta el script como administrador.

Puedes hacerlo con un script AHK como te ha dicho A_AhkUser, pero es un consumo de CPU y memoria totalmente innecesario.
A_AhkUser
Posts: 1147
Joined: 06 Mar 2017, 16:18
Location: France
Contact:

Re: Bloc de notas (Notepad): abrir archivos txt ya existentes en forma maximizada

17 Mar 2017, 14:29

flipeador tiene razon diciendo:
Puedes hacerlo con un script AHK como te ha dicho A_AhkUser, pero es un consumo de CPU y memoria totalmente innecesario.
le mejor es hacerlo via el registro
my scripts
User avatar
cholito
Posts: 8
Joined: 10 Mar 2017, 09:09
Location: Perú

Re: Bloc de notas (Notepad): abrir archivos txt ya existentes en forma maximizada

19 Mar 2017, 09:30

Flipeador, ¡¡¡éste funciona, muchísimas gracias!!! :bravo:

Code: Select all

RegWrite, REG_SZ, HKCR\txtfile\shell\open\command,, cmd /c start /max notepad `%1
if (ErrorLevel)
	MsgBox ERROR!
Creé el script en el Escritorio (Desktop), tuve que ejecutarlo como Administrador, y así ingresó a la clave del Registro HKEY_CLASSES_ROOT\txtfile\shell\open\command
el valor:
cmd /c start /max notepad %1
Después borré ese script por ser ya innecesario.

Ahora me doy cuenta que no funcionó la primera vez porque yo lo había ingresado en la clave (notar la diferencia de la "e", y que corresponde al Wordpad): :oops:
HKEY_CLASSES_ROOT\textfile\shell\open\command

No funciona para cuando se crea un nuevo archivo de texto, pero no importa porque para ello empleo el código que puse en el mensaje #1:

Code: Select all

ScrollLock::Run notepad , , Max
Y para maximizar otros archivos que abro con el Bloc de notas (por ejemplo los .ahk) uso la tecla Shift con el botón-rueda o tercer botón del mouse, así:

Code: Select all

~+Mbutton::WinMaximize, A
Más fácil que pulsar Shift es la tecla Control, pero lo uso junto con el botón-rueda del mouse para cerrar pestañas en los programas que los tienen, por ejemplo en los navegadores y lectores de archivos pdf. Así:

Code: Select all

#IfWinActive ahk_exe firefox.exe  ;también ahk_class MozillaWindowClass
  ^Mbutton::Send ^w ;Cerrar pestaña
#IfWinActive ahk_exe FoxitReader.exe  ;también ahk_class classFoxitReader. No uso Adobe Reader.
  ^Mbutton::Send ^w ;Cerrar pestaña
#IfWinActive
#A_AhkUser: Muchas gracias por tu interés en ayudar. Otra vez merci beaucoup!
A_AhkUser
Posts: 1147
Joined: 06 Mar 2017, 16:18
Location: France
Contact:

Re: Bloc de notas (Notepad): abrir archivos txt ya existentes en forma maximizada

19 Mar 2017, 12:01

cholito wrote:Y para maximizar otros archivos que abro con el Bloc de notas (por ejemplo los .ahk).
Si editas especialmente tus ahk script en el bloc de notas solo tienes que modicar el codigo de Flipeador.

Code: Select all

RegWrite REG_SZ, HKCR, AutoHotkeyScript\Shell\Edit\Command,, cmd /c start /max notepad `%1
if (ErrorLevel)
	MsgBox ERROR!
eso abrirá Notepad al inicio maximizado cuando haga clic derecho sobre tu escript y elija el submenu "editar el escript".
mira https://autohotkey.com/docs/commands/Edit.htm#Example
cholito wrote:muchas gracias por tu interés en ayudar. Otra vez merci beaucoup!
Je t'en t'en prie, il n'y pas de quoi ;)
my scripts
User avatar
cholito
Posts: 8
Joined: 10 Mar 2017, 09:09
Location: Perú

Re: Bloc de notas (Notepad): abrir archivos txt ya existentes en forma maximizada

26 Mar 2017, 03:18

Muchísimas gracias por tu consejo A_AhkUser.
Efectivamente abre la ventana del AHK maximizada al momento de hacer clic derecho en el ícono de AHK y luego "Edit This Script".
Esta vez ingresé manualmente en la subclave del Registro:
HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\Command
el siguiente código:

Code: Select all

cmd /c start /max notepad %1
Acepté y cerré el Registro.
Y funcionó. Merci beaucoup!!! :bravo:

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 23 guests