--- Volume.ahk
+++ Volume1.ahk
@@ -1 +1 @@
-#Requires AutoHotkey v2.0
+#Requires AutoHotkey v1.1
@@ -7 +7 @@
- } else if (SubStr(Target, -4) = ".exe") {
+ } else if (SubStr(Target, -3) = ".exe") {
@@ -10,6 +10,6 @@
- try {
- hw := DetectHiddenWindows(true)
- appName := WinGetProcessName(Target)
- DetectHiddenWindows(hw)
- } catch {
- throw TargetError("Target not found.", -1, Target)
+ hw := A_DetectHiddenWindows
+ DetectHiddenWindows On
+ WinGet appName, ProcessName, % Target
+ DetectHiddenWindows % hw
+ if (appName = "") {
+ throw Exception("Target not found.", -1, Target)
@@ -17,6 +17,6 @@
- GUID := Buffer(16)
- DllCall("ole32\CLSIDFromString", "Str", "{77AA99A0-1BD6-484F-8BC7-2C654C9A9B6F}", "Ptr", GUID)
- IMMDeviceEnumerator := ComObject("{BCDE0395-E52F-467C-8E3D-C4579291692E}", "{A95664D2-9614-4F35-A746-DE8DB63617E6}")
- ComCall(4, IMMDeviceEnumerator, "UInt", 0, "UInt", 1, "Ptr*", &IMMDevice := 0)
- ObjRelease(IMMDeviceEnumerator.Ptr)
- ComCall(3, IMMDevice, "Ptr", GUID, "UInt", 23, "Ptr", 0, "Ptr*", &IAudioSessionManager2 := 0)
+ VarSetCapacity(GUID, 16, 0)
+ DllCall("ole32\CLSIDFromString", "Str", "{77AA99A0-1BD6-484F-8BC7-2C654C9A9B6F}", "Ptr", &GUID)
+ IMMDeviceEnumerator := ComObjCreate("{BCDE0395-E52F-467C-8E3D-C4579291692E}", "{A95664D2-9614-4F35-A746-DE8DB63617E6}")
+ DllCall(NumGet(NumGet(IMMDeviceEnumerator + 0) + 4 * A_PtrSize), "Ptr", IMMDeviceEnumerator, "UInt", 0, "UInt", 1, "Ptr*", IMMDevice := 0)
+ ObjRelease(IMMDeviceEnumerator)
+ DllCall(NumGet(NumGet(IMMDevice + 0) + 3 * A_PtrSize), "Ptr", IMMDevice, "Ptr", &GUID, "UInt", 23, "Ptr", 0, "Ptr*", IAudioSessionManager2 := 0)
@@ -24 +24 @@
- ComCall(5, IAudioSessionManager2, "Ptr*", &IAudioSessionEnumerator := 0) || DllCall("SetLastError", "UInt", 0)
+ DllCall(NumGet(NumGet(IAudioSessionManager2 + 0) + 5 * A_PtrSize), "Ptr", IAudioSessionManager2, "Ptr*", IAudioSessionEnumerator := 0) || DllCall("SetLastError", "UInt", 0)
@@ -26,3 +26,3 @@
- ComCall(3, IAudioSessionEnumerator, "UInt*", &cSessions := 0)
- loop cSessions {
- ComCall(4, IAudioSessionEnumerator, "Int", A_Index - 1, "Ptr*", &IAudioSessionControl := 0)
+ DllCall(NumGet(NumGet(IAudioSessionEnumerator + 0) + 3 * A_PtrSize), "Ptr", IAudioSessionEnumerator, "UInt*", cSessions := 0)
+ loop % cSessions {
+ DllCall(NumGet(NumGet(IAudioSessionEnumerator + 0) + 4 * A_PtrSize), "Ptr", IAudioSessionEnumerator, "Int", A_Index - 1, "Ptr*", IAudioSessionControl := 0)
@@ -31 +31 @@
- ComCall(14, IAudioSessionControl2, "UInt*", &pid := 0)
+ DllCall(NumGet(NumGet(IAudioSessionControl2 + 0) + 14 * A_PtrSize), "Ptr", IAudioSessionControl2, "UInt*", pid := 0)
@@ -36 +36 @@
- ComCall(6, ISimpleAudioVolume, "Int*", &isMuted := 0)
+ DllCall(NumGet(NumGet(ISimpleAudioVolume + 0) + 6 * A_PtrSize), "Ptr", ISimpleAudioVolume, "Int*", isMuted := 0)
@@ -38 +38 @@
- ComCall(5, ISimpleAudioVolume, "Int", !isMuted, "Ptr", 0)
+ DllCall(NumGet(NumGet(ISimpleAudioVolume + 0) + 5 * A_PtrSize), "Ptr", ISimpleAudioVolume, "Int", !isMuted, "Ptr", 0)
@@ -41 +41 @@
- ComCall(4, ISimpleAudioVolume, "Float*", &levelOld := 0)
+ DllCall(NumGet(NumGet(ISimpleAudioVolume + 0) + 4 * A_PtrSize), "Ptr", ISimpleAudioVolume, "Float*", levelOld := 0)
@@ -48 +48 @@
- ComCall(3, ISimpleAudioVolume, "Float", levelNew, "Ptr", 0)
+ DllCall(NumGet(NumGet(ISimpleAudioVolume + 0) + 3 * A_PtrSize), "Ptr", ISimpleAudioVolume, "Float", levelNew, "Ptr", 0)
@@ -51 +51 @@
- ObjRelease(ISimpleAudioVolume.Ptr)
+ ObjRelease(ISimpleAudioVolume)
@@ -53,0 +54,11 @@
+
+ProcessGetName(Pid) {
+ sz := VarSetCapacity(name, 1024, 0)
+ hProc := DllCall("OpenProcess", "UInt", 0x0410, "Int", false, "UInt", Pid, "Ptr")
+ if (hProc != 0) {
+ DllCall("psapi\GetModuleBaseName", "Ptr", hProc, "Ptr", 0, "Str", name, "UInt", sz)
+ DllCall("CloseHandle", "Ptr", hProc)
+ }
+ VarSetCapacity(name, -1)
+ return name
+}