windowHandleにEdgeのハンドル渡す。
タイトルにHogeHogeがあるタブをキー押して消してる
// タブを閉じる処理
void CloseTab(HWND windowHandle) {
if (!IsWindow(windowHandle)) {
return;
}
TCHAR title[256] = { 0 };
if (!GetWindowText(windowHandle, title, 256)) {
return;
}
if (_tcsstr(title, _T("HogeHoge")) != nullptr) {
TRACE(_T("Closing auth tab: %s\n"), title);
// Ctrl+Wキーの送信
INPUT inputs[4] = {};
// Ctrl キーを押す
inputs[0].type = INPUT_KEYBOARD;
inputs[0].ki.wVk = VK_CONTROL;
// W キーを押す
inputs[1].type = INPUT_KEYBOARD;
inputs[1].ki.wVk = 'W';
// W キーを離す
inputs[2].type = INPUT_KEYBOARD;
inputs[2].ki.wVk = 'W';
inputs[2].ki.dwFlags = KEYEVENTF_KEYUP;
// Ctrl キーを離す
inputs[3].type = INPUT_KEYBOARD;
inputs[3].ki.wVk = VK_CONTROL;
inputs[3].ki.dwFlags = KEYEVENTF_KEYUP;
// ウィンドウをフォアグラウンドに
if (SetForegroundWindow(windowHandle)) {
Sleep(100); // ウィンドウがフォアグラウンドになるのを待つ
SendInput(4, inputs, sizeof(INPUT));
}
else {
TRACE(_T("Failed to set foreground window\n"));
}
}
else {
TRACE(_T("Skip closing tab: %s\n"), title);
}
}