Pemahaman saya tentang cara kerja Aktivasi Jendela cukup sederhana. Ini mengembalikan jendela yang terakhir digunakan dari jenis itu. Perilaku default itu membuat pengodean yang Anda inginkan menjadi sangat sederhana. Bahkan, saya melakukan sesuatu yang hampir identik dengan apa yang Anda cari dengan dua blok kode sederhana.
+#w::
SetTitleMatchMode, 2 ; approximate match
IfWinExist, - Microsoft Word
{
WinActivate, - Micrsoft Word
}
IfWinNotExist, - Microsoft Word
{
Run FullFilePathToMicrosoftWord
}
return
Saya membuat sinergi yang menarik untuk bekerja dengan beberapa monitor. Perhatikan bahwa pada Windows 7, menahan tombol shift + windows dan menggunakan panah untuk bernavigasi ke kiri dan kanan akan memindahkan jendela aktif di antara monitor dengan kecepatan rendah. Jadi saya mencoba sesuatu yang sedikit pintar dan memetakan kata untuk menggeser + window + w. Ini mengembalikan kata jika sudah membuka atau menjalankan contoh baru jika tidak. Keindahan dari pendekatan ini adalah saya tidak pernah melepaskan tombol shift + windows. Dengan melakukan itu saya bisa aktif / memulai kata dan memindahkannya ke posisi yang saya inginkan menggunakan tombol panah kanan kiri (naik akan memaksimalkan dengan cara dan turun akan meminimalkan). Map + # r untuk mengembalikan jendela aktif dan Anda sepenuhnya mengendalikan semua jendela yang biasanya Anda gunakan dengan mudah tanpa mouse. Yang harus Anda ingat adalah huruf pertama dari aplikasi yang Anda coba aktifkan.
Sebagai jawaban atas pertanyaan Anda tentang membuat skrip lebih umum:
1) Pertimbangkan untuk menggunakan
; Allows you to search for an approximate window title match
SetTitleMatchMode, 2
; For example, you could do the following to activate any existing window with
; "- Microsoft Word" as part of the title
WinWait, - Microsoft Word,
IfWinNotActive, - Microsoft Word, , WinActivate, - Microsoft Word,
WinWaitActive, - Microsoft Word,
; some other code here once you have the window active
Atau kemungkinan lain:
;Active the window by finding its ahk_class
WinWait, ahk_class OpusApp,
IfWinNotActive, ahk_class OpusApp, , WinActivate, ahk_class OpusApp,
WinWaitActive, ahk_class OpusApp,
Catatan: Kode di atas hanyalah adaptasi dari keluaran umum penulis autoscript. Ini agak berlebihan tetapi efektif. Untuk menemukan sesuatu seperti ahk_class jendela, pertimbangkan untuk menggunakan jendela mata-mata AutoIt3.
Jika Anda perlu menemukan judul jendela Anda bisa mendapatkan judul aktif seperti yang ditunjukkan pada file bantuan contoh ahk
WinGetActiveTitle, Title
MsgBox, The active window is "%Title%".
Trik lain yang dapat Anda gunakan adalah mengatur judul aktif menggunakan WinSetTitle
Sunting: Mengingat bahwa Anda memiliki beberapa contoh excel / word / powerpoint yang beredar, juga pertimbangkan untuk menyelesaikan masalah tersebut dengan edisi bebas officetab. Ini akan memungkinkan Anda untuk menyimpan semua file excel terbuka dalam satu contoh misalnya bukannya bertebaran tentang taskbar.
Saya tahu Anda sudah tahu bahasa Autohotkey yang luar biasa;). Saya akan menggunakan:
Jika Anda memiliki pertanyaan lain, Anda harus menanyakannya di forum autohotkey.
sumber
Mungkin tidak serumit beberapa orang, tetapi inilah yang saya gunakan untuk meluncurkan sebagian besar program saya. Beralih memungkinkan Anda untuk meminimalkan jendela jika sudah aktif.
sumber
Inilah bagaimana saya memecahkan masalah ini untuk diri saya sendiri. /superuser//a/1405409/997992 Saya lupa menyebutkan di posting asli bahwa saya menggunakan jendela add on yang disebut windows manager aktual yang mengapa saya memiliki pemeriksaan tambahan dengan WinExist di sana untuk salah satu manajeman aktualwindowsmanager ATAU explorer.exe.
Semoga ini membantu.
sumber