关于DdeClientConv控件的有关问题
关于DdeClientConv控件的问题
我使用DdeClientConv控件实现向开始菜单》程序内添加一个程序组,实现代码如下:
procedure Tfrmsec.CreateGroup;
var
sMacro:String;
sZMacro:Array[0..254] of Char;
sGroupDesc, sGroupName:String;
sProgDesc, sProgIcon:String;
begin
DdeClientConv1.SetLink( 'ProgMan ', 'ProgMan ');
//建立组群
if DdeClientConv1.OpenLink then
begin
sGroupDesc := '安装演示 ';
sGroupName := '安装演示 ';
//组成宏指令
sMacro := '[creategroup( ' + sGroupDesc + ', ' + sGroupName + ')] ';
StrPCopy(sZMacro,sMacro);
//转成null-term 字串
DdeClientConv1.ExecuteMacro(sZMacro,False); //执行宏指令
//建立神奇动画的快捷方式
sProgIcon := setupath+ '\神奇动画.exe ';
sProgDesc := '神奇动画 ';
sMacro := '[additem( ' + sProgIcon + ', ' + sProgDesc + ')] ';
StrPCopy(sZMacro,sMacro);
DdeClientConv1.ExecuteMacro(sZMacro,False);
//建立卸载程序的快捷方式
sProgIcon := setupath+ '\uninstall.exe ';
sProgDesc := 'uninstall ';
sMacro := '[additem( ' + sProgIcon + ', ' + sProgDesc + ')] ';
StrPCopy(sZMacro,sMacro);
DdeClientConv1.ExecuteMacro(sZMacro,False);
//建立安装说明的快捷方式
sProgIcon := setupath+ '\安装说明.txt ';
sProgDesc := '安装说明 ';
sMacro := '[additem( ' + sProgIcon + ', ' + sProgDesc + ')] ';
StrPCopy(sZMacro,sMacro);
DdeClientConv1.ExecuteMacro(sZMacro,False);
end;
DdeClientConv1.CloseLink;
end;
上面的代码实现了添加安装演示这个程序组及其内的神奇动画,uninstall,安装说明三个快捷方式。
现在我想实现对这整个程序组的删除,不知应用什么方法?希望各位高手解答下,谢谢!!
------解决方案--------------------
想法挺新颖,总建立没看见过删除的呢,一起研究一下
------解决方案--------------------
function TForm1.SendMacro(Name: String;Command: String): Boolean;
var
Macro: String;
Cmd: array[0..255] of Char;
begin
Result := True;
if Name <> ' ' then
begin
Macro := Format( '[ '+Command+ '(%s)] ', [Name]) + #13#10;
StrPCopy (Cmd, Macro);
DDEClient.OpenLink;
if not DDEClient.ExecuteMacro(Cmd, False) then
Result := False;
DDEClient.CloseLink;
end;
end;
////////
我使用DdeClientConv控件实现向开始菜单》程序内添加一个程序组,实现代码如下:
procedure Tfrmsec.CreateGroup;
var
sMacro:String;
sZMacro:Array[0..254] of Char;
sGroupDesc, sGroupName:String;
sProgDesc, sProgIcon:String;
begin
DdeClientConv1.SetLink( 'ProgMan ', 'ProgMan ');
//建立组群
if DdeClientConv1.OpenLink then
begin
sGroupDesc := '安装演示 ';
sGroupName := '安装演示 ';
//组成宏指令
sMacro := '[creategroup( ' + sGroupDesc + ', ' + sGroupName + ')] ';
StrPCopy(sZMacro,sMacro);
//转成null-term 字串
DdeClientConv1.ExecuteMacro(sZMacro,False); //执行宏指令
//建立神奇动画的快捷方式
sProgIcon := setupath+ '\神奇动画.exe ';
sProgDesc := '神奇动画 ';
sMacro := '[additem( ' + sProgIcon + ', ' + sProgDesc + ')] ';
StrPCopy(sZMacro,sMacro);
DdeClientConv1.ExecuteMacro(sZMacro,False);
//建立卸载程序的快捷方式
sProgIcon := setupath+ '\uninstall.exe ';
sProgDesc := 'uninstall ';
sMacro := '[additem( ' + sProgIcon + ', ' + sProgDesc + ')] ';
StrPCopy(sZMacro,sMacro);
DdeClientConv1.ExecuteMacro(sZMacro,False);
//建立安装说明的快捷方式
sProgIcon := setupath+ '\安装说明.txt ';
sProgDesc := '安装说明 ';
sMacro := '[additem( ' + sProgIcon + ', ' + sProgDesc + ')] ';
StrPCopy(sZMacro,sMacro);
DdeClientConv1.ExecuteMacro(sZMacro,False);
end;
DdeClientConv1.CloseLink;
end;
上面的代码实现了添加安装演示这个程序组及其内的神奇动画,uninstall,安装说明三个快捷方式。
现在我想实现对这整个程序组的删除,不知应用什么方法?希望各位高手解答下,谢谢!!
------解决方案--------------------
想法挺新颖,总建立没看见过删除的呢,一起研究一下
------解决方案--------------------
function TForm1.SendMacro(Name: String;Command: String): Boolean;
var
Macro: String;
Cmd: array[0..255] of Char;
begin
Result := True;
if Name <> ' ' then
begin
Macro := Format( '[ '+Command+ '(%s)] ', [Name]) + #13#10;
StrPCopy (Cmd, Macro);
DDEClient.OpenLink;
if not DDEClient.ExecuteMacro(Cmd, False) then
Result := False;
DDEClient.CloseLink;
end;
end;
////////