Autohotkeys tidak dapat mengenali Google Chrome Windows. Apa yang dapat saya?

4

Saya membuat hotkey di autohotkeys, untuk mengaktifkan Google Chrome, atau berpindah di antara semua jendela Chrome.

HotKey itu Menang + H (h artinya http).

Jika pengguna menekan Menang + Bergeser + H itu membuka jendela chrome baru

Jika pengguna menekan Menang + H dua kali, bergerak di antara semua jendela chrome:

Memperbarui: Lihat skrip lengkap di bagian bawah. Terima kasih semuanya:

Masalahnya adalah bahwa AutoHotKeys tidak dapat menemukan kelas chrome, sehingga selalu membuka jendela baru:

Fungsi ini selalu mengembalikan false: If WinExist ahk_class Chrome_WidgetWin_1

Mohon saran.

file skrip:

#h::
SetTitleMatchMode, 2
If WinExist ahk_class Chrome_WidgetWin_1
{
ifWinActive
WinActivatebottom ,Chrome_WidgetWin_1
else
WinActivate 
return
}
run chrome.exe

Saya menemukan bug.

Ada bug dengan fungsi ifWinExist di versi AutoHotkeys ini, dan Google Chrome. Pengguna dapat menggunakan;

WinActivate ahk_class Chrome_WidgetWin_1

tetapi tidak bisa menggunakan:

If WinExist ahk_class Chrome_WidgetWin_1

Itu selalu salah!

Semoga pertanyaan ini & amp; jawaban membantu seseorang (saya tidak bisa menulis jawaban, karena saya hanya punya 1 poin reputasi)

Memperbarui: Ini adalah kode sumber ahk, untuk Menang + n Buka Notepad atau beralih di antara notes yang terbuka.

+ Bergeser + n Buka notepad baru.

Menang + c Buka cmd.exe atau beralih di antara jendela konsol.

Menang + Bergeser + c Buka konsol baru.

Menang + h Buka Google Chrome atau beralih di antara jendela Chrome + Bergeser + h Buka browser baru.

SetTitleMatchMode, 2


;********command line
#c::
IfWinExist ,cmd.exe
{
ifWinActive
WinActivatebottom ,cmd.exe
else
WinActivate
return
}
#+c::
run cmd.exe
return

;******************Chrome
#h::
IfWinExist ,Chrome
    {
    ifWinActive
        {
        WinActivatebottom ,Chrome
    }
    else
    {
        WinActivate
    }
    return
}

#+h::
run "chrome"
return 
;**************Notepad
#n::
IfWinExist ,Notepad
    {
    ifWinActive
        {
        WinActivatebottom ,Notepad
    }
    else
    {
        WinActivate
    }
    return
}

#+n::
run "notepad"
return
Shluch
sumber
Apa sebenarnya masalahnya? Tolong parafrase.
Fungsi ini selalu menghasilkan false: IfWinExist ahk_class Chrome_WidgetWin_1
Shluch

Jawaban:

2

Saya menggunakan nama saja (karena Google pernah mengubah nama kelas). Berikut adalah contoh di AHK_L yang saya gunakan.

SetTitleMatchMode, 2

#ifWinActive, Chrome
    NumpadIns::Send, {Click}
    NumpadRight::Send, ^{PgDn} ; Right arrow = activate next Tab
    NumpadLeft::Send, ^{PgUp} ; Left arrow = activate previous tab
#ifWinActive
Robert Ilbrink
sumber
1

Coba Chrome_WidgetWin_0.
Jika itu tidak berhasil, cari tahu apa itu kelas nyata dengan menggunakan WinGet

WinGet,activeId,ID,A  <- gives active window ahk_id
WinGetClass, activeClass, ahk_id %activeId%


Anda juga dapat mencoba mencari berdasarkan nama

SetTitleMatchMode, 2
WinGetTitle, OutputVar , Chrome <- type the name of the chrome window ( probably contains chrome)


Anda masih bisa merujuk ini pertanyaan jika semuanya gagal.

Community
sumber