Trong chương trình C++ chạy trên Win7, có cách nào để giả mạo chuyển động của chuột hoặc thứ gì đó như thế, chỉ để giữ cho trình bảo vệ màn hình không khởi động và hệ thống chuyển sang chế độ ngủ? Tôi đang tìm cách tiếp cận tối thiểu và tôi không thích sử dụng .NET. Cảm ơn, -nuunTôi làm cách nào để ngăn chặn trình bảo vệ màn hình và ngủ trong khi thực hiện chương trình?
Trả lời
Không gây rối với cài đặt bảo vệ màn hình, sử dụng SetThreadExecutionState. Đây là API cho thông báo cho các cửa sổ trên thực tế là ứng dụng của bạn đang hoạt động:
Cho phép một ứng dụng để thông báo cho hệ thống rằng nó đang được sử dụng, do đó ngăn cản hệ thống từ khi nhập ngủ hoặc tắt màn hình trong khi ứng dụng đang chạy.
, và
các ứng dụng đa phương tiện, chẳng hạn như video người chơi và các ứng dụng trình bày, phải sử dụng ES_DISPLAY_REQUIRED khi họ hiển thị video trong thời gian dài của thời gian mà không cần người dùng nhập vào
SetThreadExecutionState() là rất tốt cho việc kiểm soát hệ thống và hiển thị giấc ngủ, nhưng nó sẽ * không * ngăn chặn trình bảo vệ màn hình khởi chạy. Ít nhất là hàm doc nói nó sẽ không. – naor
Hiệu chỉnh: mặc dù trang MSDN cho các chức năng này nói rằng "Chức năng này không ngừng trình bảo vệ màn hình thực thi." gọi bằng ES_DISPLAY_REQUIRED trong thực tế ngăn trình bảo vệ màn hình kích hoạt. – naor
đây cũng là cách để đi (thông qua p/gọi) nếu bạn đang sử dụng .NET - http://pinvoke.net/default.aspx/kernel32.SetThreadExecutionState –
Tôi không chắc chắn lý do tại sao bạn phải sử dụng điều này. Việc vô hiệu hóa các tùy chọn này đơn giản trong cài đặt nguồn sẽ thực hiện.
Bạn đang cố gắng đạt được điều gì bằng cách thực hiện điều đó. Ứng dụng của bạn có phải là dịch vụ không. Trong trường hợp nó là sau đó bạn không cần phải được bothering về điều này.
Trong trường hợp đơn đăng ký của bạn là một ứng dụng giao diện người dùng, tôi cũng không thể nghĩ ra trường hợp sử dụng hợp lệ.
Hoặc chúng ta cần thêm thông tin.
cho biết đó là tính năng phát tự động dài trong trò chơi mà người dùng không cần phải nhập, bạn không muốn trình bảo vệ màn hình làm phiền người dùng của bạn – gldraphael
Đây thường là ý tưởng đặc biệt xấu. Máy tính để bàn thuộc về người dùng ứng dụng của bạn, không phải là đơn đăng ký của bạn.
Nếu tôi đang chạy một ứng dụng đã tắt trình bảo vệ màn hình (hoặc di chuyển quanh các biểu tượng trên màn hình của tôi hoặc thêm vào các thanh công cụ truy cập nhanh) mà không được sự cho phép của tôi, nó sẽ bị văng ra trên tai một cách nhanh chóng.
Và nếu bạn là người dùng, không làm điều đó trong ứng dụng của bạn. Thay đổi nó theo cách thủ công như phần còn lại của chúng tôi :-)
Nếu bạn phải làm điều đó (và tôi khuyên bạn không nên, nhưng bạn có thể bỏ qua điều đó), tôi không nghĩ rằng phương pháp đã thay đổi kể từ NT. Bạn sử dụng SystemParametersInfo
với SPI_SETSCREENSAVEACTIVE
để thay đổi hành vi. Đây là số user32.dll
từ bộ nhớ.
Nhưng tôi có một hồi ức mơ hồ nhìn thấy vấn đề báo cáo với việc sử dụng phương pháp dưới Win7 và tôi nghĩ rằng giải pháp là một sự thay đổi registry, thiết ScreenSaveActive
dưới HKEY_CURRENT_USER\Control Panel\Desktop
-0
(và trở về 1
khi bạn đã hoàn tất).
nói rằng nó sẽ tự động phát * trong một trò chơi mà người dùng không cần phải nhập, không muốn trình bảo vệ màn hình làm phiền người dùng của bạn – gldraphael
Ý tưởng tồi? những gì về người chơi phương tiện truyền thông? –
Đó không phải là một ý tưởng tồi, bất kỳ trình phát phương tiện truyền thông phong nha nào ... Tìm kiếm chức năng SystemParametersInfo(SPI_SETSCREENSAVEACTIVE ...)
trong Win32 api, bạn nên thực hiện thủ thuật.
Đó không phải là những gì người chơi phương tiện làm. Xem câu trả lời của tôi. –
- 1. Làm cách nào để thay đổi trình bảo vệ màn hình theo chương trình?
- 2. Làm cách nào để gỡ lỗi Trình bảo vệ màn hình trong OS X
- 3. Trình bảo vệ màn hình Xcode với openGL
- 4. YouTube ngăn trình bảo vệ màn hình hiển thị như thế nào trong khi phát lại video? (Windows)
- 5. Làm cách nào để "ngủ" chương trình Phi tiêu
- 6. Làm thế nào để bạn thực hiện một chương trình ngủ trong C + + trên Win 32?
- 7. Làm cách nào để kiểm tra xem màn hình bảo vệ màn hình Linux có bị làm mờ màn hình
- 8. Làm thế nào để phát triển trình bảo vệ màn hình Linux
- 9. Tắt chế độ ngủ màn hình Lập trình trong Android?
- 10. Tắt chế độ bảo vệ màn hình/chế độ ngủ thông qua một trang web
- 11. Làm cách nào để ngăn chặn chương trình "Trợ lý tương thích chương trình" trong Vista (và Windows 7) xuất hiện?
- 12. Làm cách nào để ngăn màn hình khỏi ngủ trong khi đang xem hoạt ảnh html 5
- 13. cách tạo bản xem trước trình bảo vệ màn hình trong Delphi?
- 14. . Trình bảo vệ màn hình Net không tìm thấy tệp cấu hình
- 15. Dừng máy tính Windows 7 chuyển sang chế độ ngủ trong khi chương trình Ruby thực hiện
- 16. Có gì khác biệt về xem trước Trình bảo vệ màn hình trong Windows 8?
- 17. Làm cách nào để ngăn màn hình thiết bị Android tắt trong khi thực hiện Hoạt động?
- 18. Chụp màn hình android và tạo video theo chương trình
- 19. Chức năng ngủ trong chương trình android
- 20. Thực hiện chương trình từ bên trong chương trình C
- 21. Làm thế nào để giám sát quá trình thực hiện chương trình/trong cửa sổ?
- 22. Shell script để ngăn chặn một chương trình java
- 23. tạo bảo vệ màn hình Windows bằng Python?
- 24. Android chụp màn hình theo chương trình
- 25. Giám sát Trình bảo vệ màn hình Sự kiện trong OSX
- 26. Bật màn hình theo chương trình
- 27. Làm thế nào để ngăn chặn chương trình Windows khỏi ổ đĩa cứng quay xuống?
- 28. Làm cách nào để xác định xem chương trình .NET Windows Forms của tôi đang chạy trên màn hình nào?
- 29. Ngăn chặn hình thức đệ trình đôi
- 30. Làm cách nào để chụp ảnh màn hình theo chương trình?
tại sao sao bạn không thay đổi cài đặt trình bảo vệ màn hình hoặc cài đặt nguồn điện của hệ thống? –
Là người dùng chương trình của bạn, _I_ muốn tự quyết định xem tôi có muốn chương trình thực thi chương trình bị chậm lại bởi một số trình bảo vệ màn hình hay không. Nếu bạn là người dùng của riêng bạn, bạn luôn có thể tự thay đổi cài đặt của hệ thống. – sbi
Thực ra đây là câu hỏi hợp lệ. Tôi nghĩ rằng Windows Media Player thực hiện điều này khi chơi video và sau đó nó là hợp lý (bạn không muốn đứng lên mỗi năm phút và di chuyển con chuột của bạn chỉ để thưởng thức bộ phim của bạn, phải không? Cũng vô hiệu hóa màn hình tiết kiệm chỉ để xem một phim quá mức). – Tomek