Seer-IPC

ACustomApp

Prosess

  1. Mellomromstasten utløses
  2. ACustomApp finner Seers håndtak c++ HWND seer = FindWindowEx(nullptr, nullptr, SEER_CLASS_NAME, nullptr);
  3. ACustomApp forbereder den fulle banen til den valgte filen
  4. Sender banen til Seers håndtak 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 viser forhåndsvisningen av banen


ACustomExplorer

Prosess

  1. ACustomExplorer: opprett en ny tekstfil for å lagre klassenavnet ditt
  2. Seer: alle json-filer i denne banen vil bli lastet når Seer starter. Når brukeren trykker på mellomromstasten, henter Seer håndtaket for å matche klassenavnet gjennom GetForegroundWindow. Hvis det matcher ACustomExplorer, sender Seer en WM_COPYDATA-melding til håndtaket, og verdien av dwData er SEER_REQUEST_PATH .
  3. ACustomExplorer: etter å ha mottatt WM_COPYDATA, matcher det SEER_REQUEST_PATH av dwData, og sender en melding tilbake så snart som mulig med den fulle banen til den valgte filen.
  4. Seer: når Seer mottar meldingen, forhåndsviser den filen og prosessen avsluttes.
    • Logikkoden er ren Win32, som er helt uavhengig av Qt-koden til grensesnittet. Selv uten Qt-rammeverket vil det ikke påvirke lesingen.

eksempel