Delphi例程、源码:利用Delphi和金山词霸制作批量单词翻译.doc_第1页
Delphi例程、源码:利用Delphi和金山词霸制作批量单词翻译.doc_第2页
Delphi例程、源码:利用Delphi和金山词霸制作批量单词翻译.doc_第3页
Delphi例程、源码:利用Delphi和金山词霸制作批量单词翻译.doc_第4页
Delphi例程、源码:利用Delphi和金山词霸制作批量单词翻译.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用Delphi和金山词霸制作批量单词翻译 有些文档只有单词并没有音标和解释,如果进行人工个个翻译很是费事,因此有人利用Delphi和金山词霸2002特别制作了个单词批量翻译,并且可以将翻译结果直接保存为RTF文件。原理分析 利用“金山词霸2002”翻译功能,进行单词翻译利用Delphi获取“金山词霸2002”中翻译结果Control控件句柄,利用粘贴复制功能即可以获得翻译结果了 。 API介绍说明 HWND FindWindow( LPCTSTR lpClassName,/欲搜索窗体类名 LPCTSTR lpWindowName /欲搜索窗体标题名称 );/查找和指定条件相符第个子窗口 HWND FindWindowEx( HWND hwndParent,/在其中查找子父窗口句柄 HWND hwndChildAfter,/从这个窗体后开始查找 LPCTSTR lpszClass,/ 欲搜索窗体类名 LPCTSTR lpszWindow/ 欲搜索窗体标题名称 );/在指定窗体列表中查找和指定条件相符第个子窗口 BOOL ShowWindow( HWND hWnd,/窗体句柄 nCmdShow /窗体显示方式 );/指定窗口可见性 BOOL BringWindowToTop( HWND hWnd / 窗体句柄 );/将指定窗口带至窗口列表顶部 BOOL SetForegroundWindow( HWND hWnd/窗体句柄 );/将窗口设为系统前台 HWND SetFocus( HWND hWnd /聚焦窗体句柄 );/将窗口聚焦 VOID keybd_event( BYTE bVk,/ virtual-key code BYTE bScan,/ hardware scan code DWORD dwFlags,/ flags specying various function options DWORD dwExtraInfo / additional data associated with keystroke );/模拟按键产生 这里提供了基本Api声明具体使用思路方法你可以其它相关资料 具体分析 首先利用Spy工具对“金山词霸2002”进行分析分析结果如下 金山词霸2002窗体名称是 金山词霸 2002 金山词霸2002单词输入Control控件类名 Edit(属于Combobox子窗体) 金山词霸2002翻译结果Control控件类名 XDICT_ExplainView 界面 个TimerControl控件(Timer1其间隔时间为3秒)个MemoControl控件(MList)两个RichEditControl控件 (RTransRConv)具体代码如下 unit Unit1; erface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms, Dialogs, StdCtrls, ComCtrls, Clipbrd,Buttons, ExtCtrls, Menus; type TForm1 = (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: TMenuItem; 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; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure N8Click(Sender: TObject); private Private declarations public Public declarations end; var Form1: TForm1; i:eger=0;/声明个全局变量用于单词记数 implementation $R *.dfm /开始转换事件 procedure TForm1.Button1Click(Sender: TObject); begin RTrans.Clear;/清空转换区 RConv.Clear; timer1.Interval:=strto(edit1.Text)*1000;/设置间隔时间 timer1.Enabled :=true;/ progressbar1.Position:=0;/设置进度条状态 i:=0;/化变量用于记数 progressbar1.Max:=MList.Lines.Count; end; procedure TForm1.Timer1Timer(Sender: TObject); var King,/金山词霸2002 主窗口句柄 combo,/单词输入框父窗口句柄 edit,/单词输入框句柄 means:thandle;/翻译显示窗口句柄 begin i0 then begin ends:=pos(,richedit3.Text); richedit3.SelStart :=start; richedit3.SelLength :=ends-start-1; richedit3.SelAttributes.Name :=Kingsoft Phonetic Plain; end; richedit3.SelectAll ; richedit3.CopyToClipboard ; RConv.PasteFromClipboard; application.ProcessMessages; end; end; /退出 procedure TForm1.N3Click(Sender: TObject); begin application.Terminate ; end; /复制 功能 procedure TForm1.N6Click(Sender: TObject); begin RConv.SelectAll ; RConv.CopyToClipboard; end; /停止转换 procedure TForm1.N8Click(Sender: TObje

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论