2010-06-02 12 views

उत्तर

-4

मैं वर्षों में AutoIt छुआ नहीं किया है, लेकिन यह IIRC हो जाएगा:

setMousePos(x, y) // tab position 
click("left") 
+2

मैं चाहता हूं कि यह अपने नाम पर आधारित टैब को सक्रिय करे, न कि इसकी स्थिति पर। – neuromancer

+1

माउसक्लिक ("बाएं", एक्स, वाई,) यह होगा कि आप ऑटोआईटी v3 में कहीं भी कैसे क्लिक करेंगे। – Copas

5

पूरे ब्राउज़र विंडो फोकस दें, तो भेजें आदेश का उपयोग करने के बार-बार यह cntl-टैब भेज जब तक विंडो के शीर्षक है जिस टैब को आप चाहते हैं उसका नाम (साथ में - अंत में मोज़िला फ़ायरफ़ॉक्स)।

+1

यह Ctrl + Tab है, है ना? – grossvogel

+1

मैंने देखा कि ऑटोटाइट का उपयोग कर सभी खिड़की खिताबों के माध्यम से किसी को Alt-Tab के बिना ऐसा करने के लिए किया गया है, लेकिन मुझे नहीं पता कि उन्होंने ऐसा कैसे किया क्योंकि मुझे स्रोत नहीं मिला। – neuromancer

5

एक यूडीएफ (उपयोगकर्ता परिभाषित कार्य-फ़ाइल शामिल) जिसे FF.au3 कहा जाता है। ऐसा लगता है कि आप जिस फ़ंक्शन को चाहते हैं वह _FFTabSetSelected() है, शुभकामनाएँ!

नीचे जीन पिंडार की विधि का एक उदाहरण है। इस तरह मैं इसे करूँगा।

#include <array.au3> 

Opt("WinTitleMatchMode", 2) 

activateTab("Gmail") 
Func activateTab($targetWindowKeyphrase) 
    WinActivate("- Mozilla Firefox") 
    For $i = 0 To 100 
     If StringInStr(WinGetTitle(WinActive("")),$targetWindowKeyphrase) Then 
      MsgBox(0,"Found It", "The tab with the key phrase " & $targetWindowKeyphrase & " is now active.") 
      Return 
     EndIf 
     Send("^{TAB}") 
     Sleep(200) 
    Next 
EndFunc 
+3

FF.au3 में शामिल हैं कि MozRepl इंस्टॉल हो, आप इसे यहां प्राप्त कर सकते हैं: https://github.com/bard/mozrepl/wiki। – MaQleod

3

ये रहा ...

AutoItSetOption("WinTitleMatchMode", 2) 

$searchString = "amazon" 

WinActivate("Mozilla Firefox") 
For $i = 0 To 100 
    Send("^" & $i) 
    Sleep(250) 
    If Not(StringInStr(WinGetTitle("[ACTIVE]"), $searchString) = 0) Then 
     MsgBox(0, "Done", "Found it!") 
     ExitLoop 
    EndIf 
Next 

बस MsgBox हटा सकते हैं और आप तैयार हैं!

2

जैसा कि कोपा ने कहा, FF.au3 का उपयोग करें। फंक्शन _FFTabSetSelected($regex,"label")$regex दिए गए नाम मिलान वाले पहले टैब का चयन करेगा।

+0

+1 के बारे में 1 लाइन कोड और +1 घटनाओं को न भेजें। जब आप ऑब्जेक्ट्स का उपयोग कर सकते हैं तो सक्रिय विंडो में किसी भी 'प्रेषण' या 'क्लिक' को अनलिंक करें। चयनित टैब सेट करने का यह सही तरीका है। ऐसा करने से आप टैब को अन्य विंडो में हस्तक्षेप किए बिना बंद कर सकते हैं, भले ही विंडोज युक्त टैब छुपा हुआ हो। – erm3nda

0

Nop ... स्क्रिप्ट गाड़ी है ^^ '... 100 तक की गिनती करने की कोई जरूरत है, और वहाँ के साथ के बाद "भेजें" एक समस्या है:

आप Ctrl + संख्या भेजते हैं = > संख्या 9 से बड़ी नहीं हो सकती है ... क्योंकि दस 2 कारक वाले नंबर हैं, फ़ायरफ़ॉक्स शॉर्टकट के साथ टैब 10 को सक्रिय नहीं कर सकता है।

और जिस तरह से स्क्रिप्ट काम कर रही है, वैसे ही वह एक पल है जब वह ctrl कुंजी जारी करता है .. यह दस नहीं भेजता है, लेकिन ctrl और 1 end शून्य ... और छप !!! यह सिर्फ खिड़की में नंबर भेजो। इसलिए हमें स्क्रिप्ट को सीखना होगा कि दूसरी बार वह $ i = 0 या एक पर वापस आ गया है, सभी टैब देखे गए थे, जारी रखने की कोई आवश्यकता नहीं है, भले ही आप जिस पाठ को खोज रहे हैं, वह नहीं मिला। इसलिए मैंने अपनी खुद की लिपि पुरानी पर आधारित बनाई:

## 
AutoItSetOption("WinTitleMatchMode", 2) 

$searchString = "The string you're looking for" 
Local $o = 0 
WinActivate("The Name of the process where you're searching") 
For $i = 0 To 9 
    Send("^" & $i) 
    Sleep(250) 
     if ($i = 9) Then 
     $o += 1 
     EndIf 
     If not (StringInStr(WinGetTitle("[ACTIVE]"), $searchString) = 0) Then 
      MsgBox("","","Found it !") ;your action, the text was found. 
      ExitLoop 
     ElseIf ($o = 1) Then 
      MsgBox("","","All tab seen, not found...") ;your action, the text was not found, even after looking all title. 
      ExitLoop 
     EndIf 
    Next 
## 
संबंधित मुद्दे