কোনও প্রোগ্রামের পুনরুদ্ধার / আনার জন্য স্ক্রিপ্ট, বা এটি সক্রিয় না থাকলে এটি খুলুন


11

আমি এমন স্ক্রিপ্ট বিকাশের চেষ্টা করছি যা নিম্নলিখিতগুলি করা উচিত। উদাহরণস্বরূপ, !Wউচিত:

  • শব্দটি সক্রিয় আছে কিনা তা পরীক্ষা করুন (উন্মুক্ত বা ছোট করা যেতে পারে)
  • যদি এটি হ্রাস করা হয়, এটি ছোট করার আগে এটির আকার এবং অবস্থানটিতে পুনঃস্থাপন করা উচিত
  • যদি এটি খোলা থাকে, তবে অন্যান্য খোলা উইন্ডোগুলির পিছনে "লুকানো" থাকে তবে স্ক্রিপ্টটি এটিকে সামনে আনতে হবে, এটিকে সামনের / সক্রিয় উইন্ডো তৈরি করে
  • যদি এটি না হয় কমাতে বা খোলা হয় তবে প্রোগ্রামটি নতুনভাবে শুরু করা উচিত

আমি বিভিন্ন প্রোগ্রামের জন্য এই কাজ করতে চাই: !Wওয়ার্ড জন্য, !Nনোটপ্যাড জন্য ++ !Xসীমা অতিক্রম করা জন্য, !Pপাওয়ার পয়েন্ট জন্য, !Fফায়ারফক্স জন্য।

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

কিছু প্রোগ্রামের জন্য আমি এই জিনিসগুলি কিছু করতে পারি তবে ধারাবাহিকভাবে না, একটি হটকিতে (আমি এখনও স্ক্রিপ্টিংয়ের ভাষা শিখছি)। আমি কীভাবে এটি অর্জন করতে পারি?

উত্তর:


14

উইন্ডো অ্যাক্টিভেশন কীভাবে কাজ করে তা সম্পর্কে আমার উপলব্ধিটি বেশ সহজ। এটি সেই ধরণের সর্বাধিক ব্যবহৃত উইন্ডোটি পুনরুদ্ধার করে। এই ডিফল্ট আচরণটি যা আপনি খুব সহজ চান কোডিং করে তোলে। আসলে, দুটি সাধারণ কোড ব্লক দিয়ে আপনি যা করছেন তার থেকে আমি প্রায় অভিন্ন কিছু করি।

+#w::
SetTitleMatchMode, 2 ; approximate match
IfWinExist, - Microsoft Word
{
WinActivate, - Micrsoft Word
}
IfWinNotExist, - Microsoft Word
{
Run FullFilePathToMicrosoftWord
}
return

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

স্ক্রিপ্টটিকে আরও জেনেরিক তৈরি সম্পর্কে আপনার প্রশ্নের জবাবে:

1) ব্যবহার বিবেচনা করুন

; 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

বা অন্য সম্ভাবনা:

;Active the window by finding its ahk_class
WinWait, ahk_class OpusApp, 
IfWinNotActive, ahk_class OpusApp, , WinActivate, ahk_class OpusApp, 
WinWaitActive, ahk_class OpusApp,

দ্রষ্টব্য: উপরের কোডটি অটোস্ক্রিপ্টরাইটারের জেনেরিক আউটপুটটির মাত্র একটি অভিযোজন ছিল। এটি কিছুটা অপ্রয়োজনীয় তবে কার্যকর। উইন্ডোর আহক_ক্লাসের মতো কিছু খুঁজে পাওয়ার জন্য অটোআইটি 3 উইন্ডো স্পাই ব্যবহার করে বিবেচনা করুন।

আপনার যদি উইন্ডোর শিরোনামটি আবিষ্কার করতে হয় তবে আপনি আহক উদাহরণ সহায়ক ফাইলটিতে প্রদর্শিত সক্রিয় শিরোনাম পেতে পারেন

WinGetActiveTitle, Title
MsgBox, The active window is "%Title%".

আপনি ব্যবহার করতে পারেন এমন অন্য কৌশলটি উইনসেটিটাইল ব্যবহার করে সক্রিয় শিরোনাম সেট করা

সম্পাদনা করুন: আপনার চারপাশে ভাসমান এক্সেল / শব্দ / পাওয়ারপয়েন্টের একাধিক উদাহরণ রয়েছে, এছাড়াও অফিটাবেটস ফ্রি সংস্করণ দিয়ে সেই সমস্যাটি সমাধান করার বিষয়টি বিবেচনা করুন। এটি আপনাকে সমস্ত ওপেন এক্সেল ফাইলগুলিকে একক দৃষ্টান্তে যেমন টাস্কবারের বিষয়ে প্রসারণের পরিবর্তে রাখার অনুমতি দেয়।


এটি নিখুঁত! দুর্দান্ত টিপস এবং খুব দরকারী কোড। আমি একটি দ্বিতীয় মনিটর যুক্ত করতে যাচ্ছি, যাতে উত্তরের সেই অংশটিও অনেক প্রশংসিত।
পিটার ভারবিয়েট

যাইহোক, আমিও অফিটিটিবসের টিপটি পছন্দ করি। আমি জানতাম না যে এর অস্তিত্ব আছে তবে এটি দেখতে খুব দরকারী।
পিটার ভারবিয়েট

ভাগ্যক্রমে, "রান, উইনওয়ার্ড" কমান্ডটি কাজ করে, তাই দেখে মনে হচ্ছে আমাকে পুরো পথ সরবরাহ করতে হবে না।
পিটার ভারবিয়েট

@ কোল্ড্রেনওয়াটার: গুগল ক্রোমের জন্য এটির কাজ করার জন্য একজনকে কীভাবে উপরে স্ক্রিপ্ট পরিবর্তন করতে হবে? সমস্যাটি হ'ল কোন ওয়েবসাইটটি খোলার উপর নির্ভর করে শিরোনাম পরিবর্তন হয়।
লার্নকুরভে

1

আমি দেখতে পেয়েছি আপনি ইতিমধ্যে দুর্দান্ত অটোহোটকি ভাষা সম্পর্কে জানেন))। আমি ব্যবহার করব:

  • ifWinActive; উইন্ডো সক্রিয় কিনা তা পরীক্ষা করুন
  • উইনগেট, আউটপুট, মিনম্যাক্স; উইন্ডোটি ছোট করা হয়েছে কিনা তা পরীক্ষা করুন
  • ifWinExists; উইন্ডো উপস্থিত আছে কিনা তা পরীক্ষা করুন (তবে সক্রিয় নেই)
  • চালান; কোনও প্রক্রিয়া যুক্ত না হলে প্রোগ্রামটি চালান
  • জেড-অর্ডার / উইনলিস্ট; এগুলি আপনাকে সমস্ত দৃষ্টান্তের তালিকা তৈরি করতে সহায়তা করবে / প্রথম কোন উদাহরণটি নির্ধারণ করবে

আপনার যদি আরও প্রশ্ন থাকে তবে অবশ্যই অটোহোটকি ফোরামে তাদের অবশ্যই জিজ্ঞাসা করা উচিত।

; The script activates a Word 2007 window
; The script uses 'winTitle' and 'winClass' variables to match the window
; so set those properly first.
; Press Shift + 1 + w to see how the script works.
;
winTitle := "Document1 - Microsoft Word" ; use Autoit Window Spy to get this
winClass := "OpusApp"
RunWait, winword
return

+1::
    KeyWait, w, D T1 ; KeyboardHook not needed
    if(errorlevel) {
        msgbox, % """Shift + 1 + w"" failed"
        return
    }
    Send, {Backspace} ; erase 'w'
    IfWinNotActive, %winTitle%
    {
        WinActivate, %winTitle%
        WinWaitActive, %winTitle%, , 3
        if(errorlevel)
            MsgBox, % "Failed to activate the window."
    } 
    else ; Last Found Window set
    {
        MsgBox, % "Window already activated."

    }
return


F11::Reload

ধন্যবাদ। আমি এগুলি নিয়ে খেলছি, তবে কীভাবে কার্যকর তা অন্যথায় লুপ করতে হবে তা সত্যিই আমি জানি না। সুতরাং, যদি আইফুইনএ্যাকটিভটি মিথ্যা হয় তবে আমি অন্য কোনও কমান্ডের অংশ হিসাবে উপযুক্ত রান কমান্ডটি কীভাবে চালু করব?
পিটার ভারবিয়েট 20'12

@ পিটারভেরবিট: সম্পাদনাটি দেখুন। আমি ওয়ার্ড 2007 ইংরেজি সংস্করণ ব্যবহার করেছি। স্ক্রিপ্টটি কীভাবে কাজ করে তা দেখতে Shift + 1 + w টিপুন।
কোলেমিক 20'12

আমি এটি কয়েকবার সম্পাদনা করেছি।
কোলেমিক 20'12

ধন্যবাদ ট্রিসমার্ক, এটি সত্যই কার্যকর। এটি দুর্দান্ত কাজ করে। এটিকে আরও "জেনেরিক" করার কোনও উপায় আছে কি? ওয়ার্ড দ্বারা বর্তমানে কোন দলিল সম্পাদনা করা হচ্ছে তা নির্বিশেষে আমি এটি চালাতে চাই। আমার কাছে মনে হচ্ছে আমাকে স্ক্রিপ্টে প্রত্যেকবার নিজেই নামটি পরিবর্তন করতে হবে (আমি শব্দটি প্রচুর ব্যবহার করি এবং খুব কমই "ডকুমেন্ট 1" ব্যবহার করি। ওয়ার্ড নিজেই সক্রিয় কিনা তা যাচাই করেই কি করা যায়, তা কোন দলিলই হোক না কেন সক্রিয়?
পিটার ভারবিয়েট

1

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

^NumpadDot::ShowStart("Google Chrome", "chrome.exe")

ShowStart(title, exe, toggle = 0)
{
    If WinActive(title) and toggle
        WinMinimize %title%
    Else
        {
            IfWinExist, %title%
                WinActivate
            else
            {
                Run, %exe%
                WinActivate
            }
        }
}

টগল সবসময় 0 হবে না?
স্যাম হাসলার

0

এইভাবে আমি নিজের জন্য এই সমস্যাটি সমাধান করেছি। https://superuser.com/a/1405409/997992 আমি মূল পোস্টে উল্লেখ করতে ভুলে গেছি যে আমি উইন্ডোজ যুক্ত ব্যবহার করছি যাঁকে প্রকৃত উইন্ডোজ ম্যানেজার বলা হয় যার জন্য আমি সেখানে উইনএক্সিস্টের সাথে প্রকৃত উইন্ডোসম্যানজারের জন্য একটি অতিরিক্ত চেক পেয়েছি বা এক্সপ্লোরার। এক্স।

আশাকরি এটা সাহায্য করবে.

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