mirror of
				https://github.com/onyx-and-iris/voicemeeter-rb.git
				synced 2025-10-31 04:11:46 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			867 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			867 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| module Voicemeeter
 | |
|   private
 | |
| 
 | |
|   module Install
 | |
|     extend Logging
 | |
| 
 | |
|     OS_BITS = (FFI::Platform::CPU.downcase == "x64") ? 64 : 32
 | |
| 
 | |
|     def get_vmpath
 | |
|       reg_key = [
 | |
|         :Software,
 | |
|         ((OS_BITS == 64) ? :WOW6432Node : nil),
 | |
|         :Microsoft,
 | |
|         :Windows,
 | |
|         :CurrentVersion,
 | |
|         :Uninstall,
 | |
|         :"VB:Voicemeeter {17359A74-1236-5467}"
 | |
|       ]
 | |
| 
 | |
|       Win32::Registry::HKEY_LOCAL_MACHINE.open(
 | |
|         reg_key.compact.join("\\")
 | |
|       ) do |reg|
 | |
|         value = reg["UninstallString"]
 | |
| 
 | |
|         Pathname.new(value).dirname
 | |
|       end
 | |
|     rescue Win32::Registry::Error => e
 | |
|       err_msg = [
 | |
|         "#{e.class.name}: #{e.message}",
 | |
|         *e.backtrace
 | |
|       ]
 | |
|       logger.error err_msg.join("\n")
 | |
|       raise Errors::VMInstallError.new "unable to read Voicemeeter path from the registry"
 | |
|     end
 | |
| 
 | |
|     module_function :get_vmpath
 | |
|   end
 | |
| end
 |