Thực hành điều khiển VnVoice
+16
NguyenNgocThuan76_113A
nguyendangnguyen43(i13a)
QuachVinhTuong (113A)
LeDangBaoNgoc55 (113A)
vutanthanh68 (113A)
NguyenVuLinh12053_I11C
MaiThiHongTham70 (113A)
tranminhtrong (11A3)
nguyenchithuc(113A)
LeQuocVan (113A)
TranThiThuyQuyen (113A)
TruongDacTon87_(I13A)
DangThiKimKhanh (113A)
NguyenHuuLinh31(113A)
LeLamThang (113A)
Admin
20 posters
Trang 2 trong tổng số 2 trang
Trang 2 trong tổng số 2 trang • 1, 2
Re: Thực hành điều khiển VnVoice
sao trong cmdGetMenuItemID_click.thầy ko gọi hàm PronounceByVnVoice mà vẫn chạy được chương trình thế các bạn
vutanthanh68 (113A)- Tổng số bài gửi : 64
Join date : 17/07/2012
Re: Thực hành điều khiển VnVoice
Có bạn nào chạy được chương trình VnVoice chưa vậy ?
Sao mình chạy mà bị lỗi không chạy được.
Xem giúp mình nghe ai biết thì fix giúp mình.
Thank !
Sao mình chạy mà bị lỗi không chạy được.
Xem giúp mình nghe ai biết thì fix giúp mình.
Thank !
NguyenNgocThuan76_113A- Tổng số bài gửi : 17
Join date : 19/07/2012
Age : 34
Đến từ : Ho Chi Minh City
Re: Thực hành điều khiển VnVoice
VnVoice là tiện ích tích hợp tiếng nói trong các chương trình ứng dụng. Nó hỗ trợ rất tốt khả năng đọc các tệp văn bản từ Microsoft Word 9x, 2000, đọc tin trên các trang Web (bằng cả hai thứ tiếng Việt, Anh với các font chữ ABC, VNI, UNICODE). Là công cụ hữu hiệu tích hợp với các CSDL nhằm thực hiện hay đưa ra các thông báo tự động tới mọi người.
Môi trường
+ PC có cài hệ điều hành Windows 9x, 2000, ME, XP, NT.
chức năng chính
+Đọc văn bản từ các nguồn: trên màn hình thông qua clipboard, các khoản mục trên Menu của chương trình, văn bản từ bàn phím gõ vào, văn bản trên các Website, trong các ứng dụng Microsoft Word, Outlook Express…
Tổng hợp được 6 thanh tiếng Việt
+ Cho phép đọc các khuôn dạng phi từ: biểu thức số, ngày tháng, giờ điện tử, tiền Việt Nam, đo lường, chữ viễt tắt thông thường.
Đặc biệt: đọc tự động văn bản hỗn hợp Việt - Anh, hoặc thuần Anh rất hữu dụng cho các ứng dụng Web.
Môi trường
+ PC có cài hệ điều hành Windows 9x, 2000, ME, XP, NT.
chức năng chính
+Đọc văn bản từ các nguồn: trên màn hình thông qua clipboard, các khoản mục trên Menu của chương trình, văn bản từ bàn phím gõ vào, văn bản trên các Website, trong các ứng dụng Microsoft Word, Outlook Express…
Tổng hợp được 6 thanh tiếng Việt
+ Cho phép đọc các khuôn dạng phi từ: biểu thức số, ngày tháng, giờ điện tử, tiền Việt Nam, đo lường, chữ viễt tắt thông thường.
Đặc biệt: đọc tự động văn bản hỗn hợp Việt - Anh, hoặc thuần Anh rất hữu dụng cho các ứng dụng Web.
NguyenNgocThuan76_113A- Tổng số bài gửi : 17
Join date : 19/07/2012
Age : 34
Đến từ : Ho Chi Minh City
Re: Thực hành điều khiển VnVoice
Thưa thầy!
Cũng giống như điều khiển VNVoice em có ý tưởng, muốn điều khiển Windows Media Player của hệ diều hành để nó phát ra tựa bài hát mỗi khi media player chuyển sang bài mới, em cũng viết code giống như điều khiển VNVoice mà thầy đã cho nhưng nó không không hề hấn gì hết, em nhấp nó cũng không chạy luôn, vậy em xin thầy hướng dẫn em hàm gọi cho media player chạy và can thiệp vào list những bài nhạc của nó, em cảm ơn thầy. Trọng
(em viết bằng VB6 để nó có giao diện Windows ạ)
Admin
- Bản thân Windows Media Player đã có chức năng như vậy, và còn hơn thế, do đó không nên mất công sức làm gì !
- Nếu thật sự cần như vậy, có thể theo cách khác: Nhúng điều khiển Windows Media Player (phím phải chuột tại Toolbox, chọn Components..., tìm và đánh dấu chọn Windows Media Player ở gần cuối danh sách) vào Form của em, rồi lập trình điều khiển nó, như làm với Microsoft Winsock Control 6.0. Em sẽ có Windows Media Player mới với đầy đủ tính năng mà em lập trình được !
- Với VnVoice, điều khiển nó từ ứng dụng VB 6.0 của mình thật sự là hữu ích: Bắt nó phát âm theo văn bản mà mình cần (ví dụ: Đọc Họ tên+Địa chỉ khách hàng cần "gọi").
Cũng giống như điều khiển VNVoice em có ý tưởng, muốn điều khiển Windows Media Player của hệ diều hành để nó phát ra tựa bài hát mỗi khi media player chuyển sang bài mới, em cũng viết code giống như điều khiển VNVoice mà thầy đã cho nhưng nó không không hề hấn gì hết, em nhấp nó cũng không chạy luôn, vậy em xin thầy hướng dẫn em hàm gọi cho media player chạy và can thiệp vào list những bài nhạc của nó, em cảm ơn thầy. Trọng
(em viết bằng VB6 để nó có giao diện Windows ạ)
Admin
- Bản thân Windows Media Player đã có chức năng như vậy, và còn hơn thế, do đó không nên mất công sức làm gì !
- Nếu thật sự cần như vậy, có thể theo cách khác: Nhúng điều khiển Windows Media Player (phím phải chuột tại Toolbox, chọn Components..., tìm và đánh dấu chọn Windows Media Player ở gần cuối danh sách) vào Form của em, rồi lập trình điều khiển nó, như làm với Microsoft Winsock Control 6.0. Em sẽ có Windows Media Player mới với đầy đủ tính năng mà em lập trình được !
- Với VnVoice, điều khiển nó từ ứng dụng VB 6.0 của mình thật sự là hữu ích: Bắt nó phát âm theo văn bản mà mình cần (ví dụ: Đọc Họ tên+Địa chỉ khách hàng cần "gọi").
tranminhtrong (11A3)- Tổng số bài gửi : 8
Join date : 17/07/2012
Age : 37
Đến từ : Tây Ninh
Re: Thực hành điều khiển VnVoice
sao thầy không gọi hàm pronounByVnVoice mà vẫn chạy được vậy ạ
Admin
Sở dĩ chưa trả lời là có ý để các bạn thảo luận đã !
Admin
Sở dĩ chưa trả lời là có ý để các bạn thảo luận đã !
vutanthanh68 (113A)- Tổng số bài gửi : 64
Join date : 17/07/2012
Re: Thực hành điều khiển VnVoice
kỹ thuật này chúng em chưa gặp.nên chắc khó mà thảo luận được thầy ơi
vutanthanh68 (113A)- Tổng số bài gửi : 64
Join date : 17/07/2012
THAM KHẢO VÀ SỬ DỤNG HÀM API TRÊN WINDOWS
các bạn có thể tham khảo 2 ứng dụng "API-Guide" và "ApiViewer 2004" về các hàm API trên Windows mà mình đang sử dụng:
+ "API-Guide": http://www.mediafire.com/?9j2mbhxfhy42x9m
+ "ApiViewer 2004": http://www.mediafire.com/?djf7371ihr6178h
Hi vọng sẽ có ích cho các bạn muốn tìm hiểu thêm về các hàm API của Windows .
+ "API-Guide": http://www.mediafire.com/?9j2mbhxfhy42x9m
+ "ApiViewer 2004": http://www.mediafire.com/?djf7371ihr6178h
Hi vọng sẽ có ích cho các bạn muốn tìm hiểu thêm về các hàm API của Windows .
TranVanTien (I12A)- Tổng số bài gửi : 11
Join date : 22/02/2012
Re: Thực hành điều khiển VnVoice
Một chương trình tương tác với Vnvoice hoặc tương tác với một số chương trình khác là mình mới biết hôm trước Thầy mới dạy, và theo mình nó là một ứng dụng rất hay và rất thực tiễn.
VD: tất cả các dịch vụ đều cần thiết phải gọi tên hoặc STT của một khách hàng. nếu như có một người ngồi gọi thì quá đơn giản, phải mất tiền thuê nhân công và nếu ứng dụng rộng rãi thì không thể thực hiện được. Như vậy chúng ta phải cần tương tác với VnVoice, ngoàii ra nó còn đượcc dùng trong nhiều cái nữa mà chúng ta chưa biết.
VD. backup data là một công việc cực kỳ quan trọng nếu như bạn là một người quản trị. bạn phải backup mỗi ngày, thậm chí là mỗi giờ. Như vậy khi bạn làm được một chương trình tương tác thì bạn chẳng phải làm nữa mà như vậy có phải là bạn có thêm thời gian để làm việc khác, trong khi bạn thao tác như vậy có khi quên hoặc làm biếng không làm, còn tự động thì lúc nào cũng được thực thi.
VD: tất cả các dịch vụ đều cần thiết phải gọi tên hoặc STT của một khách hàng. nếu như có một người ngồi gọi thì quá đơn giản, phải mất tiền thuê nhân công và nếu ứng dụng rộng rãi thì không thể thực hiện được. Như vậy chúng ta phải cần tương tác với VnVoice, ngoàii ra nó còn đượcc dùng trong nhiều cái nữa mà chúng ta chưa biết.
VD. backup data là một công việc cực kỳ quan trọng nếu như bạn là một người quản trị. bạn phải backup mỗi ngày, thậm chí là mỗi giờ. Như vậy khi bạn làm được một chương trình tương tác thì bạn chẳng phải làm nữa mà như vậy có phải là bạn có thêm thời gian để làm việc khác, trong khi bạn thao tác như vậy có khi quên hoặc làm biếng không làm, còn tự động thì lúc nào cũng được thực thi.
ThuyDuong23 (I12A)- Tổng số bài gửi : 35
Join date : 17/02/2012
Age : 34
Đến từ : DakLak
Giải thích code 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)
}
ThuyDuong23 (I12A)- Tổng số bài gửi : 35
Join date : 17/02/2012
Age : 34
Đến từ : DakLak
Re: Thực hành điều khiển VnVoice
Đoạn code này hơi khó.. nhìn hoa cả mắt
votantai224 (113A)- Tổng số bài gửi : 25
Join date : 16/07/2012
Re: Thực hành điều khiển VnVoice
Một chương trình tương tác với Vnvoice hoặc tương tác với một số chương trình khác là mình mới biết hôm trước Thầy mới dạy, và theo mình nó là một ứng dụng rất hay và rất thực tiễn.
VD: chương trình điểm danh của Thầy
VD: tất cả các dịch vụ đều cần thiết phải gọi tên hoặc STT của một khách hàng. nếu như có một người ngồi gọi thì quá đơn giản, phải mất tiền thuê nhân công và nếu ứng dụng rộng rãi thì không thể thực hiện được. Như vậy chúng ta phải cần tương tác với VnVoice, ngoàii ra nó còn đượcc dùng trong nhiều cái nữa mà chúng ta chưa biết.
VD. backup data là một công việc cực kỳ quan trọng nếu như bạn là một người quản trị. bạn phải backup mỗi ngày, thậm chí là mỗi giờ. Như vậy khi bạn làm được một chương trình tương tác thì bạn chẳng phải làm nữa mà như vậy có phải là bạn có thêm thời gian để làm việc khác, trong khi bạn thao tác như vậy có khi quên hoặc làm biếng không làm, còn tự động thì lúc nào cũng được thực thi.
VD: chương trình điểm danh của Thầy
VD: tất cả các dịch vụ đều cần thiết phải gọi tên hoặc STT của một khách hàng. nếu như có một người ngồi gọi thì quá đơn giản, phải mất tiền thuê nhân công và nếu ứng dụng rộng rãi thì không thể thực hiện được. Như vậy chúng ta phải cần tương tác với VnVoice, ngoàii ra nó còn đượcc dùng trong nhiều cái nữa mà chúng ta chưa biết.
VD. backup data là một công việc cực kỳ quan trọng nếu như bạn là một người quản trị. bạn phải backup mỗi ngày, thậm chí là mỗi giờ. Như vậy khi bạn làm được một chương trình tương tác thì bạn chẳng phải làm nữa mà như vậy có phải là bạn có thêm thời gian để làm việc khác, trong khi bạn thao tác như vậy có khi quên hoặc làm biếng không làm, còn tự động thì lúc nào cũng được thực thi.
nguyenchithuc(113A)- Tổng số bài gửi : 30
Join date : 02/08/2012
Age : 34
Re: Thực hành điều khiển VnVoice
Nhiều chỗ không hiểu gì hết,
nguyenvuminhtu(113A)- Tổng số bài gửi : 29
Join date : 17/07/2012
Trang 2 trong tổng số 2 trang • 1, 2
Similar topics
» 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
» Điều khiển VnVoice
» Điều khiển VnVoice
» Thực hành điều khiển VnVoice
» Thực hành điều khiển VnVoice
» Điều khiển VnVoice
» Điều khiển VnVoice
Trang 2 trong tổng số 2 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết