Página 1 de 1

RUNASADMIN - RUNASS.PRG By Rochinha

Enviado: 05 Nov 2014 11:01
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.

RUNASADMIN - RUNASS.PRG By Rochinha

Enviado: 05 Nov 2014 11:40
por Kapiaba
Rochinha:

HKEY_CURRENT_USER

O que de vo informar?

Obg. abs.

RUNASADMIN - RUNASS.PRG By Rochinha

Enviado: 07 Nov 2014 23:16
por Euclides
Kapi, seria isso?

#define HKEY_CURRENT_USER 2147483649

RUNASADMIN - RUNASS.PRG By Rochinha

Enviado: 14 Nov 2014 21:31
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.