想找人把Delphi源码改为BCB代码
在Delphi中选Project Import Type Library命令,在对话框中选Import Microsoft Shell Controls And Automation类型库,点Install后,在Delphi的ActiveX控件板上就多了TShellFolderItem,TShellLinkObject,TShellFolderView,TShell,TSearchCommand等几个组件
const
discVerb = '禁用(&B) ';
connVerb = '启用(&A) ';
function TForm1.DisableEthernet(const EthName,State: String): Boolean;
var
cpFolder: Folder;
nwFolder: Folder;
nVerbs: FolderItemVerbs;
i,j,k: integer;
aItem: TListItem;
begin
result := false;
cpFolder := Form1.shell1.NameSpace(3);
if cpFolder <> nil then
begin
for i := 0 to cpFolder.items.Count-1 do
begin
if cpFolder.Items.Item(i).Name = '网络和拨号连接 ' then
begin
nwFolder := cpFolder.items.item(i).GetFolder as Folder;
if nwFolder <> nil then
begin
for j :=0 to nwFolder.items.Count-1 do
begin
if nwFolder.Items.Item(j).Name = EthName then
begin
nVerbs := nwFolder.Items.Item(j).Verbs;
for k := 0 to nVerbs.Count-1 do
begin
if nVerbs.Item(k).Name = State then
begin
nVerbs.Item(k).DoIt;
aItem := Form1.lvLog.Items.Add;
aItem.Caption := FormatDateTime( 'yyyy-mm-dd hh:mm:ss ',now);
aItem.SubItems.Add(EthName);
aItem.SubItems.Add(State);
Result := True;
end;
end;
end;
end;
end;
end;
end;
if nwFolder = nil then
showmessage( 'Network and Dial-up Connections not found ');
end
else
showmessage( 'control panel not found ');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
DisableEthernet( '本地连接 ',discVerb);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
DisableEthernet( '本地连接 ',connVerb);
end;
[解决办法]
Bool TForm1.DisableEthernet(const String EthName,const String State)
{
Folder *cpFolder;
Folder *nwFolder;
nVerbs: FolderItemVerbs;
int i,j,k;
TListItem *aItem;
cpFolder = Form1-> shell1-> NameSpace(3);
if( cpFolder != null)
{
for(i = 0 ; i < cpFolder-> items-> Count; i++)
{
if (cpFolder-> Items-> Item(i)-> Name == "网络和拨号连接 " )
{
nwFolder = cpFolder-> items-> item(i)-> GetFolder;
if ( nwFolder != null )
{
for( j =0 ; j < nwFolder-> items-> Count-1 ; j++)
{
if ( nwFolder-> Items-> Item(j)-> Name = EthName )
{
nVerbs = nwFolder-> Items-> Item(j)-> Verbs;
for( k = 0 ; k < nVerbs.Count; k++)
{
if( nVerbs-> Item(k)-> Name == State)
{
nVerbs-> Item(k)-> DoIt;
aItem = Form1-> lvLog-> Items-> Add;
aItem-> Caption = FormatDateTime( "yyyy-mm-dd hh:mm:ss ",now());
aItem-> SubItems-> Add(EthName);
aItem-> SubItems-> Add(State);
}
}
}
}
}
}
}
if( nwFolder == NULL )
showmessage( "Network and Dial-up Connections not found ");
}
else
showmessage( "control panel not found ");
}
[解决办法]
貌似很新的编程吗,
.net 2005后,vista ,msdn2的.要不也不会有shellitem了.
xp也需要升级的到最新才好用的。
1和DELPHIY,一样你安装下下就可以了.应该引用都帮你引用好了.
我现在没时间帮你试,应该不难,有问题在说具体问题.