![]() |
Excel-Automatisation und Prozess-ID
Bei der Automatisierung von Excel kommt es hin und wieder vor (beim einlesen von vielen XLS-Dateien), das die Fehlermeldung "Aufruf wurde durch Aufgerufenen Abgelehnt".
Der Fehler dürfte grundlegender COM/Excel-Natur sein, da dieser Fehler manchmal nach 50 und manchmal erst nach 500 eingelesenen XLS-Dateien passiert. Nun will ich da ja gar nichts mehr mit der aktuellen Excel-Instanz anzufangen ist, diese Instanz beenden. Dazu würde ich die Prozess-Id benötigen um mithilfe der TerminateProcess-Funktion den Prozess abzuschießen. Nur wie bekomme ich Aufgrund des Interface-Zeigers auf die Excel-Anwendung auf die Prozess-ID? |
Re: Excel-Automatisation und Prozess-ID
wie man die ProzessID feststellen kann, weis ich nicht. Dennoch kommt mir diese Fehlermeldung bekannt vor. Sie ist immer dann aufgetreten, wenn ein Dialogfenster geöffnet war. Kann das eventuell auch bei Dir der Fall sein? Zum Beispiel eine Fehlermeldung oder ähnliches?
|
Re: Excel-Automatisation und Prozess-ID
Zitat:
Aber ich schon 'ne Lösung: 1, Prozessliste vor Start der Automatisierung lesen 2, Prozessliste bei Auftritt der Exception lesen 3, Filterung nach Excel.exe 4, Killen dieses Prozesses |
Re: Excel-Automatisation und Prozess-ID
Vieleicht ist das was:
![]() |
Re: Excel-Automatisation und Prozess-ID
Habe ne einfacher Lösung:
Delphi-Quellcode:
Das Problem war scheinbar das (durch irgendein Update/Hotfix) Excel nicht mehr komplett "versteckt" arbeitet sondern auch noch kurzzeitig als aktive Fenster läuft und damit Tastaturdrücke/Maustasten empfängt und auswertet. Und wenn jetzt so eine Aktion zufälligerweise einen Menüpunkt aufruft ist es geschehen.
Interactive := False
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz