用程序实现在背景桌面上显示网页(web)内容,就是说桌面上有链接地址 可以点击打开网站 急!(200)

  • 主题发起人 主题发起人 prosky
  • 开始时间 开始时间
P

prosky

Unregistered / Unconfirmed
GUEST, unregistred user!
用程序将html文件设置为桌面背景,最好能同时支持xp和visita有能帮助解决的另外开帖给分。万分感谢,有高手来帮帮吧。
 
参考http://www.delphibbs.com/delphibbs/dispq.asp?lid=3574699
 
to tseug 多谢啊 我测试了你的代码 系统没反映啊 桌面没变化 我是VISTA的系统 win2000下运行 memo1里面提示参数不正确
 
不好意思,我没有VISTA,没法做测试,但是XP下是可以的...
 
问题还没有解决 我找了段代码 哪位高手能帮我看看 问题处在哪?到底有高手没?procedure TForm1.Button5Click(Sender: TObject);var ADeskTop: IActiveDesktop; AComponent: _tagCOMPONENT; ACompPos: _tagCOMPPOS; hr: HRESULT; BmpName: string;begin BmpName := 'http://www.baidu.com'; hr := CoCreateInstance(CLSID_ActiveDesktop, nil, CLSCTX_INPROC_SERVER, IID_IActiveDesktop, ADeskTop); MessageDlg(SysErrorMessage(HResultCode(hr)), mtWarning, [mbOK], -1); // => 'Operation Reussie' donc le probleme vient pas de la (enfin je pense) ACompPos.dwSize := SizeOf(_tagCOMPPOS); ACompPos.iLeft := 200; ACompPos.iTop := 200; ACompPos.dwWidth := 1; ACompPos.dwHeight := 1; ACompPos.izIndex := 0; ACompPos.fCanResize := True; ACompPos.fCanResizeX := True; ACompPos.fCanResizeY := True; ACompPos.iPreferredLeftPercent := 10; ACompPos.iPreferredTopPercent := 10; AComponent.dwSize := sizeof(_tagCOMPONENT); AComponent.dwID := 0; AComponent.iComponentType := COMP_TYPE_WEBSITE;// AComponent.iComponentType := COMP_TYPE_HTMLDOC; AComponent.fChecked := True; AComponent.fDirty := False; AComponent.fNoScroll := true; AComponent.cpPos := ACompPos; MultiByteToWideChar(CP_ACP, 0, PChar(BmpName), StrLen(PChar(BmpName)) + 1, AComponent.wszFriendlyName, sizeof(AComponent.wszFriendlyName)); MultiByteToWideChar(CP_ACP, 0, PChar(BmpName), StrLen(PChar(BmpName)) + 1, AComponent.wszSource, sizeof(AComponent.wszSource)); MultiByteToWideChar(CP_ACP, 0, PChar(BmpName), StrLen(PChar(BmpName)) + 1, AComponent.wszSubscribedURL, sizeof(AComponent.wszSubscribedURL)); ADeskTop := CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop; hr := ADeskTop.AddDesktopItem(AComponent,0); //这里始终通不过 MessageDlg(SysErrorMessage(HResultCode(hr)), mtWarning, [mbOK], -1); ADeskTop.ApplyChanges(AD_APPLY_ALL);
 
我按照tseug的办法改了 shlobj文件 还是不行
 
vista 下 activeDesktop 问题参考http://social.microsoft.com/forums/zh-CN/vistazhchs/thread/2ca7d68d-b481-4002-af14-ec883a8d7d36/
 
找了一个能在VISTA 和XP 下面都能实现的软件 叫 coopen 开屏系统它利用jpg文件和xml文件实现图片作为桌面背景 而且还含有链接地址的功能那个是怎么实现的呢?有能帮我的吗?
 
能给我解决问题的再另外给500分 绝不失言~[:(!]
 
没有高手能实现吗?都快一个星期了 高手都哪去了?coopen桌面软件是这样实现的 在一个目录下面有JPG文件和XML文件XML文件如下<?xml version="1.0" encoding="utf-8" ?> - <text>- <TextInfo> <Position data="33,85" /> <Size data="500,40" /> - <TextBlock> <font size="13" weight="500" typeface="宋体" color="0,0,0" italic="0" underline="0" /> <text data="" /> <expandwebdlgposition data="28,5.6" /> <expandwebdlgurl data="http://web.air.coopen.cn/coopen/banner/zonghe_2.html" /> <expandwebdlgwh data="468,85" /> <link data="http://web.air.coopen.cn/coopen/aomei3/46885.html" /> </TextBlock> </TextInfo>- <TextInfo> <Position data="100,100" /> <Size data="500,40" /> - <TextBlock> <font size="13" weight="500" typeface="宋体" color="0,0,0" italic="0" underline="0" /> <text data="" /> <expandwebposition data="27.9,82.4" /> <expandweburl data="http://pindao.air.coopen.cn/pindao/zonghe_2.html" /> <expandwebwh data="292,30" /> <link data="http://web.air.coopen.cn/coopen/aomei3/46885.html" /> </TextBlock> </TextInfo>- <AreaLink>- <AreaBlock> <Point data="86,75;96.7,75; 96.7,86; 86,86" /> <EdgeColor data="0,216,231,188" /> <EdgeHoverColor data="0,216,231,188" /> <FillColor data="0,216,231,188" /> <FillHoverColor data="0,216,231,188" /> <link data="changechannel/109709" /> </AreaBlock> </AreaLink> </text>这个文件和JPG文件合成了一个活动桌面 桌面上的文本块和链接地址正是通过XML文件定义的 怎么实现的 有高手会吗?
 
最近很忙,没时间研究,也许下面的代码能给你点帮助http://www.howtogeek.com/geekers/AveDesktopSitesSource.zip
 
哭了 还是没有头绪 tseug兄有时间帮我看看吧 你说的那个运行后是把网页抓下来作为图片放到桌面上了 页面上的链接都点击不了啊 另外我用delphi打开那个原程序 为什么无法跟踪调试呢
 
tseug 能留下你的QQ么?
 
监视下 前天刚看了哪个软件 哪个不复杂 有很多方案可以解决 哪个处理的方法是 就是换桌面 你看到的是墙纸 他给墙纸对应的热区 做成 form 感应 你用sp++ 监视下就知道了 培植对应的 是热区的位置. 还有一种方案 是做个桌面程序 那桌面图表位置内容右键关联到自己窗体上 模拟桌面 qq:439661788
 
还可以 获取桌面的渲染 然后把web做成图形渲染上去 在把 鼠标位置返回给 web 这样就模拟出了 桌面 web
 
这个没有意思可以把在桌面上放电影 把视频直接渲染到 桌面上
 
搞那复杂做什么,把自己的窗体嵌到桌面上去不就行了吗?下面是源代码,在VISTA下测试通过,窗体属性borderstyle 设成bsNone______________________________________________________________________unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw;type TForm1 = class(TForm) WebBrowser1: TWebBrowser; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); var hd : HWND; begin hd :=FindWindow('Progman', 'Program Manager'); //桌面句柄 Windows.SetParent(self.Handle,hd); //设置显示从属关系 MoveWindow(self.Handle,top,left,500,200,true); //位置信息,自己设置 WebBrowser1.Navigate('http://www.baidu.com'); //要显示的网址 end;end.
 
scofield的方法不错,上面可以不放webbrowser,而直接放上图片或文字,再创建不规则窗口即可!
 
哈哈 实现的还挺快
 
whbest-->武汉最好的?whbest是湖北人就加我QQ:1060168504
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部