Steve 2021.08.19 20:31 수정/삭제 댓글쓰기
안녕하세요. 코딩을 즐기는 아마추어 서생입니다. HTA에서 VBScript로 파일을 만들고 있습니다. Script를 시작하기 위하여 열어놓은 윈도우 탐색기를 닫는 루틴이 되지 않아서 Googling 하다가 여기 블로그 https://xtales.tistory.com/202(컨트롤 동적 생성과 실행중인 탐색기(폴더뷰어,인터넷창)에 대한 예제입니다.)에서 힌트를 얻어 아래와 같이 코딩을 했습니다. 감사합니다. 그러나 성공하지 못했습니다. 오류가 발생할 때도 있고 않을 때도 있으나 결과는 실패입니다. 이러다 보니 부끄럽게도 아직도 무엇이 문제인지 알지 못합니다. 도움말을 주시면 감사하겠습니다. 코드에 보면 오류 발생 부분에 오류 설명을 삽입했으니 참고 바랍니다. Steve@crowncert.com
'윈도우 탐색기 닫기
Set objWSH = CreateObject("Shell.Application")
Set WshShell = CreateObject("WScript.Shell")
For Each WINDW In objWSH.Windows
MsgBox "WINDW.Name = " & WINDW.Name
MsgBox "TypeName(WINDW.document) = " & TypeName(WINDW.document)
MsgBox "FolderPath = " & WINDW.document.Folder.self.path
'오류: 개체가 이 속성 또는 메서드를 지원하지 않습니다.: 'WINDW.document.Folder'
MsgBox "strSourceDir = " & "I:\MSDApp"
If TypeName(WINDW.document) = "IShellFolderViewDual3" Then
'If WINDW.Name = "Windows 탐색기" Then
If LCase(WINDW.document.Folder.self.path) = LCase(strSourceDir) Then
'WINDW.Document.Folder.Self.Path does not apply to all Window object??'
On Error Resume Next
'WINDW.quit
QuitWE
On Error GoTo 0
Exit For
End If
End If
Next
Sub QuitWE()
'--------------------------------------------
Dim objFSO
Dim strTempFile, objVBSFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
strTempFile= "C:\QuitApp.vbs"
Set objVBSFile = objFSO.opentextfile(strTempFile, 8, true)
objVBSFile.writeline "' NAME: QuitApp.vbs"
objVBSFile.writeline "'you may delete this temp file"
objVBSFile.writeline "Dim WshShell"
objVBSFile.writeline "Dim temp"
objVBSFile.writeline "Set WshShell = WScript.CreateObject(""WScript.Shell"")"
objVBSFile.writeline "Set oWMI = GetObject(""winmgmts:\\.\root\cimv2"")"
objVBSFile.writeline "Set Processes = owmi.ExecQuery(""select processid from Win32_Process where name ='explorer.exe'"")"
objVBSFile.writeline "For Each Process In Processes"
objVBSFile.writeline " iPID =Process.ProcessID"
objVBSFile.writeline " WshShell.AppActivate(iPID)"
'note using "n" instead of "r" will allow you to minimize Alt+SpaceBar, r
objVBSFile.writeline " WshShell.SendKeys ""+(%"" & ""{F4})""" 'ALT + F4
objVBSFile.writeline "temp=timer"
objVBSFile.writeline "do while timer-temp<10000" '10초
objVBSFile.writeline "loop"
objVBSFile.writeline "Next"
objVBSFile.close
'Run the maximize script
wshshell.run strtempFile,0,True
'Delete the script
objfso.deletefile(strTempFile)
End Sub
----------- 이하 여백
Nightly Luna
2017.11.29 19:35 신고
수정/삭제
댓글쓰기
너무 오랫동안 관리를 안한것 같습니다(...).
초대장을 보내드리지 못해서 죄송합니다.
longchamp sale
2013.03.30 07:27
수정/삭제
댓글쓰기
아픈 상처만 내게 남겨질테니까