2009-03-15 1 views
12

그래, 이건 바보 같은 질문 인 것 같아. 다소 평범한 작업을 끝내기 위해 필요한 일회용 해킹 일 뿐이므로 좀 더 재미있는 무언가로 넘어갈 수있다.C#에서 프로그래밍 방식으로 Windows 바탕 화면을 새로 고치는 방법 (예 : F5)?

편집 : 더 많은 정보가 도움이 될 수 있습니다. 바탕 화면에서 바로 가기를 제거하려고하는데 사용자가 즉시 제거했는지 확인해야합니다 (즉, F5 키를 누를 필요가 없음).

+0

PS 호출. 인터넷 검색은 expertsexchange의 누군가가 같은 질문을하지만, 나는 그들의 웹 사이트에 가입하고 싶지 않음을 드러냅니다. – DSO

+1

@DSO : 페이지 하단으로 스크롤하여 전문가 교환에 대한 답변을 얻을 수 있다고 생각합니다 (전문가 교환에서 대시를 사용해야합니다. 그렇지 않으면 "expert-something-else"처럼 보입니다.)]) –

답변

36

SHChangeNotify API를 사용할 수 있습니다.

[System.Runtime.InteropServices.DllImport("Shell32.dll")] 
private static extern int SHChangeNotify(int eventId, int flags, IntPtr item1, IntPtr item2); 

다음이 방법

SHChangeNotify(0x8000000, 0x1000, IntPtr.Zero, IntPtr.Zero); 
+0

기꺼이 도와 드리겠습니다. –

+0

감사합니다. 정말 내 문제를 해결합니다. – Sean

+1

@DSO 어떻게 "자르지"않았습니까? – SepehrM

2

나는 IActiveDesktop::ApplyChanges을 찾고 있다고 생각합니다. Microsoft가 COM Interop에서 제공하는 모든 documentation을 사용하면 COM 인터페이스를 통해 액세스해야합니다.

+0

팁을 주셔서 감사합니다, 아마 이것이 작동 할 것 같은데 ...하지만 Tom의 Win32 접근 방식은 지금 당장 사용하기가 좀 더 쉽습니다. – DSO

관련 문제