Skype 8 因為取消了 /get name 指令, 無法很方便取得 conversationId
資料也從 SQLite 改成 LevelDB, 無法透過讀取 main.db 來取得
寫了個 BAT 檔每秒去抓 Log 中最後一個 conversationId
裡面有用到 strings 及 tail, 需安裝 Strings 及 Windows Server 2003 Resource Kit Tools
執行這個 BAT, 送個訊息到對話窗, 就可以馬上看到該對話窗的 conversationId
conversationId 的格式是 19:[0-9a-f]{32}@thread.skype
@ECHO OFF
cd "%AppData%\Microsoft\Skype for Desktop\IndexedDB\file__0.indexeddb.leveldb"
FOR /F "tokens=*" %%g IN ('dir/b *.log') do (SET LOG=%%g)
:recheck
strings %LOG% | findstr @thread.skype > %TEMP%\findstr.thread.skype
tail -1 %TEMP%\findstr.thread.skype
ping -n 2 127.0.0.1 > NUL
goto recheck