2012-06-17 3 views
3

다음을 원합니다. 단어 문서가 열려있을 때마다 방법으로 저장해야합니다. 사용자가 입력을 시작합니다. 문서를 편집하는 시간을 절약하고 싶습니다. 저는 첫 번째 단계에 있으며 사용자가 문서를 열 때 검색을 관리 할 수 ​​없습니다. Microsoft.Office.Interop.Word를 사용해 보았습니다. 그러나이 방법으로 사용자가 문서를 열지 않는 한 단어 응용 프로그램을 시작하고 싶지 않습니다. 하지만 Microsoft.Office.Interop.Word.Application을 초기화하려고 할 때 가능한 유일한 방법입니다. Microsoft.Office.Interop.Word API를 사용하여 사용자가 파일을 여는 이벤트를 감지하는 방법이 있습니까? 또한, 나는 어쩌면 Microsoft.Office.Interop.Word.Document를 사용하고 싶었지만사용자가 워드 문서를 열 때와 입력 할 때 (C#)

using Word = Microsoft.Office.Interop.Word; 
Word.Application oWord = new Word.Application(); 
oWord.Visible = true; 
oWord.DocumentChange += new Word.ApplicationEvents4_DocumentChangeEventHandler(oWord_DocumentChange); 
... 

private void oWord_DocumentChange() 
{ 
    Console.WriteLine("DocumentChange"); 
} 

(그냥 워드 오피스 응용 프로그램을 열고 이후, 분명이 작동하지 않습니다)

나는 다음과 같은 시도 할 수 없었다. 나는 내 자신의 방법을 개발하기 시작했으나이 API는 이미 빌드 된 이후 낭비 일뿐입니다. 어떤 도움이 될 것입니다 .. 감사합니다.

+0

필자는이 방법을 사용하지 않았지만 파일 업데이트를 사용하여 파일의 업데이트를 확인 했습니까? – Chris

+1

문서에 매크로를 추가해 보았습니까? 해당 매크로 문서 열기, 문서 변경 및 문서 닫기 이벤트가 있어야합니다. –

+1

Interop을 통한 Office 자동화 (여기서 설명한 내용)와 Office Add-In (Ashish가 답변에서 제안하는 것)의 차이점은 코드에서 Office 개체를 제어할지 (자동화) 또는 원하는지 여부입니다 Office (추가 기능)를 정상적으로 사용할 때 이벤트에 응답하는 코드입니다. –

답변

3

이미 Application level Add-in을 만들려고 했습니까? 해당 추가 기능에는 문서에 대한 첫 번째 변경 사항과 마지막 변경 사항을 감지하는 데 필요한 모든 이벤트 처리기가 있어야합니다.

+0

이것은 interop 솔루션보다는 오피스 애드 인 유형의 솔루션입니다. –

0

어쩌면 Word의 열린 인스턴스를 매번 확인할 수 있고, 발견하면 interop를 사용하여 해당 인스턴스를 가져올 수 있습니다.

당신은 아마 말씀의 인스턴스를 확인하기 위해 FindWindow 또는 EnumWindows 같은 것을 사용할 수 있습니다 (또는이 일부 닷넷 내가 지금 기억할 수 있음을 수행하는 방법에 내장 될 수 있음), 다음 아마도에 GetObject를 사용 인스턴스를 가져 오십시오. 이 linkGetObjectCreateObject을 나타냅니다.

+0

답장을 보내 주셔서 감사합니다. 매우 감사. 나는 파일 워처에서도 그것을 시도했다. 그것은 효과가 있지만 복잡합니다. 나는이 기본 설명서를 사용하는 동안 com 추가를 시도 : http://support.microsoft.com/Default.aspx?kbid=302901 내 유일한 관심사는 지금 키보드 입력이 단어에서 사용자로부터 만들어진 때를 감지하는 방법입니다 문서. 나는 위에서 언급했듯이 나의 최종 목표는 사용자가 파일을 작업 한 시간을 합산하는 것입니다. – dusm

+0

@dusm : Ashish가 말했듯이, 사용자가 문서에서 무언가를 바꿀 때 당신이들을 수있는 이벤트가있을 수 있습니다. 그러나 어떤 이유로 든 적합하지 않은 경우 [키보드 후크] (http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx)와 [Mouse Hook] (http://blogs.msdn.com/b/toub/archive/2006/05/03/589468.aspx) 무언가가 변하고있는 것을보기 위해, 그러나 그것은 아마도 아주 혼란스러워 할 것입니다. –

+0

고마워, 그게 내가 한 짓과 아주 비슷해. :) – dusm

관련 문제