Ativar / desativar um adaptador de rede com um atalho de teclado

9

Comecei tentando usar um atalho para exibir a janela Status da conexão local na área de trabalho, criando um atalho e atribuindo-o Ctrl+ ,(vírgula).

O Windows não gostou disso, acrescentou Alt, que acabou sendo Ctrl+ Alt++ ,.

Como não consegui descobrir uma maneira de eliminar Altcomo parte das teclas de atalho, agora estou tentando uma estratégia diferente e ela não está funcionando. Minha última tentativa é usar o AutoHotkey com o seguinte comando:

^,::Run, explorer ::{BA126ADB-2166-11D1-B1D0-00805FC1270E}

Qual é o número do destino do atalho, mas não abrirá a janela.

Carlos
fonte
Eu não entendo sua pergunta. Você pode postar seu script AutoHotkey? O Windows ou a AutoHotkey não devem ser enviados [Alt]toda vez que você pressiona [Ctrl], a menos que você escreva dessa maneira.
iglvzx
Claro, criei um atalho para as Propriedades da conexão de rede local e atribuí as seguintes teclas de atalho; CTRL + ALT +,
Carlos
Não sabia que acertar o retorno me acabaria. Enfim, meu desejo é ter CTRL +, ser minhas teclas de atalho, mas quando você seleciona CTRL como parte de suas teclas de atalho no Windows, ele adiciona automaticamente o ALT para que eu acabe com CTRL + ALT + e quero acabar com ALT e apenas use CTRL +, - isso explica melhor?
Carlos
onde você conseguiu esse GUID? Ele não abre "Local Area Connection"
iglvzx 24/03
Carlos, não quero decepcioná-lo, por isso vou elaborar uma solução detalhada e fácil de seguir para você. Não posso trabalhar nisso agora, mas devo ter tempo amanhã depois das 12:00 do Pacífico.
23412 iglvzx

Respostas:

12

Vou listar as etapas manuais necessárias para ativar ou desativar rapidamente um adaptador de rede. Depois, traduzirei essas etapas no AutoHotkey .


À mão:

  1. Abra Conexões de Rede na linha de comando.

    explorer ::{7007ACC7-3202-11D1-AAD2-00805FC1270E}
    

    Conexões de rede

  2. Quando a janela estiver ativa, pressione Space para definir o foco na lista de adaptadores.

    Lista

  3. Se o adaptador que você deseja ativar / desativar estiver atualmente selecionado (ou seja, o na lista), pule para a Etapa 5 .

  4. Se o adaptador não estiver selecionado, pressione Right até que seja selecionado. Por exemplo, pressione Right 1 vez se o adaptador for o na lista, 2 vezes se for o , etc.

    2º

  5. Clique com o botão direito do mouse no adaptador e pressione Down para destacar a opção Enableou Disable.

    desabilitar

    habilitar

  6. Pressione Enter para Enableou Disable.

  7. Feche as conexões de rede.


Autohotkey:

Usando o atalho de teclado Ctrl+,

^,::

   ;1.
   Run, explorer ::{7007ACC7-3202-11D1-AAD2-00805FC1270E}

   ;2.
   WinWaitActive, Network Connections
   Send, {Space}

   ;3. & 4.
   ;If the adapter is not the 1st, navigate to it.
   ;For example, without the comment (semi-colon):
   ;    Send, {Right 1}
   ;if it is the 2nd adapter.
   ;    Send, {Right 2}
   ;if it is the 3rd, etc.

   ;5.
   Send, {AppsKey}
   Sleep, 250 ;adjust as needed
   Send, {Down}

   ;6.
   Send, {Enter}

   ;7.
   WinClose, Network Connections

   return
iglvzx
fonte
Obrigado por responder e recebi a mensagem de não postar a mesma pergunta duas vezes. Estou saindo para uma reunião agora, mas quero esclarecer uma coisa, então voltarei a você um pouco mais tarde. Obrigado Carlos
Carlos
O atalho acabou na pasta "Programas" e não sei como inserir o comando. Pensei em acabar com a ideia do atalho e ir diretamente ao programa que quero executar, que é a Conexão Local, então escrevi esse script, mas não funciona;
Carlos
; Isto é para abrir minha conexão de linha de rede local - não está funcionando ^, :: Run, "Painel de Controle \ Rede e Internet \ Conexões de Rede \ Conexão de Área Local" Retornar
Carlos
Seu código não é bom. Os caminhos no painel de controle não são iguais aos caminhos no sistema de arquivos / Windows Explorer. Veja minha resposta atualizada. :)
iglvzx
2
O comando que você me deu abre a Conexão de Rede como você disse, mas estou tentando ir um pouco mais longe e abrir a janela LOCAL AREA CONNECTION STATUS para que eu possa Habilitar / Desabilitar a conexão. - talvez eu não tenha me deixado claro. Reescrevi a pergunta inicial para esclarecimentos. Espero que seja o que você queria.
Carlos
6

Basta ir para a tela onde o ícone do adaptador está localizado. Clique com o botão direito e crie um atalho (ele não permitirá adicionar atalhos a essa janela, mas permitirá que seja criado na área de trabalho). Quando você deseja ativar ou desativar o adaptador, clique com o botão direito do mouse no ícone na área de trabalho e clique em ativar ou desativar.

Frank
fonte
1
A "tela onde o ícone do adaptador está localizado" neste caso é Rede e Internet \ Conexões de Rede. Abra o Centro de Rede e Compartilhamento e clique em "Alterar configurações do adaptador" no painel esquerdo.
21715 Shane
Se há uma coisa que aprendi neste site e em outros, não siga a resposta aceita ou a maioria dos votos positivos, sempre verifique as últimas respostas, pois elas provavelmente são as mais fáceis e as melhores.
killjoy
4

Se você deseja uma maneira fácil de ativar ou desativar sua NIC (ou outro dispositivo), que ignora o Painel de Controle, o Gerenciador de Dispositivos e outras janelas, é possível fazer isso com um arquivo em lotes:

  1. Obtenha uma cópia do utilitário DevCon da Microsoft

  2. Crie e salve o seguinte arquivo em lotes (por exemplo, como ToggleNIC.bat)

    @echo off
    if (% 1) == (+) deve ativar
    if (% 1) == (-) deve desativar
    ir para: eof
    :: Substitua o ID do dispositivo ("VEN_1234 & DEV_5678" no exemplo) pelo da sua própria NIC. :: Você pode encontrá-lo com o comando "devcon find PCI *", procurando o nome da sua NIC.
    :: Quando você localizar o ID do seu dispositivo, insira apenas até o "DEV"; isso deve ser suficiente para identificar exclusivamente o dispositivo. :: Deixe o "SUBSYS" e as partes posteriores da string desligados, caso contrário pode não funcionar.
    :habilitar devcon enable "PCI \ VEN_1234 & DEV_5678" ir para: eof
    : desativar devcon desativar "PCI \ VEN_1234 & DEV_5678" ir para: eof

  3. Crie dois atalhos para o arquivo em lotes (por exemplo, EnableNIC.lnke DisableNIC.lnk), um especificando o campo Destino como C:\…\ToggleNIC.bat +e para o outro, C:\…\ToggleNIC.bat -(é claro, substitua-o pelo caminho para o arquivo em lotes)

  4. Defina uma tecla de atalho na caixa de diálogo Propriedades para cada atalho - Ctrl+Alt+Shift+Num+e Ctrl+Alt+Shift+Num-pareça bons, lógicos.

    • (Há uma razão Explorer tenta evitar atalhos simples da forma Ctrl+Key, Alt+Keye Shift+Key;. Porque aqueles são normalmente utilizados em programas para as tarefas diárias, então usá-los como teclas de atalho shell causaria um problema sem fim Mas, se você realmente precisa de um sem Alt, você pode hackear o .lnkarquivo manualmente ou mais facilmente, basta usar um programa de macro / tecla de atalho para criar uma tarefa para executar os arquivos em lote com a tecla de atalho que desejar.)

  5. Como alternativa, você pode colocar o arquivo em lotes em algum lugar do seu PATH e simplesmente alternar a NIC através do menu Iniciar ou da caixa de diálogo Executar ; por exemplo Win+R,togglenic +


Você também pode fazer com que o arquivo em lote alterne literalmente a NIC (ative-a se estiver desabilitada no momento ou desabilite-a se estiver ativada), mas isso será um pouco mais envolvido e provavelmente não será necessário em geral.

Synetech
fonte
Há muito aqui, mas vou imprimi-lo e revisá-lo para ver se consigo fazer tudo isso. Por enquanto, se você não se importa, responda-me uma pergunta; usando a Autohotkey, como mostro um comando que significa um clique duplo? Eu consegui fazer tudo o que preciso e poderia clicar duas vezes manualmente, se necessário, mas se houver uma maneira de terminar o script com isso, seria a cereja no topo do bolo. Obrigado
Carlos
Não sei dizer o que você está perguntando. Você possui um script AHK que abre a janela Conexões de Rede e emula o pressionamento de tecla para navegar até a NIC e alterná-la? Para que serve o clique duplo? O que você quer dizer com "mostrar um comando"?
26412 Synetech
@Carlos Meu script não funcionou? Se o item que você deseja clicar duas vezes tiver foco (ou seja, realçado em azul ou com uma caixa pontilhada), poderá enviar {Enter} . Caso contrário, você pode usar o comando Clique para simular um clique do mouse em um local específico.
iglvzx
Seu script funcionou bem. Estou trabalhando em um script diferente usando alguns dos comandos que você usou no problema anterior e o fiz funcionar. Tudo o que quero fazer é finalizar o script com um clique duplo para iniciar a abertura de uma janela que atualmente estou executando manualmente. Vou tentar sua sugestão de usar o Send, {Enter} e ver se isso funciona. Caso contrário, tentarei enviar {clique}.
Carlos