1. Como adicionar itens de menu ao menu do botão direito do IE
Amigos que usaram o Netants podem saber que o NetAnts adicionou uma função de menu do botão direito no IE. Contanto que você clique com o botão direito em um link ou imagem na página e selecione Down By Netants no menu, você pode chamar o Netants para fazer o download. o arquivo apontado pelo link. Neste artigo, o autor apresentará como implementar tal função através do VB.
Para implementar a função de adicionar itens de menu ao menu do botão direito do IE, as seguintes etapas devem ser implementadas em sequência:
1. Crie um novo item no item HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt no registro. O nome do item aparece como título no menu. Por exemplo, o título do item de menu que você deseja criar é. Adicione URL, então o nome do novo item será
HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExtAdicionar URL
2. Defina o valor padrão do novo item para um endereço URL. Quando o usuário clicar no item de menu, o IE chamará o script na página apontada pela URL. No script da página de destino, acesse o atributo menuArguments. do objeto externo fornecido pelo IE Você pode acessar vários objetos na página do IE, como links, imagens, campos de formulário, texto selecionado, etc. Para obter ajuda detalhada, consulte o MSDN sobre o objeto InternetExplore
Com ajuda, você poderá entender melhor o script a seguir se estiver familiarizado com o objeto Window.
Para o problema de como implementar nosso próprio programa para acessar menuArguments, podemos seguir a abordagem de Netants e primeiro criar um
Objeto de automação OLE e, em seguida, chame o objeto no script e passe as informações da página para o objeto para processamento. A seguir precisamos primeiro criar um objeto através do VB:
Abra o VB, clique no menu: Arquivo | Novo, selecione ActiveX Dll na nova janela do projeto e pressione a tecla OK para criar uma DLL ActiveX
projeto. Em seguida, altere a propriedade Name de Class1 para NetAPI na janela da lista de projetos e adicione o seguinte código na janela de código NetAPI:
Public Sub AddURL (URL como string, informações como string)
Informações da caixa de mensagens, vbOKOnly, URL
Finalizar sub
Salve o arquivo e salve o arquivo do projeto como NetSamp.vbp. Em seguida, selecione Arquivo | Criar NetSamp.dll no menu para criar a biblioteca de vínculo dinâmico do objeto.
A seguir está a biblioteca de registro. Encontre Regsvr32.exe no diretório do Windows e copie-o para o diretório onde netsamp.dll está localizado.
Arraste o ícone de netsamp.dll para Regsvr32.exe e solte-o. Neste momento, Regsvr32.exe exibirá uma caixa de diálogo informando que o registro do objeto foi bem-sucedido.
Abra o UltraEdit (ou outro editor de texto) e insira o seguinte código de script no editor:
<script linguagem="VBScript">
Sub OnContextMenu()
Em caso de erro, retomar o próximo
definir srcEvent = external.menuArguments.event
definir EventElement = external.menuArguments.document.elementFromPoint(srcEvent.clientX, srcEvent.clientY)
definir objNetSamp=CreateObject("NetSamp.NetAPI")
se srcEvent.type = "MenuExtAnchor" então
definir srcAnchor = EventElement
faça até TypeName(srcAnchor)="HTMLAnchorElement"
definir srcAnchor=srcAnchor.parentElement
Laço
Chame objNetSamp.AddUrl(srcAnchor.href,srcAnchor.innerText)
elseif srcEvent.type="MenuExtImage" então
if TypeName(EventElement)="HTMLAreaElement" então
Chame objNetSamp.AddUrl(EventElement.href,EventElement.Alt)
outro
definir srcImage = EventElement
definir srcAnchor = srcImage.parentElement
faça até TypeName(srcAnchor)="HTMLAnchorElement"
definir srcAnchor=srcAnchor.parentElement
if TypeName(srcAnchor)="Nada" então
chame objNetSamp.AddUrl(srcImage.href,srcImage.Alt)
sair do sub
terminar se
Laço
Chame objNetSamp.AddUrl(srcAnchor.href, srcImage.Alt)
terminar se
elseif srcEvent.type = "MenuExtUnknown" então
definir srcAnchor = EventElement
faça até TypeName(srcAnchor)="HTMLAnchorElement"
definir srcAnchor=srcAnchor.parentElement
if TypeName(srcAnchor)="Nada" então
Chame objNetSamp.AddUrl(EventElement.href,EventElement.innerText)
sair do sub
terminar se
Laço
Chame objNetSamp.AddUrl(srcAnchor.href,srcAnchor.innerText)
terminar se
final Sub
callOnContextMenu()
</script>
Salve o arquivo em c:program files com o nome de arquivo geturl.htm
Como você pode ver no script acima, primeiro acesse a propriedade external.menuArguments para obter o objeto onde o usuário clica com o botão direito do mouse, em seguida obtenha sua URL com base no objeto, em seguida crie o objeto IEContextMenu.IEMenu1 e chame o AddURL do objeto método.
A próxima etapa é criar um item de registro para o menu do botão direito, abrir o UltraEdit (ou outro editor de texto) e inserir os seguintes dados de registro no editor.
Editor de registro do Windows versão 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt&Get URL]
@="c:\arquivos de programas\geturl.htm"
"Contexts"=dword:00000022
Salve o arquivo com reg como sufixo, clique duas vezes no arquivo no Windows Explorer para adicionar a chave de registro ao registro e abra-o
Ou seja, clique com o botão direito em um link ou imagem e um item Obter URL aparecerá no menu pop-up. Clique neste item e uma caixa de mensagem aparecerá mostrando o endereço URL do link ou imagem clicado.
Vamos apresentar a função do item Contextos no item de registro acima. Através deste item, você pode especificar qual item de menu aparece quando você clica com o botão direito em um objeto no IE. Pode ser uma combinação "OU" dos seguintes valores:
valor do objeto
Padrão 0x1
Imagem 0x2
Controle 0x4
Campo do formulário 0x8
Selecione o texto 0x10
Ponto de ancoragem 0x20
Por exemplo, acima queremos que o item de menu apareça quando o usuário clicar na imagem ou hiperlink, então definimos o valor como dword:00000022, o que significa que o menu aparecerá quando o usuário clicar na imagem ou âncora. Uma âncora é um objeto na página que descreve um hiperlink. Se o item Contextos não estiver definido, os itens do menu aparecerão no menu do botão direito ao clicar em qualquer objeto.
Através da introdução do programa acima, podemos ver o processo de funcionamento do menu do botão direito do mouse do IE. Conforme mencionado anteriormente, Netants usa este método para chamar NetAnts criando objetos em scripts. Se instalarmos NetAnts, podemos chamar NetAnts no programa chamando o objeto NetAnts.
Crie um novo projeto, clique no item Projetos | Referências no menu e selecione o item AntAPI 1.0 Type Library. Se o botão Navegador não for clicado, selecione NetAPI.dll no diretório Network Ant na caixa de listagem de arquivos e pressione o botão Abrir. chave. Adicionar um CommandButton no Form1
botão, adicione o seguinte código no evento Command1_Click:
Dim ant como novo ANTAPILib.AntAPIObj
ant.AddUrl " http://www.downcodes.com/ "
Clique em comando1, então NetAnts será executado e 7. HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions<Seu GUID> no registro
Crie um novo valor do tipo String chamado Clsid e defina o valor como {1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
8. No registro HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions<Seu GUID>
Crie um novo valor do tipo String denominado Exec. Este valor define o nome completo do caminho do arquivo a ser executado após clicar no botão, por exemplo:
c:program filessamplesnet.exe
Por exemplo, o conteúdo da chave de registro do botão NetAnts é o seguinte:
Windows Registry Editor versão 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions{57E91B47-F40A-11D1- B792-444553540000}]
"CLSID"="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
"Padrão Visível"="Sim"
"HotIcon"="C:\PROGRA~1\NETANTS\NetAnts.exe,1001"
"Icon"="C:\PROGRA~1\NETANTS\NetAnts.exe,1000"
"Exec"="C:\PROGRA~1\NETANTS\NetAnts.exe"
"ButtonText"="NetAnts"
"MenuText"="&NetAnts"
"MenuStatusBar"="Launch NetAnts"
Os Netants serão lançados quando o botão NetAnts for clicado. Os dois itens a seguir na chave de registro acima: a chave MenuText adiciona um item de menu à barra "Ferramentas" do menu e a chave MenuStatusBar define o texto de prompt que é exibido na barra de status quando o cursor se move para o menu adicionado bar. Além disso, no registro
Você também pode adicionar um arquivo chamado
Valor do tipo string de MenuCustomize Definir este valor como "Ajuda" fará com que o item de menu apareça na barra de menu "Ajuda", caso contrário, aparecerá na barra "Ferramentas".
É claro que não ficaremos satisfeitos em apenas adicionar um botão e executar um programa. Esperamos poder controlar a página atual quando o usuário clicar no botão, que está no registro HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions. <Seu GUID>
Crie um novo valor do tipo String e defina o nome como o nome do caminho completo de um arquivo html. Da mesma forma que adicionar um menu de clique com o botão direito introduzido anteriormente, o IE chamará o arquivo após clicar no botão e acessá-lo configurando VBScript no. arquivo. A propriedade menuArguments do objeto externo pode obter a página no navegador. Por exemplo, iremos HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions<Seu GUID>VBScript
Defina o valor como c:program filessamp.htm, crie um arquivo chamado Samp.htm em c:program files e insira o seguinte conteúdo de script no arquivo:
<script language="VBScript">
Definir objNetSamp=CreateObject("IEContextMenu.IEMenu1")
userURL=external.menuArguments.location.href
Chame objNetSamp.AddUrl(userURL,"")
</script>
Abra o navegador IE, clique no botão Novo e uma caixa de diálogo aparecerá para exibir o URL da página atual. Observe que este item não pode ser usado ao mesmo tempo que o item Exec definido anteriormente.
Finalmente, para ícones de botão, o IE requer dois tamanhos de ícones: 20x20 e 16x16. O primeiro é usado para exibição no estado normal, e o último é usado para exibição em tela cheia, portanto os recursos de ícones apontados por HotIcon e Icon acima devem. be Uma combinação de três ícones As especificações desses três ícones são as seguintes:
Ícone de 16 cores 16x16 (obrigatório)
Ícone 20x20 de 16 cores (opcional)
Ícone 20x20 de 256 cores (obrigatório)
Ao projetar ícones, os ícones de 256 cores devem usar a paleta de meio-tom do Windows, enquanto os ícones de 16 cores devem usar a paleta de 16 cores do Windows.
http://www.cnblogs.com/goody9807/archive/2006/12/04/581359.html