关于ShellExecute的有意义的一问?

Linux2001 2002-04-29 09:03:04
如何使用ShellExecute打开记事本
ShellExecute(handle,nil,'NOTEPAD.EXE',nil,nil,SW_SHOW....);
但是我想要知道的问题是现在有一个String变量,如何用记事本直接读入变量,不产生临时文件?
意思就是用ShellExecute!难道必须产生临时文件
...全文
26 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Linux2001 2002-05-06
  • 打赏
  • 举报
回复
我怎么没有想到是进程通信呢,谢谢楼上的楼上的这位大哥,我回去试一试
smhpnuaa 2002-05-04
  • 打赏
  • 举报
回复
这属于进程通信问题嘛!
smhpnuaa 2002-05-04
  • 打赏
  • 举报
回复
ShellExecute返回的就是“记事本”的PROCESS,楼上那么麻烦的找句柄干嘛!

直接通过PROCESS得到句柄,然后模拟一个Ctrl + V键,不过你首先要把要显示的

字符放入“剪贴板”。



kmask 2002-04-29
  • 打赏
  • 举报
回复
是你说要用shellexecute的,非要怪我的话,你也有一半责任哪,误导!!!

看下面


procedure TForm1.Button1Click(Sender: TObject);

function geteditHandle(hwnd:integer;lparam:Longint):boolean; stdcall;
var
buffer1: array[0..255] of Char;
buffer2: array[0..255] of Char;
begin
result:=true;
getclassname(hwnd,buffer1,256);
if strpas(buffer1)='Edit' then
begin
getwindowText(hwnd,buffer2,100);
pinteger(lparam)^ := hwnd;
result:=False;
end;
end;

var
wh,editwh,tmph:thandle;
s:string;
begin
s:='今天你吃了没有?';
wh:=findwindow(nil,'无标题 - 记事本');
if wh<>0 then
begin
tmph:=wh;
enumchildwindows(tmph,@getedithandle,integer(@tmph));
editwh:=tmph;
if editwh<>0 then showmessage('哇靠,在这里');
sendmessage(editwh,wm_settext,0,integer(pchar(s)));
end;
else
showmessage('报告,前方没有发现敌人');
end;

以前用过的一小段,稍微改了一下,应该没问题
wqkemail8088 2002-04-29
  • 打赏
  • 举报
回复
你的意思是执行shellexecute后,string写入文本 可以:
获取窗口句柄,用SetWindowText设置 String...
naughtyboy 2002-04-29
  • 打赏
  • 举报
回复
你的意思是执行shellexecute后,string写入文本
并且与此同时打开文本??
我觉得这样不太可能实现
帮你up吧
Linux2001 2002-04-29
  • 打赏
  • 举报
回复
楼上的大哥,请你看我的题目好吗?
我的目的不是要开文件,就是不想开文件,只是想用记事本显示字符串而已
kmask 2002-04-29
  • 打赏
  • 举报
回复
var
a:string;
begin
a:='c:\windows\desktop\a.txt';
ShellExecute(handle,nil,'NOTEPAD.EXE',PChar(a),nil,SW_SHOW);
end;

是绝对路径
Liusp 2002-04-29
  • 打赏
  • 举报
回复
第5个参数是让你指定文件的路径
Liusp 2002-04-29
  • 打赏
  • 举报
回复
第5个参数是让你指定文件的路径
Linux2001 2002-04-29
  • 打赏
  • 举报
回复
还有,你指定的第4个参数,ShellExecute是让你指定文件的路径,如果你指定的是一个字符串变量的话,它会说文件无法找到
Linux2001 2002-04-29
  • 打赏
  • 举报
回复
你还有一个前括号打在什么地方啊
Liusp 2002-04-29
  • 打赏
  • 举报
回复
ShellExecute(handle,nil,'NOTEPAD.EXE',PCharYourStringVar),nil,SW_SHOW);

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧