API-Automatisierer
UFO unterstützt derzeit die Verwendung des Win32 API API-Automator, um mit der nativen API der Anwendung zu interagieren. Wir implementieren diese in Python mithilfe der pywin32 Bibliothek. Der API-Automator unterstützt derzeit Word und Excel Anwendungen, und wir arbeiten daran, die Unterstützung auf weitere Anwendungen auszudehnen.
Konfiguration
Es gibt mehrere Konfigurationen, die vor der Verwendung des API-Automators in der Datei config_dev.yaml eingerichtet werden müssen. Nachfolgend finden Sie die Liste der Konfigurationen, die sich auf den API-Automator beziehen.
| Konfigurationsoption | Beschreibung | Typ | Standardwert |
|---|---|---|---|
USE_APIS |
Ob die Verwendung von Anwendungs-APIs erlaubt sein soll. | Boolean | True |
APP_API_PROMPT_ADDRESS |
Die Prompt-Adresse für die Anwendungs-API. | Dict | {"WINWORD.EXE": "ufo/prompts/apps/word/api.yaml", "EXCEL.EXE": "ufo/prompts/apps/excel/api.yaml", "msedge.exe": "ufo/prompts/apps/web/api.yaml", "chrome.exe": "ufo/prompts/apps/web/api.yaml"} |
Hinweis
Nur WINWORD.EXE und EXCEL.EXE werden derzeit vom API-Automator unterstützt.
Empfänger
Die Basisklasse für den Empfänger des API-Automators ist die Klasse WinCOMReceiverBasic, die im Modul ufo/automator/app_apis/basic definiert ist. Sie wird mit dem Win32 COM-Objekt der Anwendung initialisiert und bietet Funktionalitäten zur Interaktion mit der nativen API der Anwendung. Nachfolgend finden Sie die Referenz für die Klasse WinCOMReceiverBasic.
Basiert auf: ReceiverBasic
Die Basisklasse für Windows COM-Clients.
Initialisiert den Windows COM-Client.
| Parameter |
|
|---|
Quellcode in automator/app_apis/basic.py
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
full_path property
Ruft den vollständigen Pfad des Prozesses ab.
| Rückgabe |
|
|---|
app_match(object_name_list)
Prüft, ob der Prozessname mit dem Anwendungsstamm übereinstimmt.
| Parameter |
|
|---|
| Rückgabe |
|
|---|
Quellcode in automator/app_apis/basic.py
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | |
close()
Schließt die Anwendung.
Quellcode in automator/app_apis/basic.py
110 111 112 113 114 115 116 117 | |
get_object_from_process_name() abstractmethod
Ruft das Objekt anhand des Prozessnamens ab.
Quellcode in automator/app_apis/basic.py
36 37 38 39 40 41 | |
get_suffix_mapping()
Ruft die Suffix-Zuordnung ab.
| Rückgabe |
|
|---|
Quellcode in automator/app_apis/basic.py
43 44 45 46 47 48 49 50 51 52 53 54 55 | |
longest_common_substring_length(str1, str2) staticmethod
Ruft die längste gemeinsame Teilzeichenkette zweier Zeichenketten ab.
| Parameter |
|
|---|
| Rückgabe |
|
|---|
Quellcode in automator/app_apis/basic.py
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | |
save()
Speichert den aktuellen Zustand der Anwendung.
Quellcode in automator/app_apis/basic.py
91 92 93 94 95 96 97 98 | |
save_to_xml(file_path)
Speichert den aktuellen Zustand der Anwendung in XML.
| Parameter |
|
|---|
Quellcode in automator/app_apis/basic.py
100 101 102 103 104 105 106 107 108 | |
Die Empfänger für Word und Excel Anwendungen erben von der Klasse WinCOMReceiverBasic. Die Klassen WordReceiver und ExcelReceiver sind in den Modulen ufo/automator/app_apis/word bzw. ufo/automator/app_apis/excel definiert.
Befehl
Der Befehl des API-Automators für die Anwendungen Word und Excel befindet sich im Modul client im Ordner ufo/automator/app_apis/{app_name} und erbt von der Klasse WinCOMCommand. Er kapselt die Funktion und Parameter, die zur Ausführung der Aktion erforderlich sind. Nachfolgend finden Sie ein Beispiel für eine WordCommand Klasse, die von der Klasse SelectTextCommand erbt.
@WordWinCOMReceiver.register
class SelectTextCommand(WinCOMCommand):
"""
The command to select text.
"""
def execute(self):
"""
Execute the command to select text.
:return: The selected text.
"""
return self.receiver.select_text(self.params.get("text"))
@classmethod
def name(cls) -> str:
"""
The name of the command.
"""
return "select_text"
Hinweis
Die konkreten Befehlsklassen müssen die Methode execute zur Ausführung der Aktion und die Methode name zur Rückgabe des Namens des atomaren Befehls implementieren.
Hinweis
Jeder Befehl muss mit einem konkreten WinCOMReceiver registriert werden, um ausgeführt zu werden. Dies geschieht über den Dekorator register.
Nachfolgend finden Sie die Liste der verfügbaren Befehle im API-Automator, die derzeit von UFO unterstützt werden.
Word API Befehle
| Befehlsname | Funktionsname | Beschreibung |
|---|---|---|
InsertTableCommand |
insert_table |
Fügt eine Tabelle in ein Word-Dokument ein. |
SelectTextCommand |
select_text |
Wählt den Text in einem Word-Dokument aus. |
SelectTableCommand |
select_table |
Wählt eine Tabelle in einem Word-Dokument aus. |
Excel API Befehle
| Befehlsname | Funktionsname | Beschreibung |
|---|---|---|
GetSheetContentCommand |
get_sheet_content |
Ruft den Inhalt eines Blattes in der Excel-Anwendung ab. |
Table2MarkdownCommand |
table2markdown |
Konvertiert den Tabelleninhalt in einem Blatt der Excel-Anwendung in das Markdown-Format. |
InsertExcelTableCommand |
insert_excel_table |
Fügt eine Tabelle in das Excel-Blatt ein. |
Tipp
Bitte beachten Sie die Datei ufo/prompts/apps/{app_name}/api.yaml für die Prompt-Details zu den Befehlen.
Tipp
Sie können die Befehle anpassen, indem Sie neue Befehlsklassen zum Modul ufo/automator/app_apis/{app_name}/ hinzufügen.