DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: cuiqingbo
今日帖子: 20
在线用户: 10
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 llfguest (llfguest) ★☆☆☆☆ -
普通会员
2003/6/20 14:02:14
标题:
我的程序能打开,但为什么关不掉? 浏览:2248
加入我的收藏
楼主:   public
    filepath:string;
    filehandle:thandle;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if opendialog1.Execute then
    begin
      edit1.Text:=opendialog1.FileName;
      filepath:=edit1.Text;
      filehandle:=WinExec(pansichar(filepath),SW_SHOWNORMAL);
    end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if filehandle<>0 then
    SendMessage(filehandle,WM_CLOSE,0,0)
  else
    showmessage(’文件没有找到!’);
end;

----------------------------------------------
-
作者:
女 123 (猪猪) ★☆☆☆☆ -
盒子活跃会员
2003/6/20 14:43:51
1楼: SendMessage(filehandle,WM_CLOSE,0,0)没有问题,
可惜filehandle:=WinExec(pansichar(filepath),SW_SHOWNORMAL);得到的filehandle不是应用程序运行后的handle,所以关闭不了。
----------------------------------------------
-
作者:
男 llfguest (llfguest) ★☆☆☆☆ -
普通会员
2003/6/20 14:56:03
2楼: 能不能帮我修改一下,如何写这里的代码
----------------------------------------------
-
作者:
男 boy (阿門) ★☆☆☆☆ -
盒子活跃会员
2003/6/20 16:44:44
3楼:  function GetLongFileName(Const FileName : String) : String;
 var
   aInfo: TSHFileInfo;
 begin
   if SHGetFileInfo(PChar(FileName),0,aInfo,Sizeof(aInfo),SHGFI_DISPLAYNAME)<>0 then
      Result:= String(aInfo.szDisplayName)
   else
      Result:= FileName;
 end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if opendialog1.Execute then
    begin
      edit1.Text:=opendialog1.FileName;
      files:= opendialog1.FileName ;
      filepath:=edit1.Text;
      filehandle:=WinExec(pansichar(filepath),SW_SHOWNORMAL);
    end;
    Edit2.text:= GetLongFileName(files);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   filehandle := FindWindow(nil, pansichar(Edit2.text));
  if filehandle <> 0 then
    SendMessage(filehandle, WM_CLOSE, 0, 0)
 else
    Application.MessageBox('沒有打開“樂透彩中獎號碼”!','提示',
                            MB_IconInformation+MB_OK);
end;
----------------------------------------------
Delphi開發◆伺服器架設◆免安裝APACHE,PHP,CGI Perl, MYSQL ★
作者:
男 boy (阿門) ★☆☆☆☆ -
盒子活跃会员
2003/6/23 3:14:57
4楼: 真正要關閉外部程式 WIN API
取得外部程式的 TITLE 去關閉才對
----------------------------------------------
Delphi開發◆伺服器架設◆免安裝APACHE,PHP,CGI Perl, MYSQL ★
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行78.125毫秒 RSS