Página 1 de 1

tregistry problema

Publicado: Jue Jun 26, 2014 11:01 am
por franksoft
después de actualizar win8 a win8.1
Esta rutina ya no funciona
alguien sabe cómo ayudarme?
FUNCTION GetProductId(cPrId)
LOCAL nHKey := HKEY_LOCAL_MACHINE
LOCAL cRegPath := "SOFTWAREMicrosoftWindows NTCurrentVersion"
LOCAL cRegkey := "ProductId"
WITH OBJECT tregistry():Create()
:Root := nHKey
IF :OpenKey( cRegPath ) == 0
cPrId := PADR(:GetString( cRegkey ),23)
MsgInfo(cPrId)
:CloseKey()
ENDIF
:Destroy()
END WITH
RETURN cPrId
gracias frank

tregistry problema

Publicado: Jue Jun 26, 2014 3:09 pm
por joselalinf
Franco,
> después de actualizar win8 a win8.1
en 32 o 64 bit?
Saludos,
José Lalí­n

tregistry problema

Publicado: Jue Jun 26, 2014 6:37 pm
por franksoft
64 bit

tregistry problema

Publicado: Jue Jun 26, 2014 8:40 pm
por zeasoftware
Yo igual he tenido problemas, lo único que se me ha ocurrido es poner en
propiedades del ejecutable es que lo ejecute como usuario administrador, y
en algunos me ha dejado de dar lata.
Saludos.
Ramón Zea
Móvil.: 993-231.62.29
Tel./Fax: 993-353-46-73
www.zeasoftware.com.mx
soporte@zeasoftware.com.mx
zeasoftware@hotmail.com
https://www.facebook.com/zeasoftware
Proveedor Autorizado:
REACHCORE
FACTURAXION
SERVISIM
"Franco" escribió en el mensaje de noticias:53abe16c$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
después de actualizar win8 a win8.1
Esta rutina ya no funciona
alguien sabe cómo ayudarme?
FUNCTION GetProductId(cPrId)
LOCAL nHKey := HKEY_LOCAL_MACHINE
LOCAL cRegPath := "SOFTWAREMicrosoftWindows
NTCurrentVersion"
LOCAL cRegkey := "ProductId"
WITH OBJECT tregistry():Create()
:Root := nHKey
IF :OpenKey( cRegPath ) == 0
cPrId := PADR(:GetString( cRegkey ),23)
MsgInfo(cPrId)
:CloseKey()
ENDIF
:Destroy()
END WITH
RETURN cPrId
gracias frank

tregistry problema

Publicado: Jue Jun 26, 2014 9:02 pm
por joselalinf
Franco,
intenta así­:
IF :OpenKey( cRegPath, nOR( 0x01, 0x0100 ) ) == 0
Si sigue sin funcionar intenta cambiando 0x0100 por 0x0200.
Saludos,
José Lalí­n

tregistry problema

Publicado: Mar Jul 01, 2014 9:07 am
por franksoft
gracias José, :OpenKey(cRegPath, nOR(0x01, 0x0100)) == 0
funciona correctamente.
Ahora me resulta imposible escribir en el registro con esto codice si no cambiamos manualmente la siguiente clave:
SoftwareMicrosoftWindowsCurrentVersionPoliciesSystem
"EnableLUA" = 1 >>> "EnableLUA" = 0

WITH OBJECT tregistry():Create()
:Root := nHKey
:CreateKey( cRegKey )
IF :OpenKey( cRegPath ) == 0
:SetString( cRegKey, cRegApp )
:CloseKey(.T.)
ENDIF
:Destroy()
END WITH
Con la versión win8.0 trabaja, desde el 8,1 no
Franco

tregistry problema

Publicado: Mar Jul 01, 2014 10:59 am
por joselalinf
Franco,
> gracias José, :OpenKey(cRegPath, nOR(0x01, 0x0100)) == 0 funciona
> correctamente.
gracias por confirmarlo.
> Ahora me resulta imposible escribir en el registro con esto
> codice si no cambiamos manualmente la siguiente clave:
He mirado en la MSDN y el contenido de esa clave tiene que ser numérico
(DWORD) y le estás pasando una cadena. ¿Has probado con :SetNumeric()?
:SetNumeric( cRegKey, cRegApp )
Saludos,
José Lalí­n

tregistry problema

Publicado: Mié Jul 02, 2014 10:08 am
por franksoft
José,
Me explico. Mi código crea una nueva clave alfanumérica y hasta trabajo win8.0 correctamente.
Con win8.1 es imposible escribir en el registro.
si antes no se cambia manualmente, dentro de la carpeta
SoftwareMicrosoftWindowsCurrentVersionPoliciesSystem
la tecla numérica "EnableLUA" = 1 >>> "EnableLUA" = 0.
Espero haber sido claro
Saludos
Franco

tregistry problema

Publicado: Mié Jul 02, 2014 12:24 pm
por joselalinf
Franco,
quizás tu aplicación no tiene permisos para crear la rama y por eso el error.
Pon una llamada a MsgSysError( GetLastError() ) tras :SetString() para
saber cuál es el problema.
Saludos,
José Lalí­n

tregistry problema

Publicado: Mié Jul 02, 2014 6:13 pm
por Cassiano de Oliveira
Franco,
Não tenho Windows 8 pra testar, mas pode talvez te ajudar:
//---------------------------------------------------------- --------------------
FUNCTION UAC(nAtivar)
*****************************************************
* Ativa ou Desativa UAC // para Harbour
*****************************************************
LOCAL cRunName, cRunKey, cRegKey, cRegValue, cRegRoot
// 0-Desativar
// 1-Ativar
cRegValue := nAtivar
cRegRoot := WIN_HKEY_LOCAL_MACHINE
*-- Vista ou Seven or Upper
IF win_osIsVistaOrUpper() // hb_osIsWin9x() hb_osIsWinNT()
hb_osIsWin2K() wapi_IsUserAnAdmin()
cRegKey := "SOFTWAREMicrosoftSecurity Center"
win_regQuery( cRegRoot, cRegKey, "UACDisableNotify", cRegValue,
..T. )
ELSE
cRegKey :=
"SoftwareMicrosoftWindowsCurrentVersionPoliciesSystem"
win_regQuery( cRegRoot, cRegKey, "EnableLUA", cRegValue, .T. )
ENDIF
RETURN 0
Outra coisa q também pode te ajudar é fazer seu aplicativo executar como
Administrador, veja no link abaixo como:
http://www.pctoledo.com.br/forum/viewto ... ?f=43&t=15 134
Saludos,
[]´s
"José Lalí­n" wrote in message news:53b3dd5f$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Franco,
quizás tu aplicación no tiene permisos para crear la rama y por eso el
error.
Pon una llamada a MsgSysError( GetLastError() ) tras :SetString() para
saber cuál es el problema.
Saludos,
José Lalí­n
---
Este email está limpo de ví­rus e malwares porque a proteção do avast! Antiví­rus está ativa.
http://www.avast.com