주의사항 : 비주얼 스튜디오의 솔루션 닫기를 누른 후 사용한다.
(비주얼 스튜디오 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 추가 버전
덧글을 달아 주세요