Zapobieganie występowaniu komunikatów o błędzie „Switch To” (Przełącz na) lub „Application Busy” (Aplikacja zajęta) przy użyciu automatyzacji OLE

Streszczenie
Podczas używania automatyzacji OLE z inną aplikacją, taką jak Microsoft Word, można napotkać na następujący komunikat o błędzie, jeśli jest używany system Microsoft Windows NT 4.0, Windows 2000, Windows XP lub Windows Server 2003:
Nie można ukończyć tej akcji, ponieważ inna aplikacja jest zajęta. Wybierz przycisk 'Przełącz do', aby aktywować zajętą aplikację i usuń problem.
W wypadku korzystania z systemu Windows 95 lub Windows 98 może pojawić się następujący komunikat o błędzie:
Nie można ukończyć tej czynności, gdyż inny program jest zajęty. Kliknij odpowiedni przycisk na pasku zadań, aby aktywować program i usuń problem.
Więcej informacji
Ten komunikat o błędzie jest spowodowany zazwyczaj tym, że w aplikacji uruchomionej przez mechanizm OLE jest otwarte okno dialogowe, do którego należy wprowadzić dane wejściowe. Ten komunikat o błędzie można wyeliminować, używając właściwości OLERequestPendingTimeout. Ta właściwość określa czas, po którym jest wykonywane żądanie automatyzacji, zanim zostanie wyświetlony komunikat o zajętości. Domyślnie jest to pięć sekund i ta wartość jest podana w milisekundach. Jeśli zostanie ustawiony limit czasu równy 0, program Microsoft Visual FoxPro będzie czekać w nieskończoność na inną aplikację. Komunikat o zajętości nie będzie wyświetlony niezależnie od tego, czy będzie oczekiwało żądanie automatyzacji, czy wystąpi zdarzenie myszy bądź klawiatury.
  1. Utwórz program i wpisz następujący kod:
    oWord=CREATEOBJECT("Word.Application")APPLICATION.OLERequestPendingTimeout = 0   && 0 means no busy error messageWITH oword                                 && Change to 100 to see busy                                           && message   .Documents.ADD   .Dialogs(88).SHOW                       && Open the Word Print dialog   .APPLICATION.QUIT(0)                    && Quit and don't save changesENDWITH						
  2. Uruchom program i kliknij okno programu Microsoft Visual FoxPro, gdy pojawi się okno Drukowanie programu Word. Nie zostanie wyświetlony komunikat o błędzie wspomniany wcześniej.
  3. Aby ujrzeć komunikat o błędzie, zmień wartość OLERequestPendingTimeout na względnie niską, na przykład 100.
  4. Uruchom kod ponownie i kliknij okno programu Microsoft Visual FoxPro, gdy pojawi się okno Drukowanie programu Word. Tym razem pojawi się jeden z komunikatów o błędzie wymienionych w sekcji „Podsumowanie” .
Materiały referencyjne
Pomoc online programu Visual FoxPro, wersja 6.0; poszukać hasła „OLERequestPendingTimeout”
KBDSE
Właściwości

Identyfikator artykułu: 240809 — ostatni przegląd: 01/03/2008 20:12:00 — zmiana: 3.1

Microsoft Visual FoxPro 5.0 Standard Edition, Microsoft Visual FoxPro 6.0 Professional Edition, Microsoft Visual FoxPro 7.0 Professional Edition, Microsoft Visual FoxPro 8.0 Professional Edition, Microsoft Visual FoxPro 9.0 Professional Edition

  • kbhowto kbcodesnippet kbautomation KB240809
Opinia