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

Đề tài: Cách bắt cửa sổ game như thế nào?

  1. #1
    Ngày gia nhập
    08 2011
    Bài viết
    1

    Mặc định Cách bắt cửa sổ game như thế nào?

    Chào các bạn!
    Hiện tại mình đang viết 1 chương trình tạm gọi là Auto bấm phím cho game. Đã viết được nhưng do kiến thức về C# còn hạn hẹp nên vẫn chưa biết cách sendkey cho 1 cửa sổ được chỉ định.
    Nay mình muốn nhờ các bạn hướng dẫn giúp mình cách bắt cửa sổ game và sendkey cho duy nhất cửa sổ đó cả khi minimize.
    Cảm ơn các bạn và mong được giúp đỡ.

    Hiện mình có search qua các topic hỗ trợ vấn đề này nhưng nhìn chung khá sơ xài. Vậy mong các bạn rành C# hướng dẫn giúp mình vấn đề này nhé. Cảm ơn các bạn.

  2. #2
    Ngày gia nhập
    02 2011
    Nơi ở
    Hồ Chí Minh
    Bài viết
    136

    Mình cũng đang quan tâm, về API and hooking. Hy vọng các bạn đi trước có thể giúp đỡ. Hay 1 tài liệu nào dễ hiểu. Thanks nhiều.

  3. #3
    Ngày gia nhập
    08 2011
    Nơi ở
    Hà Nội | http://ipmac.vn
    Bài viết
    198

    Bạn tham khảo đoạn mã bên dưới nhé:
    1. Tìm cửa sổ game bằng API FindWindow
    2. Gửi key bằng SendKeys

    Ở ví dụ dưới, send key cho calculator của windows.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;

    namespace WindowsFormsApplication12
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    // Get a handle to an application window.
    [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
    public static extern IntPtr FindWindow(string lpClassName,
    string lpWindowName);

    // Activate an application window.
    [DllImport("USER32.DLL")]
    public static extern bool SetForegroundWindow(IntPtr hWnd);

    // Send a series of key presses to the Calculator application.
    private void button1_Click(object sender, EventArgs e)
    {
    // Get a handle to the Calculator application. The window class
    // and window name were obtained using the Spy++ tool.
    IntPtr calculatorHandle = FindWindow("CalcFrame", "Calculator");

    // Verify that Calculator is a running process.
    if (calculatorHandle == IntPtr.Zero)
    {
    MessageBox.Show("Calculator is not running.");
    return;
    }

    // Make Calculator the foreground application and send it
    // a set of calculations.
    SetForegroundWindow(calculatorHandle);
    SendKeys.SendWait("111");
    SendKeys.SendWait("*");
    SendKeys.SendWait("11");
    SendKeys.SendWait("=");
    }
    }
    }

  4. #4
    Ngày gia nhập
    06 2011
    Bài viết
    121

    Trích dẫn Nguyên bản được gửi bởi anhnt3 Xem bài viết
    Bạn tham khảo đoạn mã bên dưới nhé:
    1. Tìm cửa sổ game bằng API FindWindow
    2. Gửi key bằng SendKeys

    Ở ví dụ dưới, send key cho calculator của windows.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;

    namespace WindowsFormsApplication12
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    // Get a handle to an application window.
    [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
    public static extern IntPtr FindWindow(string lpClassName,
    string lpWindowName);

    // Activate an application window.
    [DllImport("USER32.DLL")]
    public static extern bool SetForegroundWindow(IntPtr hWnd);

    // Send a series of key presses to the Calculator application.
    private void button1_Click(object sender, EventArgs e)
    {
    // Get a handle to the Calculator application. The window class
    // and window name were obtained using the Spy++ tool.
    IntPtr calculatorHandle = FindWindow("CalcFrame", "Calculator");

    // Verify that Calculator is a running process.
    if (calculatorHandle == IntPtr.Zero)
    {
    MessageBox.Show("Calculator is not running.");
    return;
    }

    // Make Calculator the foreground application and send it
    // a set of calculations.
    SetForegroundWindow(calculatorHandle);
    SendKeys.SendWait("111");
    SendKeys.SendWait("*");
    SendKeys.SendWait("11");
    SendKeys.SendWait("=");
    }
    }
    }
    post kiểu này sao hiểu cho nỗi trời, anh post giúp em cái demo đi

  5. #5
    Ngày gia nhập
    05 2010
    Bài viết
    344

    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Windows.Forms;
    9. using System.Runtime.InteropServices;// phải using lớp này để import các hàm API
    10.  
    11. namespace WindowsFormsApplication12
    12. {
    13. public partial class Form1 : Form
    14. {
    15. public Form1()
    16. {
    17. InitializeComponent();
    18. }
    19.  
    20. private void Form1_Load(object sender, EventArgs e)
    21. {
    22.  
    23. }
    24.  
    25. // sử dụng hàm API FindWindow để lấy handle của cửa sổ.
    26. [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
    27. public static extern IntPtr FindWindow(string lpClassName,
    28. string lpWindowName);
    29.  
    30. // Hàm này dùng để active 1 cửa sổ
    31. [DllImport("USER32.DLL")]
    32. public static extern bool SetForegroundWindow(IntPtr hWnd);
    33.  
    34. // Send a series of key presses to the Calculator application.
    35. private void button1_Click(object sender, EventArgs e)
    36. {
    37. // Get a handle to the Calculator application. The window class
    38. // and window name were obtained using the Spy++ tool.
    39. // mình để chú thích nguyên văn tiếng anh, cái tham số CalcFrame là class của cửa sổ, Calculator là tiêu đề của cửa sổ, nếu cung cấp tham số là null thì sẽ lấy handle của desktop, hàm này trả về 1 con trỏ
    40. IntPtr calculatorHandle = FindWindow("CalcFrame", "Calculator");
    41.  
    42. // Verify that Calculator is a running process.
    43. if (calculatorHandle == IntPtr.Zero)
    44. {
    45. MessageBox.Show("Calculator is not running.");
    46. }
    47.  
    48. // Make Calculator the foreground application and send it
    49. // a set of calculations.
    50. // active cửa sổ có handle = calculatorHandle
    51. SetForegroundWindow(calculatorHandle);
    52. // gửi phím đến cửa sổ đó
    53. SendKeys.SendWait("111");
    54. SendKeys.SendWait("*");
    55. SendKeys.SendWait("11");
    56. SendKeys.SendWait("=");
    57. // phía trên chỉ là code send key đến cái công cụ tính toán thoai. Còn rất nhiều hàm API thao tác với cửa sổ bạn google đi sẽ rất hữu ích.
    58. }
    59. }
    60. }

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

  1. Web game:choigameonline.biz-Chơi game online, game vui, game mini, game flash
    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: 1
    Bài viết cuối: 27-08-2014, 11:08 AM
  2. game online | game mobile| game dien thoai| game casual} game dao vang online
    Gửi bởi ngaytanthe1 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: 15-10-2013, 10:09 AM
  3. Game bài b52 - game bài đầu tiên tại việt nam được rút tiền thắng
    Gửi bởi NgjchLanDJ trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 115
    Bài viết cuối: 12-09-2013, 05:49 PM
  4. Trả lời: 0
    Bài viết cuối: 28-02-2012, 09:41 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