এখানে নুব আমি যখনই ফাইল এক্সপ্লোরার-এ থাকি তখন পরিবর্তিত তারিখ অনুসারে বাছাই করতে অটোহোট কী ব্যবহার করছি।
সমস্যাটি হ'ল কিছু ফোল্ডারে যদি কলামগুলির ক্রমটি আলাদা হয় তবে আমার স্ক্রিপ্টটি কাজ করে না।
তারিখের জন্য একটি অনন্য কোড আছে কি কেউ জানেন?
এখানে নুব আমি যখনই ফাইল এক্সপ্লোরার-এ থাকি তখন পরিবর্তিত তারিখ অনুসারে বাছাই করতে অটোহোট কী ব্যবহার করছি।
সমস্যাটি হ'ল কিছু ফোল্ডারে যদি কলামগুলির ক্রমটি আলাদা হয় তবে আমার স্ক্রিপ্টটি কাজ করে না।
তারিখের জন্য একটি অনন্য কোড আছে কি কেউ জানেন?
উত্তর:
এটি এক্সপ্লোরার উইন্ডোতে বোতামটি (যা আপনি ক্লিক করবেন) সন্ধান করার জন্য অ্যাক্সেসিবিলিটি ফাংশনগুলি ব্যবহার করে এবং পরে প্রোগ্রামিকভাবে এটি সম্পাদন করে।
দুর্ভাগ্যক্রমে, দেখা যাচ্ছে যে অ্যাক্সেসিবিলিটি লাইব্রেরি ( acc.ahk
) ডাউনলোড করার লিঙ্কটি আর বৈধ নয় ( https://autohotkey.com/board/topic/77303-acc-library-ahk-l-updated-09272012/ ), তাই আপনি অন্য ফোরামের পৃষ্ঠাগুলির একটির অনুলিপি (সম্ভবত নতুন ফোরামে শুরু হওয়া) বা কোথাও গিথুব পাওয়া দরকার, এবং তারপরে নীচে অতিরিক্ত বর্ধিত ফাংশন অন্তর্ভুক্ত করুন।
নীচের কোডের জন্য, অ্যাক্সেসিবিলিটি ফাংশনগুলিতে কোন নিয়ন্ত্রণ নাম এবং চাইল্ডপথকে আর্গুমেন্ট হিসাবে ব্যবহার করবেন কীভাবে তা নির্ধারণ করতে হবে তা নির্ধারণের জন্য এখানে ব্যাখ্যা করার সুযোগের বাইরে, তবে সেগুলি Spy++
এবং এটি ব্যবহার করে নির্ধারণ করা যেতে পারে Accessibility Info Viewer
।
যখন মৃত্যুদন্ড কার্যকর করা হয়, এই কোডটি বাছাই করা কলাম শিরোনামের বোতামে মাউস ক্লিক করার মতোই প্রভাব ফেলেছে, সুতরাং এটি যদি একভাবে সাজানো হয় তবে এটি কার্যকর করে অন্য পদ্ধতিতে সাজানো হবে।
আপনি যদি অন্য ক্ষেত্রগুলির মধ্যে একটি অনুসারে বাছাই করতে চান তবে আপনি মাইনেম আর্গুমেন্টে "তারিখ" প্রতিস্থাপন করতে অন্য কলামগুলির মধ্যে একটির (নাম, প্রকার ইত্যাদি) অনুসারে বাছাই করতে পারেন।
এই acc.ahk
কোডটির উপরে উল্লিখিত হিসাবে প্রয়োজন এবং এক্সপ্লোরার উইন্ডোর জন্য তারিখ অনুসারে বাছাই করার জন্য কাজ করা পরীক্ষা করা হয়। এটি কলামের নাম পরিবর্তন বা ঘুরিয়ে দেওয়ার বিরুদ্ধেও দৃ is় কারণ কারণ acc_doIfChildName()
উপস্থিত কলামের তালিকার মাধ্যমে কলটি পুনরাবৃত্তি হয়, যতক্ষণ না এটি প্রবেশ করা myName
আর্গুমেন্টটি আবিষ্কার করে এবং তারপরে সেই বোতামটির জন্য ডিফল্ট অ্যাকশন কার্যকর করে। যদি এটি কোনও মিলে যাওয়া বোতামটি না পায় তবে এটি কেবল ফেরতের মূল্যের False
জন্য foundAndExecuted
ফিরে আসবে।
#Persistent
#SingleInstance, Force
#NoEnv
;-----------------------------------------------------------------------------------------------------------------------
; Press F2 to Sort by date in any active Explorer window
;-----------------------------------------------------------------------------------------------------------------------
#IfWinActive ahk_class CabinetWClass ahk_exe Explorer.exe
F2::
Tooltip % "Sorting by date..." ; acc functions can take a second, show user status in progress...
myHwnd:=ControlGet(cmd:="Hwnd", val:="", ctl:="ShellView", "ahk_class CabinetWClass ahk_exe explorer.exe")
retVal:=acc_doIfChildName(myName:="Date", childPath:="4.1.4.1", statusBarObj:="ahk_id" myHwnd, loopBackward:=False)
Tooltip ; clear status Tooltip
Return
#IfWinActive
ExitApp
#Include acc.ahk
;-----------------------------------------------------------------------------------------------------------------------
; acc_doIfChildName() - Iterate all children looking for the correct childname to try and execute...
;-----------------------------------------------------------------------------------------------------------------------
acc_doIfChildName(myName, childPathArg, myWinTitleOrObj, loopBackward:=False, startIndex:=1) {
;-------------------------------------------------------------------------------
; Set for multiple dialogs below during debugging
;-------------------------------------------------------------------------------
debug:=False
Loop, % childCount:=acc_get("childCount", childPathArg, childID:=0, myWinTitleOrObj) {
If acc_doIfName(myName, childPath:=childPathArg "." (loopBackward ? childCount+1-A_Index : A_Index), myWinTitleOrObj) ; Loop backwards to find faster since it will be at the end
Return foundAndExecuted:=True
Else If debug {
ctlName :=acc_get("name", childPath, childID:=0, myWinTitleOrObj)
ctlValue:=acc_get("value", childPath, childID:=0, myWinTitleOrObj)
MsgBox % "A_Index=" A_Index "`n" . "ctlName=" ctlName "`n" . "ctlValue=" ctlValue "`n"
}
}
Return foundAndExecuted:=False
}
;-----------------------------------------------------------------------------------------------------------------------
; acc_doIfName() - doDefaultAction() if searchItemName matches the control name at childPath
;-----------------------------------------------------------------------------------------------------------------------
acc_doIfName(myName, childPath, myWinTitle) {
Return acc_doIf("Name", myName, childPath, myWinTitle)
}
;-----------------------------------------------------------------------------------------------------------------------
; acc_doIf() - doDefaultAction() if field and value match correctly for childPath
;-----------------------------------------------------------------------------------------------------------------------
acc_doIf(accField, searchItem, childPath, myWinTitle) {
foundAndExecuted:=False
Try {
If ((ctlName:=acc_get(accField, ChildPath, childID:=0, myWinTitle))=searchItem) {
oAcc := acc_Get("Object", ChildPath, ChildID, myWinTitle)
oAcc.accDoDefaultAction(ChildID)
foundAndExecuted:=True
}
}
Return foundAndExecuted
}
;-----------------------------------------------------------------------------------------------------------------------
; ControlGet()
;-----------------------------------------------------------------------------------------------------------------------
ControlGet(Cmd, Value:="", Control:="", WinTitle:="", WinText:="", ExcludeTitle:="", ExcludeText:="") {
ControlGet, v, % Cmd, % Value, % Control, % WinTitle, % WinText, % ExcludeTitle, % ExcludeText
Return, v
}