Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Liệu API có hàm nào có khả năng giả lập phím bấm không???

  1. #1
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Mặc định Liệu API có hàm nào có khả năng giả lập phím bấm không???

    mình thấy nhiều ngôn ngữ lập trình có dạng này không rõ là VC++ có khả năng này không nữa
    VD như AutoIT có hàm send(" ");

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Dùng SendMessage, keybd_event để giả lập phím bấm.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    cả sendinput nữa , vc++ không biết nhưng c# thì xem ở đây nhé
    http://www.mediafire.com/?3muxozw1qmj
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

  4. #4
    Ngày gia nhập
    01 2008
    Nơi ở
    Gameloft Studio
    Bài viết
    294

    Mọi phần mềm nào chạy trên Windows cuối cùng đều sử dụng WinAPI của kể cả .NET hay Java.

    Mà Win32 được viết dưới C Language nên câu hỏi này
    không rõ là VC++ có khả năng này không nữa
    hehe hơi bị thừa

    Chương trình mình code Demo không biết có giống hàm Send của bạn hay không?
    Attached Files Attached Files

  5. #5
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    Class CKey của ZCoder87 rất hay, cho mình hỏi 2 dòng này làm gì vậy
    Code:
    	SendMessage(hWnd, WM_SYSCOMMAND, SC_HOTKEY, (LPARAM) hWnd);
    	SendMessage(hWnd, WM_SYSCOMMAND, SC_RESTORE, (LPARAM) hWnd);

  6. #6
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Mặc định Liệu API có hàm nào có khả năng giả lập phím bấm không???

    Code:
    #include<windows.h>
    #include<string.h>
    int main()
    {
        HWND hwnd;
        if ((hwnd=FindWindow("YahooBuddyMain", NULL))==NULL)
        {
             MessageBox(0,"khong tim thay cua so word","Error",NULL);
             return 0;
        }
        SetForegroundWindow(hwnd);
        SetFocus(hwnd);
        Sleep(300);
        keybd_event('C',12,0,0);
    }
    đây là 1 form nhâp pass vào YAHOO mình nghĩ,nhưng nếu mà nhập thế này không nhập được cả 1 chuỗi có lẽ rất lâu,vì hàm keybd_event chỉ cho mỗi lần nhập 1 chữ vậy thì làm thế nào nhỉ,mình lười kiểu code thủ công nhập từng chữ lắm

  7. #7
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Phải vậy thôi bạn à, chạy vòng for quét chuỗi và send từng ký tự trong chuỗi. Tốc độ chạy của vòng for rất nhanh nên ko đáng lo.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  8. #8
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Phải vậy thôi bạn à, chạy vòng for quét chuỗi và send từng ký tự trong chuỗi. Tốc độ chạy của vòng for rất nhanh nên ko đáng lo.
    mình thấy nó chẳng thích hợp gì hết trơn,vd NHƯ
    Code:
    #include<windows.h>
    #include<string.h>
    void nhap()
    {
        char ten[100],pass[100];
        strcpy(ten,"coder_nguyen");
        strcpy(pass,"PASS");
        int soten = strlen(ten),sopass = strlen(pass);
        for(int i=0;i<soten;++i)
            keybd_event(ten[i],12,0,0);
        keybd_event(VK_TAB,12,0,0);
        for(int i=0;i<sopass;++i)
            keybd_event(pass[i],12,0,0);
        keybd_event(VK_RETURN,12,0,0);
    }
    int main()
    {
        HWND hwnd;
        if ((hwnd=FindWindow("YahooBuddyMain", NULL))==NULL)
        {
             MessageBox(0,"khong tim thay cua so word","Error",NULL);
             return 0;
        }
        SetForegroundWindow(hwnd);
        SetFocus(hwnd);
        Sleep(300);
        nhap();
    }
    NÓ lại không thể lấy được dấu Shift - ( _ ) ấy,mà chuyển sang kiểu số thì mất công quá

  9. #9
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    ZCoder87 viết sẵn 1 lớp CKey cool như vậy mà không biết xài à

  10. #10
    Ngày gia nhập
    01 2008
    Nơi ở
    Gameloft Studio
    Bài viết
    294

    Trích dẫn Nguyên bản được gửi bởi MATH-INFO Xem bài viết
    Class CKey của ZCoder87 rất hay, cho mình hỏi 2 dòng này làm gì vậy
    Code:
    	SendMessage(hWnd, WM_SYSCOMMAND, SC_HOTKEY, (LPARAM) hWnd);
    	SendMessage(hWnd, WM_SYSCOMMAND, SC_RESTORE, (LPARAM) hWnd);

    2 Hàm này nhằm chắc ăn active Windows thôi.
    Chán ghê đó. Mấy cái này có hết trong MSDN

    Code:
    SC_HOTKEY
    Activates the window associated with the application-specified hot key. 
    The lParam parameter identifies the window to activate.
    
    SC_RESTORE
    Restores the window to its normal position and size.

Các đề tài tương tự

  1. Bản chất của toán tử >> << và khả năng đa năng hóa >> << C++ (toán tử xuất nhập)
    Gửi bởi langman trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 23
    Bài viết cuối: 05-03-2016, 11:46 PM
  2. Internet Có Thể Giết Chết Khả Năng Sáng Tạo Của Con Người
    Gửi bởi timkiemvn002 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 03-01-2013, 11:38 AM
  3. C++ Tutorial Bản chất của toán tử ++ -- và khả năng đa năng hóa ++ --
    Gửi bởi langman trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 25-09-2012, 01:11 PM
  4. Đào tạo MC - nâng cao khả năng giao tiếp
    Gửi bởi buitrang trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 29-03-2011, 03:28 PM
  5. Đào tạo MC - nâng cao khả năng giao tiếp
    Gửi bởi buitrang trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 18-03-2011, 12:13 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn