Seer-IPC

ACustomApp

Process

  1. Mellanslag aktiveras
  2. ACustomApp hittar Seers handtag c++ HWND seer = FindWindowEx(nullptr, nullptr, SEER_CLASS_NAME, nullptr);
  3. ACustomApp förbereder den fullständiga sökvägen till den valda filen
  4. Skickar sökvägen till Seers handtag 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 visar förhandsgranskningen av sökvägen


ACustomExplorer

Process

  1. ACustomExplorer: skapa en ny textfil för att lagra ditt klassnamn
  2. Seer: alla json-filer i denna sökväg laddas efter att Seer startats. När användaren trycker på mellanslag, hämtar Seer handtaget för att matcha klassnamnet via GetForegroundWindow. Om det matchar ACustomExplorer skickar Seer ett WM_COPYDATA-meddelande till handtaget, och värdet på dwData är SEER_REQUEST_PATH .
  3. ACustomExplorer: efter att ha mottagit WM_COPYDATA, matchar det SEER_REQUEST_PATH för dwData och skickar tillbaka ett meddelande så snart som möjligt med den fullständiga sökvägen till den valda filen.
  4. Seer: när Seer tar emot meddelandet förhandsgranskar den filen och processen avslutas.
    • Logikkoden är helt Win32, vilket är helt oberoende av Qt-koden för gränssnittet, även om det inte finns något Qt-ramverk påverkar det inte läsningen.

example