Chequear valor en registy y ejecutar programa

17/11/2003 - 14:46 por Eduardo G Silva | Informe spam
Hola a todos, en realidad soy un intruso en este foro, programo hace años en
VB y PHP nunca me habia metido con C++ pero me surguio un problema que no
puedo resolver con vb y hace dos semanas que estoy internado intentando
desmarañar Visual C y si bien estoy facinado tambien estoy a punto del
colapso nervioso.

Hice una aplicacion multimedia en VB y un Instalador de dicha aplicacion
ahora bien mi cliente me pidio que tenga autorun el problema es que no puedo
hacer el autorun en VB porque para ejecutarlo antes tengo que instalar al
menos la vbrun correspondiente a la version.

Por eso comence a hacer una Win32 Console Application que lo unico que tiene
que hacer es ver es si existe una clave en la registy y si la encuentra
ejecutar un exe que se encuentra en el valor de la clave. Si no lo
encuentra tiene que ejecutar el instalador que esta en el cd. Tengo
entendido que este programita que estoy haciendo en VC no va a necesitar
registrar nada para ejecutarse.

Hasta aca todo bien el problema es que no me da la cabeza si tubiese que
hacer esto en VB agregaria una API en un modulo y invocaria la funcion en un
procedimiento.

Encontre un ejemplo navegando por ahi que ve si un valor de la registy
existe pero no entiendo como hace para incluir en el proyecto por ejemplo
RegOpenKeyEx. Creo que estoy cerca de la solucion pero me un empujoncito

Me dan una mano.

Muchas Gracias y gracias por la paciencia






void LeeClave(void)
{
HKEY key;
char subKey[] = "Software\\Mecenas-Brasil\\MuchoGusto";
char valName[] = "Instalacion"; /* ruta del exe instalado */
char val[255];
char valAca[255];
int size = sizeof(val)-1;
DWORD type = REG_SZ;

if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, subKey, 0, KEY_ALL_ACCESS, &key))
MessageBox(NULL, key, "Primer mensaje", MB_OK | MB_ICONERROR);
// return;

if(RegQueryValueEx(key, valName, NULL, &type, val, &size))
{
// wsprintf(val, "%d", "que va");
// RegSetValueEx(key, valName, 0, REG_SZ, val, strlen(val));
MessageBox(NULL, "aca tendria que estar", val, MB_OK | MB_ICONERROR);
}
else
{
MessageBox(NULL, subKey, "No entro en el query", MB_OK | MB_ICONERROR);
}
RegCloseKey(key);
MessageBox(NULL, subKey, "ultimo mens", MB_OK | MB_ICONERROR);
}


begin 666 Eduardo Germán Silva.vcf
M0D5'24XZ5D-!4D0-"E9%4E-)3TXZ,BXQ#0I..E-I;'9A.T5D=6%R9&\[1V5R
M;>%N#0I&3CI%9'5A<F1O($=E<FWA;B!3:6QV80T*3D]413M%3D-/1$E.1SU1
M54]4140M4%))3E1!0DQ%.D=U/45$82!D92!U<V\@9&5L(&9O<F\Z/3!$/3!!
M:'1T<#HO+W!E<G-O+G=A;F%D;V\N97,O<G5B96YV:6=O;B]F;W)O/3!$/3!!
M#0I%34%)3#M04D5&.TE.5$523D54.D5D=6%R9&]3:6QV84!M96-E;F%S+F-O
D;0T*4D56.C(P,#,Q,3$W5#$S-#8R.5H-"D5.1#I60T%21 T*
`
end

Preguntas similare

Leer las respuestas

#6 my name
18/11/2003 - 22:10 | Informe spam
"Eduardo G Silva" wrote in
news::

Perdon ahi lo encontre esta en "val". Sale con fritas

Gracias nuevamente.

PD: me dieron tantas ganas de aprender C++ que me voy a la libreria a
comprar algun libraco.





Nunca está demas conocer otro lenguaje de programación 8-),
ves otros puntos de vista.

Saludos.






"Eduardo G Silva"
escreveu na mensagem news:
El codigo que me mandaste funciona perfecto pero como hago para
limpiar el valor de la key y ponerlo en una variable?

Porque en la key esta la ruta del programa, en vb seria asi:

r = RegOpenKey(Hkey, strPath, keyhand)
lResult = RegQueryValueEx(keyhand, strValue, 0&, lValueType,
ByVal 0&,
lDataBufSize)
If lValueType = REG_SZ Then
strBuf = String(lDataBufSize, " ")
lResult = RegQueryValueEx(keyhand, strValue, 0&, 0&, ByVal
strBuf,
lDataBufSize)
If lResult = ERROR_SUCCESS Then
intZeroPos = InStr(strBuf, Chr$(0))
If intZeroPos > 0 Then
p_funRegBuscaString = Left$(strBuf, intZeroPos - 1)
Else
p_funRegBuscaString = strBuf
End If
End If
End If


pero no se como hacerlo en c.


Gracias, saludos






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida