Seer-IPC

ACustomApp

proses

  1. Spacebar dipicu
  2. ACustomApp menemukan handle Seer c++ HWND seer = FindWindowEx(nullptr, nullptr, SEER_CLASS_NAME, nullptr);
  3. ACustomApp menyiapkan jalur lengkap file yang dipilih
  4. Mengirim jalur ke handle 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 menampilkan pratinjau dari jalur tersebut


ACustomExplorer

proses

  1. ACustomExplorer: buat file teks baru untuk menyimpan classname Anda
  2. Seer: semua file json di jalur ini akan dimuat setelah Seer dijalankan. Saat pengguna menekan spasi, Seer mendapatkan handle untuk mencocokkan classname melalui GetForegroundWindow. Jika cocok dengan ACustomExplorer, Seer mengirimkan pesan WM_COPYDATA ke handle tersebut, dan nilai dwData adalah SEER_REQUEST_PATH .
  3. ACustomExplorer: setelah menerima WM_COPYDATA, ia mencocokkan SEER_REQUEST_PATH dari dwData, dan mengirimkan pesan kembali secepat mungkin dengan jalur lengkap file yang dipilih.
  4. Seer: ketika Seer menerima pesan, ia mempratinjau file dan proses berakhir.
    • Kode logika semuanya Win32, yang sepenuhnya independen dari kode Qt pada antarmuka pengguna, bahkan jika tidak ada framework Qt, itu tidak akan mempengaruhi pembacaan.

contoh