奇怪的想法(100分)

  • 主题发起人 subseven
  • 开始时间
S

subseven

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个奇怪的想法,不知道能不能实现:
就是运行我的程序后,能够让WINDOWS里的记事本
和写字版里的文章变成我需要的文字,不知道能够实现吗?
 
当然可以。

纪事本:

SendMessage(FindWindowEx(FindWindow('NotePad',nil),0,'Edit',nil),
WM_SETTEXT,0,LongInt(PChar('myString')));

写字板:

SendMessage(FindWindowEx(FindWindow('WordPadClass',nil),0,'RichEdit20A',nil),
WM_SETTEXT,0,LongInt(PChar('myString')));
 
WM_SETTEXT-->WM_gettext 我觉得他想要文章而不是往里面写文章
 
你想来个只能写作吗?
 
智能写作??
 
Yes,智能写作。
I'm sorry.
 
SPRRY!G刚才匆忙,没说清楚,我在写入之前,
还需要判断一下记事本里的内容是不是我所希望的。

比如:记事本现在打开一文本文件,该文本里有
一个单词“DELPHI”,现在打开我要实现的程序,
能够把单词DELPHI代替成“BORLAND”,讲明了
就是把记事本的“查找/代替”功能放到外面(即我的程序)
来做!不知道行不?
 
//看看Delphi的TCustomRich,TCustomMemo,TCustomEdit的原码,里面有很多这方面的技巧

CharRange: TCharRange;

SendMessage(Handle, EM_EXGETSEL, 0, Longint(@CharRange)) //得到选择的文本

//设置选择的开始
CharRange.cpMin := Value;
CharRange.cpMax := Value;
SendMessage(Handle, EM_EXSETSEL, 0, Longint(@CharRange));

//设置选择的长度
SendMessage(Handle, EM_EXGETSEL, 0, Longint(@CharRange));
Result := CharRange.cpMax - CharRange.cpMin;

//替换选择的字符 Value:string
SendMessage(Handle, EM_REPLACESEL, 0, Longint(PChar(Value)));
 
不知道外部直接改了notepad的文字它能保存吗?
作为一个编辑器它内部有缓冲区的吧?不是说改了它窗口的文字就能保存吧
 
可以实现
 
接受答案了.
 
顶部