Seer-IPC

ACustomApp

処理手順

  1. スペースバーが押される
  2. ACustomApp が Seer のハンドルを検索 c++ HWND seer = FindWindowEx(nullptr, nullptr, SEER_CLASS_NAME, nullptr);
  3. ACustomApp が選択したファイルのフルパスを準備
  4. パスを 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 がパスのプレビューを表示


ACustomExplorer

処理手順

  1. ACustomExplorer: 新しいテキストファイルを作成して classname を保存
  2. Seer: このパス内のすべての json ファイルは、Seer 起動後に読み込まれます。ユーザーがスペースを押すと、Seer は GetForegroundWindow を通じてハンドルを取得し、classname と照合します。ACustomExplorer と一致した場合、Seer はそのハンドルに WM_COPYDATA メッセージを送信します。dwData の値は SEER_REQUEST_PATH です。
  3. ACustomExplorer: WM_COPYDATA を受信後、dwData の SEER_REQUEST_PATH と照合し、選択したファイルのフルパスをできるだけ早くメッセージで返送します。
  4. Seer: Seer がメッセージを受信すると、ファイルをプレビューして処理が終了します。
    • ロジックコードはすべて Win32 であり、UI の Qt コードからは完全に独立しています。Qt フレームワークがなくても読み取りに影響しません。

example