내 추가 기능은 WPFframework를 사용하여 C#, NetOffice, ExcelDNA로 작성되었습니다. 일부는 winforms도 사용합니다. 기본 UI는 WP30입니다엑셀 강제 종료시 Add-in 대화 상자 사용 안 함
모달 대화 상자가 표시되면 사용자가 Excel을 닫아야합니다. 다음 번 Excel에서 Excel을 실행하면 Excel에서 "Excel에서 '*'추가 기능에 심각한 문제가 발생했습니다.이 메시지가 여러 번 표시되면이 add0in 및 checke를 해제하여 업데이트가 있는지 확인해야합니다 이 추가 기능을 사용하지 않도록 설정 하시겠습니까? "
예
, 지역사용자는 일반적으로 예를 클릭하거나 메시지를 읽고 다음 내 추가 기능이 엑셀에서 사라없이 입력합니다. 그래서이 대화 상자가 나타나기를 원하지 않습니다. 그것은 가능하고 어떻게? 감사합니다
나는 아래처럼 AutoOpen()에서 모든 예외를 잡으려고합니다. 그러나 그것은 대화를 중단시키는 효과가 전혀없는 것 같습니다.
public void AutoOpen()
{
.....
System.Windows.Forms.Application.ThreadException += ApplicationOnThreadException;
AppDomain.CurrentDomain.UnhandledException += CurrentDomainUnhandledException;
Dispatcher.CurrentDispatcher.UnhandledException += CurrentDispatcher_UnhandledException;
TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
....
}
public void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
{
Helper.LogError(e.Exception);
}
public void ApplicationOnThreadException(object sender, ThreadExceptionEventArgs threadExceptionEventArgs)
{
Helper.LogError(threadExceptionEventArgs.Exception);
}
public void CurrentDomainUnhandledException(object sender, UnhandledExceptionEventArgs args)
{
if (!(args.ExceptionObject is ThreadAbortException))
{
Exception exc = args.ExceptionObject as Exception;
Helper.LogError(exc);
}
}
public void CurrentDispatcher_UnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
{
Helper.LogError(e.Exception);
e.Handled = true;
}
감사합니다. 예, 사용자는 작업 관리자에서 Excel을 닫고 Excel 아이콘을 마우스 오른쪽 버튼으로 클릭하고 상태 표시 줄에서 모든 창 닫기를 클릭하십시오. 웹 서비스에서 데이터를 가져 오면 My addin에 "취소"버튼이있는 모달 대화 상자가 표시됩니다. 사용자가 취소하려는 경우 버튼을 클릭 할 수 있습니다. 취소하지 않으면 데이터 가져 오기가 완료 될 때까지 대화 상자 창이 Excel 앞에 표시됩니다. WPF를 사용하고 있습니다. 창 부모는 읽기 전용입니다. 리본 클릭 이벤트 핸들러에서 ShowDialog를 호출합니다. 그래서 Excel로 부모를 설정하는 방법을 잘 모르겠습니다. – toosensitive
myadd가 비활성화되었을 때 알 수 있습니다. myadd com 도우미가 disabledItems에 저장됩니다. myadd.xll은 여전히 활성 목록에 있습니다. 따라서 AutoOpen에서 myadd com 도우미를로드/생성 할 수있는 방법이 있는지 궁금합니다. 감사합니다 – toosensitive
레지스트리에서 비활성화 된 항목이 기록 된 위치를 파악한 다음 AutoOpen에서 해당 레지스트리 항목을 삭제하려고 시도 할 수 있습니다. 한 곳은 다음과 비슷할 수 있습니다. HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 14.0 \ Excel \ Resiliency \ DisabledItems – Govert