ACustomApp findet das Handle von Seer
c++
HWND seer = FindWindowEx(nullptr, nullptr, SEER_CLASS_NAME, nullptr);
ACustomApp bereitet den vollständigen Pfad der ausgewählten Datei vor
Sendet den Pfad an das Handle von Seer
c++
void sendPath2Seer(HWND seer, LPCWSTR path)
{
COPYDATASTRUCT cd;
cd.cbData = (_tcslen(path) + 1) * sizeof(TCHAR);
cd.lpData = (LPVOID)path;
cd.dwData = SEER_INVOKE_W32;
SendMessage(seer, WM_COPYDATA, 0, (LPARAM)&cd);
}
Seer zeigt die Vorschau des Pfads an
ACustomExplorer
Ablauf
ACustomExplorer: Erstellt eine neue Textdatei zur Speicherung Ihres Klassennamens
Seer: Alle JSON-Dateien in diesem Pfad werden nach dem Start von Seer geladen. Wenn der Benutzer die Leertaste drückt, erhält Seer das Handle, um den Klassennamen über GetForegroundWindow abzugleichen. Wenn es mit ACustomExplorer übereinstimmt, sendet Seer eine WM_COPYDATA-Nachricht an das Handle, und der Wert von dwData ist SEER_REQUEST_PATH.
ACustomExplorer: Nach dem Empfang von WM_COPYDATA gleicht es den SEER_REQUEST_PATH von dwData ab und sendet so schnell wie möglich eine Nachricht mit dem vollständigen Pfad der ausgewählten Datei zurück.
Seer: Wenn Seer die Nachricht empfängt, zeigt es die Dateivorschau an und der Vorgang endet.
Die Programmlogik basiert vollständig auf Win32, was unabhängig vom Qt-Code der Benutzeroberfläche ist. Selbst ohne Qt-Framework wird das Lesen nicht beeinträchtigt.