资源描述:
《delphi例程、源码:利用delphi与金山词霸制作批量单词翻译》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、利用Delphi和金山词霸制作批量单词翻译有些文档只有单词并没有音标和解释,如果进行人工个个翻译很是费事,因此有人利用Delphi和金山词霸2002特别制作了个单词批量翻译,并且可以将翻译结果直接保存为RTF文件。原理分析 利用“金山词霸2002”翻译功能,进行单词翻译利用Delphi获取“金山词霸2002”中翻译结果Control控件句柄,利用粘贴复制功能即可以获得翻译结果了。API介绍说明HWNDFindWindow(LPCTSTRlpClassName,//欲搜索窗体类名LPCTSTRlpWindo
2、wName//欲搜索窗体标题名称);//查找和指定条件相符第个子窗口 HWNDFindWindowEx( HWNDhwndParent,//在其中查找子父窗口句柄 HWNDhwndChildAfter,//从这个窗体后开始查找 LPCTSTRlpszClass,//欲搜索窗体类名 LPCTSTRlpszWindow//欲搜索窗体标题名称 );//在指定窗体列表中查找和指定条件相符第个子窗口 BOOLShowWindow( HWNDhWnd,//窗体句柄 nCmdShow//窗体显示方式 );
3、//指定窗口可见性 BOOLBringWindowToTop( HWNDhWnd//窗体句柄 );//将指定窗口带至窗口列表顶部 BOOLSetForegroundWindow( HWNDhWnd//窗体句柄 );//将窗口设为系统前台 HWNDSetFocus( HWNDhWnd//聚焦窗体句柄 );//将窗口聚焦 VOIDkeybd_event( BYTEbVk,//virtual-keycode BYTEbScan,//hardwarescancode DWORDdwFlags,/
4、/flagsspecyingvariousfunctionoptions DWORDdwExtraInfo//additionaldataassociatedwithkeystroke );//模拟按键产生这里提供了基本Api声明具体使用思路方法你可以其它相关资料具体分析 首先利用Spy工具对“金山词霸2002”进行分析分析结果如下 金山词霸2002窗体名称是金山词霸2002 金山词霸2002单词输入Control控件类名Edit (属于Combobox子窗体) 金山词霸2002翻译结果Cont
5、rol控件类名XDICT_ExplainView界面 个TimerControl控件(Timer1其间隔时间为3秒)个MemoControl控件(MList)两个RichEditControl控件(RTransRConv)具体代码如下unitUnit1;erfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,ComCtrls,Clipbrd,Buttons,ExtCtrls,
6、Menus;typeTForm1=(TForm)MList:TMemo;RTrans:TRichEdit;Button1:TButton;Timer1:TTimer;Button2:TButton;RConv:TRichEdit;Button3:TButton;od:TOpenDialog;RichEdit3:TRichEdit;MainMenu1:TMainMenu;F1:TMenuItem;N1:TMenuItem;N2:TMenuItem;N3:TMenuItem;C1:TMenuItem;N4:TM
7、enuItem;N5:TMenuItem;RTF1:TMenuItem;Panel1:TPanel;ProgressBar1:TProgressBar;Splitter1:TSplitter;Splitter2:TSplitter;E1:TMenuItem;N6:TMenuItem;N7:TMenuItem;N8:TMenuItem;Edit1:TEdit;Label1:TLabel;Label2:TLabel;Label3:TLabel;procedureButton1Click(Sender:TObje
8、ct);procedureTimer1Timer(Sender:TObject);procedureButton2Click(Sender:TObject);procedureButton3Click(Sender:TObject);procedureN3Click(Sender:TObject);procedureN6Click(Sender:TObject);procedureN8Click(Sender:T