Microsoft MVP성태의 닷넷 이야기
Vista : 34. IE 재시작 방법 [링크 복사], [링크+제목 복사],
조회: 9869
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 


Vista Compatibility Team Blog
- Internet Explorer caches settings
; http://blogs.msdn.com/vistacompatteam/archive/2007/02/07/internet-explorer-caches-settings.aspx

방금 전의 토픽에서 "RestartManager"를 언급해 드렸는데요.
바로 이 예제에서 언급된 것입니다.

IE 의 경우, 일부 설정 사항들을 캐쉬해놓고 있는데, 만약 그런 값들을 변경시켰다면 IE를 재시작해야만 반영이 된다고 합니다. 그럴 때 쓸 수 있는 방법으로 "RestartManager"를 제시하고 있습니다. 관련 코드까지 실어두어서 ^^ 도움이 되겠습니다.

아래는 똑같이 복사해 온 코드입니다.


DWORD dwVal = ERROR_SUCCESS; 
DWORD dwSessionHandle = (DWORD)-1; 
WCHAR wszSessionKey[CCH_RM_SESSION_KEY+1]; 
UINT nProcInfo = 100; 
UINT nProcInfoNeeded; 
DWORD lpdwRebootReason = 0; 
 
    //for demo purposes, hardcoded paths are used. 
DWORD nFiles = 2; 
LPWSTR rgsFiles[] = { L"c:\\program files\\internet explorer\\iexplore.exe", L"c:\\program files\\internet explorer\\ieuser.exe" }; 
 
RM_PROCESS_INFO *rgProcs = new RM_PROCESS_INFO[nProcInfo]; 
if (NULL == rgProcs) 
{ 
dwVal = ERROR_NOT_ENOUGH_MEMORY; 
goto RM_END; 
} 
 
// Starting Session 
dwVal = RmStartSession(&dwSessionHandle, 0, wszSessionKey); 
if (ERROR_SUCCESS != dwVal) 
goto RM_END; 
 
// Register items 
dwVal = RmRegisterResources(dwSessionHandle, nFiles, (LPCWSTR*) rgsFiles, 0, NULL, 0, NULL); 
if (ERROR_SUCCESS != dwVal) 
goto RM_END; 
 
// Getting affected apps 
dwVal = RmGetList(dwSessionHandle, &nProcInfoNeeded, &nProcInfo, rgProcs, &lpdwRebootReason); 
if (ERROR_SUCCESS != dwVal) 
goto RM_END; 
 
// Apply filter to shutdown iexplore processes only 
dwVal = RmAddFilter(dwSessionHandle, (LPCWSTR) rgsFiles[1], NULL, NULL, RmNoShutdown); 
if (ERROR_SUCCESS != dwVal) 
goto RM_END; 
 
// Shutdown iexplore processes 
dwVal = RmShutdown(dwSessionHandle, 0, NULL); 
if (ERROR_SUCCESS != dwVal) 
goto RM_END; 
 
// Remove previous filter & apply filter to shutdown ieuser only 
dwVal = RmRemoveFilter(dwSessionHandle, (LPCWSTR) rgsFiles[1], NULL, NULL); 
if (ERROR_SUCCESS != dwVal) 
goto RM_END; 
 
dwVal = RmAddFilter(dwSessionHandle, (LPCWSTR) rgsFiles[0], NULL, NULL, RmNoShutdown); 
if (ERROR_SUCCESS != dwVal) 
goto RM_END; 
 
// Shutdown ieuser process 
dwVal = RmShutdown(dwSessionHandle, 0, NULL); 
if (ERROR_SUCCESS != dwVal) 
goto RM_END; 
 
// Remove filter applied to ieuser process 
dwVal = RmRemoveFilter(dwSessionHandle, (LPCWSTR) rgsFiles[0], NULL, NULL); 
if (ERROR_SUCCESS != dwVal) 
goto RM_END; 
 
// Apply filter to restart ieuser process only 
dwVal = RmAddFilter(dwSessionHandle, (LPCWSTR) rgsFiles[0], NULL, NULL, RmNoRestart); 
if (ERROR_SUCCESS != dwVal) 
goto RM_END; 
 
// Restart ieuser 
dwVal = RmRestart(dwSessionHandle, NULL, NULL); 
if (ERROR_SUCCESS != dwVal) 
goto RM_END; 
 
// Remove previous filter & add filter to restart iexplore only 
dwVal = RmRemoveFilter(dwSessionHandle, (LPCWSTR) rgsFiles[0], NULL, NULL); 
if (ERROR_SUCCESS != dwVal) 
goto RM_END; 
 
dwVal = RmAddFilter(dwSessionHandle, (LPCWSTR) rgsFiles[1], NULL, NULL, RmNoRestart); 
if (ERROR_SUCCESS != dwVal) 
goto RM_END; 
 
// Restart iexplore 
dwVal = RmRestart(dwSessionHandle, NULL, NULL); 
if (ERROR_SUCCESS != dwVal) 
goto RM_END; 
 
RM_END: 
 
if (NULL != rgProcs) 
delete [] rgProcs; 
 
// Clean up session 
if (-1 != dwSessionHandle) 
RmEndSession(dwSessionHandle); 
 
return dwVal;



[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 2/8/2007]


비밀번호

댓글 작성자
 




... 31  [32]  33  34  35  36  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
398정성태8/12/200610498Debug : 4. SOS로 Managed 객체의 크기 구하는 방법
397정성태8/12/200611127IIS - 4. Extending the TreeView in IIS 7 in Windows Vista파일 다운로드1
396정성태8/11/200610386TFS : 21. Process Template Schemas Download
395정성태8/10/200610241개발환경 구성 : 21. Introduction to Visual Studio 2005 Team System Guide
394정성태8/10/200612265개발환경 구성 : 20. VHD 파일 크기 줄이기파일 다운로드1
392정성태8/9/200610266개발환경 구성 : 19. 몇 가지 유용한 ASP.NET 아티클 링크
393정성태8/10/200610001    답변글 개발환경 구성 : 19.1 몇 가지 유용한 ASP.NET 아티클 링크
391정성태8/9/20069698개발환경 구성 : 18. CardSpace 구현 예제파일 다운로드1
390정성태8/9/20069405개발환경 구성 : 17. 주의해야 할 프로그래밍 패턴
389정성태8/8/200614772C# event 와 delegate 의 차이?파일 다운로드1
388정성태8/7/20069254.NET : 10. C# 3.0 소식
387정성태10/20/200610031Vista : 7. System Services change in Windows Vista
385정성태10/20/200610578.NET 3.0 : 2. WCF Service with .asmx extentions 파일 다운로드1
384정성태10/20/200610363Vista : 6. Programming the Windows Vista Event Log [1]
383정성태10/20/200610453Vista : 5. MSDE Will Not Be Supported on Vista
382정성태10/20/200612695Vista : 4. IE 7+ 이름 변경
381정성태8/7/20069237개발환경 구성 : 16. Windows RSS API 사용법파일 다운로드1
380정성태8/4/20069208개발환경 구성 : 15. Windows Command Line Auto Completion
379정성태8/1/20068748.NET : 9. Self compiling scripts for .NET languages: C#, VB.NET and JScript.NET파일 다운로드1
378정성태8/1/20069191개발환경 구성 : 14. [사용설명서] SQL Server Everywhere 버전
377정성태7/31/20069326개발환경 구성 : 13. 도움말 생성기 - Sandcastle
386정성태8/7/20069066    답변글 개발환경 구성 : 13.1 Sandcastle 사용예파일 다운로드1
376정성태7/25/20068764TFS : 20. TFS 사용 현황 사례
375정성태7/25/20068847개발환경 구성 : 12. [CodePlex] 신규 프로젝트 - TFS File Sync
374정성태7/24/200610795Reflection 의 속도 향상을 원한다면?
373정성태7/23/200610004.NET : 8. The ADO.NET Entity Framework Overview [2]
... 31  [32]  33  34  35  36  37  38  39  40  41  42  43  44  45  ...