[AHK] 간단한 Hyper-V 스위치 매크로 (Win8 64bit)
안녕하세요.
윈8 64비트에는 가상화 기술인 Hyper-V 기능이 포함되어있습니다. (코어 버전은 미포함)
Hyper-V는
마이크로소프트 하이퍼 V(Hyper-V, 코드이름 Viridian[1])는 x64 시스템을 위한 하이퍼바이저 기반의 가상화 시스템이다.
출처 위키백과
한마디로 VMware같은 가상 머신 프로그램입니다.
기본적으로 Disable 되어있으며 사용하려면 Windows 추가 기능 관리에서 켜야됩니다.
아무튼 다 좋은데 Hyper-V 기능을 켜면 일부 프로그램에서 문제가 생기는 경우가 있습니다.
대표적으로 예전에 나온 게임들에서 Hyper-V의 가상 드라이버들을 인식해서 오류로 실행이 안 된다던지의 문제이지요.
그래서 필요할때 끄고 켜기 위해서 오토핫키 매크로로 만들었습니다.
덧붙여서 제어판에 Hyper-V 매니저 바로가기를 추가하는 기능과
매크로에서 바로 매니저를 실행하는 버튼을 만들었습니다.
기능 끄고 켜기는 dism.exe를 실행하고 사용자가 직접 재부팅을 선택하는 도스창이 뜨게됩니다.
한마디로 재부팅이 필요합니다.
그냥 간단한 바로가기라고 보시면 됩니다.
다운로드
아래는 소스입니다.
/*
* * * Compile_AHK SETTINGS BEGIN * * *
[AHK2EXE]
Exe_File=%In_Dir%\HyperV.exe
Alt_Bin=C:\Program Files\AutoHotkey\Compiler\Unicode 64-bit.bin
Compression=0
Created_Date=1
Execution_Level=4
[VERSION]
Set_Version_Info=1
Company_Name=w3tech
File_Description=Hyper-V Switch
File_Version=0.1.0.0
Inc_File_Version=1
Legal_Copyright=w3tech.tistory.com
Original_Filename=HyperV
Product_Name=Hyper-V Switch
Product_Version=1.1.16.5
Set_AHK_Version=1
[ICONS]
Icon_1=%In_Dir%\img\hyperv.ico
Icon_2=%In_Dir%\img\hyperv.ico
Icon_3=%In_Dir%\img\hyperv.ico
Icon_4=%In_Dir%\img\hyperv.ico
Icon_5=%In_Dir%\img\hyperv.ico
Icon_6=%In_Dir%\img\hyperv.ico
Icon_7=%In_Dir%\img\hyperv.ico
* * * Compile_AHK SETTINGS END * * *
*/
#NoEnv
#SingleInstance force
#Persistent
Gui, New
Gui, Add, Picture, x10 y10 w50 h50 Icon1 ,%A_ScriptFullPath%
Gui, Font, s10 w600
Gui, Add, Text, x60 y30 w120 h30 +Center , Hyper-V 스위치
Gui, Font
Gui, Add, GroupBox, x5 y70 w180 h85 , Hyper-V 켜기/끄기
Gui, Add, GroupBox, x5 y160 w180 h85 , Hyper-V 제어판 추가
Gui, Add, Button, x15 y90 w70 h50 , 켜기
Gui, Add, Button, x105 y90 w70 h50 , 끄기
Gui, Add, Button, x15 y180 w70 h50 , 추가
Gui, Add, Button, x105 y180 w70 h50 , 제거
Gui, Add, Button, x25 y255 w140 h40 gRunHM, Hyper-V 매니저 실행
Gui, Show, w190 h300, Hyper-V Switch
return
PopupMsg(msg,result){
if ( result = 0 ){
MsgBox, %msg% 성공!
}else{
MsgBox, %msg% 실패!
}
}
Button켜기:
Run, dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All , %A_WinDir%\system32
return
Button끄기:
Run, dism.exe /Online /Disable-Feature:Microsoft-Hyper-V-All, %A_WinDir%\system32
return
Button추가:
result:=0
RegWrite, REG_SZ, HKEY_LOCAL_MACHINE, SOFTWARE\Classes\CLSID\{e23fd76f-5b20-40e5-a9b2-1be8f0416c26}, , Hyper-V Manager
result:=result+ErrorLevel
RegWrite, REG_SZ, HKEY_LOCAL_MACHINE, SOFTWARE\Classes\CLSID\{e23fd76f-5b20-40e5-a9b2-1be8f0416c26}, InfoTip, Provides management access to your virtualization platform.
result:=result+ErrorLevel
RegWrite, REG_SZ, HKEY_LOCAL_MACHINE, SOFTWARE\Classes\CLSID\{e23fd76f-5b20-40e5-a9b2-1be8f0416c26}, System.ControlPanel.Category, 4
result:=result+ErrorLevel
RegWrite, REG_SZ, HKEY_LOCAL_MACHINE, SOFTWARE\Classes\CLSID\{e23fd76f-5b20-40e5-a9b2-1be8f0416c26}\DefaultIcon, ,%ProgramFiles%\\Hyper-V\\SnapInAbout.dll,-110
result:=result+ErrorLevel
RegWrite, REG_SZ, HKEY_LOCAL_MACHINE, SOFTWARE\Classes\CLSID\{e23fd76f-5b20-40e5-a9b2-1be8f0416c26}\Shell\Open\Command, ,mmc.exe virtmgmt.msc
result:=result+ErrorLevel
RegWrite, REG_SZ, HKEY_LOCAL_MACHINE, SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{e23fd76f-5b20-40e5-a9b2-1be8f0416c26}, ,Hyper-V Manager
result:=result+ErrorLevel
PopupMsg("추가",result)
return
Button제거:
result:=0
RegDelete, HKEY_LOCAL_MACHINE, SOFTWARE\Classes\CLSID\{e23fd76f-5b20-40e5-a9b2-1be8f0416c26}
result:=result+ErrorLevel
RegDelete, HKEY_LOCAL_MACHINE, SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{e23fd76f-5b20-40e5-a9b2-1be8f0416c26}
result:=result+ErrorLevel
PopupMsg("제거",result)
return
RunHM:
Run, %A_WinDir%\system32\mmc.exe virtmgmt.msc,,Hide
return
GuiClose:
CloseButton:
Exit:
ExitApp
return
매크로에 사용된 레지스트리와 명령어 출처는
기능 추가 제거 - http://www.eightforums.com/tutorials/42041-hyper-v-enable-disable-windows-8-a.html
제어판 바로가기 - http://www.eightforums.com/tutorials/25142-hyper-v-manager-add-control-panel-windows-8-a.html