procedure TForm1.Button1Click(Sender: TObject);
var
Desktop: IActiveDesktop;
info: TComponentsOpt;
begin
DeskTop := CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
info.dwSize:= sizeof(info);
info.fEnableComponents:=false;
info.fActiveDesktop:=true;
DeskTop.AddDesktopItem(info,3);//此处出错,提示说参数没有初始化
DeskTop.ApplyChanges(AD_APPLY_ALL);
DeskTop.ApplyChanges(AD_APPLY_REFRESH);
end;麻烦高手指教,在线等待,先谢谢了。
var
Desktop: IActiveDesktop;
info: TComponentsOpt;
begin
DeskTop := CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
info.dwSize:= sizeof(info);
info.fEnableComponents:=false;
info.fActiveDesktop:=true;
DeskTop.AddDesktopItem(info,3);//此处出错,提示说参数没有初始化
DeskTop.ApplyChanges(AD_APPLY_ALL);
DeskTop.ApplyChanges(AD_APPLY_REFRESH);
end;麻烦高手指教,在线等待,先谢谢了。
info应该是TShComponent类型
Var ADeskTop: IActiveDesktop;
AComponent : _tagCOMPONENT;
ACompPos : _tagCOMPPOS;
hr: HRESULT;
BmpName : String;
begin
BmpName := 'http://www.365tl.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);
end;
能不能留个QQ向你请教一下。我的QQ:23974749
我的msn:[email protected]
谢谢,我加你了。
其他人知道吗?
麻烦帮忙一下,小弟在此先谢谢了。
Var ADeskTop: IActiveDesktop;
AComponent : _tagCOMPONENT;
ACompPos : _tagCOMPPOS;
hr: HRESULT;
BmpName : String;
begin
BmpName := 'http://www.365tl.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);
end;
我也一样CLSID_ShellDesktop: TGUID = (
D1:$00021400; D2:$0000; D3:$0000; D4:($C0,$00,$00,$00,$00,$00,$00,$46));
Private CLSID_ActiveDesktop As New Guid("75048700-EF1F-11D0-9888-006097DEACF9")
Private IID_IActiveDesktop As New Guid("F490EB00-1240-11D1-9888-006097DEACF9")是不是把下面的转成delphi就OK了?
IID_IActiveDesktop : TGUID = '{F490EB00-1240-11D1-9888-006097DEACF9}';还是不行,LZ搞定没有?