Windows Message

Sau đây là danh sách các Windows message và giá trị của nó , điều này giúp ta có thể sử dụng 1 cách dễ dàng các giá trị message ở C#

WM_NULL = 0x00
WM_CREATE = 0x01
WM_DESTROY = 0x02
WM_MOVE = 0x03
WM_SIZE = 0x05
WM_ACTIVATE = 0x06
WM_SETFOCUS = 0x07
WM_KILLFOCUS = 0x08

Tiếp tục đọc

Advertisements

SendKey Class

Ứng dụng : Đây là một lớp giúp ứng dụng có thể gửi đến Windows các Key của keyboard
Trực thuộc namspace :  System.Windows.Forms
Cách thức cài đặt :
Để có thể gửi một kí tự A đến Windows ta sử dụng như sau :
SendKey.Send(“A”);
Tuy nhiên , đối với 1 số phím đặc biệt như Shift ,Enter , F1 , … chúng ta có thể dựa vào bảng sau để có thể gửi kí tự một cách thích hợp

Tổng hợp một số lỗi Microsoft Robotics Developer R3

1.
Cryptographic failure while signing assembly ‘C:\Users\Hari Nidamarthy\Microsoft Robotics Dev Studio 2008 Express\ProMRDS\Chapter2\CCRExamples\obj\Debug\CCR Examples.Y2007.M12.dll’ — ‘Error reading key file ‘c:\Users\trevtay\Microsoft Robotics Dev Studio 2008 Express\samples\mrisamples.snk’ — The system cannot find the path specified.
Vào Start Menu->All Programs -> Microsoft Robotics Developer 2008 R3 -> DSS Command Prompt window . Tại màn hình prompt thực hiện lệnh : dssprojectmigration /b- ProMRDS

2.

Hiện tại bản MRDS R3 chưa hỗ trợ .Net framework 4.0 vì thế khi thực hiện cần build trên nền .Net framework 3.5 bằng cách vào Properties của Project -> Application -> Target framework và chọn .NET Framework 3.5 .

3.

Invalid mainfest identifier …

Kiểm tra đường dẫn Command line của file mainfest bằng cách vào Properties của Project -> Debug -> Kiểm tra ô Command line argurments có đúng đường dẫn của file mainfest không ?

Tiếp tục đọc

Thread : Cross-thread operation not valid

Nguyên nhân : do thread ta vừa tạo can thiệp đến các thread khác không hợp lệ .

Vd : Khi ta tạo 1 thread để truy cập thêm vào 1 object(string) cho một listBox . Khi đó , thread này xảy ra xung đột đối với thread của Form .

Cách xử lí : Ta cần sử dụng đến Control.Invoke(Method) để có thể xử lý vấn đề này .

Tiếp tục đọc

Registry C#

Giới thiệu :
Đối với các ngôn ngữ lập trình khác như C++ , ta đều có thể truy xuất đến các regedit của windows , thông qua đó ta có thể chỉnh sữa , update , tạo mới chúng . Ngoài ra , ta có thể xóa regedit .
Ứng dụng của registry trong C# :
Ta có thể sửa trực tiếp registry mà virus đã làm ẩn một số quyền của máy , hoặc thay đổi thông số của windows .
Vậy làm thế nào để có thể thực hiện những điều đó trong C# ?
Trong C# , điều này rất dễ thực hiện vì C# đã cung cấp thư viện có sẵn để thực hiện . Ta cần sử dụng namespace Microsoft.Win32 . Tiếp tục đọc

Hook C#

Hook là gì ?

Hook là một kỹ thuật dùng để chặn các sự kiện trước khi chúng được đưa vào stack của ứng dụng . Khi sử dụng kỹ thuật này ta chặn các sự kiện lại và xử lý chúng theo nhu cầu của ta .

Ưu điểm ?

Có thể nói hook có ưu điểm rất lớn , ta có thể sử dụng hook để bắt các sự kiện keyboard , mouse ,… Một số chương trình sử dụng hook như Unikey , autogame , trojan ,… Ngoài ra, ta có thể thay đổi giao diện của ứng dụng .

Phân loại :

Hook gồm 2 loại chính đó là :

Hook cục bộ . Đây là loại hook được móc vào một ứng dụng nhất định .

Hook toàn cục . Đây là hook dùng để móc vào hệ thống thu nhận các sự kiện , thông điệp của toàn hệ thống , bao gồm chương trình . Tiếp tục đọc

How to override operator in C# : Nạp chồng toán tử trong C#

Nạp chồng toán tử trong C#

Khi lập trình hướng đối tượng , nạp chồng toán tử là một thứ rất cần thiết . Tuy nhiên , làm thế nào để nạp chồng toán tử trong C# ?

Đối với C# nạp chồng toán tử có khác biệt so với C++ : việc nạp chồng toán tử phải là hàm tĩnh của một lớp . Ta sẽ bắt đầu với một bài tập kinh điển là class Phân số .

class PhanSo

{

public int tuso;

public int mauso;

} Tiếp tục đọc