theelf
Madmaxista
- Desde
- 1 Abr 2020
- Mensajes
- 6.408
- Reputación
- 10.784
Buenas, comparto un pequeño codigo por si alguno le sirviera
Hace no mucho, me compre un mini PC gigabyte brix, MUY barato en ebay a un polaco, pero a pesar de andar con la duda, llego y funciona bien. Es una marabilla, pero tiene un problema, el puñetero ventilador es RUIDOSO como el solo el hijo e fruta
Lo dearme pero es todo muy miniatura, y veo dificil arreglar eso sin terminar moliendo la carcaza asi q eche un vistazo por software
En mi caso, para la placa base, encontre dos programas que son capaces de controlar por software el ventilador, speedfan, y argus monitor. El primero gratuito, pero patetico en opciones para ser controlado fuera del programa, el segundo de pago pero ligeramente mas amable en las opciones
Adjunto una copia piratona que encontre del argus, y un codigo que escribi en autohotkey
En mi caso, lo que queria es que el ventilador NO me molestara en NADA, y eso solo era posible, en silencio total, al 20% maximo, pero me molestaba algo... que la mayoria del tiempo estoy con sonido, musica en winamp, youtube, video etc
Cuando tengo audio, puedo tener el ventilador mas fuerte que no lo escucho, en mi caso, hasta el 40% que ni me entero, asi que este programa de autohotkey, detecta si hay audio reproduciendo, y ejecuta un PROFILE del argus
Obviamente eso se puede cambiar a cualquier programa que usen, puede controlar cualquier cosa, en este caso, controlo dos profiles, con CTRL-SHIFT-D y CTRL-SHIFT-M
D desktop M musica, cada uno asigna lo q le gusta
ARGUS 5.2
Hace no mucho, me compre un mini PC gigabyte brix, MUY barato en ebay a un polaco, pero a pesar de andar con la duda, llego y funciona bien. Es una marabilla, pero tiene un problema, el puñetero ventilador es RUIDOSO como el solo el hijo e fruta
Lo dearme pero es todo muy miniatura, y veo dificil arreglar eso sin terminar moliendo la carcaza asi q eche un vistazo por software
En mi caso, para la placa base, encontre dos programas que son capaces de controlar por software el ventilador, speedfan, y argus monitor. El primero gratuito, pero patetico en opciones para ser controlado fuera del programa, el segundo de pago pero ligeramente mas amable en las opciones
Adjunto una copia piratona que encontre del argus, y un codigo que escribi en autohotkey
En mi caso, lo que queria es que el ventilador NO me molestara en NADA, y eso solo era posible, en silencio total, al 20% maximo, pero me molestaba algo... que la mayoria del tiempo estoy con sonido, musica en winamp, youtube, video etc
Cuando tengo audio, puedo tener el ventilador mas fuerte que no lo escucho, en mi caso, hasta el 40% que ni me entero, asi que este programa de autohotkey, detecta si hay audio reproduciendo, y ejecuta un PROFILE del argus
Obviamente eso se puede cambiar a cualquier programa que usen, puede controlar cualquier cosa, en este caso, controlo dos profiles, con CTRL-SHIFT-D y CTRL-SHIFT-M
D desktop M musica, cada uno asigna lo q le gusta
ARGUS 5.2
5.2
MediaFire is a simple to use free service that lets you put all your photos, documents, music, and video in a single place so you can access them anywhere and share them everywhere.
www.mediafire.com
Código:
#Warn, All, Off
SetTitleMatchMode, 2
DetectHiddenWindows, On
Run, ArgusMonitor.exe
sleep 5000
audio=0
Loop {
if(!IsAudioPlaying() and audio=0)
{
Send ^+d
audio=1
}
if(IsAudioPlaying() and audio=1)
{
Send ^+m
audio=0
}
sleep 3500
}
return
ProcessExist(i) {
Process, Exist, % i
return ErrorLevel
}
IsAudioPlaying() {
AudioLevel := 0.0
VA_IAudioMeterInformation_GetPeakValue(VA_GetAudioMeter(), AudioLevel)
return (Round(AudioLevel, 4) > 0)
}
VA_GetAudioMeter(device_desc="playback")
{
if ! device := VA_GetDevice(device_desc)
return 0
VA_IMMDevice_Activate(device, "{C02216F6-8C67-4B5B-9D00-D008E73E0064}", 7, 0, audioMeter)
ObjRelease(device)
return audioMeter
}
VA_GetDevice(device_desc="playback")
{
static CLSID_MMDeviceEnumerator := "{BCDE0395-E52F-467C-8E3D-C4579291692E}"
, IID_IMMDeviceEnumerator := "{A95664D2-9614-4F35-A746-DE8DB63617E6}"
if !(deviceEnumerator := ComObjCreate(CLSID_MMDeviceEnumerator, IID_IMMDeviceEnumerator))
return 0
device := 0
if VA_IMMDeviceEnumerator_GetDevice(deviceEnumerator, device_desc, device) = 0
goto VA_GetDevice_Return
if device_desc is integer
{
m2 := device_desc
if m2 >= 4096
{
ObjAddRef(device := m2)
goto VA_GetDevice_Return
}
}
else
RegExMatch(device_desc, "(.*?)\s*(?::(\d+))?$", m)
if m1 in playback,p
m1 := "", flow := 0
else if m1 in capture,c
m1 := "", flow := 1
else if (m1 . m2) = ""
m1 := "", flow := 0
else
flow := 2
if (m1 . m2) = ""
{
VA_IMMDeviceEnumerator_GetDefaultAudioEndpoint(deviceEnumerator, flow, 0, device)
goto VA_GetDevice_Return
}
VA_IMMDeviceEnumerator_EnumAudioEndpoints(deviceEnumerator, flow, 1, devices)
if m1 =
{
VA_IMMDeviceCollection_Item(devices, m2-1, device)
goto VA_GetDevice_Return
}
VA_IMMDeviceCollection_GetCount(devices, count)
index := 0
Loop % count
if VA_IMMDeviceCollection_Item(devices, A_Index-1, device) = 0
if InStr(VA_GetDeviceName(device), m1) && (m2 = "" || ++index = m2)
goto VA_GetDevice_Return
else
ObjRelease(device), device:=0
VA_GetDevice_Return:
ObjRelease(deviceEnumerator)
if (devices)
ObjRelease(devices)
return device ; may be 0
}
VA_GetDeviceName(device)
{
static PKEY_Device_FriendlyName
if !VarSetCapacity(PKEY_Device_FriendlyName)
VarSetCapacity(PKEY_Device_FriendlyName, 20)
,VA_GUID(PKEY_Device_FriendlyName :="{A45C254E-DF1C-4EFD-8020-67D146A850E0}")
,NumPut(14, PKEY_Device_FriendlyName, 16)
VarSetCapacity(prop, 16)
VA_IMMDevice_OpenPropertyStore(device, 0, store)
DllCall(NumGet(NumGet(store+0)+5*A_PtrSize), "ptr", store, "ptr", &PKEY_Device_FriendlyName, "ptr", &prop)
ObjRelease(store)
VA_WStrOut(deviceName := NumGet(prop,8))
return deviceName
}
VA_WStrOut(ByRef str) {
str := StrGet(ptr := str, "UTF-16")
DllCall("ole32\CoTaskMemFree", "ptr", ptr)
}
VA_GUID(ByRef guid_out, guid_in="%guid_out%") {
if (guid_in == "%guid_out%")
guid_in := guid_out
if guid_in is integer
return guid_in
VarSetCapacity(guid_out, 16, 0)
DllCall("ole32\CLSIDFromString", "wstr", guid_in, "ptr", &guid_out)
return &guid_out
}
VA_IMMDevice_OpenPropertyStore(this, Access, ByRef Properties) {
return DllCall(NumGet(NumGet(this+0)+4*A_PtrSize), "ptr", this, "uint", Access, "ptr*", Properties)
}
VA_IMMDevice_Activate(this, iid, ClsCtx, ActivationParams, ByRef Interface) {
return DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "ptr", VA_GUID(iid), "uint", ClsCtx, "uint", ActivationParams, "ptr*", Interface)
}
VA_IMMDeviceEnumerator_GetDevice(this, id, ByRef Device) {
return DllCall(NumGet(NumGet(this+0)+5*A_PtrSize), "ptr", this, "wstr", id, "ptr*", Device)
}
VA_IMMDeviceEnumerator_GetDefaultAudioEndpoint(this, DataFlow, Role, ByRef Endpoint) {
return DllCall(NumGet(NumGet(this+0)+4*A_PtrSize), "ptr", this, "int", DataFlow, "int", Role, "ptr*", Endpoint)
}
VA_IMMDeviceEnumerator_EnumAudioEndpoints(this, DataFlow, StateMask, ByRef Devices) {
return DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "int", DataFlow, "uint", StateMask, "ptr*", Devices)
}
VA_IMMDeviceCollection_GetCount(this, ByRef Count) {
return DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "uint*", Count)
}
VA_IMMDeviceCollection_Item(this, Index, ByRef Device) {
return DllCall(NumGet(NumGet(this+0)+4*A_PtrSize), "ptr", this, "uint", Index, "ptr*", Device)
}
VA_IAudioMeterInformation_GetPeakValue(this, ByRef Peak) {
return DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "float*", Peak)
}