Pencere Etkinleştirmenin nasıl çalıştığına ilişkin anlayışım oldukça basit. Bu türün en son kullanılan penceresini geri yükler. Bu varsayılan davranış, kodlamayı çok basit hale getirir. Aslında, iki basit kod bloğu ile neyin peşindeyim ile neredeyse aynı bir şey yapıyorum.
+#w::
SetTitleMatchMode, 2 ; approximate match
IfWinExist, - Microsoft Word
{
WinActivate, - Micrsoft Word
}
IfWinNotExist, - Microsoft Word
{
Run FullFilePathToMicrosoftWord
}
return
Birden fazla monitörle çalışmak için biraz ilginç bir sinerji yarattım. Windows 7'de, shift + windows tuşunu basılı tutmanın ve sola ve sağa gitmek için okları kullanmanın etkin pencereyi ışık hızında monitörler arasında taşıyacağını unutmayın. Bu yüzden biraz akıllıca bir şey denedim ve shift + window + w kelimesini eşledim. Zaten açıksa sözcüğü geri yükler veya değilse yeni bir örnek çalıştırır. Yaklaşımın güzelliği, shift + windows tuşunu asla bırakmam. Bunu yaparak, hem sağ / sol kelimeyi aktif / başlangıç yapabilir ve tam olarak istediğim konuma taşıyabilirim (yukarı bu arada en üst düzeye çıkar, aşağı en aza indirir). Etkin pencereyi geri yüklemek için + # r eşlemesini yapın ve normalde faresiz olarak kullandığınız tüm pencereleri tamamen kontrol edin. Hatırlamanız gereken tek şey, etkinleştirmeye çalıştığınız uygulamanın ilk harfidir.
Komut dosyasını daha genel hale getirme sorgunuza yanıt olarak:
1) kullanmayı düşünün
; 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
Veya başka bir olasılık:
;Active the window by finding its ahk_class
WinWait, ahk_class OpusApp,
IfWinNotActive, ahk_class OpusApp, , WinActivate, ahk_class OpusApp,
WinWaitActive, ahk_class OpusApp,
Not: Yukarıdaki kod, autoscriptwriter'ın genel çıktısının sadece bir uyarlamasıydı. Biraz gereksiz ama etkilidir. Bir pencerenin ahk_class gibi bir şey bulmak için AutoIt3 pencere casus kullanmayı düşünün.
Bir pencerenin başlığını keşfetmeniz gerekirse, ahk örneği yardım dosyasında gösterildiği gibi etkin başlık alabilirsiniz
WinGetActiveTitle, Title
MsgBox, The active window is "%Title%".
Kullanabileceğiniz bir başka numara, WinSetTitle'ı kullanarak etkin başlığı ayarlamaktır
Düzenleme: Etrafta yüzen excel / word / powerpoint birden çok örnekleri olduğu göz önüne alındığında, ayrıca officetabs ücretsiz sürümü ile bu sorunu çözmeyi düşünün. Tüm açık excel dosyalarını örneğin görev çubuğuna yayılmış yerine tek bir örnekte tutmanıza izin verir.