Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 4888|回复: 1

linux 下面怎么USES    Shellapi

[复制链接]

该用户从未签到

发表于 2011-5-27 17:28:12 | 显示全部楼层 |阅读模式
在一个label里面写了个网址,程序运行时候鼠标能点开那个网址,ShellExecute(handle, nil, pchar(label.CAPTION), nil, nil, 1);编译的时候报错,找不到shellexecute,然后在uses里面引用shellapi 也提示错误,不能找到,我是在ubuntu下面编译的,linux 下面怎么USES    Shellapi
回复

使用道具 举报

该用户从未签到

发表于 2011-6-9 14:57:32 | 显示全部楼层
linux 下面是没有windows API 这个概念的,你如果只是想点击以后打开一个网址,可以调用TProcessUTF8 这个类,创建调用一个外部进程,和在windows 中调用winexec 类似;


  1. uses  LCLProc,LazHelpHTML,UTF8Process;  
  2. // --------------------------------------------------------------------------
  3. procedure TAudoF.UrlBrower(urls:string);
  4. var
  5.   v: THTMLBrowserHelpViewer;
  6.   BrowserPath, BrowserParams: string;
  7.   p: LongInt;
  8.   URL: String;
  9.   BrowserProcess: TProcessUTF8;
  10. begin
  11.   v:=THTMLBrowserHelpViewer.Create(nil);
  12.   try
  13.     v.FindDefaultBrowser(BrowserPath,BrowserParams);
  14.     debugln(['Path=',BrowserPath,' Params=',BrowserParams]);
  15.     URL:= urls;
  16.     p:=System.Pos('%s', BrowserParams);
  17.     System.Delete(BrowserParams,p,2);
  18.     System.Insert(URL,BrowserParams,p);
  19.     // start browser
  20.     BrowserProcess:=TProcessUTF8.Create(nil);
  21.     try
  22.       BrowserProcess.CommandLine:=BrowserPath+' '+BrowserParams;
  23.       BrowserProcess.Execute;
  24.     finally
  25.       BrowserProcess.Free;
  26.     end;
  27.   finally
  28.     v.Free;
  29.   end;
  30. end;
复制代码
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-2 23:05 , Processed in 0.025522 second(s), 10 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表