2009-09-17 39 views
7

Về cơ bản tôi muốn mô phỏng trong mã người dùng nhấp vào nút cửa sổ. Tôi biết có SendKeys cho phép tôi gửi các phím bấm đến các cửa sổ nếu tôi nhận được một xử lý cho họ, nhưng những gì tôi không thể tìm ra là những gì tôi cần để có được một xử lý trên để gửi lệnh Windows nút. Ví dụ. Windows Button + L. Có đọc vào một chút có vẻ như CTRL-ESC nên bật lên Start Menu cũng nhưng không chắc chắn làm thế nào để nói cho nó để gửi các phím cho Windows (nếu điều này thậm chí có thể). Bất kì sự trợ giúp nào đều được đánh giá cao.Cách nhấn nút Windows bằng lập trình bằng cách sử dụng C# SendKeys

Chúc mừng!

Trả lời

-2

Bạn cần sử dụng móc nối bàn phím chung để móc vào bàn phím bên ngoài ứng dụng của mình. Có một bài viết về cách làm điều đó here.

+2

Không chính xác. Đó là chỉ khi bạn muốn nghe gõ phím, không phải nếu bạn muốn gửi tổ hợp phím. –

9

Tôi không nghĩ rằng bạn có thể làm điều này bằng cách sử dụng SendKeys, bạn sẽ cần p/gọi hàm API thay vì, có thể là keybd_event để gửi CTRL + ESC hoặc phím Windows.

Here là ví dụ về mở menu bắt đầu theo cách này trong VB và here là keybd_event với chữ ký C# trên pinvoke.net.

5

Một số điều mà người dùng sẽ thực hiện thông qua phím tắt WinKey có thể được thực hiện theo cách lập trình theo các cách khác. Chịu WinKey + L của bạn Ví dụ, bạn có thể thay vì chỉ sử dụng câu lệnh sau:

Process.Start("rundll32.exe", "user32.dll,LockWorkStation"); 

Nếu bạn có thể xây dựng trên những gì chính xác bạn đang cố gắng để hoàn thành, có thể có một cách tốt hơn so với keybd_event (như Dale đã gợi ý).

+0

trong tuyên bố của bạn ở trên, có thể khóa một người dùng cụ thể nếu bạn đang ở trong một netwrok của ba chiếc ví dụ? –

Các vấn đề liên quan