Runtime v2.81 · อัปเดต 30 ก.ย. 2569

Storage

Storage คีย์/ค่าแบบถาวรสำหรับมาโครปัจจุบัน ตัวแปรปกติใช้ร่วมกันเฉพาะระหว่าง action PYTHON_CODE ที่ทำงานตามลำดับภายใน flow เดียว รวมถึง action ใน GROUP ส่วน flow ที่ทำงานพร้อมกันจะแยกตัวแปรออกจากกัน คีย์ Storage ใช้ร่วมกันในทุก flow จึงควรใช้เมื่อค่าต้องคงอยู่ถึงการรันมาโครครั้งถัดไป ไม่ใช่เป็นช่องส่งข้อความระหว่างโปรเซส การเขียนจะถูกบันทึกอัตโนมัติหลังไม่มีการเขียนใหม่ 2 วินาที และ commit อีกครั้งเมื่อ Run ทั้งหมดและ flow เบื้องหลังทั้งหมดสิ้นสุด

รูปแบบคำสั่ง

Storage

ไม่สามารถสร้างคลาสนี้โดยตรงได้

พารามิเตอร์

ไม่มี

ค่าที่ส่งกลับ

—

พฤติกรรม / ผลข้างเคียง

Storage คีย์/ค่าแบบถาวรสำหรับมาโครปัจจุบัน ตัวแปรปกติใช้ร่วมกันเฉพาะระหว่าง action PYTHON_CODE ที่ทำงานตามลำดับภายใน flow เดียว รวมถึง action ใน GROUP ส่วน flow ที่ทำงานพร้อมกันจะแยกตัวแปรออกจากกัน คีย์ Storage ใช้ร่วมกันในทุก flow จึงควรใช้เมื่อค่าต้องคงอยู่ถึงการรันมาโครครั้งถัดไป ไม่ใช่เป็นช่องส่งข้อความระหว่างโปรเซส การเขียนจะถูกบันทึกอัตโนมัติหลังไม่มีการเขียนใหม่ 2 วินาที และ commit อีกครั้งเมื่อ Run ทั้งหมดและ flow เบื้องหลังทั้งหมดสิ้นสุด

การทำงาน

  • รอให้เสร็จ: ขึ้นอยู่กับเงื่อนไข
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
  • การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข

โฟลว์ใน Run เดียวกันใช้เซสชัน Storage ร่วมกัน แต่ละการทำงานและการแก้ไขซ้อนที่ติดตามมีล็อกป้องกัน การ get แล้ว set ไม่ใช่ธุรกรรมอะตอมมิก ให้มีผู้เขียนเพียงโฟลว์เดียวเมื่อการอัปเดตขึ้นกับค่าที่อ่านก่อนหน้า

ตัวอย่าง

# บันทึกค่าให้ใช้ข้ามการรัน macro คนละครั้ง
run_count = Storage.get("run_count", 0)
run_count = run_count + 1
Storage.set("run_count", run_count)
Storage.set("last_point", Point(500, 900))
MacroPanel.notify("Run #" + str(run_count))

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

เมธอด

8 เมธอด

Storage.get

อ่านค่าที่คงอยู่หนึ่งค่าตามคีย์และเลือกที่จะถอยกลับไปเป็นค่าเริ่มต้นเมื่อคีย์หายไป

รูปแบบคำสั่ง

Storage.get(key, default=None)

พารามิเตอร์

ชื่อคำอธิบาย
keyAny
Key to look up.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น
defaultAny?
Fallback value returned when the key is missing.
ไม่บังคับ · ระบุตามตำแหน่งหรือชื่อ
ค่าเริ่มต้น: None

ค่าที่ส่งกลับ

Any? — ค่าที่เก็บไว้สำหรับคีย์นั้น หรือค่าเริ่มต้นที่ให้ไว้

พฤติกรรม / ผลข้างเคียง

อ่านค่าที่คงอยู่หนึ่งค่าตามคีย์และเลือกที่จะถอยกลับไปเป็นค่าเริ่มต้นเมื่อคีย์หายไป

การทำงาน

  • รอให้เสร็จ: ขึ้นอยู่กับเงื่อนไข
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
  • การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข

โฟลว์ใน Run เดียวกันใช้เซสชัน Storage ร่วมกัน แต่ละการทำงานและการแก้ไขซ้อนที่ติดตามมีล็อกป้องกัน การ get แล้ว set ไม่ใช่ธุรกรรมอะตอมมิก ให้มีผู้เขียนเพียงโฟลว์เดียวเมื่อการอัปเดตขึ้นกับค่าที่อ่านก่อนหน้า

ตัวอย่าง

# กู้คืนตัวนับที่บันทึกไว้พร้อมค่าเริ่มต้นสำรอง
run_count = Storage.get("run_count", 0)

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

Storage.set

เขียนหรือแทนที่หนึ่งรายการในที่เก็บข้อมูลถาวร ค่าที่รองรับจะเก็บประเภทที่เหมาะกับสคริปต์ เช่น ตัวเลข สตริง บูลีน จุด ภูมิภาค รายการ ทูเพิล dict ชุด และไม่มี รวมถึงค่าคอลเลกชันที่ซ้อนกัน

รูปแบบคำสั่ง

Storage.set(key, value)

พารามิเตอร์

ชื่อคำอธิบาย
keyAny
Key to write.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น
valueAny?
Value to persist for that key.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น

ค่าที่ส่งกลับ

None — ไม่มีค่าที่ส่งคืนโดยตรง Storage จะอัปเดตทันที บันทึกอัตโนมัติหลังไม่มีการเขียนใหม่ 2 วินาที และ commit อีกครั้งเมื่อ Run ทั้งหมดและ flow เบื้องหลังทั้งหมดสิ้นสุด

พฤติกรรม / ผลข้างเคียง

เขียนหรือแทนที่หนึ่งรายการในที่เก็บข้อมูลถาวร ค่าที่รองรับจะเก็บประเภทที่เหมาะกับสคริปต์ เช่น ตัวเลข สตริง บูลีน จุด ภูมิภาค รายการ ทูเพิล dict ชุด และไม่มี รวมถึงค่าคอลเลกชันที่ซ้อนกัน

การทำงาน

  • รอให้เสร็จ: ขึ้นอยู่กับเงื่อนไข
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
  • การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข

โฟลว์ใน Run เดียวกันใช้เซสชัน Storage ร่วมกัน แต่ละการทำงานและการแก้ไขซ้อนที่ติดตามมีล็อกป้องกัน การ get แล้ว set ไม่ใช่ธุรกรรมอะตอมมิก ให้มีผู้เขียนเพียงโฟลว์เดียวเมื่อการอัปเดตขึ้นกับค่าที่อ่านก่อนหน้า

ตัวอย่าง

# บันทึกค่าสำหรับการรัน macro ครั้งถัดไป
Storage.set("run_count", 3)
Storage.set("last_point", Point(500, 900))

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

Storage.remove

ลบหนึ่งรายการที่มีอยู่และส่งกลับค่าเก่า

รูปแบบคำสั่ง

Storage.remove(key)

พารามิเตอร์

ชื่อคำอธิบาย
keyAny
Key to remove.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น

ค่าที่ส่งกลับ

Any? — ค่าที่ถูกลบออก หรือไม่มีเมื่อคีย์หายไป

พฤติกรรม / ผลข้างเคียง

ลบหนึ่งรายการที่มีอยู่และส่งกลับค่าเก่า

การทำงาน

  • รอให้เสร็จ: ขึ้นอยู่กับเงื่อนไข
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
  • การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข

โฟลว์ใน Run เดียวกันใช้เซสชัน Storage ร่วมกัน แต่ละการทำงานและการแก้ไขซ้อนที่ติดตามมีล็อกป้องกัน การ get แล้ว set ไม่ใช่ธุรกรรมอะตอมมิก ให้มีผู้เขียนเพียงโฟลว์เดียวเมื่อการอัปเดตขึ้นกับค่าที่อ่านก่อนหน้า

ตัวอย่าง

# ลบ flag ที่บันทึกไว้เมื่อไม่ต้องใช้แล้ว
old_flag = Storage.remove("boost_enabled")

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

Storage.contains

ตรวจสอบว่ามีคีย์ที่มีอยู่ในปัจจุบันหรือไม่

รูปแบบคำสั่ง

Storage.contains(key)

พารามิเตอร์

ชื่อคำอธิบาย
keyAny
Key to test.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น

ค่าที่ส่งกลับ

Boolean — "จริง" เมื่อมีคีย์อยู่ มิฉะนั้นจะเป็น "เท็จ"

พฤติกรรม / ผลข้างเคียง

ตรวจสอบว่ามีคีย์ที่มีอยู่ในปัจจุบันหรือไม่

การทำงาน

  • รอให้เสร็จ: ขึ้นอยู่กับเงื่อนไข
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
  • การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข

โฟลว์ใน Run เดียวกันใช้เซสชัน Storage ร่วมกัน แต่ละการทำงานและการแก้ไขซ้อนที่ติดตามมีล็อกป้องกัน การ get แล้ว set ไม่ใช่ธุรกรรมอะตอมมิก ให้มีผู้เขียนเพียงโฟลว์เดียวเมื่อการอัปเดตขึ้นกับค่าที่อ่านก่อนหน้า

ตัวอย่าง

# คุม logic ตาม state ที่บันทึกไว้
if Storage.contains("last_point"):
    MacroPanel.notify("Saved point is ready")

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

Storage.keys

รับคีย์ที่มีอยู่ทั้งหมดเป็นรายการตามลำดับการแทรก

รูปแบบคำสั่ง

Storage.keys()

พารามิเตอร์

ไม่มี

ค่าที่ส่งกลับ

list — รายการคีย์ที่มีอยู่

พฤติกรรม / ผลข้างเคียง

รับคีย์ที่มีอยู่ทั้งหมดเป็นรายการตามลำดับการแทรก

การทำงาน

  • รอให้เสร็จ: ขึ้นอยู่กับเงื่อนไข
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
  • การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข

โฟลว์ใน Run เดียวกันใช้เซสชัน Storage ร่วมกัน แต่ละการทำงานและการแก้ไขซ้อนที่ติดตามมีล็อกป้องกัน การ get แล้ว set ไม่ใช่ธุรกรรมอะตอมมิก ให้มีผู้เขียนเพียงโฟลว์เดียวเมื่อการอัปเดตขึ้นกับค่าที่อ่านก่อนหน้า

ตัวอย่าง

# ตรวจดูว่าค่าใดถูกบันทึกไว้สำหรับ macro นี้
saved_keys = Storage.keys()

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

Storage.values

รับค่าที่มีอยู่ทั้งหมดเป็นรายการตามลำดับการแทรก

รูปแบบคำสั่ง

Storage.values()

พารามิเตอร์

ไม่มี

ค่าที่ส่งกลับ

list — รายการค่าที่มีอยู่

พฤติกรรม / ผลข้างเคียง

รับค่าที่มีอยู่ทั้งหมดเป็นรายการตามลำดับการแทรก

การทำงาน

  • รอให้เสร็จ: ขึ้นอยู่กับเงื่อนไข
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
  • การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข

โฟลว์ใน Run เดียวกันใช้เซสชัน Storage ร่วมกัน แต่ละการทำงานและการแก้ไขซ้อนที่ติดตามมีล็อกป้องกัน การ get แล้ว set ไม่ใช่ธุรกรรมอะตอมมิก ให้มีผู้เขียนเพียงโฟลว์เดียวเมื่อการอัปเดตขึ้นกับค่าที่อ่านก่อนหน้า

ตัวอย่าง

# อ่านค่าที่บันทึกไว้ทั้งหมดเพื่อตรวจสอบอย่างรวดเร็ว
saved_values = Storage.values()

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

Storage.clear

ลบทุกรายการที่มีอยู่สำหรับแมโครปัจจุบัน

รูปแบบคำสั่ง

Storage.clear()

พารามิเตอร์

ไม่มี

ค่าที่ส่งกลับ

None — ไม่มีค่าตอบแทนโดยตรง ที่เก็บข้อมูลว่างเปล่า

พฤติกรรม / ผลข้างเคียง

ลบทุกรายการที่มีอยู่สำหรับแมโครปัจจุบัน

การทำงาน

  • รอให้เสร็จ: ขึ้นอยู่กับเงื่อนไข
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
  • การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข

โฟลว์ใน Run เดียวกันใช้เซสชัน Storage ร่วมกัน แต่ละการทำงานและการแก้ไขซ้อนที่ติดตามมีล็อกป้องกัน การ get แล้ว set ไม่ใช่ธุรกรรมอะตอมมิก ให้มีผู้เขียนเพียงโฟลว์เดียวเมื่อการอัปเดตขึ้นกับค่าที่อ่านก่อนหน้า

ตัวอย่าง

# รีเซ็ตค่า Storage ที่บันทึกไว้ทั้งหมด
Storage.clear()

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

Storage.to_dict

คืนค่า Storage ปัจจุบันเป็น live dict ที่ทุก flow ใน Run นี้ใช้ร่วมกัน การแก้ไขรายการใน dict ที่ส่งคืนโดยตรงจะเข้าสู่กระบวนการบันทึกอัตโนมัติ และ snapshot live ล่าสุดจะถูก commit เมื่อ Run ทั้งหมดและ flow เบื้องหลังทั้งหมดสิ้นสุด

รูปแบบคำสั่ง

Storage.to_dict()

พารามิเตอร์

ไม่มี

ค่าที่ส่งกลับ

dict — มุมมอง dict แบบสดของรายการที่เก็บข้อมูลที่มีอยู่ในปัจจุบัน

พฤติกรรม / ผลข้างเคียง

คืนค่า Storage ปัจจุบันเป็น live dict ที่ทุก flow ใน Run นี้ใช้ร่วมกัน การแก้ไขรายการใน dict ที่ส่งคืนโดยตรงจะเข้าสู่กระบวนการบันทึกอัตโนมัติ และ snapshot live ล่าสุดจะถูก commit เมื่อ Run ทั้งหมดและ flow เบื้องหลังทั้งหมดสิ้นสุด

การทำงาน

  • รอให้เสร็จ: ขึ้นอยู่กับเงื่อนไข
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
  • การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข

โฟลว์ใน Run เดียวกันใช้เซสชัน Storage ร่วมกัน แต่ละการทำงานและการแก้ไขซ้อนที่ติดตามมีล็อกป้องกัน การ get แล้ว set ไม่ใช่ธุรกรรมอะตอมมิก ให้มีผู้เขียนเพียงโฟลว์เดียวเมื่อการอัปเดตขึ้นกับค่าที่อ่านก่อนหน้า

ตัวอย่าง

# อ่านและอัปเดต dictionary storage ที่บันทึกไว้ทั้งหมด
state = Storage.to_dict()
state["bonus"] = 5
MacroPanel.notify(str(state))

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง