কোনও "ধারক" উইন্ডো নয়, বিদ্যমান গুগল ক্রোম ট্যাবে ফোকাস করতে আমি কীভাবে অটোহোটকি ব্যবহার করতে পারি?


16

"কনটেইনার" উইন্ডো নয়, বিদ্যমান গুগল ক্রোম ট্যাবে ফোকাস করতে আমি কীভাবে অটোহোটকি ব্যবহার করতে পারি?

বিস্তারিত

গুগল ক্রোম মনে হয় প্রতিটি উইন্ডোকে একটি ধারক উইন্ডো হ্যান্ডেল সহ উপস্থাপন করে যা এক বা একাধিক ট্যাব ধারণ করে। ট্যাবগুলির (কমপক্ষে বর্তমানের একটি) নিজস্ব উইন্ডো হ্যান্ডেল রয়েছে। ট্যাব উইন্ডো হ্যান্ডেলগুলির উইন্ডো শিরোনাম রয়েছে (যা বর্তমানে সমস্ত "- গুগল ক্রোম" এ শেষ হয়), তবে ধারক উইন্ডো নিজেই হ্যান্ডেল করে না। নিম্নলিখিত ক্রিয়াকলাপের কোডটি গুগল ক্রোমের উদ্দেশ্যে কাজ করে না:

^+i::
if WinExist("ahk_class Chrome_WidgetWin_0")
    WinActivate
else
    Run "C:\Users\vleeshue\AppData\Local\Google\Chrome\Application\chrome.exe"
return

এই বাইন্ডিংটি যদি গুগল ক্রোম উইন্ডোতে উপস্থিত থাকে বা গুগল ক্রোম চালায় তবে এটি ফোকাস করবে। তবে এটি প্রায়শই ধারক উইন্ডোটিকে লক্ষ্য করে তুলবে (উইন্ডো স্পাইতে, উইন্ডোর শিরোনামটি ফাঁকা)। ধারক উইন্ডোটি সক্রিয় করা Google ক্রোম কীবোর্ড শর্টকাটগুলির ব্যবহার নিষিদ্ধ করে। অ্যাক্সেস অ্যাক্সেসযোগ্য কীবোর্ড শর্টকাটগুলিতে ওমনিবার অ্যাক্সেস করার জন্য সমস্ত গুরুত্বপূর্ণ সিআরটিএল + এল অন্তর্ভুক্ত রয়েছে। যেহেতু আমি এখনও ধারক উইন্ডোর পরিবর্তে ট্যাব উইন্ডোটি ধারাবাহিকভাবে সক্রিয় করার কোনও উপায় খুঁজে পাইনি, তাই আমার কাজটি হ'ল মাউসটি ব্যবহার করা, তবে আমি যদি সম্ভব হয় তবে তা এড়াতে পছন্দ করি।

উইন্ডো স্পাই স্ক্রিনশট

ধারক উইন্ডো হ্যান্ডেল

ট্যাব উইন্ডো হ্যান্ডেল

পটভূমি

বর্তমান গুগল ক্রোম সংস্করণ: 5.0.317.2 দেব

আমি ব্যবহার করি এমন একটি সাধারণ অটোহোটকি বাঁধাই হ'ল একটি নির্দিষ্ট অ্যাপ্লিকেশনটি ইতিমধ্যে চালু রয়েছে কিনা তা ফোকাস করার জন্য বা অ্যাপ্লিকেশনটি চলমান না থাকলে চালনা করার জন্য একটি কীবোর্ড শর্টকাট।

উদাহরণস্বরূপ, আমি এটি foobar2000 এর জন্য ব্যবহার করি

^+m::
If WinExist("foobar2000")
    WinActivate
else
    Run "C:\Program Files (x86)\foobar2000\foobar2000.exe"
return

উত্তর:


5
^+i::
if WinExist("ahk_class Chrome_WindowImpl_0")
  {
  WinActivate
  ControlFocus, Chrome_AutocompleteEditView1
  }
else
  Run "C:\Users\vleeshue\AppData\Local\Google\Chrome\Application\chrome.exe"
return

কৌতুক করা উচিত

("ক্রোম_আউটোকম্পিউলিট এডিটভিউ 1" হলেন সর্বজনীন নিয়ন্ত্রণের নাম, যাতে আপনি সমস্তগুলি Send ^aনির্বাচন করতে যোগ করতে পারেন )

দ্রষ্টব্য:ahk_class আপনার ক্রোমের সংস্করণটি পেতে , যেমন, অটোহোটকি ডিরেক্টরিটির অভ্যন্তর ahk_class Chrome_WindowImp1-0ব্যবহার করুন AU3_Spy.exe। উদাহরণস্বরূপ যদি এটি কাজ না করে তবে এটি আপনাকে আপনার ক্রোম ব্রাউজারের জন্য সঠিক আহক শ্রেণি সন্ধান করার অনুমতি দেবে।

আপডেট: আমি পুনরুত্পাদন করতে পারি না, অন্য নিয়ন্ত্রণের সাথে এটি আরও ভাল হতে পারে ... উইন্ডো নিয়ন্ত্রণের একটি তালিকা রাখতে আমি এই কোডটি ব্যবহার করি:

#Persistent
SetTimer, WatchCursor, 100
return

WatchCursor:
  MouseGetPos, , , id, control
  WinGetTitle, title, ahk_id %id%
  WinGetClass, class, ahk_id %id%
  WinGet, ControlList, ControlList, A
  ToolTip, Under Cursor:`nahk_id: %id%`nahk_class: %class%`nTitle:%title%`nControl: %control%`n`nWindow Control List:`n%ControlList%
return

সুতরাং আমার গুগল ক্রোম 4.0.249.78 বিটা (36714) এর নিয়ন্ত্রণগুলি হ'ল:

  • ViewsTextfieldEdit1
  • Chrome_RenderWidgetHostWND1
  • Chrome_AutocompleteEditView1
  • Chrome_WindowImpl_01
  • Chrome_WindowImpl_02

আপনাকে অনেক ধন্যবাদ. এটি আমার আগের ফাংশনের চেয়ে অনেক বেশি কাজ করে বলে মনে হচ্ছে (ahk_class Chrome_WindowImpl_0 কে ahk_class Chrome_WidgetWin_0 এ পরিবর্তন করতে হয়েছিল, তবে এটি কেবল গুগল ক্রোমের বিভিন্ন সংস্করণের কারণে হতে পারে)। দুর্ভাগ্যক্রমে, এটি এখনও কিছু সময় কাজ করে না এবং সেই ক্ষেত্রে পুনরুত্পাদন করা শক্ত। একবার আমি একটি ধারক উইন্ডোতে লক হয়ে গেলে (প্রশ্ন পোস্টে স্ক্রিনশটটি দেখুন), আমাকে এখনও মাউসটি অবলম্বন করতে হবে।
ভিজিওউ

আমি কীভাবে গুগল ক্রোম নিয়ন্ত্রণগুলির একটি তালিকা পেতে পারি? এটি কিছুটা ব্যবহার করার পরে, আমি "সামগ্রী" উইন্ডোতে ফোকাস করতে পছন্দ করব। উদাহরণস্বরূপ, যদি সক্রিয় ট্যাবটি গুগল রিডার বা জিমেইল হয় তবে আমি তাদের কীবোর্ড শর্টকাটগুলিতে অ্যাক্সেস চাই যা কেবল "সামগ্রী" উইন্ডোতে ফোকাস করার সময় প্রয়োগ হয়। তদতিরিক্ত, "সামগ্রী" উইন্ডোতে ফোকাস করা দ্রুত পৃষ্ঠা সন্ধানের অনুমতি দেয়। এছাড়াও, "সামগ্রী" উইন্ডো থেকে সর্বজনীন পেতে, আমি সর্বদা ctrl + l ব্যবহার করতে পারি।
ভিলিউজ

1
হ্যাঁ এটি অন্য নিয়ন্ত্রণের সাথে আরও ভাল হতে পারে, আমার আপডেট দেখুন
fluxtendu

হুম ... আমি পেয়েছি: Chrome_WidgetWin_01, Chrome_WidgetWin_02, Chrome_RenderWidgetHostHWND1, ভিউস টেক্সটফিল্ড এডিট 1, ক্রোম_আউটোকম্পিউলিডিটভিউ 1 আমি যে নিয়ন্ত্রণটি চাই তা অনুমান করার সময়। ধন্যবাদ! আপডেট 1: কিছু দ্রুত পরীক্ষার মাধ্যমে Chrome_WidgetWin_01 আমার যা ইচ্ছা তা প্রকাশ করে। আমার অনুমান যে অতিরিক্ত বিষয়গুলি পৃষ্ঠার সামগ্রীর উপর ভিত্তি করে তৈরি হয়েছে। আপডেট 2: একটি গুগল রিডার ট্যাবটিতে অবশ্যই এই সুপারসুর সম্পাদনা ট্যাবটির চেয়ে কমপক্ষে আরও একটি নিয়ন্ত্রণ রয়েছে।
ভিজিওউ

দুর্ভাগ্যক্রমে, আমি আবার "ধারক" উইন্ডোতে চলেছি (উইন্ডো স্পাইতে ফাঁকা উইন্ডো শিরোনাম) এবং স্বীকৃত উত্তর ট্যাগটি পূর্বাবস্থায় ফিরে যেতে হয়েছিল। আপনি যদিও একটি দুর্দান্ত সাহায্য হয়েছে।
ভিজিওউ

3

আল্ট + ট্যাব ব্যবহার করে একত্রিত:

; Activates the window identified with wintitle if it's active,
; else opens a new one
OpenWindow(wintitle, runCommand)
{
    if WinExist(wintitle)
        WinActivate ; activates the window found above. Sweet.
    else
        Run %runCommand%
}

#g::
AppsKey & g::
    prevKeyDelay := A_KeyDelay
    SetKeyDelay, 100
    OpenWindow("ahk_class Chrome_WidgetWin_0", A_AppData
                . "\Local\Google\Chrome\Application\chrome.exe")
    SendEvent {Alt down}{Tab}
    SendEvent +{Tab}
    SendEvent {Alt up}
    SetKeyDelay, prevKeyDelay
return

প্রয়োজন অনুসারে যুক্তি সামঞ্জস্য করুন। সেটকিডিলে ব্যবহৃত হয়েছে কারণ খুব দ্রুত পাঠানো কাজ করে না।


3

আপনি অটোহটকির পরিবর্তে একটি ক্রোম এক্সটেনশন ব্যবহার করতে চাইতে পারেন। এক্সটেনশানগুলি URL এবং ট্যাব ফোকাস পরিবর্তন করার ক্ষমতা সহ সমস্ত উন্মুক্ত ট্যাবগুলিতে অ্যাক্সেস পেতে পারে । অন্যথায় আপনাকে সম্ভবত সক্রিয় উইন্ডোটি জিজ্ঞাসা করার জন্য Chrome এ অ্যাক্সেসযোগ্যতা বৈশিষ্ট্যগুলি ব্যবহার করতে হবে । আমি বিশ্বাস করি যে রেসকিউটাইমের মতো প্রোগ্রামগুলি সক্রিয় ইউআরএল কী তা ট্র্যাক করে। উদাহরণস্বরূপ, উইন্ডোজ SD এসডিকে থেকে অ্যাক্সেসযোগ্য ইভেন্ট ওয়াচার (অ্যাকভেন্ট) ব্যবহার করে ক্রোমে ট্যাবগুলি পরিবর্তন করার সময় নিম্নলিখিত ইভেন্টগুলি দেখায়:

গুগল ক্রোম অ্যাকভেন্ট


আমি এই সম্পর্কে জানতাম না। সতর্ক থাকুন জন্য ধন্যবাদ।
ভিজিওউ

দেখে মনে হচ্ছে যে অটোহটকির আইএ্যাক্সেসিবল ইন্টারফেসের সাথে কাজ করার জন্য কিছু সমর্থন রয়েছে। এটি চেষ্টা করতে পারে এবং এটি সাহায্য করে কিনা তা দেখতে চাইতে পারে: autohotkey.com/forum/viewtopic.php?t=48629
গ্রেগ ব্রে

1

আপনি যদি ক্রোমের কোনও ট্যাব সন্ধান করতে চান তবে আপনি এটি ব্যবহার করতে পারেন

SetTitleMatchMode, 2
If WinExist("your title ahk_exe chrome.exe")

     .... do your stuff ... 

else {
     .... do your other stuff ...
}

return

যেহেতু ক্রোমটিতে সমস্ত কিছুই একটি প্রক্রিয়া, আপনার ট্যাবগুলিও প্রক্রিয়া।


0

উইন্ডো স্পাই "দৃশ্যমান উইন্ডো পাঠ্য" ক্ষেত্রে ট্যাব শিরোনামটি ফিরিয়ে দেয়।

আপনি পছন্দসই পাঠ্য না পাওয়া পর্যন্ত আপনি ট্যাবগুলিতে লুপ করতে পারেন। ট্যাব থেকে ট্যাবে স্যুইচ করতে, CTRL+ TABকীগুলি প্রেরণ করুন । সমস্যাটি এক পর্যায়ে থামতে হবে তবে আপনি যদি জানেন যে আপনি সর্বাধিক এক্স ট্যাব ব্যবহার করেন না তবে কাঙ্ক্ষিত ট্যাবটি পাওয়া না গেলে আপনি কোনও মুহুর্তে ব্রেক করতে লুপে একটি কাউন্টার অন্তর্ভুক্ত করতে পারেন।


দুর্ভাগ্যক্রমে, ctrl + ট্যাবটিও অ্যাক্সেসযোগ্য। কনটেইনার উইন্ডোতে এবং এই ট্যাবে রেফারেন্সের জন্য উইন্ডো স্পাইয়ের স্ক্রিনশটটি এখানে রয়েছে: img43.imageshack.us/img43/7341/containere.png img25.imageshack.us/img25/2651/tabw.png আমি এগুলিকে কেবল এগুলিতে যুক্ত করেছি প্রধান প্রশ্ন পোস্ট।
ভলিউশন

0

অটোহটকিতে উইনঅ্যাক্টিভেট ফাংশন সহ একটি বাগ রয়েছে বলে মনে হচ্ছে। ( http://productivegeek.com/forums/topic/autohotkey-problem-restoring- minimized-window-and-giving-keyboard-focus )

সুতরাং WinActivate লাইনের পরিবর্তে ব্যবহার করুন

WinGet, winid, ID, 
DllCall("SwitchToThisWindow", "UInt", winid, "UInt", 1)

0
!f::
    IfWinExist ahk_class Chrome_WidgetWin_0
    {   IfWinActive ahk_class Chrome_WidgetWin_0
        {   Loop, 60
            {   GetKeyState, state, C
                if state = D
                {   KeyWait, c

                    KeyWait, LAlt
                    Sleep 10

                    ;must send RCtrl!!!
                    Send {RCtrl down}
                    Send {w down}
                    Sleep 10
                    Send {w up}
                    Send {RCtrl up}

                    break
                }
                Sleep 1
            }

        }

        else
        {   KeyWait,f
            KeyWait,LAlt
            ;don't hijack other apps
            Send f
        }
    }

    return

2
এই কি করে একটু ব্যাখ্যা করার যত্ন?
slhck

0

এটি আপনাকে আরও ধারণা দেয় কি না তা দেখুন। আমি উপরের কোনটিই ব্যবহার করছি না।

!z::
WinWait, Yahoo,
IfWinNotActive, Yahoo, , WinActivate,Yahoo,
WinWaitActive, Yahoo, 
Sleep, 100
return

1
যদিও এটি প্রশ্নের উত্তর দিতে পারে, আপনি কেন এটি করেন তার কিছু ব্যাখ্যা দিতে পারলে এটি আরও ভাল উত্তর হবে।
ডেভিডপস্টিল

0

এই এএইচকে ফাংশনটি যদি কোনও গুগল ক্রোম ট্যাব সক্রিয় করে তবে তা উপস্থিত থাকলে এবং সত্যে ফিরে আসে। অন্যথায়, এটি মিথ্যা ফিরে আসবে।

; Activates tab in Google Chrome if it exists
; Returns true if exists, false if does not exist
; Leaves original tab activated if sought tab does not exist
; Known issue: will stop searching tabs if two tabs have same name
ActivateChromeTab(soughtTab)
{
  SetTitleMatchMode 2 ; Allows for partial matches in window titles

  IfWinNotExist Google Chrome
  {
    return false
  }

  WinActivate Google Chrome
  WinWaitActive Google Chrome
  WinGetTitle, currentTab, A
  firstTab := currentTab

  if (InStr(currentTab, soughtTab) > 0)
  {
    return true
  }

  Loop
  {
    Send {CtrlDown}{Tab}{CtrlUp}
    Sleep 50 ; Requires some time to update the window titles
    WinGetTitle, currentTab, A
    foundTab := InStr(currentTab, soughtTab) > 0
  }
  Until (foundTab || currentTab == firstTab)

  return foundTab
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.