rochinha Posted June 12, 2014 Report Share Posted June 12, 2014 Amiguinhos, Para rodar aplicativos como administrador a mesma precisa estar configurada no registro e descobri uma chave no registro que faz isto. Portanto saquei a informação e posto aqui para que testem e vejam se funciona. O conteúdo do arquivo .REG que pode ser executado via Prompt de comando é: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers] "C:\\PASTA\\SISTEMA.EXE"="RUNASADMIN" [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\C:\PASTA] "sistema.exe"="RUNASADMIN" Onde sistema é o nome de seu aplicativo e pasta é o nome da pasta que esta o mesmo. Pensando em automatizar criei uma função em meu sistema(Fivewin), que pode ser implementada por todos, na linguagem preferida. Função RunASS: FUNCTION RunASS( cCaminhoCompleto, lXPCompativel ) ***************************************************** * Grava o registro do aplicativo ***************************************************** DEFAULT lXPCompativel := .F. LOCAL cRunName, cRunKey, cRegKey cRegRoot := HKEY_CURRENT_USER cRegKey := "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" cRegValue:= ["]+cCaminhoCompleto+["="]+iif(lXPCompativel,"WINXPSP2 ","")+[RUNASADMIN"] SETREGVAR( cRegRoot, cRegKey, "EnableLUA", cRegValue ) cRegValue:= ["]+cFileName(cCaminhoCompleto)+["="]+iif(lXPCompativel,"WINXPSP2 ","")+[RUNASADMIN"] SETREGVAR( cRegRoot, cRegKey, "EnableLUA", cRegValue ) RETURN nil Os parâmetros são: cCaminhoCompleto - Caminho completo do aplicativo, exemplo: c:\pasta\subpasta\outrapasta\sistema.exe lXPCompativel - colocar .t. se caso quer forçar execução em modo de compatibilidade Exemplo: ... RunASS( "c:\pasta\subpasta\outrapasta\sistema.exe", .f. ) ... As funções que usei aqui foram elaboradas para uso com o Fivewin que usa a classe tReg32(). Função SetRegVar() FUNCTION SETREGVAR( nKey, cRegKey, cSubKey, uValue ) LOCAL oReg, cValue nKey := IF( nKey == NIL, HKEY_CURRENT_USER, nKey ) uValue := IF( uValue == NIL, "", uValue ) oReg := TReg32():Create( nKey, cRegKey ) cValue := oReg:Set( cSubKey, uValue ) oReg:Close() RETURN cValue DenissPem, Stellasl, RobertMa and 7 others 10 Quote Link to comment Share on other sites More sharing options...
Ariston Santos Posted June 17, 2014 Report Share Posted June 17, 2014 Amigo, Desculpa a falta de conhecimento, mas qual é o objetivo prático desta configuração? Seria para o casa de logar como convidado e, em determinado momento, não poder executar alguma ação por não ser administrador? Em caso positivo, dê um exemplo de bloqueio que seria feito? Motivo da pargunta: Já ocorreu de eu não conseguir registrar o programa usando a função que crie para isso porque o Windows simplesmente não permite gravar a informação via programa. Seria este um dos casos? Quote Link to comment Share on other sites More sharing options...
rochinha Posted September 27, 2014 Author Report Share Posted September 27, 2014 Amiguinho, Sua questão é pertinente, pois por várias vezes nos deparamos com as frescuras do Windows relativas a segurança e aí como fazer? Painel de Controle/bla,bla,bla Isto é um saco. Eu trabalho para que meu sistema seja seguro, meu serviço seja seguro e apresente segurança também ao usuário. O Windows não sabe da idoneidade de cada usuário ou aplicativo que ele está tentando executar portanto a unica possibilidade do sistema operacional reconhecer seu aplicativo é por meio de certificação, ou seja, seu sistema precisa de um certificado válido para ser executado e ter permissões de nível de acesso. Ensinar para a galera como certificar o aplicativo é interessante mas leva tempo então a forma mais simples de evitar tanto travamento no uso do aplicativo vem por meio da burla da segurança de forma segura. Isto que apresentei é um hacking, meio de modificar o registro sem usar aplicativos certificados do sistema operacional. Aquelas perguntas chatas de que seu aplicativo precisa ser executado por administrador, diminuem. Portanto, se o seu aplicativo precisa registrar módulos como .DLLs ou OCXses, esta burla não permitirá a quebra da execução do mesmo. kapiaba 1 Quote Link to comment Share on other sites More sharing options...
rochinha Posted November 5, 2014 Author Report Share Posted November 5, 2014 Amiguinhos, A variável HKEY_CURRENT_USER dentro da função RunASS() e SetRegVar() recebe o valor 2147483649. Quote Link to comment Share on other sites More sharing options...
AnthonyKn Posted December 19, 2014 Report Share Posted December 19, 2014 buy generic flagyl without prescription asthma relief breathing treatment disk atkins phase 1 weight loss where to buy plaquenil allergy medicine for stuffy nose allergies sensitivities cancer in the reproductive system buying rulide online bladder cancer blood urine calorie shifting meal plan antibacterial uses of triclosan generic mysoline online agent orange cancer breakthrough balloom pump plans amgen asthma results where to buy celexa no prescription needed cephalexin drug interaction ibuprofin arthritis doctor perryton avelox bayer nolvadex generic drug best vitamins available at rite aid ativan affects in dementia patients ativan information Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.