Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Trang 2 trên tổng số 8 Đầu tiênĐầu tiên 1234... Cuối cùngCuối cùng
Từ 11 tới 20 trên tổng số 76 kết quả

Đề tài: [winapi] Nháy đúp chuột vào Syslistview32 item

  1. #11
    Ngày gia nhập
    09 2016
    Bài viết
    1,009

    Mặc định [winapi] Nháy đúp chuột vào Syslistview32 item

    Được rồi chưa được, tiền hậu bất nhất.

    Nếu muốn tham khảo bản gốc cũng được, nó đây : Yamicsoft
    http://www.yamicsoft.com/

    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		_regClean.jpg
Lần xem:	10
Size:		171.5 KB
ID:		50355

    Nó viết bằng c#
    Phọt mô xa 2016
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi fms17 : 03-11-2016 lúc 03:00 PM.

  2. #12
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    904

    @ fms17: Bạn có thể mã một đoạn ngắn mô tả cái chính của đề tài Click ảo vào Cửa sổ SysListView32 không, cái mã mà bạn đóng khung ở #8 theo tôi là sai hướng, hoặc nó làm việc khác ngoài đề tài này, còn Yamicsoft thì đòi mua bán này nọ tốn kém thời gian lẫn tiền bạc.

  3. #13
    Ngày gia nhập
    09 2016
    Bài viết
    1,009

    Tôi có tật hay lạc đề, vậy bác hay ai đó viết tôi sẽ hiệu chỉnh lại.

    Thời gian và tiền bạc rất hệ trọng, rất quý. Nó một phần là mục đích của người lập trình, của mọi người.

  4. #14
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    904

    Cũng được thôi, mấy giờ vừa rồi tôi đã viết một đoạn ngắn nhưng còn khúc mắc ở cách xác định các hằng đi kèm theo lệnh SendMessage mà dùng cho ListView. Các hằng này nó tùy thuộc vào phiên bản của Common Control đúng với chương trình này nhưng sai với cái khác.
    Tôi chưa vượt qua được lệnh WinAPI.SendMessage(hwnd, 0x1000 + 4, 0, 0); lệnh này chỉ là đếm số item có trong LV thôi nhờ bác gỡ bí chỗ này hộ.

    Dự án chờ chút tôi gom lại chuyển về 2010 rồi đưa lên.

    - - - Nội dung đã được cập nhật ngày 03-11-2016 lúc 05:59 PM - - -

    Cách hoạt động :
    Khi bác chọn vào một item trong danh sách các cửa sổ, chương trình sẽ kiểm tra nếu nó là một "SysListView32" và nó đang giữ kiểu Report (đã xong) cùng với nó có số item > 0 (đang bí) thì chương trình "mở cửa" cho nút nhấn <DoubleClick ListViewCell> cùng các hộp combo, các hộp combo là để người dùng nhập vào hàng-cột của Cell mà người dùng muốn Click ảo vào nó. Do số item đang bí nên các combo chưa khởi tạo dãy được.

    Ý định : Tìm cách lấy số item của listview đích, nhưng có thể lấy của một vài chương trình được nhưng một vài chương trình thì không, do hằng LVM_GETITEMCOUNT là khác nhau theo từng phiên bản Common Control.
    Attached Files Attached Files

  5. #15
    Ngày gia nhập
    09 2016
    Bài viết
    1,009

    Tạm lạc đề một chút, khi biên dịch lại với vs2010 nó không chạy, nó thông báo vầy
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		_netFx45.jpg
Lần xem:	2
Size:		16.3 KB
ID:		50357

    Chọn Yes nó làm thế này:
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		_netFx46.jpg
Lần xem:	1
Size:		22.5 KB
ID:		50358

    Nó do cái này:
    XML Code:
    1. <?xml version="1.0" encoding="utf-8" ?>
    2. <configuration>
    3.     <startup>
    4.         <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    5.     </startup>
    6. </configuration>

    Phải restart, chán thật
    Không cần chi phải vội, không restart (restart later) nó đình công

  6. #16
    Ngày gia nhập
    03 2012
    Bài viết
    31

    Mặc định [winapi] Nháy đúp chuột vào Syslistview32 item

    Có cách nào dùng WM_COMMAND để send không mấy anh :(

  7. #17
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    904

    Bạn nên để ý tới WM_NOTIFY, đó mới là cái cần dùng cho mục đích của bạn. Gởi một WM_NOTIFY cho cửa sổ cha của cái ListView mà giả mạo là ListView gởi tới, tôi làm theo hướng đó nhưng đang kẹt, khó khăn nhất là xác định tham số wParam và lParam cho chính xác. WM_COMMAND chỉ phù hợp cho các điều khiển tiêu chuẩn như Button, Edit, Static, vvv.

  8. #18
    Ngày gia nhập
    03 2012
    Bài viết
    31

    Trích dẫn Nguyên bản được gửi bởi MHoang Xem bài viết
    Bạn nên để ý tới WM_NOTIFY, đó mới là cái cần dùng cho mục đích của bạn. Gởi một WM_NOTIFY cho cửa sổ cha của cái ListView mà giả mạo là ListView gởi tới, tôi làm theo hướng đó nhưng đang kẹt, khó khăn nhất là xác định tham số wParam và lParam cho chính xác. WM_COMMAND chỉ phù hợp cho các điều khiển tiêu chuẩn như Button, Edit, Static, vvv.
    WM_NOTIFY không dùng được từ vista trở lên rồi anh :(, em cũng bù đầu nghiên cứu nhưng rồi đọc được 1 bài viết kêu microsoft không cho send WM_NOTIFY từ process này sang process khác

  9. #19
    Ngày gia nhập
    09 2016
    Bài viết
    1,009

    Tạm delay nhằm tăng phần hấp dẫn.
    Theo :
    http://www.codeproject.com/Articles/34981/FindWindow
    hoặc :
    http://diendan.congdongcviet.com/threads/t59704::window-spy-ho-tro-lap-trinh-api.cpp

    thì regEdit (registry editor) có hai component chính là SysTreeView32 (bên trái) và SysListView32 (bên phải)
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		_sysLsV.jpg
Lần xem:	6
Size:		124.2 KB
ID:		50364

    số item có trong listView phụ thuộc ở mỗi nhánh treeView tùy thời điểm. Chưa rõ Simulate lấy số nào.

    Đây là một CT khác có đủ source code viết bằng Delphi : regDet, tôi lấy từ internet. Nếu chưa tìm được thì nửa tháng sau tôi sẽ đưa lên đây.

    Lưu ý sau winXP, HDH bỏ lơ hlp file - winhlp32.exe, chép đè nó cũng khó. Run winhlp32.exe để đọc Regdet.hlp nếu hệ thống là hiện đại
    Attached Files Attached Files

  10. #20
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    904

    Mã nguồn rất rõ ràng, Simulate lấy ngay vào thời điểm mà bạn Click(hay nhấn các phím mũi tên) chọn chương trình. Ngay lúc đó ListView của chương trình đích nhắm tới là số item đang hiển thị. Nếu bạn đã đọc nguồn thì bạn thấy rất rõ, thực chất cái tôi chưa vượt qua là những mã hiệu nào phù hợp với phiên bản, chứ đúng mã hiệu rồi thì số item là bao nhiêu đâu phải là chuyện khó.

    Nói rõ thêm : Định danh LVM_GETITEMCOUNT được dẫn từ LVM_FIRST + 4, cái này các phiên bản của Windows đều giữ xuyên suốt. Nhưng cái định danh LVM_FIRST là khác nhau, thời xưa kia tôi còn nhớ không chính xác thì nó có dạng
    #define LVM_FIRST (0U - 10U) // Đại khái là 2 chữ số trừ cho nhau
    Những phiên bản ngày nay tôi tìm trong máy thì
    #define LVM_FIRST 0x1000

    Chính điều đó dẫn tới khi Simulate tìm đích nhắm là các exe đời mới, thường nó hoạt động chính xác. Nhưng với các chương trình cũ hơn, thì gới thông điệp 0x1000+4 không phải là nó gởi thông điệp nhận số item.

    Tôi sẽ xem regdet của bạn xem có tình trạng đó không.

    Ừ và tôi cũng không gấp gáp gì đâu, đụng tới cái hồi xưa chân tay nó ngứa ngáy nên xem nó như bài tập của mình vậy.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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