Cái này dc nói 1 lần rồi http://forums.congdongcviet.com/showthread.php?t=58459
Các bạn cho mình hỏi làm thế nào để sendMesseage đc tổ hợp phím trong C# vậy?
Mình có cái form,có 1 button,mình muốn khi click vào button thì nó send 1 đoạn text vào trong notepad rồi bấm Ctrl + S (Hoặc nó có thể bấm ALT + F cũng đc).Mình chỉ muốn xem cách thức truyền tổ hợp phím vào = cách nào thôi.
Mình đã thử SendKey.Send(),sendMessage & keybd_event đều ko đc,có thể tại mình chưa hiểu các tham số truyền vào.
Các bạn giải đáp giúp với nhé
Cái này dc nói 1 lần rồi http://forums.congdongcviet.com/showthread.php?t=58459
Mình đã đọc đi đọc lại cái topic đó suốt hôm qua rồi nhưng vẫn chưa hiểu.Sợ đặt trùng câu hỏi nên đã tìm lại trên forum rồi mà,hôm nay mình bí quá phải leo lên đây,bạn giải thích giúp mình với.
+ Tại sao phải khai báo hằng như thế này ?
... Tại sao WM_COPY lại = 0x0301,WM_PASTE = 0x0302.Cái mã này tra ở đâu & mã để truyền các phím khác vào là gì (CTRL,SHIFT,ALT...)?Code:public const int WM_COPY = 0x0301; public const int WM_PASTE = 0x0302; public const int WM_COMMAND = 0x0111;
+ Mình biết rằng muốn sendMessage thì phải import cái này
...và lúc thực hiện sẽ như thế nàyCode:[DllImport("user32.dll", CharSet=CharSet.Auto)] public static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
Nhưng mình ko hiểu mấy cái chỗ màu đỏ,bạn giải thích giúp mình với.Mình cám ơn bạn nhiều lắmCode:SendMessage(hwndNotepad, WM_PASTE, (IntPtr)0, (IntPtr)0);
1: Bản thân tên nó cũng nói lên nó dùng làm gì rồi, cái đấy là hằng số cố định-mấy ông viết MS Window quy định thế, tham khảo trong msdn or api viewer để biết giá trị.
2: hàm sendmessage có nhiều tác dụng lắm wParam, lParam thay đổi tùy theo mục đích gọi hàm. Trong trường hợp này nó k quan trọng lắm điền gì vào cũng dc. có thể này IntPtr bằng int thôi vẫn ngon. còn làm thế nào để biết thì google thôi-cái này chỉ là cú pháp.
cách gửi ctrl+ 1 phím trong đấy m có nói rồi mà.
Cảm ơn bạn rất nhiều,mình làm đc rồi,sử dụng SetForegoundWindow & Sendkey
thực ra cái bạn chủ thread cần là tìm hiểu cơ chế Message loop in Microsoft Windows, Messages and Message Queues,
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
tìm hiểu hàm SendMessage của windows api
sau khi hiểu cơ chế này rồi thì bạn sẽ hiểu tại sao lại code thế kia