屏保程序有点问题,按照树上例子写的,没效果,大家看看怎么回事

holyelle 2003-05-09 10:47:51
function EnumProc(h:HWND;i:integer):boolean;stdcall;
var
buf:array[0..255] of char;
begin
GetWindowText(h,buf,sizeof(buf)-1);
if IsWindowVisible(h) then
Form1.ListBox1.Items.Add(strpas(buf)+intToStr(h))
else
Form1.ListBox1.Items.Add(strpas(buf)+inttostr(h));
result:=false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FileListBox1.Directory:='D:\WINDOWS\system32';
end;

procedure TForm1.Freshl;
begin
listbox1.Clear;
enumChildWindows(Panel1.Handle,TFNWndEnumProc(@EnumProc),0);

end;
procedure TForm1.FileListBox1DblClick(Sender: TObject);
var
str:string;
begin
str:= FileListBox1.FileName+ inttostr(Panel1.Handle);//有问题
Edit1.Text:=str;
WinExec(pchar(str),SW_SHOW);
Freshl;
end;


procedure TForm1.SpeedButton1Click(Sender: TObject);
var
h:integer;
s:string;
begin
if listBox1.ItemIndex=-1 then exit;
s:=listbox1.Items[listbox1.itemIndex];
h:=strToInt(copy(s,pos(':',s)+1,length(s)));
showWindow(h,SW_SHOW);
freshl;

end;

end.
...全文
23 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
naughtyboy 2003-05-09
  • 打赏
  • 举报
回复
呵呵
启动屏保方法很多
uses shellapi;

shellexecute(handle,nil,pchar(filename),nil,nil,sw_show);
filename为屏保文件名(绝对路径)
yansea 2003-05-09
  • 打赏
  • 举报
回复
str:= FileListBox1.FileName+ inttostr(Panel1.Handle);
Edit1.Text:=str;
WinExec(pchar(str),SW_SHOW);
这是什么意思?winexec要文件的路径和文件名,不用inttostr(Panel1.Handle)这个。
另外启动屏保可以直接用SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_SCREENSAVE,0);
Comer 2003-05-09
  • 打赏
  • 举报
回复
相关推荐
发帖
Windows SDK/API

1174

社区成员

Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
帖子事件
创建了帖子
2003-05-09 10:47
社区公告
暂无公告