Điều khiển VnVoice
+4
NguyễnMinhHoàng45(HLT3)
VoThanhTrung41 (HLT3)
NguyenChiKien(HLT3)
Admin
8 posters
Trang 1 trong tổng số 2 trang
Trang 1 trong tổng số 2 trang • 1, 2
Re: Điều khiển VnVoice
Em rất thích đề tài này... rất hữu ích... bắt đầu nghiên cứu nào cả nhà....
P/S: Gõ 1 đóng code này hơi bị fê hén cả nhà....
Admin: Tốt ! Chịu khó gõ một chút thì sẽ Giỏi !
P/S: Gõ 1 đóng code này hơi bị fê hén cả nhà....
Admin: Tốt ! Chịu khó gõ một chút thì sẽ Giỏi !
NguyenChiKien(HLT3)- Tổng số bài gửi : 44
Join date : 23/03/2014
Age : 41
Re: Điều khiển VnVoice
Báo cáo là WIN8, VNVoice k0 hỗ trợ nha cả nhà... :)Bắt tay cài máy Ảo thôi....
Admin: Đã có mục về Máy ảo rồi ! Làm ngay !
Admin: Đã có mục về Máy ảo rồi ! Làm ngay !
NguyenChiKien(HLT3)- Tổng số bài gửi : 44
Join date : 23/03/2014
Age : 41
Giải thích code tìm ID của Menu
private void cmdGetMenuItemID_Click(object sender, EventArgs e)
{
IntPtr hMainMenu, hSubMenu; //khai báo 2 biến hMainMenu và hSubMenu kiểu handle(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
MessageBox.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
}
Admin: Hiểu tốt !
{
IntPtr hMainMenu, hSubMenu; //khai báo 2 biến hMainMenu và hSubMenu kiểu handle(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
MessageBox.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
}
Admin: Hiểu tốt !
NguyenChiKien(HLT3)- Tổng số bài gửi : 44
Join date : 23/03/2014
Age : 41
vnVoice cho mobile
Em thấy hứng thú với vnVoice, hiện e đang làm lập trình mobile và bên cty cũng có giao task là tìm hiểu về công nghệ này để phát triển trên mobile, không biết Thầy và các bạn có ai đã từng làm ý tưởng này cho mobile chưa, Android, Window phone 8, IOS
Admin:
- Thày mới chỉ làm chủ được vấn đề TTS cho Desktop.
- Giải pháp cho Mobile đã có. Tìm thêm trên Mạng !
Admin:
- Thày mới chỉ làm chủ được vấn đề TTS cho Desktop.
- Giải pháp cho Mobile đã có. Tìm thêm trên Mạng !
VoThanhTrung41 (HLT3)- Tổng số bài gửi : 34
Join date : 23/03/2014
Re: Điều khiển VnVoice
- Code:
Class MsgBox
{
/* Khai báo các hàm DLL */
static Timer tmr = new Timer(); //Khai báo 1 đối tượng timer, thực hiện công việc sau 1 khoảng thời gian
static MessageboxButtons mbButton; // Khai báo đối tượng enum về loại button
public statis DialogReult Show(string text, string caption, MessageboxButtons button, MessageboxIcon icon, MessageboxDefaultButton defaultbutton)
{
tmr.Interval = 1; // thời gian thực hiện sau 1 giây, đủ thời gian để messagebox hệ thống hiện lên
tmr.Tick += EventHandler(tmr_Tick);// Khai báo nhận sự kiện Tick của tmr
tmr.Enable = true;
// Hình như thiếu hàm tmr.Start(); hả thầy?
mbButton = button;
return Messagebox.Show(text,caption,button,icon,defaultbutton); // gọi lên messagebox của hệ thống
}
private void tmr_Tick(object sender, EventArgs e)
{
tmr.Enable = false;
//hình như ở đây thiếu tmr.Stop();
IntPtr hMessageBox = GetActiveWindow(); //gọi hàm API hệ thống lấy cửa sổ hiện hành, là messagebox
IntPtr bButton;
switch(mbButton)
{
case MessageboxButtons.YesNo : // trong trường hợp messagebox button là dạng YES NO
hButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "&Yes"); //Tìm ra "window" nút bấm Yes
SendMessageW(hButton, WM_SETTEXT, 0, "Có"); //Set Caption cho nút Yes thành có
hButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "&No"); //Tìm ra "window" nút bấm No
SendMessageW(hButton, WM_SETTEXT, 0, "Không"); //Set Caption cho nút Yes thành không
break;
case MessageboxButtons.OK :
hButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "&Ok");
SendMessageW(hButton, WM_SETTEXT, 0, "Được"); //Set Caption cho nút OK thành được
break;
}
}
}
Admin:
- Nếu không có tmr.Start() mà vẫn đúng, nghĩa là không cần đến nó !
- Máy người dùng sử dụng font gì cho các thành phần của Desktop thì từ chương trình vẫn có thể "Đổi" theo ý mình để hiển thị đúng chữ cần (ví dụ chữ Việt có dấu), sau đó khôi phục lại font ban đầu trước khi thoát ! (đây là vấn đề Hay và Thiết thực, nhưng đáng tiếc là nhiều người Không biết và cho đây là Chuyện nhỏ). Thày đã làm chủ vấn đề này một cách trọn vẹn !
- Hiểu rất đúng mã trên ! Cần thử ngay trên máy (có bổ sung thêm những trường hợp khác như OK-Cancel,...) !
NguyễnMinhHoàng45(HLT3)- Tổng số bài gửi : 44
Join date : 17/02/2012
Age : 39
Đến từ : Viet Nam
Re: Điều khiển VnVoice
- Code:
private static void tmr_Tick(object sender, EventArgs e)
{
tmr.Enabled = false;
IntPtr hMessageBox = GetActiveWindow(); //gọi hàm API hệ thống lấy cửa sổ hiện hành, là messagebox
IntPtr bButton;
switch (mbButton)
{
case MessageBoxButtons.YesNo: // trong trường hợp messagebox button là dạng YES NO
bButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "&Yes"); //Tìm ra "window" nút bấm Yes
SendMessageW(bButton, WM_SETTEXT, 0, "Có"); //Set Caption cho nút Yes thành có
bButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "&No"); //Tìm ra "window" nút bấm No
SendMessageW(bButton, WM_SETTEXT, 0, "Không"); //Set Caption cho nút No thành không
break;
case MessageBoxButtons.OK:
bButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "Ok");
SendMessageW(bButton, WM_SETTEXT, 0, "Được"); //Set Caption cho nút OK thành được
break;
case MessageBoxButtons.YesNoCancel:
bButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "&Yes");
SendMessageW(bButton, WM_SETTEXT, 0, "Có");
bButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "&No");
SendMessageW(bButton, WM_SETTEXT, 0, "Không");
bButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "Cancel");
SendMessageW(bButton, WM_SETTEXT, 0, "Thôi");
break;
case MessageBoxButtons.OKCancel:
bButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "OK");
SendMessageW(bButton, WM_SETTEXT, 0, "Được");
bButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "Cancel");
SendMessageW(bButton, WM_SETTEXT, 0, "Thôi");
break;
case MessageBoxButtons.RetryCancel:
bButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "&Retry");
SendMessageW(bButton, WM_SETTEXT, 0, "Thử lại");
bButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "Cancel");
SendMessageW(bButton, WM_SETTEXT, 0, "Thôi");
break;
case MessageBoxButtons.AbortRetryIgnore:
bButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "&Abort");
SendMessageW(bButton, WM_SETTEXT, 0, "Hủy");
bButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "&Retry");
SendMessageW(bButton, WM_SETTEXT, 0, "Thử lại");
bButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "&Ignore");
SendMessageW(bButton, WM_SETTEXT, 0, "Bỏ qua lỗi");
break;
}
Lưu ý phải đánh đúng caption các nút thì mới chạy được, caption phải đúng kể cả các ký tự gạch dưới (thường dùng alt + phím gạch dưới để chọn nhanh) muốn xem gạch dưới chữ nào thì nhấn alt
Admin:
- Rất tốt !
- Nên phát huy tiếp với các Common Dialogbox khác như Open, Save As,... !
NguyễnMinhHoàng45(HLT3)- Tổng số bài gửi : 44
Join date : 17/02/2012
Age : 39
Đến từ : Viet Nam
Hộp thoại OpenFileDialog
- Code:
public class OpenDlg
{
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, int wParam, string lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr GetActiveWindow();
static Timer tmr = new Timer();
const int WM_SETTEXT = 0xC;
public string Title { get; set; }
public string Filter { get; set; }
public string FileName { get; set; }
public string[] FileNames { get; set; }
public string InitialDirectory { get; set; }
public string DefaultExt { get; set; }
public bool Multiselect { get; set; }
public string SafeFileName { get; set; }
public string[] SafeFileNames { get; set; }
public DialogResult Show()
{
OpenFileDialog dlg = new OpenFileDialog();
if (this.Title != "")
dlg.Title = this.Title;
else
dlg.Title = "Mở file";
dlg.Filter = this.Filter;
dlg.DefaultExt = this.DefaultExt;
dlg.InitialDirectory = this.InitialDirectory;
dlg.Multiselect = this.Multiselect;
//Bổ sung thêm 1 số property cho cửa sổ nếu cần
tmr.Interval = 1;
tmr.Tick += new EventHandler(tmr_Tick);
tmr.Enabled = true;
DialogResult rslt = dlg.ShowDialog();
if (rslt == DialogResult.OK)
{
this.FileName = dlg.FileName;
this.FileNames = dlg.FileNames;
this.SafeFileName = dlg.SafeFileName;
this.SafeFileNames = dlg.SafeFileNames;
}
return rslt;
}
private void tmr_Tick(object sender, EventArgs e)
{
tmr.Enabled = false;
IntPtr hMessageBox = GetActiveWindow();
IntPtr hButton;
hButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "&Open");
SendMessageW(hButton, WM_SETTEXT, 0, "Mở");
hButton = FindWindowEx(hMessageBox, IntPtr.Zero, "Button", "Cancel");
SendMessageW(hButton, WM_SETTEXT, 0, "Hủy");
}
}
Admin:
- Bạn này phải mất 2 ngày để hoàn thành bài tập trên ! Rất đúng hướng !
- Nên cho biết dáng vẻ của DialogBox trên ! (hãy luôn đặt mình bên phía Khách hàng và Người sử dụng)
- Ngoài ra, nên Việt hoá thêm vài chỗ nữa (gần hết được thì tốt) !
NguyễnMinhHoàng45(HLT3)- Tổng số bài gửi : 44
Join date : 17/02/2012
Age : 39
Đến từ : Viet Nam
Thắc mắc wParam
Thầy ơi cho em hỏi, thầy có thể chỉ cho tụi em danh sách các tham số ở wParam đó thấy. cái thầy thường dùng WM_SETTEXT đó
Admin: Trên Mạng có hết !
Admin: Trên Mạng có hết !
NguyễnMinhHoàng45(HLT3)- Tổng số bài gửi : 44
Join date : 17/02/2012
Age : 39
Đến từ : Viet Nam
BTVN: Xác định ID của thực đơn "Stop"?
ID của Menu Stop: 32792 phải không thầy....
Admin: Cho biết cách xác định thì hiệu quả hơn !
Admin: Cho biết cách xác định thì hiệu quả hơn !
NguyenChiKien(HLT3)- Tổng số bài gửi : 44
Join date : 23/03/2014
Age : 41
Thao tác với Menu (phát triển thêm)
Em xây dựng class này có thể tìm được MenuID theo vị trí và cả theo text
theo vị trí cần lưu ý đếm cả gạch và bắt đầu từ 0
theo text cần chính xác ký tự gạch dưới
có xử lý click vào menu theo text
Admin:
- Em đang đi Đúng hướng và Đúng cách ! (không phải ai cũng hiểu được cách đi này đâu)
- Vấn đề IPC rất Quan trọng và Thực tiễn.
- Cần Sâu và Rộng hơn nữa !
theo vị trí cần lưu ý đếm cả gạch và bắt đầu từ 0
theo text cần chính xác ký tự gạch dưới
có xử lý click vào menu theo text
- Code:
public class XL_Menu
{
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr GetMenu(IntPtr hWnd);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr GetSubMenu(IntPtr hMenu,int nPos);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern uint GetMenuItemID(IntPtr hMenu, int nPos);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern int GetMenuString(IntPtr hMenu, int nIDItem, char[] rString, int maxCount, int nFlags);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern int GetMenuItemCount(IntPtr hMenu);
public static int GetMenuIDApp(string TitleApp, int nPosMenu, int nPosSubMenu)
{
IntPtr hMainMenu, hSubMenu;
int iMenuItemID;
char[] szTemp;
szTemp = new char[32];
IntPtr hApp = FindWindow(null, TitleApp);
hMainMenu = GetMenu(hApp);
hSubMenu = GetSubMenu(hMainMenu, nPosMenu);
iMenuItemID = (int) GetMenuItemID(hSubMenu, nPosSubMenu);
return iMenuItemID;
}
const int WM_COMMAND = 0x0111;
const int MF_BYCOMMAND = 0x0000;
const int MF_BYPOSITION = 0x0400;
const int MAX_SIZE = 100;
private static string ArrayCharToString(char[] a)
{
string kq = "";
for (int i = 0; i < a.Count(); i++)
{
if (a[i] != '\0')
kq += a[i];
else
break;
}
return kq;
}
public static int GetMenuIDApp(string TitleApp, string MenuText, string SubMenuText)
{
IntPtr hMainMenu, hSubMenu;
int iMenuItemID;
IntPtr hApp = FindWindow(null, TitleApp);
hMainMenu = GetMenu(hApp);
int MenuCount = GetMenuItemCount(hMainMenu);
char[] szTemp;
string text = "";
szTemp = new char[32];
int nPos = -1;
for (nPos = 0; nPos < MenuCount; nPos++)
{
text = "";
GetMenuString(hMainMenu, nPos, szTemp, MAX_SIZE, MF_BYPOSITION);
text = ArrayCharToString(szTemp);
if (text == MenuText)
{
break;
}
}
hSubMenu = GetSubMenu(hMainMenu, nPos);
nPos = -1;
MenuCount = GetMenuItemCount(hSubMenu);
for (nPos = 0; nPos < MenuCount; nPos++)
{
text = "";
GetMenuString(hSubMenu, nPos, szTemp, MAX_SIZE, MF_BYPOSITION);
text = ArrayCharToString(szTemp);
if (text == SubMenuText)
{
break;
}
}
iMenuItemID = (int)GetMenuItemID(hSubMenu, nPos);
return iMenuItemID;
}
public static void ClickMenu(string TitleApp, string MenuText, string SubMenuText)
{
int MenuID = GetMenuIDApp(TitleApp, MenuText, SubMenuText);
IntPtr hApp = FindWindow(null, TitleApp);
SendMessage(hApp, WM_COMMAND, MenuID, 0);
}
}
Admin:
- Em đang đi Đúng hướng và Đúng cách ! (không phải ai cũng hiểu được cách đi này đâu)
- Vấn đề IPC rất Quan trọng và Thực tiễn.
- Cần Sâu và Rộng hơn nữa !
NguyễnMinhHoàng45(HLT3)- Tổng số bài gửi : 44
Join date : 17/02/2012
Age : 39
Đến từ : Viet Nam
Re: Điều khiển VnVoice
NguyenChiKien(HLT3) đã viết:ID của Menu Stop: 32792 phải không thầy....
Admin: Cho biết cách xác định thì hiệu quả hơn !
Code xác định ID của Menu STOP:
private void bt_layidmenu_Click(object sender, EventArgs e)
{
IntPtr hMainMenu, hSubMenu;
int iSubMenuIndex, iSbMenuItem, iMenuItemID;
iSubMenuIndex = 0;
iSbMenuItem = 1;// vị trí của menu STOP
IntPtr hApp = FindWindow(null, "Speaking VN");
hMainMenu = GetMenu(hApp);
hSubMenu = GetSubMenu(hMainMenu, iSubMenuIndex);
iMenuItemID = (int)GetMenuItemID(hSubMenu, iSbMenuItem);
MessageBox.Show(iMenuItemID.ToString());
}
Admin: Đúng !
Được sửa bởi NguyenChiKien(HLT3) ngày 3/4/2014, 17:39; sửa lần 1.
NguyenChiKien(HLT3)- Tổng số bài gửi : 44
Join date : 23/03/2014
Age : 41
Hàm convert từ UNICODE sang TCVN3
Đầu tiên ta có 2 mảng ký tự có dấu unicode và TCVN3,sau đó ánh xạ 2 mảng đó lại với nhau thành mảng trung gian.Tiếp đó chỉ việc đọc từng ký tự trong chuỗi Unicode dưới dạng byte và ánh xạ sang TCVN3 thông qua cái mảng trung gian đó:
Admin: Đúng hướng !
Chuyển đổi từ UNICODE sang TCVN3:
char[] tcvnchars = {
'µ', '¸', '¶', '•', '¹',
'¨', '»', '¾', '¼', '½', 'Æ',
'©', 'Ç', 'Ê', 'È', 'É', 'Ë',
'®', 'Ì', 'Ð', 'Î', 'Ï', 'Ñ',
'ª', 'Ò', 'Õ', 'Ó', 'Ô', 'Ö',
'×', 'Ý', 'Ø', 'Ü', 'Þ',
'ß', 'ã', 'á', 'â', 'ä',
'«', 'å', 'è', 'æ', 'ç', 'é',
'¬', 'ê', 'í', 'ë', 'ì', 'î',
'ï', 'ó', 'ñ', 'ò', 'ô',
'¬', 'õ', 'ø', 'ö', '÷', 'ù',
'ú', 'ý', 'û', 'ü', 'þ',
'¡', '¢', '§', '£', '¤', '¥', '¦'
};
char[] unichars ={
'à', 'á', 'ả', 'ã', 'ạ',
'ă', 'ằ', 'ắ', 'ẳ', 'ẵ', 'ặ',
'â', 'ầ', 'ấ', 'ẩ', 'ẫ', 'ậ',
'đ', 'è', 'é', 'ẻ', 'ẽ', 'ẹ',
'ê', 'ề', 'ế', 'ể', 'ễ', 'ệ',
'ì', 'í', 'ỉ', 'ĩ', 'ị',
'ò', 'ó', 'ỏ', 'õ', 'ọ',
'ô', 'ồ', 'ố', 'ổ', 'ỗ', 'ộ',
'ơ', 'ờ', 'ớ', 'ở', 'ỡ', 'ợ',
'ù', 'ú', 'ủ', 'ũ', 'ụ',
'ư', 'ừ', 'ứ', 'ử', 'ữ', 'ự',
'ỳ', 'ý', 'ỷ', 'ỹ', 'ỵ',
'Ă', 'Â', 'Đ', 'Ê', 'Ô', 'Ơ', 'Ư'
};
char[] convertTable;
public MsgBox()
{
convertTable = new char[8000];
for (int i = 0; i < 8000; i++)
convertTable[i] = (char)i;
for (int i = 0; i < unichars.Length; i++)
convertTable[unichars[i]] = tcvnchars[i];
}
public string UnicodeToTCVN3(string strUnicode)
{
char[] chars = strUnicode.ToCharArray();
for (int i = 0; i < chars.Length; i++)
if (chars[i] < (char)8000)
chars[i] = convertTable[chars[i]];
return new string(chars);
}
Admin: Đúng hướng !
NguyenChiKien(HLT3)- Tổng số bài gửi : 44
Join date : 23/03/2014
Age : 41
vấn đề khi sử dụng điều khiển menu bằng IPC
thưa thầy, hôm qua em có test bằng cách tạo 1 project khác, form trắng chỉ có mỗi menustrip. nhưng dùng hàm GetMenu không lấy được mục quản của menustrip. xin thầy giúp em ý kiến.
nếu như thao tác nào đó không được xây dựng trên menu mà làm trong nút bấm thì mình có cách nào click nút bấm được không? xin thầy chỉ em hướng xử lý với
Admin:
- Nên thiết thực bằng cách gửi Project trên cho mọi người tham khảo !
- Với nút bấm (nút lệnh) cũng làm như vậy, nhưng gửi thông điệp Left Click cho nó, ví dụ:
- Chúc em thành công !
nếu như thao tác nào đó không được xây dựng trên menu mà làm trong nút bấm thì mình có cách nào click nút bấm được không? xin thầy chỉ em hướng xử lý với
Admin:
- Nên thiết thực bằng cách gửi Project trên cho mọi người tham khảo !
- Với nút bấm (nút lệnh) cũng làm như vậy, nhưng gửi thông điệp Left Click cho nó, ví dụ:
- Code:
const int BM_CLICK = 0xF5;
SendMessage(hCommandButton, BM_CLICK, 0, 0);
- Chúc em thành công !
NguyễnMinhHoàng45(HLT3)- Tổng số bài gửi : 44
Join date : 17/02/2012
Age : 39
Đến từ : Viet Nam
Hàm xử lý gửi văn bản dài...
Chào cả nhà... đây là hàm xử lý gửi VB dài... như thầy nói, ứng dụng VnVoice bản Demo chỉ đọc được VB ngắn, vấn đề được đặt ra là làm thế nào đọc đc VB dài trong khi ta vẫn sử dụng bản Demo? Đúng như thầy nói, ta cắt đoạn VB dài đó thành những đoạn ngắn với chiều dài chuỗi là 500 giới hạn những đoạn ngắt đó là khoảng trắng... sau đó dùng hàm gửi VB ngắn(đoạn code thầy gửi ở đầu trang 1) gửi liên tiếp (SendMessegeW) tới VnVoice, dưới đây là đoạn code xử lý theo hướng đó:
Admin: Có cố gắng !
void PhatAmVBDai(string strToSplit)
{
MsgBox msg = new MsgBox();
string temp = "";
if (strToSplit.Length > 500)
{
int curIndex = 500;
while (strToSplit[curIndex] != ' ')
{
curIndex--;
if (curIndex < 0)
{
curIndex = 500;
break;
}
}
temp = strToSplit.Substring(0, curIndex);
strToSplit = strToSplit.Remove(0, curIndex);
PhatAm(msg.UnicodeToTCVN3(temp));// đây là hàm gửi VB ở nút phát âm đoạn VB ngắn
}
else if (strToSplit.Length > 0)
PhatAm(strToSplit);
}
private void bt_phatamdai_Click(object sender, EventArgs e)
{
MsgBox msg = new MsgBox();
PhatAmVBDai(msg.UnicodeToTCVN3(txtUnicode.Text));
}
Admin: Có cố gắng !
NguyenChiKien(HLT3)- Tổng số bài gửi : 44
Join date : 23/03/2014
Age : 41
Ứng dụng tương tác VnVoice bằng VS 2005
Gửi cả nhà ứng dụng tương tác với VnVoice, mọi người tham khảo và góp ý nhé thanks!!!!
Link download: https://app.box.com/s/6wrdyciwmon3ax0rfvjh
Link download: https://app.box.com/s/6wrdyciwmon3ax0rfvjh
NguyenChiKien(HLT3)- Tổng số bài gửi : 44
Join date : 23/03/2014
Age : 41
Set và get status bar
- Code:
const int WM_SETTEXT = 0xC;
const int WM_GETTEXT = 0xD;
const int WM_GETTEXTLENGTH = 0xE;
public static void SetStatusBarText(string TitleApp, string text)
{
IntPtr hApp = FindWindow(null, TitleApp);
IntPtr hStatusBar = FindWindowEx(hApp, IntPtr.Zero, "msctls_statusbar32", "");
SendMessage(hStatusBar, WM_SETTEXT, 0, text);
}
public static string GetStatusBarText(string TitleApp)
{
StringBuilder title = new StringBuilder();
IntPtr hApp = FindWindow(null, TitleApp);
IntPtr hStatusBar = FindWindowEx(hApp, IntPtr.Zero, "msctls_statusbar32", "");
Int32 size = SendMessage(hStatusBar, WM_GETTEXTLENGTH, 0, 0).ToInt32();
if (size > 0)
{
title = new StringBuilder(size + 1);
SendMessage(hStatusBar, WM_GETTEXT, title.Capacity, title);
}
return title.ToString();
}
NguyễnMinhHoàng45(HLT3)- Tổng số bài gửi : 44
Join date : 17/02/2012
Age : 39
Đến từ : Viet Nam
List of Window Message
Hex | Decimal | Symbolic | ||
0000 | 0 | WM_NULL | ||
0001 | 1 | WM_CREATE | ||
0002 | 2 | WM_DESTROY | ||
0003 | 3 | WM_MOVE | ||
0005 | 5 | WM_SIZE | ||
0006 | 6 | WM_ACTIVATE | ||
0007 | 7 | WM_SETFOCUS | ||
0008 | 8 | WM_KILLFOCUS | ||
000a | 10 | WM_ENABLE | ||
000b | 11 | WM_SETREDRAW | ||
000c | 12 | WM_SETTEXT | ||
000d | 13 | WM_GETTEXT | ||
000e | 14 | WM_GETTEXTLENGTH | ||
000f | 15 | WM_PAINT | ||
0010 | 16 | WM_CLOSE | ||
0011 | 17 | WM_QUERYENDSESSION | ||
0012 | 18 | WM_QUIT | ||
0013 | 19 | WM_QUERYOPEN | ||
0014 | 20 | WM_ERASEBKGND | ||
0015 | 21 | WM_SYSCOLORCHANGE | ||
0016 | 22 | WM_ENDSESSION | ||
0018 | 24 | WM_SHOWWINDOW | ||
0019 | 25 | WM_CTLCOLOR | ||
001a | 26 | WM_WININICHANGE | ||
001b | 27 | WM_DEVMODECHANGE | ||
001c | 28 | WM_ACTIVATEAPP | ||
001d | 29 | WM_FONTCHANGE | ||
001e | 30 | WM_TIMECHANGE | ||
001f | 31 | WM_CANCELMODE | ||
0020 | 32 | WM_SETCURSOR | ||
0021 | 33 | WM_MOUSEACTIVATE | ||
0022 | 34 | WM_CHILDACTIVATE | ||
0023 | 35 | WM_QUEUESYNC | ||
0024 | 36 | WM_GETMINMAXINFO | ||
0026 | 38 | WM_PAINTICON | ||
0027 | 39 | WM_ICONERASEBKGND | ||
0028 | 40 | WM_NEXTDLGCTL | ||
002a | 42 | WM_SPOOLERSTATUS | ||
002b | 43 | WM_DRAWITEM | ||
002c | 44 | WM_MEASUREITEM | ||
002d | 45 | WM_DELETEITEM | ||
002e | 46 | WM_VKEYTOITEM | ||
002f | 47 | WM_CHARTOITEM | ||
0030 | 48 | WM_SETFONT | ||
0031 | 49 | WM_GETFONT | ||
0032 | 50 | WM_SETHOTKEY | ||
0033 | 51 | WM_GETHOTKEY | ||
0037 | 55 | WM_QUERYDRAGICON | ||
0039 | 57 | WM_COMPAREITEM | ||
003d | 61 | WM_GETOBJECT | ||
0041 | 65 | WM_COMPACTING | ||
0044 | 68 | WM_COMMNOTIFY | ||
0046 | 70 | WM_WINDOWPOSCHANGING | ||
0047 | 71 | WM_WINDOWPOSCHANGED | ||
0048 | 72 | WM_POWER | ||
0049 | 73 | WM_COPYGLOBALDATA | ||
004a | 74 | WM_COPYDATA | ||
004b | 75 | WM_CANCELJOURNAL | ||
004e | 78 | WM_NOTIFY | ||
0050 | 80 | WM_INPUTLANGCHANGEREQUEST | ||
0051 | 81 | WM_INPUTLANGCHANGE | ||
0052 | 82 | WM_TCARD | ||
0053 | 83 | WM_HELP | ||
0054 | 84 | WM_USERCHANGED | ||
0055 | 85 | WM_NOTIFYFORMAT | ||
007b | 123 | WM_CONTEXTMENU | ||
007c | 124 | WM_STYLECHANGING | ||
007d | 125 | WM_STYLECHANGED | ||
007e | 126 | WM_DISPLAYCHANGE | ||
007f | 127 | WM_GETICON | ||
0080 | 128 | WM_SETICON | ||
0081 | 129 | WM_NCCREATE | ||
0082 | 130 | WM_NCDESTROY | ||
0083 | 131 | WM_NCCALCSIZE | ||
0084 | 132 | WM_NCHITTEST | ||
0085 | 133 | WM_NCPAINT | ||
0086 | 134 | WM_NCACTIVATE | ||
0087 | 135 | WM_GETDLGCODE | ||
0088 | 136 | WM_SYNCPAINT | ||
00a0 | 160 | WM_NCMOUSEMOVE | ||
00a1 | 161 | WM_NCLBUTTONDOWN | ||
00a2 | 162 | WM_NCLBUTTONUP | ||
00a3 | 163 | WM_NCLBUTTONDBLCLK | ||
00a4 | 164 | WM_NCRBUTTONDOWN | ||
00a5 | 165 | WM_NCRBUTTONUP | ||
00a6 | 166 | WM_NCRBUTTONDBLCLK | ||
00a7 | 167 | WM_NCMBUTTONDOWN | ||
00a8 | 168 | WM_NCMBUTTONUP | ||
00a9 | 169 | WM_NCMBUTTONDBLCLK | ||
00ab | 171 | WM_NCXBUTTONDOWN | ||
00ac | 172 | WM_NCXBUTTONUP | ||
00ad | 173 | WM_NCXBUTTONDBLCLK | ||
00e0 | 224 | SBM_SETPOS | ||
00e1 | 225 | SBM_GETPOS | ||
00e2 | 226 | SBM_SETRANGE | ||
00e3 | 227 | SBM_GETRANGE | ||
00e4 | 228 | SBM_ENABLE_ARROWS | ||
00e6 | 230 | SBM_SETRANGEREDRAW | ||
00e9 | 233 | SBM_SETSCROLLINFO | ||
00ea | 234 | SBM_GETSCROLLINFO | ||
00eb | 235 | SBM_GETSCROLLBARINFO | ||
00ff | 255 | WM_INPUT | ||
0100 | 256 | WM_KEYDOWN | ||
0100 | 256 | WM_KEYFIRST | ||
0101 | 257 | WM_KEYUP | ||
0102 | 258 | WM_CHAR | ||
0103 | 259 | WM_DEADCHAR | ||
0104 | 260 | WM_SYSKEYDOWN | ||
0105 | 261 | WM_SYSKEYUP | ||
0106 | 262 | WM_SYSCHAR | ||
0107 | 263 | WM_SYSDEADCHAR | ||
0108 | 264 | WM_KEYLAST | ||
0109 | 265 | WM_WNT_CONVERTREQUESTEX | ||
010a | 266 | WM_CONVERTREQUEST | ||
010b | 267 | WM_CONVERTRESULT | ||
010c | 268 | WM_INTERIM | ||
010d | 269 | WM_IME_STARTCOMPOSITION | ||
010e | 270 | WM_IME_ENDCOMPOSITION | ||
010f | 271 | WM_IME_COMPOSITION | ||
010f | 271 | WM_IME_KEYLAST | ||
0110 | 272 | WM_INITDIALOG | ||
0111 | 273 | WM_COMMAND | ||
0112 | 274 | WM_SYSCOMMAND | ||
0113 | 275 | WM_TIMER | ||
0114 | 276 | WM_HSCROLL | ||
0115 | 277 | WM_VSCROLL | ||
0116 | 278 | WM_INITMENU | ||
0117 | 279 | WM_INITMENUPOPUP | ||
0118 | 280 | WM_SYSTIMER | ||
011f | 287 | WM_MENUSELECT | ||
0120 | 288 | WM_MENUCHAR | ||
0121 | 289 | WM_ENTERIDLE | ||
0122 | 290 | WM_MENURBUTTONUP | ||
0123 | 291 | WM_MENUDRAG | ||
0124 | 292 | WM_MENUGETOBJECT | ||
0125 | 293 | WM_UNINITMENUPOPUP | ||
0126 | 294 | WM_MENUCOMMAND | ||
0127 | 295 | WM_CHANGEUISTATE | ||
0128 | 296 | WM_UPDATEUISTATE | ||
0129 | 297 | WM_QUERYUISTATE |
NguyễnMinhHoàng45(HLT3)- Tổng số bài gửi : 44
Join date : 17/02/2012
Age : 39
Đến từ : Viet Nam
List of Window Message (tt)
Hex | Decimal | Symbolic | ||
0132 | 306 | WM_CTLCOLORMSGBOX | ||
0133 | 307 | WM_CTLCOLOREDIT | ||
0134 | 308 | WM_CTLCOLORLISTBOX | ||
0135 | 309 | WM_CTLCOLORBTN | ||
0136 | 310 | WM_CTLCOLORDLG | ||
0137 | 311 | WM_CTLCOLORSCROLLBAR | ||
0138 | 312 | WM_CTLCOLORSTATIC | ||
0200 | 512 | WM_MOUSEFIRST | ||
0200 | 512 | WM_MOUSEMOVE | ||
0201 | 513 | WM_LBUTTONDOWN | ||
0202 | 514 | WM_LBUTTONUP | ||
0203 | 515 | WM_LBUTTONDBLCLK | ||
0204 | 516 | WM_RBUTTONDOWN | ||
0205 | 517 | WM_RBUTTONUP | ||
0206 | 518 | WM_RBUTTONDBLCLK | ||
0207 | 519 | WM_MBUTTONDOWN | ||
0208 | 520 | WM_MBUTTONUP | ||
0209 | 521 | WM_MBUTTONDBLCLK | ||
0209 | 521 | WM_MOUSELAST | ||
020a | 522 | WM_MOUSEWHEEL | ||
020b | 523 | WM_XBUTTONDOWN | ||
020c | 524 | WM_XBUTTONUP | ||
020d | 525 | WM_XBUTTONDBLCLK | ||
0210 | 528 | WM_PARENTNOTIFY | ||
0211 | 529 | WM_ENTERMENULOOP | ||
0212 | 530 | WM_EXITMENULOOP | ||
0213 | 531 | WM_NEXTMENU | ||
0214 | 532 | WM_SIZING | ||
0215 | 533 | WM_CAPTURECHANGED | ||
0216 | 534 | WM_MOVING | ||
0218 | 536 | WM_POWERBROADCAST | ||
0219 | 537 | WM_DEVICECHANGE | ||
0220 | 544 | WM_MDICREATE | ||
0221 | 545 | WM_MDIDESTROY | ||
0222 | 546 | WM_MDIACTIVATE | ||
0223 | 547 | WM_MDIRESTORE | ||
0224 | 548 | WM_MDINEXT | ||
0225 | 549 | WM_MDIMAXIMIZE | ||
0226 | 550 | WM_MDITILE | ||
0227 | 551 | WM_MDICASCADE | ||
0228 | 552 | WM_MDIICONARRANGE | ||
0229 | 553 | WM_MDIGETACTIVE | ||
0230 | 560 | WM_MDISETMENU | ||
0231 | 561 | WM_ENTERSIZEMOVE | ||
0232 | 562 | WM_EXITSIZEMOVE | ||
0233 | 563 | WM_DROPFILES | ||
0234 | 564 | WM_MDIREFRESHMENU | ||
0280 | 640 | WM_IME_REPORT | ||
0281 | 641 | WM_IME_SETCONTEXT | ||
0282 | 642 | WM_IME_NOTIFY | ||
0283 | 643 | WM_IME_CONTROL | ||
0284 | 644 | WM_IME_COMPOSITIONFULL | ||
0285 | 645 | WM_IME_SELECT | ||
0286 | 646 | WM_IME_CHAR | ||
0288 | 648 | WM_IME_REQUEST | ||
0290 | 656 | WM_IMEKEYDOWN | ||
0290 | 656 | WM_IME_KEYDOWN | ||
0291 | 657 | WM_IMEKEYUP | ||
0291 | 657 | WM_IME_KEYUP | ||
02a0 | 672 | WM_NCMOUSEHOVER | ||
02a1 | 673 | WM_MOUSEHOVER | ||
02a2 | 674 | WM_NCMOUSELEAVE | ||
02a3 | 675 | WM_MOUSELEAVE | ||
0300 | 768 | WM_CUT | ||
0301 | 769 | WM_COPY | ||
0302 | 770 | WM_PASTE | ||
0303 | 771 | WM_CLEAR | ||
0304 | 772 | WM_UNDO | ||
0305 | 773 | WM_RENDERFORMAT | ||
0306 | 774 | WM_RENDERALLFORMATS | ||
0307 | 775 | WM_DESTROYCLIPBOARD | ||
0308 | 776 | WM_DRAWCLIPBOARD | ||
0309 | 777 | WM_PAINTCLIPBOARD | ||
030a | 778 | WM_VSCROLLCLIPBOARD | ||
030b | 779 | WM_SIZECLIPBOARD | ||
030c | 780 | WM_ASKCBFORMATNAME | ||
030d | 781 | WM_CHANGECBCHAIN | ||
030e | 782 | WM_HSCROLLCLIPBOARD | ||
030f | 783 | WM_QUERYNEWPALETTE | ||
0310 | 784 | WM_PALETTEISCHANGING | ||
0311 | 785 | WM_PALETTECHANGED | ||
0312 | 786 | WM_HOTKEY | ||
0317 | 791 | WM_PRINT | ||
0318 | 792 | WM_PRINTCLIENT | ||
0319 | 793 | WM_APPCOMMAND | ||
0358 | 856 | WM_HANDHELDFIRST | ||
035f | 863 | WM_HANDHELDLAST | ||
0360 | 864 | WM_AFXFIRST | ||
037f | 895 | WM_AFXLAST | ||
0380 | 896 | WM_PENWINFIRST | ||
0381 | 897 | WM_RCRESULT | ||
0382 | 898 | WM_HOOKRCRESULT | ||
0383 | 899 | WM_GLOBALRCCHANGE | ||
0383 | 899 | WM_PENMISCINFO | ||
0384 | 900 | WM_SKB | ||
0385 | 901 | WM_HEDITCTL | ||
0385 | 901 | WM_PENCTL | ||
0386 | 902 | WM_PENMISC | ||
0387 | 903 | WM_CTLINIT | ||
0388 | 904 | WM_PENEVENT | ||
038f | 911 | WM_PENWINLAST | ||
0400 | 1024 | DDM_SETFMT | ||
0400 | 1024 | DM_GETDEFID | ||
0400 | 1024 | NIN_SELECT | ||
0400 | 1024 | TBM_GETPOS | ||
0400 | 1024 | WM_PSD_PAGESETUPDLG | ||
0400 | 1024 | WM_USER | ||
0401 | 1025 | CBEM_INSERTITEMA | ||
0401 | 1025 | DDM_DRAW | ||
0401 | 1025 | DM_SETDEFID | ||
0401 | 1025 | HKM_SETHOTKEY | ||
0401 | 1025 | PBM_SETRANGE | ||
0401 | 1025 | RB_INSERTBANDA | ||
0401 | 1025 | SB_SETTEXTA | ||
0401 | 1025 | TB_ENABLEBUTTON | ||
0401 | 1025 | TBM_GETRANGEMIN | ||
0401 | 1025 | TTM_ACTIVATE | ||
0401 | 1025 | WM_CHOOSEFONT_GETLOGFONT | ||
0401 | 1025 | WM_PSD_FULLPAGERECT | ||
0402 | 1026 | CBEM_SETIMAGELIST | ||
0402 | 1026 | DDM_CLOSE | ||
0402 | 1026 | DM_REPOSITION | ||
0402 | 1026 | HKM_GETHOTKEY | ||
0402 | 1026 | PBM_SETPOS | ||
0402 | 1026 | RB_DELETEBAND | ||
0402 | 1026 | SB_GETTEXTA | ||
0402 | 1026 | TB_CHECKBUTTON | ||
0402 | 1026 | TBM_GETRANGEMAX | ||
0402 | 1026 | WM_PSD_MINMARGINRECT | ||
0403 | 1027 | CBEM_GETIMAGELIST | ||
0403 | 1027 | DDM_BEGIN | ||
0403 | 1027 | HKM_SETRULES | ||
0403 | 1027 | PBM_DELTAPOS | ||
0403 | 1027 | RB_GETBARINFO | ||
0403 | 1027 | SB_GETTEXTLENGTHA | ||
0403 | 1027 | TBM_GETTIC | ||
0403 | 1027 | TB_PRESSBUTTON | ||
0403 | 1027 | TTM_SETDELAYTIME | ||
0403 | 1027 | WM_PSD_MARGINRECT | ||
0404 | 1028 | CBEM_GETITEMA | ||
0404 | 1028 | DDM_END | ||
0404 | 1028 | PBM_SETSTEP | ||
0404 | 1028 | RB_SETBARINFO | ||
0404 | 1028 | SB_SETPARTS | ||
0404 | 1028 | TB_HIDEBUTTON | ||
0404 | 1028 | TBM_SETTIC | ||
0404 | 1028 | TTM_ADDTOOLA | ||
0404 | 1028 | WM_PSD_GREEKTEXTRECT | ||
0405 | 1029 | CBEM_SETITEMA | ||
0405 | 1029 | PBM_STEPIT | ||
0405 | 1029 | TB_INDETERMINATE | ||
0405 | 1029 | TBM_SETPOS | ||
0405 | 1029 | TTM_DELTOOLA | ||
0405 | 1029 | WM_PSD_ENVSTAMPRECT | ||
0406 | 1030 | CBEM_GETCOMBOCONTROL | ||
0406 | 1030 | PBM_SETRANGE32 | ||
0406 | 1030 | RB_SETBANDINFOA | ||
0406 | 1030 | SB_GETPARTS | ||
0406 | 1030 | TB_MARKBUTTON | ||
0406 | 1030 | TBM_SETRANGE | ||
0406 | 1030 | TTM_NEWTOOLRECTA | ||
0406 | 1030 | WM_PSD_YAFULLPAGERECT | ||
0407 | 1031 | CBEM_GETEDITCONTROL | ||
0407 | 1031 | PBM_GETRANGE | ||
0407 | 1031 | RB_SETPARENT | ||
0407 | 1031 | SB_GETBORDERS | ||
0407 | 1031 | TBM_SETRANGEMIN | ||
0407 | 1031 | TTM_RELAYEVENT | ||
0408 | 1032 | CBEM_SETEXSTYLE | ||
0408 | 1032 | PBM_GETPOS | ||
0408 | 1032 | RB_HITTEST | ||
0408 | 1032 | SB_SETMINHEIGHT | ||
0408 | 1032 | TBM_SETRANGEMAX | ||
0408 | 1032 | TTM_GETTOOLINFOA | ||
0409 | 1033 | CBEM_GETEXSTYLE | ||
0409 | 1033 | CBEM_GETEXTENDEDSTYLE | ||
0409 | 1033 | PBM_SETBARCOLOR | ||
0409 | 1033 | RB_GETRECT | ||
0409 | 1033 | SB_SIMPLE | ||
0409 | 1033 | TB_ISBUTTONENABLED | ||
0409 | 1033 | TBM_CLEARTICS | ||
0409 | 1033 | TTM_SETTOOLINFOA | ||
040a | 1034 | CBEM_HASEDITCHANGED | ||
040a | 1034 | RB_INSERTBANDW | ||
040a | 1034 | SB_GETRECT | ||
040a | 1034 | TB_ISBUTTONCHECKED | ||
040a | 1034 | TBM_SETSEL | ||
040a | 1034 | TTM_HITTESTA | ||
040a | 1034 | WIZ_QUERYNUMPAGES | ||
040b | 1035 | CBEM_INSERTITEMW | ||
040b | 1035 | RB_SETBANDINFOW | ||
040b | 1035 | SB_SETTEXTW | ||
040b | 1035 | TB_ISBUTTONPRESSED | ||
040b | 1035 | TBM_SETSELSTART | ||
040b | 1035 | TTM_GETTEXTA | ||
040b | 1035 | WIZ_NEXT | ||
040c | 1036 | CBEM_SETITEMW | ||
040c | 1036 | RB_GETBANDCOUNT | ||
040c | 1036 | SB_GETTEXTLENGTHW | ||
040c | 1036 | TB_ISBUTTONHIDDEN | ||
040c | 1036 | TBM_SETSELEND | ||
040c | 1036 | TTM_UPDATETIPTEXTA | ||
040c | 1036 | WIZ_PREV | ||
040d | 1037 | CBEM_GETITEMW | ||
040d | 1037 | RB_GETROWCOUNT | ||
040d | 1037 | SB_GETTEXTW | ||
040d | 1037 | TB_ISBUTTONINDETERMINATE | ||
040d | 1037 | TTM_GETTOOLCOUNT | ||
040e | 1038 | CBEM_SETEXTENDEDSTYLE | ||
040e | 1038 | RB_GETROWHEIGHT | ||
040e | 1038 | SB_ISSIMPLE | ||
040e | 1038 | TB_ISBUTTONHIGHLIGHTED | ||
040e | 1038 | TBM_GETPTICS | ||
040e | 1038 | TTM_ENUMTOOLSA | ||
040f | 1039 | SB_SETICON | ||
040f | 1039 | TBM_GETTICPOS | ||
040f | 1039 | TTM_GETCURRENTTOOLA | ||
0410 | 1040 | RB_IDTOINDEX | ||
0410 | 1040 | SB_SETTIPTEXTA | ||
0410 | 1040 | TBM_GETNUMTICS | ||
0410 | 1040 | TTM_WINDOWFROMPOINT | ||
0411 | 1041 | RB_GETTOOLTIPS | ||
0411 | 1041 | SB_SETTIPTEXTW | ||
0411 | 1041 | TBM_GETSELSTART | ||
0411 | 1041 | TB_SETSTATE | ||
0411 | 1041 | TTM_TRACKACTIVATE | ||
0412 | 1042 | RB_SETTOOLTIPS | ||
0412 | 1042 | SB_GETTIPTEXTA | ||
0412 | 1042 | TB_GETSTATE | ||
0412 | 1042 | TBM_GETSELEND | ||
0412 | 1042 | TTM_TRACKPOSITION | ||
0413 | 1043 | RB_SETBKCOLOR | ||
0413 | 1043 | SB_GETTIPTEXTW | ||
0413 | 1043 | TB_ADDBITMAP | ||
0413 | 1043 | TBM_CLEARSEL | ||
0413 | 1043 | TTM_SETTIPBKCOLOR | ||
0414 | 1044 | RB_GETBKCOLOR | ||
0414 | 1044 | SB_GETICON | ||
0414 | 1044 | TB_ADDBUTTONSA | ||
0414 | 1044 | TBM_SETTICFREQ | ||
0414 | 1044 | TTM_SETTIPTEXTCOLOR | ||
0415 | 1045 | RB_SETTEXTCOLOR | ||
0415 | 1045 | TB_INSERTBUTTONA | ||
0415 | 1045 | TBM_SETPAGESIZE |
NguyễnMinhHoàng45(HLT3)- Tổng số bài gửi : 44
Join date : 17/02/2012
Age : 39
Đến từ : Viet Nam
List of Window Message (tt)
Hex | Decimal | Symbolic | ||
0415 | 1045 | TTM_GETDELAYTIME | ||
0416 | 1046 | RB_GETTEXTCOLOR | ||
0416 | 1046 | TB_DELETEBUTTON | ||
0416 | 1046 | TBM_GETPAGESIZE | ||
0416 | 1046 | TTM_GETTIPBKCOLOR | ||
0417 | 1047 | RB_SIZETORECT | ||
0417 | 1047 | TB_GETBUTTON | ||
0417 | 1047 | TBM_SETLINESIZE | ||
0417 | 1047 | TTM_GETTIPTEXTCOLOR | ||
0418 | 1048 | RB_BEGINDRAG | ||
0418 | 1048 | TB_BUTTONCOUNT | ||
0418 | 1048 | TBM_GETLINESIZE | ||
0418 | 1048 | TTM_SETMAXTIPWIDTH | ||
0419 | 1049 | RB_ENDDRAG | ||
0419 | 1049 | TB_COMMANDTOINDEX | ||
0419 | 1049 | TBM_GETTHUMBRECT | ||
0419 | 1049 | TTM_GETMAXTIPWIDTH | ||
041a | 1050 | RB_DRAGMOVE | ||
041a | 1050 | TBM_GETCHANNELRECT | ||
041a | 1050 | TB_SAVERESTOREA | ||
041a | 1050 | TTM_SETMARGIN | ||
041b | 1051 | RB_GETBARHEIGHT | ||
041b | 1051 | TB_CUSTOMIZE | ||
041b | 1051 | TBM_SETTHUMBLENGTH | ||
041b | 1051 | TTM_GETMARGIN | ||
041c | 1052 | RB_GETBANDINFOW | ||
041c | 1052 | TB_ADDSTRINGA | ||
041c | 1052 | TBM_GETTHUMBLENGTH | ||
041c | 1052 | TTM_POP | ||
041d | 1053 | RB_GETBANDINFOA | ||
041d | 1053 | TB_GETITEMRECT | ||
041d | 1053 | TBM_SETTOOLTIPS | ||
041d | 1053 | TTM_UPDATE | ||
041e | 1054 | RB_MINIMIZEBAND | ||
041e | 1054 | TB_BUTTONSTRUCTSIZE | ||
041e | 1054 | TBM_GETTOOLTIPS | ||
041e | 1054 | TTM_GETBUBBLESIZE | ||
041f | 1055 | RB_MAXIMIZEBAND | ||
041f | 1055 | TBM_SETTIPSIDE | ||
041f | 1055 | TB_SETBUTTONSIZE | ||
041f | 1055 | TTM_ADJUSTRECT | ||
0420 | 1056 | TBM_SETBUDDY | ||
0420 | 1056 | TB_SETBITMAPSIZE | ||
0420 | 1056 | TTM_SETTITLEA | ||
0421 | 1057 | MSG_FTS_JUMP_VA | ||
0421 | 1057 | TB_AUTOSIZE | ||
0421 | 1057 | TBM_GETBUDDY | ||
0421 | 1057 | TTM_SETTITLEW | ||
0422 | 1058 | RB_GETBANDBORDERS | ||
0423 | 1059 | MSG_FTS_JUMP_QWORD | ||
0423 | 1059 | RB_SHOWBAND | ||
0423 | 1059 | TB_GETTOOLTIPS | ||
0424 | 1060 | MSG_REINDEX_REQUEST | ||
0424 | 1060 | TB_SETTOOLTIPS | ||
0425 | 1061 | MSG_FTS_WHERE_IS_IT | ||
0425 | 1061 | RB_SETPALETTE | ||
0425 | 1061 | TB_SETPARENT | ||
0426 | 1062 | RB_GETPALETTE | ||
0427 | 1063 | RB_MOVEBAND | ||
0427 | 1063 | TB_SETROWS | ||
0428 | 1064 | TB_GETROWS | ||
0429 | 1065 | TB_GETBITMAPFLAGS | ||
042a | 1066 | TB_SETCMDID | ||
042b | 1067 | RB_PUSHCHEVRON | ||
042b | 1067 | TB_CHANGEBITMAP | ||
042c | 1068 | TB_GETBITMAP | ||
042d | 1069 | MSG_GET_DEFFONT | ||
042d | 1069 | TB_GETBUTTONTEXTA | ||
042e | 1070 | TB_REPLACEBITMAP | ||
042f | 1071 | TB_SETINDENT | ||
0430 | 1072 | TB_SETIMAGELIST | ||
0431 | 1073 | TB_GETIMAGELIST | ||
0432 | 1074 | TB_LOADIMAGES | ||
0432 | 1074 | TTM_ADDTOOLW | ||
0433 | 1075 | TB_GETRECT | ||
0433 | 1075 | TTM_DELTOOLW | ||
0434 | 1076 | TB_SETHOTIMAGELIST | ||
0434 | 1076 | TTM_NEWTOOLRECTW | ||
0435 | 1077 | TB_GETHOTIMAGELIST | ||
0435 | 1077 | TTM_GETTOOLINFOW | ||
0436 | 1078 | TB_SETDISABLEDIMAGELIST | ||
0436 | 1078 | TTM_SETTOOLINFOW | ||
0437 | 1079 | TB_GETDISABLEDIMAGELIST | ||
0437 | 1079 | TTM_HITTESTW | ||
0438 | 1080 | TB_SETSTYLE | ||
0438 | 1080 | TTM_GETTEXTW | ||
0439 | 1081 | TB_GETSTYLE | ||
0439 | 1081 | TTM_UPDATETIPTEXTW | ||
043a | 1082 | TB_GETBUTTONSIZE | ||
043a | 1082 | TTM_ENUMTOOLSW | ||
043b | 1083 | TB_SETBUTTONWIDTH | ||
043b | 1083 | TTM_GETCURRENTTOOLW | ||
043c | 1084 | TB_SETMAXTEXTROWS | ||
043d | 1085 | TB_GETTEXTROWS | ||
043e | 1086 | TB_GETOBJECT | ||
043f | 1087 | TB_GETBUTTONINFOW | ||
0440 | 1088 | TB_SETBUTTONINFOW | ||
0441 | 1089 | TB_GETBUTTONINFOA | ||
0442 | 1090 | TB_SETBUTTONINFOA | ||
0443 | 1091 | TB_INSERTBUTTONW | ||
0444 | 1092 | TB_ADDBUTTONSW | ||
0445 | 1093 | TB_HITTEST | ||
0446 | 1094 | TB_SETDRAWTEXTFLAGS | ||
0447 | 1095 | TB_GETHOTITEM | ||
0448 | 1096 | TB_SETHOTITEM | ||
0449 | 1097 | TB_SETANCHORHIGHLIGHT | ||
044a | 1098 | TB_GETANCHORHIGHLIGHT | ||
044b | 1099 | TB_GETBUTTONTEXTW | ||
044c | 1100 | TB_SAVERESTOREW | ||
044d | 1101 | TB_ADDSTRINGW | ||
044e | 1102 | TB_MAPACCELERATORA | ||
044f | 1103 | TB_GETINSERTMARK | ||
0450 | 1104 | TB_SETINSERTMARK | ||
0451 | 1105 | TB_INSERTMARKHITTEST | ||
0452 | 1106 | TB_MOVEBUTTON | ||
0453 | 1107 | TB_GETMAXSIZE | ||
0454 | 1108 | TB_SETEXTENDEDSTYLE | ||
0455 | 1109 | TB_GETEXTENDEDSTYLE | ||
0456 | 1110 | TB_GETPADDING | ||
0457 | 1111 | TB_SETPADDING | ||
0458 | 1112 | TB_SETINSERTMARKCOLOR | ||
0459 | 1113 | TB_GETINSERTMARKCOLOR | ||
045a | 1114 | TB_MAPACCELERATORW | ||
045b | 1115 | TB_GETSTRINGW | ||
045c | 1116 | TB_GETSTRINGA | ||
0463 | 1123 | TAPI_REPLY | ||
0464 | 1124 | ACM_OPENA | ||
0464 | 1124 | BFFM_SETSTATUSTEXTA | ||
0464 | 1124 | CDM_FIRST | ||
0464 | 1124 | CDM_GETSPEC | ||
0464 | 1124 | IPM_CLEARADDRESS | ||
0464 | 1124 | WM_CAP_UNICODE_START | ||
0465 | 1125 | ACM_PLAY | ||
0465 | 1125 | BFFM_ENABLEOK | ||
0465 | 1125 | CDM_GETFILEPATH | ||
0465 | 1125 | IPM_SETADDRESS | ||
0465 | 1125 | PSM_SETCURSEL | ||
0465 | 1125 | UDM_SETRANGE | ||
0465 | 1125 | WM_CHOOSEFONT_SETLOGFONT | ||
0466 | 1126 | ACM_STOP | ||
0466 | 1126 | BFFM_SETSELECTIONA | ||
0466 | 1126 | CDM_GETFOLDERPATH | ||
0466 | 1126 | IPM_GETADDRESS | ||
0466 | 1126 | PSM_REMOVEPAGE | ||
0466 | 1126 | UDM_GETRANGE | ||
0466 | 1126 | WM_CAP_SET_CALLBACK_ERRORW | ||
0466 | 1126 | WM_CHOOSEFONT_SETFLAGS | ||
0467 | 1127 | ACM_OPENW | ||
0467 | 1127 | BFFM_SETSELECTIONW | ||
0467 | 1127 | CDM_GETFOLDERIDLIST | ||
0467 | 1127 | IPM_SETRANGE | ||
0467 | 1127 | PSM_ADDPAGE | ||
0467 | 1127 | UDM_SETPOS | ||
0467 | 1127 | WM_CAP_SET_CALLBACK_STATUSW | ||
0468 | 1128 | BFFM_SETSTATUSTEXTW | ||
0468 | 1128 | CDM_SETCONTROLTEXT | ||
0468 | 1128 | IPM_SETFOCUS | ||
0468 | 1128 | PSM_CHANGED | ||
0468 | 1128 | UDM_GETPOS | ||
0469 | 1129 | CDM_HIDECONTROL | ||
0469 | 1129 | IPM_ISBLANK | ||
0469 | 1129 | PSM_RESTARTWINDOWS | ||
0469 | 1129 | UDM_SETBUDDY | ||
046a | 1130 | CDM_SETDEFEXT | ||
046a | 1130 | PSM_REBOOTSYSTEM | ||
046a | 1130 | UDM_GETBUDDY | ||
046b | 1131 | PSM_CANCELTOCLOSE | ||
046b | 1131 | UDM_SETACCEL | ||
046c | 1132 | EM_CONVPOSITION | ||
046c | 1132 | PSM_QUERYSIBLINGS | ||
046c | 1132 | UDM_GETACCEL | ||
046d | 1133 | MCIWNDM_GETZOOM | ||
046d | 1133 | PSM_UNCHANGED | ||
046d | 1133 | UDM_SETBASE | ||
046e | 1134 | PSM_APPLY | ||
046e | 1134 | UDM_GETBASE | ||
046f | 1135 | PSM_SETTITLEA | ||
046f | 1135 | UDM_SETRANGE32 | ||
0470 | 1136 | PSM_SETWIZBUTTONS | ||
0470 | 1136 | UDM_GETRANGE32 | ||
0470 | 1136 | WM_CAP_DRIVER_GET_NAMEW | ||
0471 | 1137 | PSM_PRESSBUTTON | ||
0471 | 1137 | UDM_SETPOS32 | ||
0471 | 1137 | WM_CAP_DRIVER_GET_VERSIONW | ||
0472 | 1138 | PSM_SETCURSELID | ||
0472 | 1138 | UDM_GETPOS32 | ||
0473 | 1139 | PSM_SETFINISHTEXTA | ||
0474 | 1140 | PSM_GETTABCONTROL |
Được sửa bởi NguyễnMinhHoàng45(HLT3) ngày 7/4/2014, 11:51; sửa lần 1.
NguyễnMinhHoàng45(HLT3)- Tổng số bài gửi : 44
Join date : 17/02/2012
Age : 39
Đến từ : Viet Nam
List of Window Message (tt)
Hex | Decimal | Symbolic | ||
0475 | 1141 | PSM_ISDIALOGMESSAGE | ||
0476 | 1142 | MCIWNDM_REALIZE | ||
0476 | 1142 | PSM_GETCURRENTPAGEHWND | ||
0477 | 1143 | MCIWNDM_SETTIMEFORMATA | ||
0477 | 1143 | PSM_INSERTPAGE | ||
0478 | 1144 | MCIWNDM_GETTIMEFORMATA | ||
0478 | 1144 | PSM_SETTITLEW | ||
0478 | 1144 | WM_CAP_FILE_SET_CAPTURE_FILEW | ||
0479 | 1145 | MCIWNDM_VALIDATEMEDIA | ||
0479 | 1145 | PSM_SETFINISHTEXTW | ||
0479 | 1145 | WM_CAP_FILE_GET_CAPTURE_FILEW | ||
047b | 1147 | MCIWNDM_PLAYTO | ||
047b | 1147 | WM_CAP_FILE_SAVEASW | ||
047c | 1148 | MCIWNDM_GETFILENAMEA | ||
047d | 1149 | MCIWNDM_GETDEVICEA | ||
047d | 1149 | PSM_SETHEADERTITLEA | ||
047d | 1149 | WM_CAP_FILE_SAVEDIBW | ||
047e | 1150 | MCIWNDM_GETPALETTE | ||
047e | 1150 | PSM_SETHEADERTITLEW | ||
047f | 1151 | MCIWNDM_SETPALETTE | ||
047f | 1151 | PSM_SETHEADERSUBTITLEA | ||
0480 | 1152 | MCIWNDM_GETERRORA | ||
0480 | 1152 | PSM_SETHEADERSUBTITLEW | ||
0481 | 1153 | PSM_HWNDTOINDEX | ||
0482 | 1154 | PSM_INDEXTOHWND | ||
0483 | 1155 | MCIWNDM_SETINACTIVETIMER | ||
0483 | 1155 | PSM_PAGETOINDEX | ||
0484 | 1156 | PSM_INDEXTOPAGE | ||
0485 | 1157 | DL_BEGINDRAG | ||
0485 | 1157 | MCIWNDM_GETINACTIVETIMER | ||
0485 | 1157 | PSM_IDTOINDEX | ||
0486 | 1158 | DL_DRAGGING | ||
0486 | 1158 | PSM_INDEXTOID | ||
0487 | 1159 | DL_DROPPED | ||
0487 | 1159 | PSM_GETRESULT | ||
0488 | 1160 | DL_CANCELDRAG | ||
0488 | 1160 | PSM_RECALCPAGESIZES | ||
048c | 1164 | MCIWNDM_GET_SOURCE | ||
048d | 1165 | MCIWNDM_PUT_SOURCE | ||
048e | 1166 | MCIWNDM_GET_DEST | ||
048f | 1167 | MCIWNDM_PUT_DEST | ||
0490 | 1168 | MCIWNDM_CAN_PLAY | ||
0491 | 1169 | MCIWNDM_CAN_WINDOW | ||
0492 | 1170 | MCIWNDM_CAN_RECORD | ||
0493 | 1171 | MCIWNDM_CAN_SAVE | ||
0494 | 1172 | MCIWNDM_CAN_EJECT | ||
0495 | 1173 | MCIWNDM_CAN_CONFIG | ||
0496 | 1174 | IE_GETINK | ||
0496 | 1174 | IE_MSGFIRST | ||
0496 | 1174 | MCIWNDM_PALETTEKICK | ||
0497 | 1175 | IE_SETINK | ||
0498 | 1176 | IE_GETPENTIP | ||
0499 | 1177 | IE_SETPENTIP | ||
049a | 1178 | IE_GETERASERTIP | ||
049b | 1179 | IE_SETERASERTIP | ||
049c | 1180 | IE_GETBKGND | ||
049d | 1181 | IE_SETBKGND | ||
049e | 1182 | IE_GETGRIDORIGIN | ||
049f | 1183 | IE_SETGRIDORIGIN | ||
04a0 | 1184 | IE_GETGRIDPEN | ||
04a1 | 1185 | IE_SETGRIDPEN | ||
04a2 | 1186 | IE_GETGRIDSIZE | ||
04a3 | 1187 | IE_SETGRIDSIZE | ||
04a4 | 1188 | IE_GETMODE | ||
04a5 | 1189 | IE_SETMODE | ||
04a6 | 1190 | IE_GETINKRECT | ||
04a6 | 1190 | WM_CAP_SET_MCI_DEVICEW | ||
04a7 | 1191 | WM_CAP_GET_MCI_DEVICEW | ||
04b4 | 1204 | WM_CAP_PAL_OPENW | ||
04b5 | 1205 | WM_CAP_PAL_SAVEW | ||
04b8 | 1208 | IE_GETAPPDATA | ||
04b9 | 1209 | IE_SETAPPDATA | ||
04ba | 1210 | IE_GETDRAWOPTS | ||
04bb | 1211 | IE_SETDRAWOPTS | ||
04bc | 1212 | IE_GETFORMAT | ||
04bd | 1213 | IE_SETFORMAT | ||
04be | 1214 | IE_GETINKINPUT | ||
04bf | 1215 | IE_SETINKINPUT | ||
04c0 | 1216 | IE_GETNOTIFY | ||
04c1 | 1217 | IE_SETNOTIFY | ||
04c2 | 1218 | IE_GETRECOG | ||
04c3 | 1219 | IE_SETRECOG | ||
04c4 | 1220 | IE_GETSECURITY | ||
04c5 | 1221 | IE_SETSECURITY | ||
04c6 | 1222 | IE_GETSEL | ||
04c7 | 1223 | IE_SETSEL | ||
04c8 | 1224 | CDM_LAST | ||
04c8 | 1224 | IE_DOCOMMAND | ||
04c8 | 1224 | MCIWNDM_NOTIFYMODE | ||
04c9 | 1225 | IE_GETCOMMAND | ||
04ca | 1226 | IE_GETCOUNT | ||
04cb | 1227 | IE_GETGESTURE | ||
04cb | 1227 | MCIWNDM_NOTIFYMEDIA | ||
04cc | 1228 | IE_GETMENU | ||
04cd | 1229 | IE_GETPAINTDC | ||
04cd | 1229 | MCIWNDM_NOTIFYERROR | ||
04ce | 1230 | IE_GETPDEVENT | ||
04cf | 1231 | IE_GETSELCOUNT | ||
04d0 | 1232 | IE_GETSELITEMS | ||
04d1 | 1233 | IE_GETSTYLE | ||
04db | 1243 | MCIWNDM_SETTIMEFORMATW | ||
04dc | 1244 | EM_OUTLINE | ||
04dc | 1244 | MCIWNDM_GETTIMEFORMATW | ||
04dd | 1245 | EM_GETSCROLLPOS | ||
04de | 1246 | EM_SETSCROLLPOS | ||
04df | 1247 | EM_SETFONTSIZE | ||
04e0 | 1248 | MCIWNDM_GETFILENAMEW | ||
04e1 | 1249 | MCIWNDM_GETDEVICEW | ||
04e4 | 1252 | MCIWNDM_GETERRORW | ||
0600 | 1536 | FM_GETFOCUS | ||
0601 | 1537 | FM_GETDRIVEINFOA | ||
0602 | 1538 | FM_GETSELCOUNT | ||
0603 | 1539 | FM_GETSELCOUNTLFN | ||
0604 | 1540 | FM_GETFILESELA | ||
0605 | 1541 | FM_GETFILESELLFNA | ||
0606 | 1542 | FM_REFRESH_WINDOWS | ||
0607 | 1543 | FM_RELOAD_EXTENSIONS | ||
0611 | 1553 | FM_GETDRIVEINFOW | ||
0614 | 1556 | FM_GETFILESELW | ||
0615 | 1557 | FM_GETFILESELLFNW | ||
0659 | 1625 | WLX_WM_SAS | ||
07e8 | 2024 | SM_GETSELCOUNT | ||
07e8 | 2024 | UM_GETSELCOUNT | ||
07e8 | 2024 | WM_CPL_LAUNCH | ||
07e9 | 2025 | SM_GETSERVERSELA | ||
07e9 | 2025 | UM_GETUSERSELA | ||
07e9 | 2025 | WM_CPL_LAUNCHED | ||
07ea | 2026 | SM_GETSERVERSELW | ||
07ea | 2026 | UM_GETUSERSELW | ||
07eb | 2027 | SM_GETCURFOCUSA | ||
07eb | 2027 | UM_GETGROUPSELA | ||
07ec | 2028 | SM_GETCURFOCUSW | ||
07ec | 2028 | UM_GETGROUPSELW | ||
07ed | 2029 | SM_GETOPTIONS | ||
07ed | 2029 | UM_GETCURFOCUSA | ||
07ee | 2030 | UM_GETCURFOCUSW | ||
07ef | 2031 | UM_GETOPTIONS | ||
07f0 | 2032 | UM_GETOPTIONS2 | ||
2000 | 8192 | OCMBASE | ||
2019 | 8217 | OCM_CTLCOLOR | ||
202b | 8235 | OCM_DRAWITEM | ||
202c | 8236 | OCM_MEASUREITEM | ||
202d | 8237 | OCM_DELETEITEM | ||
202e | 8238 | OCM_VKEYTOITEM | ||
202f | 8239 | OCM_CHARTOITEM | ||
2039 | 8249 | OCM_COMPAREITEM | ||
204e | 8270 | OCM_NOTIFY | ||
2111 | 8465 | OCM_COMMAND | ||
2114 | 8468 | OCM_HSCROLL | ||
2115 | 8469 | OCM_VSCROLL | ||
2132 | 8498 | OCM_CTLCOLORMSGBOX | ||
2133 | 8499 | OCM_CTLCOLOREDIT | ||
2134 | 8500 | OCM_CTLCOLORLISTBOX | ||
2135 | 8501 | OCM_CTLCOLORBTN | ||
2136 | 8502 | OCM_CTLCOLORDLG | ||
2137 | 8503 | OCM_CTLCOLORSCROLLBAR | ||
2138 | 8504 | OCM_CTLCOLORSTATIC | ||
2210 | 8720 | OCM_PARENTNOTIFY | ||
8000 | 32768 | WM_APP | ||
cccd | 52429 | WM_RASDIALEVENT |
NguyễnMinhHoàng45(HLT3)- Tổng số bài gửi : 44
Join date : 17/02/2012
Age : 39
Đến từ : Viet Nam
Re: Điều khiển VnVoice
Thầy ơi có phải Vn Voice này cũng được ứng dụng trên Google Translate đúng không Thầy, nhưng trên Google Translate giọng đọc không hay bằng lúc Thầy demo
Admin:
- Google Translate dùng công nghệ khác ! Không liên quan gì tới VnVoice !
- Nó phát âm kém hơn, nhưng Qua web và Khá nhanh, tuy chỉ được văn bản ngắn thôi !
Admin:
- Google Translate dùng công nghệ khác ! Không liên quan gì tới VnVoice !
- Nó phát âm kém hơn, nhưng Qua web và Khá nhanh, tuy chỉ được văn bản ngắn thôi !
NguyenVietThong(HLT3)- Tổng số bài gửi : 6
Join date : 09/03/2014
Ngoài VNVoice còn có những phần mềm nào trên thị trường?Nêu ưu và khuyết điểm?
Trả Lời:
Vspeech: phần mềm nhận dạng giọng nói tiếng Việt trên máy tính: do nhóm BK02 của Đại học Bách khoa TP.HCM chế tạo thành công vào cuối năm 2004.
Ưu điểm:
Ngoài việc diều khiển máy tính bằng tiếng Việt, phần mềm này cũng là công cụ nhận dạng và điều khiển máy tính bằng tiếng Anh rất tốt.
Một trong những độc đáo và tiện dụng nhất là VSpeech được tích hợp với Internet Explorer.
Nhược điểm:
Vspeech chưa đủ khả năng điều khiển hoàn toàn một máy tính nhưng ít ra đây cũng là một công cụ giải trí tuyệt hảo, tránh sự nhàm chán cho những người phải làm việc với máy tính thường xuyên. Qua thử nghiệm dường như VSpeech “xung khắc” với các chương trình English Study (4.0, 4.1) nên nó tự động báo lỗi và thoát ra khi kích hoạt English Study hoạt động.
VNSpeech phần mềm giúp máy tính nói tiếng Việt
Ưu điểm:
Ưu điểm của phương pháp là dễ triển khai, tiếng nói tạo ra chính là tiếng người .
Tổng hợp được tiếng Việt bằng các luật từ các thành phần đặc trưng của ngữ âm tiếng Việt, tự động đọc không hạn chế văn bản tiếng Việt.
Là một công cụ mới để nghiên cứu ngữ âm tiếng Việt - Phân tích bằng Tổng hợp. Vnspeech thực hiện phân tích và chuẩn hóa văn bản tiếng Việt, đọc khá rõ tất cả các âm tiết tiếng Việt, thể hiện hợp lý ngữ điệu khi đọc các loại câu khác nhau, có thể điều khiển không hạn chế tốc độ đọc, cao độ của giọng nói để thành các giọng nói khác nhau.
Kích thước toàn bộ của Vnspeech rất nhỏ, không cần file dữ liệu riêng, toàn bộ đều nằm trên file thực thi (chương trình minh hoạ chỉ 350KB), thuận tiện để tích hợp vào mọi loại ứng dụng trên các hệ điều hành, phần cứng khác nhau, hoặc các thiết bị có tài nguyên hạn chế (như thiết bị cầm tay, di động,...).
Vnspeech xử lý văn bản tiếng Việt đầu vào thuộc bảng mã TCVN 5712 và Unicode dựng sẵn, tạo dãy tín hiệu tiếng nói đầu ra mã hóa theo chuẩn PCM (16 bit, mono, có thể thay đổi tần số lấy mẫu tùy ý), có thể ghi lên đĩa thành các file theo định dạng WAV hoặc phát trực tiếp ra loa.
Nhược điểm:
Thêm giọng nói là công việc tốn kém và các tham số đặc trưng chỉ có thể điều khiển hạn chế, điều này dễ dẫn đến méo tiếng và sẽ rất không tự nhiên khi ghép thành đoạn dài ứng với cả câu.
DovisocoTextAloRec phần mềm đọc tiếng Việt, chuyển sang mp3...
Ưu điểm:
Đây là phần mềm được phát triển từ dovisocoTextAloud với độ tuỳ biến cao.
Tự động nhận diện mã tiếng Việt (Unicode, VNI, TCVN-3 ABC) để chọn giọng nói cho thích hợp.
Hỗ trợ từ điển riêng cho mỗi giọng đọc
Khắc phục được lỗi ngắt dấu câu cho gói giọng nói SaoMai.
Chức năng Text to mp3 cho phép chuyển sang định dạng mp3 với nhiều tuỳ chọn.
Chức năng After reading cho phép tắt, ngủ máy tính sau khi vừa đọc xong văn bản trong bộ nhớ.
Tăng giảm tốc độ, âm lượng cho giọng đọc...
Vspeech: phần mềm nhận dạng giọng nói tiếng Việt trên máy tính: do nhóm BK02 của Đại học Bách khoa TP.HCM chế tạo thành công vào cuối năm 2004.
Ưu điểm:
Ngoài việc diều khiển máy tính bằng tiếng Việt, phần mềm này cũng là công cụ nhận dạng và điều khiển máy tính bằng tiếng Anh rất tốt.
Một trong những độc đáo và tiện dụng nhất là VSpeech được tích hợp với Internet Explorer.
Nhược điểm:
Vspeech chưa đủ khả năng điều khiển hoàn toàn một máy tính nhưng ít ra đây cũng là một công cụ giải trí tuyệt hảo, tránh sự nhàm chán cho những người phải làm việc với máy tính thường xuyên. Qua thử nghiệm dường như VSpeech “xung khắc” với các chương trình English Study (4.0, 4.1) nên nó tự động báo lỗi và thoát ra khi kích hoạt English Study hoạt động.
VNSpeech phần mềm giúp máy tính nói tiếng Việt
Ưu điểm:
Ưu điểm của phương pháp là dễ triển khai, tiếng nói tạo ra chính là tiếng người .
Tổng hợp được tiếng Việt bằng các luật từ các thành phần đặc trưng của ngữ âm tiếng Việt, tự động đọc không hạn chế văn bản tiếng Việt.
Là một công cụ mới để nghiên cứu ngữ âm tiếng Việt - Phân tích bằng Tổng hợp. Vnspeech thực hiện phân tích và chuẩn hóa văn bản tiếng Việt, đọc khá rõ tất cả các âm tiết tiếng Việt, thể hiện hợp lý ngữ điệu khi đọc các loại câu khác nhau, có thể điều khiển không hạn chế tốc độ đọc, cao độ của giọng nói để thành các giọng nói khác nhau.
Kích thước toàn bộ của Vnspeech rất nhỏ, không cần file dữ liệu riêng, toàn bộ đều nằm trên file thực thi (chương trình minh hoạ chỉ 350KB), thuận tiện để tích hợp vào mọi loại ứng dụng trên các hệ điều hành, phần cứng khác nhau, hoặc các thiết bị có tài nguyên hạn chế (như thiết bị cầm tay, di động,...).
Vnspeech xử lý văn bản tiếng Việt đầu vào thuộc bảng mã TCVN 5712 và Unicode dựng sẵn, tạo dãy tín hiệu tiếng nói đầu ra mã hóa theo chuẩn PCM (16 bit, mono, có thể thay đổi tần số lấy mẫu tùy ý), có thể ghi lên đĩa thành các file theo định dạng WAV hoặc phát trực tiếp ra loa.
Nhược điểm:
Thêm giọng nói là công việc tốn kém và các tham số đặc trưng chỉ có thể điều khiển hạn chế, điều này dễ dẫn đến méo tiếng và sẽ rất không tự nhiên khi ghép thành đoạn dài ứng với cả câu.
DovisocoTextAloRec phần mềm đọc tiếng Việt, chuyển sang mp3...
Ưu điểm:
Đây là phần mềm được phát triển từ dovisocoTextAloud với độ tuỳ biến cao.
Tự động nhận diện mã tiếng Việt (Unicode, VNI, TCVN-3 ABC) để chọn giọng nói cho thích hợp.
Hỗ trợ từ điển riêng cho mỗi giọng đọc
Khắc phục được lỗi ngắt dấu câu cho gói giọng nói SaoMai.
Chức năng Text to mp3 cho phép chuyển sang định dạng mp3 với nhiều tuỳ chọn.
Chức năng After reading cho phép tắt, ngủ máy tính sau khi vừa đọc xong văn bản trong bộ nhớ.
Tăng giảm tốc độ, âm lượng cho giọng đọc...
NguyenVietLong08(HLT3)- Tổng số bài gửi : 20
Join date : 30/03/2014
Giải thích Code của Vnvoice.
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)
}
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)
}
KhanhChan- Tổng số bài gửi : 12
Join date : 20/03/2014
Trang 1 trong tổng số 2 trang • 1, 2
Similar topics
» Điều khiển VnVoice
» Thực hành điều khiển VnVoice
» Thực hành điều khiển VnVoice
» Thực hành điều khiển VnVoice
» Thực hành điều khiển VnVoice
» Thực hành điều khiển VnVoice
» Thực hành điều khiển VnVoice
» Thực hành điều khiển VnVoice
» Thực hành điều khiển VnVoice
Trang 1 trong tổng số 2 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết