주의사항 : 비주얼 스튜디오의 솔루션 닫기를 누른 후 사용한다.
(비주얼 스튜디오 Title name을 "Microsoft Visual Studio"로 인식하여 스크립트 진행)
(2008-06-13) Regist_vssettings.vbs 스크립트에 문제가 있어서 수정하였습니다.
(2008-07-15) Window XP SP3 에서는 SendKeys Method의 짧은 시간 반복 입력을 막은 것으로 추측됩니다.
Option Explicit
' 기본 Object 가져오기
Dim Shell : Set Shell = WScript.CreateObject("WScript.Shell")
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
Dim WshEnv : Set WshEnv = Shell.Environment("Process")
Dim ProgramDir : ProgramDir = WshEnv("ProgramFiles")
'CMD 윈도우 98에서도 적용 가능하게 COMSPEC으로 가져온다.
Dim COMSPEC : COMSPEC = Shell.ExpandEnvironmentStrings("%comspec%")
'각 Step별 윈도우 Title 확인
Const WindowTitleName_01 = "Microsoft Visual Studio"
Const WindowTitleName_02 = "설정 가져오기 및 내보내기 마법사"
Const WindowTitleName_03 = "설정 파일 선택"
'비주얼 스튜디오 사용자 정의 설정 파일
Dim strSetupFile : strSetupFile = "TTF.vssettings"
'Main 함수 실행 후 종료
MainFunction
Wscript.quit
'Main 함수
Sub MainFunction
' Microsoft Visual Studio - Window Title 변경
WaitForActiveWindow WindowTitleName_01, 3
Wscript.Sleep 200
SendKeys "%(FT)" ' ALT + F + T
Shell.Popup "Visual Studio 프로젝트를 닫았습니다. 3초 대기 후 진행합니다.", 3, "3 second wait.", 48
WaitForActiveWindow WindowTitleName_01, 3
Wscript.Sleep 200
SendKeys "%(TI)" ' ALT + T + I
' 설정 가져오기 및 내보내기 마법사 - Window Title 변경
WaitForActiveWindow WindowTitleName_02, 3
Wscript.Sleep 200
SendKeys "%(I)" ' ALT + I
SendKeys "%(N)" ' ALT + N
WaitForActiveWindow WindowTitleName_02, 3
Wscript.Sleep 200
SendKeys "%(O)" ' ALT + O
SendKeys "%(N)" ' ALT + N
WaitForActiveWindow WindowTitleName_02, 3
Wscript.Sleep 200
SendKeys "%(B)" ' ALT + B
' 설정 파일 선택 - Window Title 변경
WaitForActiveWindow WindowTitleName_03, 3
Wscript.Sleep 200
SendKeys "%(N)" ' 파일이름 입력
'설정파일 경로 구하기
Dim strFileFullPath
GetFileFullPath strSetupFile, strFileFullPath
WaitForActiveWindow WindowTitleName_03, 3
Wscript.Sleep 200
SendKeys strFileFullPath ' 파일 경로 + 이름 입력
SendKeys "%(O)" ' ALT + O (파일 열기)
WaitForActiveWindow WindowTitleName_02, 3
Wscript.Sleep 500
SendKeys "%(N)" ' ALT + N
SendKeys "%(F)" ' ALT + F
WaitForActiveWindow WindowTitleName_02, 3
SendKeys "{ENTER}" ' 닫기 Enter
End Sub
Sub GetFileFullPath(strFileName, strFileFullPath)
Dim objFile
Set objFile = FSO.GetFile( strFileName )
strFileFullPath = FSO.GetAbsolutePathName(objFile)
End Sub
'Window 이름이 동일한 윈도우 창을 활성화
Sub WaitForActiveWindow(WindowName, Second)
if Second < 0 Then
Shell.Popup "음수 시간을 설정할 수 없습니다.", 3, "Error!", 48
Wscript.Quit
End if
Dim TimeOutCount : TimeOutCount = Second * 10
While ( Shell.AppActivate( WindowName ) = False )
Wscript.Sleep 1
if TimeOutCount < 0 Then
Shell.Popup WindowName & " 윈도우를 찾을 수 없습니다. 실행을 종료합니다.", 5, "Can't Find Window", 48
Wscript.Quit
End if
Wscript.Sleep 100
TimeOutCount = TimeOutCount - 1
WEnd
Wscript.Sleep 200
End Sub
'SendKey를 Sleep(200)로 감싼다. XP SP3 버그 임시 해결 by TTF
Sub SendKeys( Keys )
Wscript.Sleep 200
Shell.SendKeys Keys
End Sub
Macro 추가 버전
Regist_vssettings.vbs
VisualStudio_Settings.zip
덧글을 달아 주세요