문제

Microsoft Search에서 인덱서를 프로그래밍 방식으로 시작/정지/일시 중지하는 방법을 결정하고 싶습니다.

이와 같은 프로그램에서 수행 한 것을 보았 기 때문에 가능하다는 것을 알고 있습니다. http://brandontools.com/files/folders/sidebar_gadgets/entry511.aspx

그러나 MSDN이나 어디서나 문서를 찾을 수 없습니다.

기존 서비스 제어 방법으로 제어 할 수있는 "Windows 검색"서비스가 있습니다. 그러나이 서비스를 시작/중지하면 검색 자체의 가용성이 변경됩니다. 인덱서 만 제어하고 싶습니다.

인덱서와 상호 작용하는 방법을 설명하는 문서를 찾을 수있는 곳을 아는 사람이 있습니까? 내 검색 기술이 실패했습니다.

도움이 되었습니까?

해결책

인덱싱 부품을 단순히 비활성화하는 방법은 없습니다. 전부 또는 전혀 서비스입니다. WSEARCH 서비스 상태에 대한 설명 :

"파일, 이메일 및 기타 컨텐츠에 대한 콘텐츠 인덱싱 및 속성 캐싱 (Extensibility API를 통해)을 제공합니다. 서비스는 파일 및 이메일 알림에 수정 된 컨텐츠를 색인화하거나 비활성화하는 경우 Explorer가 Virtual을 표시 할 수 없습니다. 항목의 폴더보기 및 탐색기의 검색은 항목별로 느린 검색으로 돌아갑니다. "

그러나 드라이브/폴더 속성을 통해 제어 할 수 있습니다. Explorer에서 개별 드라이브를 위해 전환 할 수 있습니다 (드라이브의 속성 참조; "인덱싱 서비스 허용 ..."옵션이 있습니다), 또는 폴더의 경우 (폴더 속성 -> 고급 -> "빠른 검색의 경우 인덱싱 서비스를 허용하십시오 ...").

편집하다 ... 약간의 인터넷 검색 및 위의 속성을 사용할 수 있습니다. MSDN 페이지를 보면 System.io.FileAttributes, 재산이 있습니다 NotContentIndexed 설명과 함께 운영 체제의 컨텐츠 인덱싱 서비스에 의해 파일이 색인화되지 않습니다.. 나는 당신이 이것을 개별 폴더에 설정할 수 있어야한다고 가정합니다. 드라이브 레벨 (드라이브를 통해 재귀적인 실행없이)에 설정된 경우 이것이 작동하는지 모르겠지만, 궁극적으로 달성하려는 모든 것에 대한 헤드 스타트를 제공하기를 바랍니다.

다른 팁

Microsoft에 따르면 공식적인 방법은 없습니다.

이 같은:

ServiceController Service = New ServiceController ( "WSEARCH");

service.start ();

또는

service.stop ();

다음은 Windows 검색과 프로그래밍 방식으로 상호 작용하는 것에 대한 훌륭한 자습서입니다. Joyofcode의 기사.

그만큼 Windows 검색 3.x SDK Windows Search 3 또는 4에 대해 작동하는 .NET API를 제공합니다.

불행히도 일시 정지/이력서를 드러내지 않습니다. 내가 찾은 모든 인덱스 제어 샘플은 WMI를 사용하여 검색 서비스를 중지합니다. 그것은 분명히 인덱싱을 중단하지만 검색 자체를 희생시키면서 사용할 수 없습니다.

오래된 실이지만 나는 그것을 가로 질러 달렸다. 다른 사람도 할 수도 있습니다.

Autoit 스크립트를 사용하여 인덱싱 옵션을 열고 대화 상자에서 일시 정지 버튼을 클릭하십시오.

"실행"대화 상자 (시작 | 실행), systemROOT % system32 compmgmt.msc /s를 입력하고 마지막 것을 펼치십시오.

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