Seer-IPC

ACustomApp

processus

  1. La Barre d'espace est déclenchée
  2. ACustomApp trouve le handle de Seer c++ HWND seer = FindWindowEx(nullptr, nullptr, SEER_CLASS_NAME, nullptr);
  3. ACustomApp prépare le chemin complet du fichier sélectionné
  4. Envoie le chemin au handle de 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); }
  5. Seer affiche l'aperçu du chemin


ACustomExplorer

processus

  1. ACustomExplorer : crée un nouveau fichier texte pour stocker votre classname
  2. Seer : tous les fichiers json de ce chemin seront chargés après le démarrage de Seer. Lorsque l'utilisateur appuie sur la barre d'espace, Seer récupère le handle pour correspondre au classname via GetForegroundWindow. S'il correspond à ACustomExplorer, Seer envoie un message WM_COPYDATA au handle, et la valeur de dwData est SEER_REQUEST_PATH .
  3. ACustomExplorer : après réception de WM_COPYDATA, il vérifie le SEER_REQUEST_PATH de dwData, et renvoie un message dès que possible avec le chemin complet du fichier sélectionné.
  4. Seer : lorsque Seer reçoit le message, il affiche l'aperçu du fichier et le processus se termine.
    • Le code logique est entièrement Win32, qui est totalement indépendant du code Qt de l'interface utilisateur, même sans framework Qt, cela n'affectera pas la lecture.

exemple