มีแอปพลิเคชั่น Windows ใดบ้างที่จะพิจารณาว่ากระบวนการใดที่ทำให้โปรแกรมรักษาหน้าจอไม่ทำงาน
มีแอปพลิเคชั่น Windows ใดบ้างที่จะพิจารณาว่ากระบวนการใดที่ทำให้โปรแกรมรักษาหน้าจอไม่ทำงาน
คำตอบ:
powercfgสร้างขึ้นใน windows และให้คุณควบคุมและดูการตั้งค่าการจัดการพลังงานจำนวนมาก
powercfg -energy -trace
สิ่งนี้จะสร้างบันทึกเหตุการณ์การจัดการพลังงานที่มีรายละเอียดมาก ๆ คือ energy-trace.etl เปิดด้วยตัวแสดงเหตุการณ์และบันทึกตัวกรองตามแหล่งที่มาของเหตุการณ์: เคอร์เนล - พาวเวอร์รวมถึงรหัสเหตุการณ์: 62
สิ่งนี้จะให้เหตุการณ์ที่มีลักษณะดังนี้:
แอปพลิเคชันหรือบริการ \ Device \ HarddiskVolume1 \ games \ Steam \ Steam.exe ได้แทนที่การตั้งค่าการจัดการพลังงานของผู้ใช้ด้วยรหัส 0x3
รหัสอาจแตกต่างกันขึ้นอยู่กับว่ามีการป้องกันหน้าจอ, sleep sleep หรือการเปลี่ยนสถานะอื่น
Event Viewer
| คลิกที่Event Viewer (Local)
ต้นไม้ Action
| Open Saved Log
| เปิดC:\Windows\System32\energytrace.etl
บอกให้แปลงเป็นรูปแบบบันทึกใหม่ ใช้งานได้บน windows 10
เรียกใช้powercfg /requests
จากพรอมต์คำสั่งของผู้ดูแลระบบ ตัวอย่างเช่นพิมพ์ของฉัน:
DISPLAY:
[PROCESS] \Device\HarddiskVolume8\Games\Origin\Origin.exe
Playing video
SYSTEM:
[DRIVER] Realtek High Definition Audio (HDAUDIO\FUNC_01&VEN_10EC&DEV_0900&SUBSYS_10438560&REV_1000\4&9793a48&0&0001)
An audio stream is currently in use.
AWAYMODE:
None.
ซึ่งบ่งชี้ว่า Origin กำลังเล่นวิดีโอและนี่เป็นการป้องกันไม่ให้สกรีนเซฟเวอร์ทำงาน
บางครั้งการเปลี่ยนเวลาบนตัวรักษาหน้าจอ (ไม่ใช่ประเภท) เป็นอย่างอื่นพูดจาก 10 นาทีลงไปที่ 1 แล้วกลับไปที่สิ่งที่คุณมีก่อนหน้านี้จะช่วยให้โปรแกรมรักษาหน้าจอทำงานได้ตามปกติ
ขอบคุณ W1N9Zr0 ที่ชี้ให้ฉันไปในทิศทางที่ถูกต้อง!
ในกรณีของฉันมันเป็นเครื่อง XP Pro (SP3) ดังนั้นสวิตช์"พลังงาน"จึงไม่พร้อมใช้งานอย่างไรก็ตามสวิตช์"devicequery"ระบุว่าเป็นเมาส์หรือแป้นพิมพ์ เมื่อฉันเปลี่ยนจากแป้นพิมพ์ PS / 2 ที่ฉันใช้เป็นแป้นพิมพ์ USB สกรีนเซฟเวอร์ (และตัวเลือกพลังงานอื่น ๆ ) จะเปิดขึ้นตามการตั้งค่า
หมายเหตุ: เมื่อตั้งค่าสกรีนเซฟเวอร์ไว้ที่ 1 นาทีบางครั้งมันก็จะเปิดขึ้นดังนั้นฉันจึงรู้ว่ามันใช้งานได้ อะไรที่เกิน 1 นาทีและสกรีนเซฟเวอร์จะไม่มีวันเตะ
ฉันพบว่าผู้ร้ายมักจะเป็นเครื่องเล่นสื่อ คุณคิดว่ามันจะเป็นเพียงเมื่อเล่นวิดีโอ แต่ฉันมีผู้เล่นเพลงบางคนที่ปิดโปรแกรมรักษาหน้าจอ เช่นฉันเปิด Amazon Music and Groove และหยุดชั่วคราวในวันนี้และเพิ่งพบว่าหน้าจอของฉันยังคงถูกปลดล็อคหลังจากผ่านไปหนึ่งชั่วโมง
ฉันไม่แน่ใจว่าจะตำหนิอะไร แต่ฉันสงสัยว่าพวกเขาเหนือ IDE และเบราว์เซอร์ที่ฉันใช้อยู่ซึ่งทั้งสองอย่างนี้ปล่อยให้ล็อกหน้าจอ
ฉันไม่ทราบว่าโปรแกรมใดที่ทำเช่นนี้ แต่วิธีการค้นหาคือผ่านฟังก์ชัน GetThreadExecutionState () ซึ่งจะเก็บค่า ES_DISPLAY_REQUIRED หากเธรดกำลังปิดกั้นโปรแกรมรักษาหน้าจอในขณะนี้
ถ้าคุณใช้ฟังก์ชันนี้กับเธรดทั้งหมดในระบบจากนั้นเรียกใช้ GetProcessIdOfThread บนเธรดที่คุณค้นหาคุณจะพบกระบวนการที่กำลังบล็อกสกรีนเซฟเวอร์