Tin học
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Thực hành điều khiển VnVoice

+13
TRANTHUYOANH_10H1010066
hoanggiangI12C
tranvanthien27(I12C)
dangmonghai(I12A)
TranHoangNhanI12C
LacChiHao(I12A)
dangvannhan_11h1010085
huynhvanhung(I12A)
trinhvanminh_11h1010077
LeQuocKhanh-11H1010059
LePhucHiep(102C)
NguyenNgocDuy(I12A)
Admin
17 posters

Trang 2 trong tổng số 2 trang Previous  1, 2

Go down

Thực hành điều khiển VnVoice - Page 2 Empty giải thích code vnvoice

Bài gửi  phanngocthinh(i12a) 28/5/2012, 15:15

Code vnvoice :
private void cmdGetMenuItemID_Click(object sender, EventArgs e)
{
IntPtr hMainMenu, hSubMenu; //khai báo 2 biến hMainMenu và hSubMenu kiểu handel(mục quản)
int iSubMenuIndex, iSubMenuItem, iMenuItemID;

iSubMenuIndex = 0;
iSubMenuItem = 0;

IntPtr hApp = FindWindow(null, "Speaking VN"); // tìm trong những cửa sổ đang chạy hiện tại có cửa sổ nào có tiêu đề là Speaking VN ko , nếu có trả về handle và lưu vào biến hApp nếu ko thì trả về null

hMainMenu = GetMenu(hApp) ; // hàm GetMenu lấy handle(mục quản ) của cả hệ thống menu gán với cửa sổ có mục quản lưu trong biến hApp
hSubMenu = GetSubMenu(hMainMenu , iSubMenuIndex); // hàm GetSubMenu dùng để nhận mục quản của nhánh thực đơn thứ tự npos(iSubMenuIndex) thuộc hệ thực đơn hMainMenu
iMenuItemID = (int) GetMenuItemID(hSubMenu , iSubMenuItem);//hàm GetMenuItemID dung để lấy mã định danh ID của mục thứ iSubMenuIndex trong nhánh hSubMenu , sau đó ép kiểu sang kiểu int và lưu vào biến iMenuItemID

Message.Show(iMenuItemID.ToString()); // chuyển mã định danh đang lưu trong biến iMenuItemID sang kiểu chuỗi và hiện thị lên
}
///////////////////////////////////////////////////////////////////////////
private void PronounceByVnVoice(string strTCVN3)
{
IntPtr hApp = FindWindow(null, "Speaking VN"); // tìm xem những cửa sổ đang chạy có cửa sổ nào tiêu đề là “Speaking VN” , tên class là null và trả về handle(mục quản) của cửa đó rồi lưu vào biến hApp
if (hApp == IntPtr.Zero) // nếu ko tìm thấy handle , do chưa khởi động vnvoice thì thoát ra khỏi hàm này luôn
{
return;
}
IntPtr hFrame = FindWindowEx(hApp, IntPtr.Zero, "AfxFrameOrView42s", ""); // tìm handle của cửa sổ con của hApp có tên class là AfxFrameOrView42s và lưu vào biến hFrame

IntPtr hRichEditBox = FindWindowEx(hFrame, IntPtr.Zero, "RICHEDIT", ""); //với frame vừa tìm được thì tiếp tục lại tìm (tìm kiếm mở rộng) trong đó có đối tượng nào có tên lớp là “RICHEDIT” hay không ? Nếu có thì trả mục quản (handle) của nó về cho biến hFrame còn nếu không thì trả về NULL

Clipboard.Clear(); //Xoá sạch clipboard để chứa đoạn văn bản được giữ ở biến strTCVN3


SendMessageW(hRichEditBox, WM_SETTEXT, 0, (int)Marshal.StringToHGlobalUni(strTCVN3)); // Gửi đoạn văn bản chứa bởi strTCVN3 tới đối tượng RICHEDIT của chương trình "Speaking VN"

SendMessage(hApp, WM_COMMAND, 104, 0); // sau khi gửi đoạn văn bản tới RICHEDIT của tiến trình "Speaking VN" thì tiếp tục gọi lệnh gửi thông điệp thực hiện tới đối tượng có ID=104 (là button đọc của chương trình VnVoice)


}

phanngocthinh(i12a)
phanngocthinh(i12a)

Tổng số bài gửi : 47
Join date : 17/02/2012

Về Đầu Trang Go down

Trang 2 trong tổng số 2 trang Previous  1, 2

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết