请问如何调用系统的NotePad显示一段文本(100分)

  • 主题发起人 主题发起人 decadent
  • 开始时间 开始时间
D

decadent

Unregistered / Unconfirmed
GUEST, unregistred user!
这段文本是从数据库中取出的,我已经放在了一个字符串中,下一步怎么调用系统的NotePad显示呢?
 
直接打开不清楚,
可以先保存,显示,再删除。
 
var
Txt: TextFile;
S: String;
begin
S := '我爱' + #13#10 + '中华';
AssignFile(Txt, 'a.txt');
ReWrite(Txt);
WriteLn(Txt, S);
CloseFile(Txt);
WinExec('notepad.exe a.txt', SW_NORMAL);
end
 
我要的就是直接打开的效果,先保存成文件再删除太麻烦了
 
除非你能找到notepad的文本区域的句柄,发送sendmessage的消息 wm_settext
 
第一个方法并不需要你删除文件,没看见是rewrite吗?
定义一个回调函数
function EnumChildWindowsProc(hwnd: Integer; lparam: Longint): Boolean; stdcall;
var
buffer: array[0..255] of char;
begin
Result := True;
GetClassName(hwnd,buffer,256);
if StrPas(Buffer)='Edit' then
begin
Result:=False;
SendMessage(hwnd, WM_SETTEXT, 0, Integer(Pchar('kkdfiekdjfd')));
end;
end;



var
H: THandle;
buffer: array[0..255] of char;
begin
winexec('notepad.exe', sw_normal);
H := FindWindow('NotePad', nil);
if H > 0 then
EnumChildWindows(H, @EnumChildWindowsProc,Integer(@buffer[0]));
end;
 
自己做个NotePad
 
接受答案了.
 
后退
顶部