আমার এএইচকে দুটি স্ক্রিপ্ট রয়েছে, উভয়ই "কী সিকোয়েন্সগুলি" দ্বারা চালিত হয়েছিল (খ দুটি বার চাপানো হয়েছে) এবং (1 টি দুবার চাপানো হয়েছে), এখানে কোডটি দেওয়া হয়েছে
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
SetTitleMatchMode RegEx ; matchs apps windows names using RegEx
; Delay A between key sequence triggers
ARkeySeqDelayA := 250
; if Presets Panel is in 100%
; Y axis top in tool presets is 122 pixels
; Y axis gap between tool presets is 29 pixels
ARtoolPresetTopY := 125
ARtoolPresetGapY := 29
return
#If WinActive("ahk_class ArtRage 3")
b::
if Keyb_presses > 0 ; SetTimer already started, so we log the keypress instead.
{
Keyb_presses += 1
return
}
; Otherwise, this is the first press of a new series. Set count to 1 and start
; the timer:
Keyb_presses = 1
SetTimer, Keyb, -250 ; Wait for more presses within a 250 millisecond window.
return
Keyb:
if Keyb_presses = 1 ; The key was pressed once.
{
BlockInput, MouseMove
Send {b}
sleep 80
MouseClick, left, 195, 55
Sleep 200
MouseClick, left, 200, 85
BlockInput, MouseMoveOff
}
else if Keyb_presses = 2 ; The key was pressed twice.
{
BlockInput, MouseMove
Send {b}
sleep 80
MouseClick, left, 195, 55
Sleep 200
MouseClick, left, 200, 110
BlockInput, MouseMoveOff
}
; Regardless of which action above was triggered, reset the count to
; prepare for the next series of presses:
Keyb_presses = 0
return
1::
if Key1_presses > 0 ; SetTimer already started, so we log the keypress instead.
{
Key1_presses += 1
return
}
; Otherwise, this is the first press of a new series. Set count to 1 and start
; the timer:
Key1_presses = 1
SetTimer, Key1, -250 ; Wait for more presses within a 250 millisecond window.
return
Key1:
if Key1_presses = 1 ; The key was pressed once.
{
BlockInput, MouseMove
MouseClick, left, 13, ARtoolPresetTopY
BlockInput, MouseMoveOff
}
else if Key1_presses = 2 ; The key was pressed twice.
{
BlockInput, MouseMove
MouseClick, left, 13, ARtoolPresetTopY + (ARtoolPresetGapY * 8)
BlockInput, MouseMoveOff
}
; Regardless of which action above was triggered, reset the count to
; prepare for the next series of presses:
Key1_presses = 0
return
তবে কোনওরকমভাবে যখন আমি "1" স্ক্রিপ্টটি ট্রিগার করি এবং তারপরে কয়েক সেকেন্ড পরে আমি "11" স্ক্রিপ্টটি ব্যবহার করতে চাই, আমি নিজের (ম্যানুয়ালি) আগে কোথাও ক্লিক না করে এটি কাজ করবে না, মনে হয় এটিএইচকে আগের লিপিটি এখনও কোনওভাবে রয়েছে চলমান এবং আমার যে কোনও জায়গায় ক্লিক করে এটি শেষ করা দরকার needs
এছাড়াও যখন আমি "বিবি" স্ক্রিপ্টটি ট্রিগার করি এবং তারপরে 1 সেকেন্ড পরে আমি "1" স্ক্রিপ্টটি ব্যবহার করতে চাই এটি কাজ করবে না, আবার মনে হয় যে কোনওরকমভাবে এএইচকে এখনও প্রিভিউস স্ক্রিপ্ট বা অন্য কিছু চলছে, এবং আমাকে তৈরি করতে হবে আমার স্ব ক্লিক করুন এবং তারপরেই এটি "1" স্ক্রিপ্টটি ব্যবহার করবে। সুতরাং আমি একের পর এক "বিবি" এবং "1" স্ক্রিপ্ট চালাতে পারি না (যা আমি সবসময়ই করি, খুব প্রয়োজনীয়) আমাকে তাদের মধ্যে কিছুটা মাউস ক্লিক না করে আমি কীভাবে এড়াতে পারি ??
আরও পরীক্ষার পরে, আমি স্ক্রিপ্টের সমস্ত এক্সিকিউটিভ অংশগুলিকে ন্যায়বিচারে প্রতিস্থাপন করি
Run C:\Users\myname\Desktop\AR4 bb.exe ; the same script done in a macro recorder
click up left
এবং আমি লক্ষ্য করেছি যে সমস্যাটি এখনও অব্যাহত রয়েছে, একইভাবে স্ক্রিপ্টটি কীভাবে একক এবং ডাবল কী-টিপসকে আলাদা করে দেখায় যা স্ক্রিপ্টটিতে টানা দু'বার চালিত হয়। যদি আমি "বি" টি এক সেকেন্ড অপেক্ষা করে রাখি তবে আমি নিজে থেকে কোনও মাউস ক্লিক না করি এবং "বিবি" (খ দুইবার) টিপুন এটি "বি" কার্যকর করবে, তবে আমি যদি আগে নিজেই কিছু মাউস ক্লিক করি তবে এটি "বিবি" কার্যকর করবে। কেন এমন হচ্ছে?
আমি কি করতে পারি?? এই লিপিটি আরও প্রতিক্রিয়াশীল করার জন্য এমন কোনও আদেশ রয়েছে যা আমি যুক্ত করতে পারি?
ধন্যবাদ উন্নত।
MouseClick, Left, 13, VarA + (VarB * 2)
বা আমি এগুলি কীভাবে রাখব? ধন্যবাদ উন্নত।