Procesos

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

Moderator: Flipeador

User avatar
Bertini
Posts: 86
Joined: 23 May 2018, 10:11

Procesos

01 Sep 2018, 14:17

Hola se puede hacer lo seguiente

Lo que estádo pensando es hacer que un derterminado programa utliza memoria y ves que necesitas más memoria para ese programa sería quitar memoria esos programas y que la utlizara el programa

mini ejemplo de lo que tengo pensado

Code: Select all

Process, priority,%NewPID%, High

if WinExist("ahk_exe gimp-2.8.exe")
{
	WinActivate, ahk_exe gimp-2.8.exe
	Process, priority, gimp-2.8.exe, High
	Process, priority, script-fu.exe, Low
}

#IfWinNotExist ahk_exe gimp-2.8.exe
{
	Run, C:\Program Files\GIMP 2\bin\gimp-2.8.exe
	WinActivate, ahk_exe gimp-2.8.exe
	Process, priority, gimp-2.8.exe, High
	Process, priority, script-fu.exe, Low
}
return

F7::ExitApp
F8::Reload
eso solo hace una comprobación lo que intento es que le quite memoria a otros programas o los mate
No me burlo de los novatos,porque de ellos vengo
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Procesos

01 Sep 2018, 16:38

Por favor, utiliza títulos descriptivos, esta es la segunda vez que te lo digo, y lo has estado haciendo en varios temas. Eso junto con tu forma de escribir, intenta conjugar las palabras apropiadamente, en todos tus temas tengo estar adivinando lo que intentas decir, ni siquiera utilizas signos de puntuación.

Esto creo haberlo aclarado en un tema, y creo que fue en uno tuyo, y es que cambiar la prioridad del proceso no hace que el SO le dedique más memoria o no. Únicamente es útil cuando el procesador esta sobre cargado, entonces le dedica más tiempo del procesador a esa aplicación. Ejecutar un proceso con una prioridad más alta o más baja solo tiene un efecto en el rendimiento real de ese proceso cuando la CPU está funcionando al máximo. Básicamente le está diciendo al SO que priorice qué procesos necesitan más potencia y cuáles necesitan menos. Pero esto es más complicado (hay ciertos límites, circunstancias en donde aumentar la prioridad no tiene sentido), puedes leer información en detalle aquí: https://superuser.com/questions/964382/ ... i-set-this.

La directiva #IfWinNotExist no funciona de esa manera, solo es para las declaraciones de teclas y cadenas de acceso rápido. No tiene sentido usar llaves aquí { }.

Para cerrar un programa debes usar Process Close, y esto no funcionará sobre ciertos procesos, se requieren ciertos privilegios. Además, no es recomendable forzar el cierre de un proceso.

Para reducir el uso de memoria de un programa, puedes utilizar la función SetProcessWorkingSetSize, de todas formas, esto no tiene mucho sentido, ya que el sistema operativo recuperará esa memoria cuando la necesite (ya sea para su proceso o para algún otro proceso). No deberías tener que preocuparte por eso.

Al parecer, tu problema se vería solucionando adquiriendo nuevo Hardware.
User avatar
Bertini
Posts: 86
Joined: 23 May 2018, 10:11

Re: Procesos

01 Sep 2018, 19:36

Spoiler
1.- El titulo pensé que eras más claro llamar "Proceso" me equivo que poniendo una s más eso lo único que creo que tiene un error lo otro sobre mi forma de escribir fue porque no me pare a poner comas etc.. y lo siento intentare explicar mejor.
2.- Sobre eso me aclaraste algún as cosa que se me había olvidado y gracias.
3.- Esto no lo tenia muy bien claro creo que lo tendré que volver a mirar mejor sobre eso.
4.- Gracias por esto pero e encontrado en la ayuda algo que buscaba y tal vez te pida ayuda para modificar algo de el programa.
5.- Sobre eso quería hacer algo pero como le que no sirve de mucho creo que me dejare de preocuparme de eso.
6.- Si sobre eso estoy mirando un ordenador que sea útil.

Creo que me explicado mejor :| y gracias
No me burlo de los novatos,porque de ellos vengo
User avatar
Bertini
Posts: 86
Joined: 23 May 2018, 10:11

Re: Procesos

01 Sep 2018, 19:52

4.- Sobre comentar en el apartado anterior el "Proceso-Script".

Code: Select all

Process, priority,%NewPID%, High

#z:: ; Win+Z hotkey
WinGet, active_pid, PID, A
WinGetTitle, active_title, A
Gui, 5:Add, Text,, Presione ESCAPE para cancelar, o haga doble clic en un nuevo nivel de prioridad para la siguiente ventana:`n%active_title%
Gui, 5:Add, ListBox, vMyListBox gMyListBox r5, Normal|Alto|Bajo|Más abajo Normal|Más allá Normal|
Gui, 5:Add, Button, default, OK
Gui, 5:Show,, Fijar prioridad
return

5GuiEscape:
5GuiClose:
Gui, Destroy
return

MyListBox:
if (A_GuiEvent <> "DoubleClick")
    return
; else fall through to the next label:
5ButtonOK:
GuiControlGet, MyListBox
Gui, Destroy
Process, Priority, %active_pid%, %MyListBox%
if ErrorLevel
    MsgBox Success: Su prioridad fue cambiada a "%MyListBox%".
else
    MsgBox Error: Su prioridad no puede cambiarse a "%MyListBox%".
return

F7::ExitApp
F8::Reload
Sería algo parecido yo que intento hacer sería una lista de todos los procesos que tiene prioridad y mostrar el hilo de proceso.
Creo que me expliqué mejor.
No me burlo de los novatos,porque de ellos vengo
User avatar
Bertini
Posts: 86
Joined: 23 May 2018, 10:11

Re: Procesos

01 Sep 2018, 20:01

Creo que en contrado algo que me sirve mejor que lo de antes.

Code: Select all

Gui, Add, ListView, x2 y0 w400 h500, Process Name|Command Line
for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process")
    LV_Add("", process.Name, process.CommandLine)
Gui, Show,, Process List

; Win32_Process: http://msdn.microsoft.com/en-us/library/aa394372.aspx
Ahora sería que se pudiera mostrar la prioridad del proceso.
No me burlo de los novatos,porque de ellos vengo

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 42 guests