나는 어떻게 프로그래밍 방식으로 조작 Windows 바탕 화면 아이콘을까?

StackOverflow https://stackoverflow.com/questions/131690

문제

몇 년 전,저는 순수하려 쓸 작은 응용 프로그램을 저장 내 전략적으로 배치 바탕 화면 아이콘이었기 때문에 아픈 그들을 끌어들은 위치 때 이벤트 재설정합니다.사용하기 위해 개발했습니다 매장 방법으로 너무 많은 시간을 갖는 데 실패하는 방법을 찾을 쿼리를 훨씬 적은 저장하고 다시 설정,내 아이콘'데스크탑 위치입니다.

누구나 알고있는 윈도우 계속 이 정보하고 있는 경우에는 API 를 설정을까?

감사합니다, 리

도움이 되었습니까?

해결책

내가 틀리지 않는 경우 데스크탑은 그냥 목록,그리고 당신은 당신을 보내 LVM_SETITEMPOSITION 메시지를 처리합니다.

I googled 조금 어떤 c#코드를 찾을 수 없를 들어 보았지만,나는 찾을 다음과 같은 문서입니다. Torry:...get/set 의 위치를 바탕 화면 아이콘?.그것은 델파이드,하지만 난 그것을 찾을 수 몇 가지 P/호출할 수 있로 번역하는 c#.

다른 팁

데스크탑은 ListView 컨트롤 일 뿐이며 LVM_SetItemPosition을 사용하여 핸들을 가져 와서 메시지를 전송할 수 있습니다.

그러나 lvmgetitempos를 사용하여 아이콘 위치를 얻는 것이 조금 더 복잡합니다. LPARAM과 같은 포인트 구조에 대한 포인터를 전달해야합니다. 그렇게하려고하면 탐험가가 충돌 할 것입니다. 문제는 주소 공간에서 포인터를 전달했는데, 이는 제어가 탐색기 주소 공간에서 포인터로 해석되었습니다. 아야!

내가 사용한 솔루션은 DLL을 Explorer 프로세스에 주입하여 메시지를 보내는 것입니다. 그런 다음 직책 정보를 프로세스로 되돌릴 수있는 방법이 있어야합니다.

나는 여전히 이것을 조사하고 있으며, 마침내 무언가를 얻을 때 결과를 게시 할 것입니다. Davy의 게시물 덕분에 고전적인 VB 구현도 찾았 기 때문에 이것을 게시하고 있습니다.

간호사 메모리 통신을 사용하는 데스크탑 아이콘

그리고 그것은 아마도 내 코드의 기초가 될 것입니다.

API에 대해 전혀 모르지만 Ultramon을 알고 있습니다.http://www.realtimesoft.com/ultramon/)는 아이콘 배치를 보존하기위한 기능이 포함되어 있습니다 (아이콘 위치를 보존하는 데 사용한 적이 없지만 여러 모니터 사용에 필수 불가능합니다). 최신 베타 릴리스는 Vista에서 완벽하게 작동하며 (때로는 RDP를 통해 처음에 컴퓨터에 로그인 할 때 약간의 결함이있는 경우를 제외하고) 물론 XP에는 아무런 문제가 없었습니다. 나는 지금 그것을 4 년 넘게 사용했습니다.

그리고 여러 모니터 사용에 가장 적합한 유틸리티라고 언급 했습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top