Sie sind vermutlich noch nicht im Forum angemeldet - Klicken Sie hier um sich kostenlos anzumelden Impressum 
Sie können sich hier anmelden
Dieses Thema hat 1 Antworten
und wurde 116 mal aufgerufen
 Skripte und Zusatzprogramme
royaltyrant Offline



Beiträge: 31

16.03.2015 13:59
RE: Prozess ID eines Prozesses anhand des Abbildnamens ermitteln Zitat · Antworten

Hallo allerseits,

ich habe hier ein etwas komplizierteres Problem:

Ich habe für interne elektronische Nachrichten innerhalb unseres Netzwerkes, die auch zur elektronischen Akte gespeichert werden, eine Reihe von (globalen) Sprachbefehlen zusammengebastelt, die in unserem Anwaltsprogramm jeweils ein Fenster des internen Nachrichtensystems aufrufen, für Nachrichten an spezifische Adressaten innerhalb unseres Büros. Das Skript fragt jeweils nach der Aktennummer, die dann über Dragon diktiert und bestätigt werden kann. Danach aktiviert das Skript das Hauptfenster des Anwaltsprogramms und übergibt dort eine Tastenkombination, die ihrerseits das Nachrichtenfenster öffnet. Anschließend wählt das Skript den Adressaten aus, trägt die Aktennummer für die (spätere) Speicherung in die elektronische Akte ein, versetzt den Cursor in das eigentliche Nachrichtenfeld und gibt dann (eigentlich nur als kleine Spielerei und damit man sicher ist, dass das etwas träge Skript fertig geworden ist, bevor man zu diktieren versucht) akustisch „bereit zum Diktat“ aus.

Viele Funktionen können hierbei nur über das Senden von Tastenfolgen erreicht werden, wobei jeweils zunächst das Hauptfenster unseres Anwaltsprogramms für die Tastenfolge zum Aufruf des Nachrichtenfensters und anschließend dann naturgemäß das Nachrichtenfenster den Fokus haben muss.

Das Hauptfenster des Anwaltsprogramms bekommt, einerlei in welchem Programm ich vorher aktiv war, problemlos den Fokus mit dem AppActivate-Befehl und dem Fensternamen.

Das Nachrichtenfenster öffnet sich zwar sodann im Vordergrund, hat aber aus mir nicht erklärlichen Gründen nicht den Fokus, so dass die vom Skript anschließend gesendeten Tastaturanschläge dann im Nirwana verschwinden, wenn nicht vorher nochmals sichergestellt wird, dass das Nachrichtenfenster den Fokus hat.

Ich habe das bisher ebenfalls über AppActivate und den Fenstertitel lösen können. Bei einem der jüngsten Updates unseres Anwaltsprogramms ist aber offenbar irgendetwas dort geändert worden. Zum einen lautet der Fenstertitel neuerdings nicht mehr „Neue Nachricht“, sondern „E-Nachricht“ zum zweiten funktioniert AppActivate mit diesem neuen Fensternamen leider nicht mehr. (Ich habe natürlich das Skript angepasst - und mich auch nicht verschrieben -, aber das Nachrichtenfenster bekommt trotzdem nicht den Fokus, bzw. es kommt eine "window not found" Fehlermeldung, womit der gesamte weitere Skriptablauf scheitert.

Verwende ich AppActivate dagegen mit der - bei meiner Lösungssuche bis jetzt jeweils aktuell aus dem Taskmanager abgelesenen und jeweils manuell ins Skript eingesetzten - Process ID, dann bekommt das Nachrichtenfenster anstandslos den Fokus.

Ich brauche nun also eine Möglichkeit, wie mein Skript die Process ID des geöffneten Nachrichtenfensters anhand des Abbildnamens auslesen und für AppActivate verwenden kann. Das bekomme ich aber nicht hin. Hat jemand eine Idee, wie ich dies - möglichst einfach - implementieren könnte? Bei allen Lösungsvorschlägen bitte daran denken, dass ich KEIN Programmierer bin, sondern meine Skripte überwiegend per Herumprobieren an irgendwelchen Codeschnipseln aus dem Internet zusammenbastele. Ein Hinweis wie "Das geht mit der Sowieso-Function" hilft mir also nicht wirklich weiter. Ich habe schon stundenlang mit allem Möglichen herumprobiert - und bin z.B. mit GetProcessID () bis jetzt nicht klargekommen. Falls ich Referenz-Bibliotheken einbinden muss, müsste mir bitte auch gesagt werden welche ich auswählen muss.

Ach ja, das Nachrichtenfenster über Shell aufrufen und so die Process ID abfangen geht leider nicht.

Da dieser Post jetzt schon ellenlang ist, verzichte ich vorerst mal darauf den Code meines Skriptes zu posten. Ich denke, dass Problem ist so isoliert, dass es auf den Rest vom Skript nicht wirklich ankommt. Falls doch, dann bitte kurze Info und ich schiebe den Code nach.

Vielen Dank an alle, für die Mühe sich bis hierher durchzukämpfen und hoffentlich kann mir jemand helfen.

Beste Grüße

Kai Sulzmann

DNS 16 legal group (Version 16.00.200.121)- Windows 11 Professional 64 Bit Version 22H2- Office 2013 32 Bit
Core i7 11700K, 3,6 Ghz, 16 GB RAM - Headset Plantronics Savi 8245 (DECT) und Handmikrofon Philips LFH 3000/00 (Speechmike Air Pro), letzteres nur zur Steuerung über
Philips Device Control Center (Version 4.6.461.2)

R.Wilke Offline



Beiträge: 6.334

16.03.2015 19:53
#2 RE: Prozess ID eines Prozesses anhand des Abbildnamens ermitteln Zitat · Antworten

_______________________________________

Dragon Professional 16 auf Windows 10 Pro und Windows 11
SpeechMike Premium (LFH3500); Office 2019 Pro + Office 365 (monatliches Abo)
HP ZBook Fury 17 G8 - i7-11800H - 24 MB SmartCache - 32 GB RAM - 1 TB SSD

 Sprung  
Xobor Ein Kostenloses Forum | Einfach ein Forum erstellen
Datenschutz