Windows/.NET2011. 7. 19. 15:46


애드인에서 슬라이드쇼중에 마우스클릭 이벤트를 받아서 애드인코드를 실행할 수 있는 방법


// 이미지를 슬라이드에 추가

PowerPont.Shape sh = s.Shapes.AddPicture("C:\\Projects\\Addin\\data\\pie_chart.png",

                                    Microsoft.Office.Core.MsoTriState.msoFalse,

                                     Microsoft.Office.Core.MsoTriState.msoTrue,

                                     320, 240);

// 매크로 실행

sh.ActionSettings[PowerPoint.PpMouseActivation.ppMouseClick].Run = "ShowForm";


위코드에서 ShowForm은 오피스개발도구를 활성화하여 매크로를 편집하여 만든 매크로 함수다.

아래 예는 폼을 하나 띄우는 매크로이다.

Sub ShowForm()

    UserForm1.Show

End Sub


// 브라우져 실행

sh.ActionSettings[PowerPoint.PpMouseActivation.ppMouseClick].Action = PowerPoint.PpActionType.ppActionHyperlink;

sh.ActionSettings[PowerPoint.PpMouseActivation.ppMouseClick].Hyperlink.Address = "http://www.daum..com";

                

// 프로그램 실행

sh.ActionSettings[PowerPoint.PpMouseActivation.ppMouseClick].Action = PowerPoint.PpActionType.ppActionRunProgram;

sh.ActionSettings[PowerPoint.PpMouseActivation.ppMouseClick].Run = @"Notepad.exe";



내가 내린 결론 

 * AddIn client에 직접 확인할 방법은 없으며 메세지를 전달할 중간 통로를 마련하여 해당 통로를 통해서 전달받아야 함.

 * 중간 통로는 서버 또는 파일등을 이용하는 방법이 있을것같다. 서버와 커넥션을 유지하는 애드인이라면 서버에 전송하면 서버가 애드인에 ack를 날리는 식으로 하면 애드인이 인식할 테니깐. 파일은 좀..... 문제가 있는 방법이기는 하나 공유메모리나 다른 더 좋은 기술을 사용해도 되겠지만 짧은 생각에 쉽게 개발할 수 있는 방법은 파일에 정보를 기입하고 애드인은 그 파일을 모니터링하는 방법이 있을 것 같다.

혹... 더 좋은 방법 아시는 분!!!! 정보 공유좀!
 

참고

 PpActionType의 종류는 아래 참조.

Name

Value

Description

ppActionEndShow

6

Slide show ends.

ppActionFirstSlide

3

Returns to the first slide.

ppActionHyperlink

7

Hyperlink.

ppActionLastSlide

4

Moves to the last slide.

ppActionLastSlideViewed

5

Moves to the last slide viewed.

ppActionMixed

-2

Performs a mixed action.

ppActionNamedSlideShow

10

Runs the slideshow.

ppActionNextSlide

1

Moves to the next slide.

ppActionNone

0

No action is performed.

ppActionOLEVerb

11

OLE Verb.

ppActionPlay

12

Begins the slideshow.

ppActionPreviousSlide

2

Moves to the previous slide.

ppActionRunMacro

8

Runs a macro.

ppActionRunProgram

9

Runs a program. 




Posted by 삼스