Wednesday 22 November 2017

Registrykey Setvalue Binary Options


Estou tentando programar algumas opções no Internet Explorer como: Permitir Filtragem ActiveX Permitir Scripts, etc. Eles estão todos armazenados no registro para que eu possa editá-los facilmente. Preciso adicionar um site nas Ferramentas - Configurações da Visualização de Compatibilidade no Internet Explorer. Depois de algumas pesquisas, eu vi que esta lista de sites é armazenada em: O problema é que esta chave é uma chave binária, por isso é um pouco difícil, em primeiro lugar decodificar o que está lá e editá-lo vejo que há um Delimitador entre cada site armazenado: você vê claramente o site. 123 e 456 estão na lista. Eu preciso adicionar um site a essa lista, mas aqui, como o fato de que o delimitador parece ter mudado aleatoriamente. Eu construir um delimitador predefinido com o meu site queria para que pareça assim: eu não tentei isso porque eu já sei que ele não vai funcionar em tudo. O problema é o delimitador aleatório. Existe outra maneira de prosseguir as minhas necessidades. Qualquer ajuda será apreciada. Estou tentando escrever uma pequena ferramenta no Visual Studio 2008 em execução no Windows 7 (32 bits), o que me permite alterar as propriedades autologon da estação de trabalho no qual o usuário está conectado no momento para. Eu tenho as seguintes declarações no nível da aula: o método chamado quando o usuário pressionou a gravação parece assim: quando eu executo o programa no modo de depuração, ele lança uma Exceção de Acesso não autorizado na primeira linha WL. SetValue, mas não consigo entender por que . A máquina não está em um domínio e minha conta de usuário faz parte do grupo Administradores. Eu tenho jogado com as classes RegistryPermission amp RegistrySecurity, mas não consigo contornar esse erro. Eu acho que tenho que elevar os privilégios, mas não tenho pistas sobre como conseguir isso. Há alguém lá fora que sabe como isso funciona Muito obrigado antecipadamente, Editado por Winne007 sexta-feira, 09 de abril de 2010 1:40 PM Jesse, eu adicionei um arquivo manifesto e isso funciona muito bem. Muito obrigado pela sua ajuda: o) Tergiver, eu estava usando uma conta de administração o) Então, continuei assim: no Visual Studio 2008, fui ao Project - gt Properties. Sob a guia Segurança, eu chequei o botão Quiltar, clique uma vez que tenha segurança e salve Meu projeto. Isso cria um arquivo xml de app. manifest, que pode ser encontrado no Solution Explorer em Propriedades. Depois disso, eu descargui quotEnable clique uma vez securityquot, abriu o arquivo XML e mudou: ltrequestedExecutionLevel levelquotasInvokerquot uiAccessquotfalsequot gt ltrequestedExecutionLevel levelquotrequireAdministratorquot uiAccessquotfalsequot gt A próxima vez que eu depurado o aplicativo, recebi uma mensagem dizendo que essa tarefa exige que o aplicativo tenha permissões elevadas. Eu cliquei quotRestart sob credentialsquot diferentes e o aplicativo obteve os privilégios necessários: o) Editado por Winne007 segunda-feira, 12 de abril de 2010 7:38 AM Adicionado mais informações para pessoas com a mesma pergunta Marcado como resposta por Winne007 segunda-feira, 12 de abril, 2010 7:38 AM Domingo, 11 de abril de 2010 1:19 PM Este é o controle da Conta de Usuário impedindo que você mude as informações vitais do Registro, sem escolher executar como administrador. Você pode adicionar um manifesto de aplicativo ao seu executável para instruir o Windows a elevar seu processo, ou você pode usar o Windows 7 Toolkit para implementar a elevação diretamente em seu código. Proposta como resposta por Tergiver sexta-feira, 09 de abril de 2010 7:10 PM Marcado como resposta por Winne007 domingo, 11 de abril de 2010 1:19 PM sexta-feira, 9 de abril de 2010 3:26 PM Todas as respostas No entanto, se eu executar Visual Studio com Privilégios elevados (clique direito no Visual Studio 2008 e escolha Executar como Administrador), o programa é corrigido corretamente e não descarta a exceção. Esta é uma solução parcial, como eu preferiria que meu código gerenciasse isso. Sexta-feira, 9 de abril de 2010 1:32 PM Este é o controle de Conta de Usuário que o impede de alterar as informações vitais do Registro, sem escolher executar como administrador. Você pode adicionar um manifesto de aplicativo ao seu executável para instruir o Windows a elevar seu processo, ou você pode usar o Windows 7 Toolkit para implementar a elevação diretamente em seu código. Proposta como resposta por Tergiver sexta-feira, 09 de abril de 2010 7:10 PM Marcado como resposta por Winne007 Domingo, 11 de abril de 2010 1:19 PM sexta-feira, 9 de abril de 2010 3:26 PM Especificamente, você não pode escrever para HKLM como não - admin account. Você pode escrever para HKCU. Sexta-feira, 09 de abril de 2010 19:10 Jesse, adicionei um arquivo manifesto e funciona de forma excelente. Muito obrigado pela sua ajuda: o) Tergiver, eu estava usando uma conta de administração o) Então, continuei assim: no Visual Studio 2008, fui ao Project - gt Properties. Sob a guia Segurança, eu chequei o botão Quiltar, clique uma vez que tenha segurança e salve Meu projeto. Isso cria um arquivo xml de app. manifest, que pode ser encontrado no Solution Explorer em Propriedades. Depois disso, eu descargui quotEnable clique uma vez securityquot, abriu o arquivo XML e mudou: ltrequestedExecutionLevel levelquotasInvokerquot uiAccessquotfalsequot gt ltrequestedExecutionLevel levelquotrequireAdministratorquot uiAccessquotfalsequot gt A próxima vez que eu depurado o aplicativo, recebi uma mensagem dizendo que essa tarefa exige que o aplicativo tenha permissões elevadas. Eu cliquei quotRestart sob credentialsquot diferentes e o aplicativo obteve os privilégios necessários: o) Editado por Winne007 segunda-feira, 12 de abril de 2010 7:38 AM Adicionado mais informações para pessoas com a mesma pergunta Marcado como resposta por Winne007 segunda-feira, 12 de abril, 2010 7:38 AM Domingo, 11 de abril de 2010 1:19 PMHello, estou criando um formulário simples que leva entrada de usuários, a entrada é gravada em certos valores de registro. Im capaz de wite os valores para os tipos REGSZ mas não para REGBINARY. Agora, por exemplo, eu criei um exemplo de código como este: RegistryKey objRegistryKey Registry. LocalMachine string values ​​quotDeviceVideoquot System. Converter. ToString (objRegistryKey. OpenSubKey (raiz).GetValue (quotMaxObjectNumberquot)) Sistema de valores de cadeia. Converta. ToString (objRegistryKey. OpenSubKey (raiz).GetValue (valores)) Substring (57, 38) objRegistryKey. OpenSubKey (quotSYSTEMCurrentControlSetControlVideoquot valor quot0000quot. True).SetValue (quot3DMark05.exe: D3DOGL67207557quot. New byte, RegistryValueKind. Binary) MessageBox. Show (quotreg updatedquot) quot3DMark05.exe: D3DOGL67207557quot é uma chave REGBINARY que já existe no meu registro. Isso grava o valor, mas no editor do registro parece diferente (em hexadecimal). Eu quero o mesmo valor quot33 00 00 00quot para aparecer no editor reg. Alguém pode me ajudar com isso. É tão importante e preciso disso com urgência. Eu procurei na net, mas não consegui encontrar nenhum recurso valioso. Qualquer um que me ajuda para fora é gr8 certamente e receberia apreciações. ) Esperando que alguém me ajude. Desde já, obrigado. Terça-feira, 24 de março de 2009 2:00 Parece haver um monte de código irrelevante em seu post original, mas se a sua pergunta é apenas, quothow eu escrevo um 33quot hexadecimal, eu posso ajudar: 0x33 é analisado pelo compilador Como 33 hexadecimal 33 é analisado pelo compilador como 33 decimal (0x21 hexadecimal) alternadamente, você poderia gravá-lo como 51 decimal é equivalente a 0x33 hexadecimal Você pode facilmente converter decimal para hexadecimal e vice-versa com a Calculadora do Windows (pressione WinR, digite calc, E pressione Enter). Mude a Vista para Scientific se ainda não estiver. O rádio () Hex () Dec () Oct () Bin seleciona o modo em que a calculadora está (deve ser o padrão para () Dec que é decimal). Digite um valor em um modo e mude para outro para ver a conversão. Editado por Tergiver quarta-feira, 25 de março de 2009 9:54 PM ortografia Marcado como resposta por Bin-ze Zhao segunda-feira, 30 de março de 2009 3:59 AM quarta-feira, 25 de março de 2009 9:53 PM Mala Kamal disse: Oi Navin, Im Contente por me ter respondido. Mas Navin, preciso alterar o segundo conjunto de valores para uma chave específica, quando eu definir um valor usando SeValue () do espaço para nome Microsoft. Win32, posso escrever oly o primeiro conjunto de valores e também aparece em formato hexadecimal No editor do reg. Para um valor de chave binária, temos dois conjuntos de valores diferentes de REGSZ ou REGDWORD. Esse é o problema, eu tenho. Se você pode me ajudar. Eu sou novo para C. Agradecimentos amável Atenciosamente Mala Kamal Eu não sou claro sobre sua exigência. Você está ciente de que você precisa ter dois valores diferentes para uma chave de registro Se você pode fornecer alguns, por exemplo: isso será útil para entender o requisito. Quarta-feira, 25 de março de 2009 3:25 AM Parece haver um monte de código irrelevante em sua postagem original, mas se sua pergunta for somente, então eu escrevo um texto hexadecimal, eu posso ajudar: 0x33 é analisado pelo compilador Como 33 hexadecimal 33 é analisado pelo compilador como 33 decimal (0x21 hexadecimal) alternadamente você poderia escrevê-lo como 51 decimal é equivalente a 0x33 hexidecimal Você pode facilmente converter decimal para hexadecimal e vice-versa com a Calculadora do Windows (pressione WinR, digite calc, E pressione Enter). Mude a Vista para Scientific se ainda não estiver. O rádio () Hex () Dec () Oct () Bin seleciona o modo em que a calculadora está (deve ser o padrão para () Dec que é decimal). Digite um valor em um modo e mude para outro para ver a conversão. Editado por Tergiver quarta-feira, 25 de março de 2009 9:54 PM ortografia Marcado como resposta por Bin-ze Zhao segunda-feira, 30 de março de 2009 3:59 AM quarta-feira, 25 de março de 2009 9:53 PMWinHttpSettings é uma chave de registro com tipo REGBINNARY. Depois de usar regedit. exe para limpar o valor e exportá-lo como abaixo: Windows Registry Editor Versão 5.00 HKEYLOCALMACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsConnections quotWinHttpSettingsquothex: Como usar a função SetValue para fazê-lo baseKey Microsoft. Win32.RegistryKey :: OpenRemoteBaseKey (quotLocalMachinequot, ip) chave keyKey. OpenSubKey (HKLM: SOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsConnections, true) key. SetValue (WinHttpSettings.) Quarta-feira, 6 de novembro de 2013 4:39 PM Você precisa remover a parte quotHKLM: quot da sua chamada para o OpenSubKey que não funcionará. Você já especificou quotLocalMachinequot na chamada para OpenRemoteBaseKey. Para criar um valor binário de comprimento zero, você passa uma matriz de Byte vazia como parâmetro de valor e especifica um RegistryValueKind de Binário. Heres de uma maneira que você pode fazer isso: Marcado como resposta por Ian3 quarta-feira, novembro 06, 2013 5:48 PM quarta-feira, novembro 06, 2013 5:26 PM Eu não sei que não recebo esse erro quando eu testar o código. A única maneira como eu consegui reproduzi-lo é remover o segundo parâmetro para OpenSubKey, mas enquanto eu passar verdadeiro depois do caminho da subchave, ele funciona bem para mim. Marcado como resposta por Ian3 quinta-feira, 07 de novembro de 2013 7:11 PM quinta-feira, novembro 07, 2013 5:27 PM Todas as respostas Se você achar que minha postagem respondeu sua pergunta, marque-a como a resposta. Se você achar minha postagem útil de qualquer forma, por favor, clique em votar como útil. Editado por clayman2 quarta-feira, 06 de novembro de 2013 5:31 PM editar Quarta-feira, 06 de novembro de 2013 5:16 PM Eu tentei seu código uma vez e funcionou. Mas depois disso, sempre recebo erro: Exceção de chamada quotSetValuequot com argumento (s) quot3quot: quotCanote não gravar na chave de registro. quot Na linha: 1 char: 1 43 key. SetValue (WinHttpSettings, byte (), Binário) 43 43 CategoryInfo. NotSpecified: (:), MethodInvocationException 43 FullyQualifiedErrorId. UnauthorizedAccessException Por favor avise. Obrigado quinta-feira, 07 de novembro de 2013 5:03 PM Eu não sei que não recebo esse erro quando eu testar o código. A única maneira como eu consegui reproduzi-lo é remover o segundo parâmetro para OpenSubKey, mas enquanto eu passar verdadeiro depois do caminho da subchave, ele funciona bem para mim. Marcado como resposta por Ian3 Quinta-feira, 07 de novembro de 2013 7:11 PM Quinta-feira, 07 de novembro de 2013 5:27 PM Você está certo. Recebi erro porque faltava verdade. Depois de adicioná-lo, ele funciona perfeitamente. Muito obrigado. Quinta-feira, 07 de novembro de 2013 19:15 A Microsoft está realizando uma pesquisa on-line para entender sua opinião sobre o site da Technet. Se você optar por participar, a pesquisa on-line será apresentada quando você sair do site da Technet. Gostaria de participar 2017 Microsoft. Todos os direitos reservados.

No comments:

Post a Comment