RUNASADMIN - RUNASS.PRG By Rochinha

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

RUNASADMIN - RUNASS.PRG By Rochinha

Mensagem por Kapiaba »

Bom dia Rochinha tire uma dúvida: Se eu fizer isto para o REGSAM.EXE da Microsoft, ele entrará como administrador, sem eu precisar entrar com o Prompt de comando em modo administrador?

Código: Selecionar todos

#include "FiveWin.ch"

FUNCTION Main()

   LOCAL cCaminhoCompleto := "C:\INST_NFE\REGASM.EXE"
   LOCAL lXPCompativel    := .T.

   /*
   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. )
   ...
   */

RETURN NIL

FUNCTION RunASS( cCaminhoCompleto, lXPCompativel )

   *****************************************************
   * Grava o registro do aplicativo 
   *****************************************************

   LOCAL cRunName, cRunKey, cRegKey

   DEFAULT lXPCompativel := .F.

   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

/*
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

// FIM DO PROGRAMA
Pergunta também está no Fivein Brasil. Very thanks.
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

RUNASADMIN - RUNASS.PRG By Rochinha

Mensagem por Kapiaba »

Rochinha:

HKEY_CURRENT_USER

O que de vo informar?

Obg. abs.
Euclides
Usuário Nível 3
Usuário Nível 3
Mensagens: 154
Registrado em: 12 Mai 2007 14:07
Localização: São Paulo, Capital

RUNASADMIN - RUNASS.PRG By Rochinha

Mensagem por Euclides »

Kapi, seria isso?

#define HKEY_CURRENT_USER 2147483649
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

RUNASADMIN - RUNASS.PRG By Rochinha

Mensagem por rochinha »

Amiguinhos,

Modificar o inicio da função RunASS() para o trecho abaixo

Código: Selecionar todos

FUNCTION RunASS( cCaminhoCompleto, lXPCompativel )
   *****************************************************
   * Grava o registro do aplicativo 
   *****************************************************

   LOCAL HKEY_CURRENT_USER   := 2147483649
   LOCAL HKEY_LOCAL_MACHINE  := 2147483650
   LOCAL HKEY_CURRENT_CONFIG := 2147483653
   LOCAL KEY_ALL_ACCESS      := 983139

   LOCAL cRunName, cRunKey, cRegKey
A intenção de nossa função RunASS() é manipular o registro afim de liberar as restrições de acesso ao S.O.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder