Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - TheGhost(Z)

#46
Hola amigos, me preguntaba si me pordrian ayudar ..


¿como se llama el control que muestra el error "The host 'pop.business.earthlink.com' could no be found. Please...

Quiero presentar una serie de datos de la misma manera. Estuve intentando con ListView, pero no pude porque este me muestra en una sola linea y no muestra en varias como hace este control que usa el OutLook Express.

Saludos,

Saludos,,
#47
Programación Visual Basic / SQL
25 Noviembre 2006, 18:18 PM
Hola.. aqui nuevamente amigos.. ahora se trata de hacer un consulta variables..

He visto muchos buscadores, por ejmplo de ese foro..

Para buscar un tema o caracter hay la posibilidad de buscar en Programacion, Sofware, Hacker, etc... y las opciones de busquedas se puede aplicar con unos CkeckBoxe's..

De ahi mi duda..

Pues tengo un Formulario con:
Text1: Nombre
Text2: Apelliddos
Text3: Alias
Etc..

Luego 4 Check's

Check1: Buscar en Nombres
Check2: Buscar en Apellidos
Check3: Buscar en alias


Luegon un Text5: Dato a buscar:

Si todos los Check's estarian habilidadtos (selecionados) mi consulta SQL seria:

"Select * From Clientes Where Nombre='"& Trim(Text1.Text) &"' Or Apellidos='"& Trim(Text2.Tex) &"' OR Alias='"& Trim(Text3.Text) &"'"

Todo esto Puede Funcionar con OR, pero lo que deseo es hacer una consulta similar pero con AND

Mi problema es que si m dato a buscar es:

Text1.Text: Pedro
Text2.Text: Martinez
Text3.Text: "" ' Vacio

"Select * From Clientes Where Nombre='"& Trim(Text1.Text) &"' AND Apellidos='"& Trim(Text2.Tex) &"' AND Alias='"& Trim(Text3.Text) &"'"

Lo que deseo es que como en el Text3.Text es igual a "" (vacio) omita la comparacion en ese campo. porque en esta consulta no me muestra nada, ya que no no encuentra ningun dato en el campo alias el vacio "". Me preguntaba es que si el Text3.Text="" no ponga el campo alias como creiterio de busqueda...
#48
Programación Visual Basic / SELECT DISTINCT, IN ()
20 Noviembre 2006, 13:49 PM
Hola, amigos..  veran lo que quiero hacer es selecionar los campos de una tabla pero que no se repitan los campos que son iguales... por ejemplo..

ID     NOMBRE     SEXO     EDAD
1       PEDRO          H          15
2       JUAN             H          18
3       PEDRO          H          20
4       MARTHA        M          18
5       MARTHA        M          18

Sellecionar a todos los que NOMBRE=MARTHA, SEXO=M, EDAD=18. PERO QUE SI HAY MAS DE 1 NO SE REPITAN.

Lo normarl es lo de abajo, pero me lista los registros con ID 4 y 5, porque ambos cumplen con el criterio. Lo que deseo es hace los mismo, pero que una ves ya encontrado no me repita en el listado.
"Select * FROM Cliente Where Nombre='MARTHA, SEXO='M', EDAD=18'"

Estuve intentando con "SELECT DISTINCT", pero no se como como emplearlo o me sale error..
"SELECT * DISTINCT FROM Cliente Where Nombre='MARTHA, SEXO='M', EDAD=18'"

Ayuda por favor....
Gracias.
#49
Hola, a todos.. aqui nuevamente...

Resulta que quiero imprimir unos recibos con el DataReport de Vb,  pero mi problema es  que quiero hacer la conexion desde codigo al connection1 y al datareport1

Favor de ayudarme con cualquier sugerencia.

Saludos,
Pedro J.
#50
Saludos,

Pues vera, estoy haciendo un exe para enviar correo, usando MAPI y ShellExecute.

Cuando uso MAPI's Al final del envio sale un mensaje diciendo que un programa esta intentand enviar el sgte mensaje y bala bla bla.. lo cual no viene a mi caso..

El segundo es usando ShellExecute.


Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long



Private Sub Command1_Click()
Call ShellExecute(Me.hwnd, "Open", "mailto:xxx@xx.com?bcc=&subject=Probando Mailto&body=PrimeraLinea%0ASegundaLinea
End Sub


Con la Segunda opcion no me sale ese mensaje molesto, pero me ejecuta, y me muestra el correo a enviar.. lo cual me resulta util porsi quiero agregar ams cosas al mensaje..

Problema 1:  Este metodo solo me permite enviar texto en linea y no lee los enters. porque quiero enviar el contenido de un texto box.. y solo sale en el mensaje la primera linea..


¿Posibles La soluciones?
1.- Intente concatenando cadenas:
"Linea1" & chr(13) & "Linea2"   --> No resulto
2.-Insertando caracter especial
Linea1%0ALinea2   --> Si resulto ;)

La clave esta en agregar el caracter "%0A" que reconoce como un enter.. mi proble es que deseo buscar todos los enter en un textbox y reamplazarlos por %0A. asi lo envio  en una variable y al fin el correo se muestra tal y como este en el textbox..


Porfa.. si alguien me echa ua mano o si conoce de un link sobre como puedo remplzar los enter de un textbox por %0A

O si conocen otra manera de enviar correo desde desde un textbox, pero sin que salgue ese mensaje de advertencia de envio..

saludos.

#51
Programación Visual Basic / Controles de Vb
14 Julio 2006, 12:12 PM
Hola, a todos.

LO sgte. e simplemente para consultarles que el vb que tengo instalado no me muestra el control:

SysMonthCal32 



Podrian decirme como activarlo, caragrlo o donde bajarlo.??


saludos,

#52
Hola a todos..

Veran tengo un lio con la consulta que acontinuacion muestro.
El campo Id_Cliente es autonumerico:
MiVariable=RsFactura.Id_Cliente  de tipo NUmerico
Estos arrojan error de no coinciden los criterios de busqueda:
RsClientes.Open "Select * From Clientes Where Id_Cliente = '"& MiVariable &"' ", DBConex, adOpenStatic, adLockBatchOptimistic

RsClientes.Open "Select * From Clientes Where Id_Cliente = '& MiVariable &' ", DBConex, adOpenStatic, adLockBatchOptimistic


Este esta ok,, porque estoy ingresando directamente el numero 1:
RsClientes.Open "Select * From Clientes Where Id_Cliente = 1 ", DBConex, adOpenStatic, adLockBatchOptimistic


Como veran en la primera consulta a MiVariable lo estoy poniendo como caracter, por ello me sale que no coinciden los criterios de busqueda..., pero en la segunda he quitado las comillas, supongo que es asi para poner tipo numerico, pero igual arroja error.


Sin embargo, cuando ingreso directamente el valor como en el ejemplo 3 que ingrese 1 pues asi si resulta..



Les agredece que me denn una ayudida sobre como poner correctamente la parte de MiVariable..

Saludos
TheGhost(Z)
#53
Holas... me preguntaba si alguien sabe o conoce un sito para saber  como escanear fotografias del escanner predeterminado...


Lo que quiero hacer simpleme.. solo un picture donde se pondra la imagen y un commandbutton para escanear..



saludos..
#54
Programación Visual Basic / Treeview
19 Abril 2006, 11:50 AM
Amigos, tengo un problema al selecionar los Nodos y Child de un treeview.

Tengo la sgte. rama:

+America
-Europa
          - España
          - Portugal
          - Francia
          - Italia


Tengos 02 TextBox
El primer textbox = guarda continente
El segundp texbox = guarda pais

He usado la sgte. sentencia que me permite poner el texto de lo que he selecionado. al texto1.
Text1.Text = TreeView1.SelectedItem.Text

Lo que deseo es saber si he selecionado un child me pase el texto al segundo textbox y su respectivo nodo al text1.

Por ejemplo:

Si elijo Portugal:
Text1 = Europa
Text2= Portugal


Si elijo amerca:
Text1=AMerica
Text2=""



Saludos,

#55
Hola amigos, estuve testeando el sgte. codigo que permite ejecutar un determinado *.wav

' En la parte de declaraciones del fomulario
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_NODEFAULT = &H2
Const SND_ASYNC = &H1   

' Command1. click

Dim X As Long
X = sndPlaySound(App.Path & "\aceptar.wav", SND_SYNC Or SND_NODEFAULT)



Mi problema es que cuando doy click en aceptar el sonido.wav se ejecuta, pero los procedimientos que hay en el interior del command1 no se ejecutan hasta que termine el wav.

Estonces mi pregunta es como puedo hacer para que cuando de click en aceptar el sonido se ejecute, pero como sonido de fondo y continue con los procedimientos que hay como una suma simple por ejemplo..

He puesto un sonido.wav de 3 minutos, por ejemplo, en el load de mi form y el formulario no carga hasta que termine de tocar todo el sonido.wav.

Espero me entienda.. ayuda por favor sugerencia,

saludos
Pedro Jeri
#56
Hola, favor si me podrian decir como puedo hacer para saber si un archivo existe en un determinado directorio.

estuve  probando con esta:
Dim Ruta
Ruta= App.Patch & "C:fri.txt"

If Dir(Ruta, vbArchive) = "" Then
msgbox "no existe"
else
msgbox "si existe"
End IF



Estuve testeando hace meses por aqui que habia una sentencia mas o menos que era como: File.existe o algo parecido.

Favor si me podrian decir si..
#57
Programación Visual Basic / Controlar Key press
21 Febrero 2006, 11:59 AM
Hola. Si alguie sabe cual el código asccii de las teclas:

Spr:
Flecha Abajo:
Flecha Izquierda:
Flecha derecha:
Flecha Arriba:

Ejemplos:

Enter: = 13
Esc: = 27
Borrar atras: = 8

Saludos
#58
Hola a todos.

Estoy creando una applicacion con ListView. Es decir Tengo la Tablas Empleados y lo que hace es Cargar la tabla entera en el ListView.

Una vez cargada lo que no me sale o no se como hacerla es los gtes.

1.- Que una de las filas quede sompreado o selecionado. Es decir si cargo los cien registros seran cien filas. Pero si quiero que uno de las filas quede selecionado y se encuentra por ejemplo en la mitad o que cumpla un requisito.


Por ejemplo que el campo soldero sea=Si

Me preguntaba si me podrian dar una pista sugrerir . he probado con estos comandos.

Listview1.selecteimten(1).select

ListView1.SelectedItem.Bold ' pone en negrita los que esta selecionado.

BUeno es algo enredoso., en conclusion quiero que despues de cagar mi form y el listview. quede selecionado la fila donde su Edad = 42 quede selecionado. , por ejemplo,

Cualquier aporte es bienbenido,.

Saludos
Pedro Jeri

#59
Estimados:

Veran estoy haciendo un pequeño programilla y me he estancado en esta parque que ahora se los esplico.

Trabajo con tres tablas: Tabla1= Remitentes, Tabla2= Historial, Tabla3= Beneficiarios
Las tablas tienen los Sgtes. Campos:

Tablas: Campos
Remitentes: Nombre
Historial: NombreRemite, NombreBeneficiario
Beneficiarios: Nombre, Telefono

Campos: Contenido

Remite:                  Historial:                              Beneficiario
              NombreRemite: NombreBeneficiario   Nombre: Telefono
Pedro    Juan                     Ismael                        Ismael     4885017               
Juan      Pedro                   Eddy                           Eddy       4256984
Diego    Pedro                   Wiliams                     Israel       4259879
              Juan                     Israel                          Pepe        7755545
              Diego                  Pepe
              Diego                  Wiliams

Al hacer click en mi DataGrid1 debe mostrarse los nombres los que ya envie anteriormente y que estas estan guardas en la tabla historial. De manera que al dar clic en cada item  de los remitentes se muestren de la siguiente manera.
Pedro  ----> Eddy, Wiliams
Juan -------> Israel, Ismael
Diego----->  Pepe, Wiliams

Pues estimados, justamente me quede en la segunta tabla.

Osea hice una Consulta de la Sgte. Manera: Ejemplo con el item Pedro ok.

"Select * from Historial Where NombreRemitente="Pedro""

Conesto obtuve que mi datagrid1 Historial se ponga asi:
Pedro Eddy
Pedro  Wiliams

Pues he cogido a todos los que ya he enviado anteriomente que son: Eddy y Wilimas
Pero ahora debo hacer una consulta de la séte manera:

"Select * from Beneficiairos Where Nombre=Eddy, Wiliams"
PUES HE AQUI MI PROBLEMA (Nombre=Eddy, Wiliams"
Que no se que insertar para que me Selecione "N Beneficiarios"
Digo "N" porque Pedro podria enviar a Cochocientos beneficarios y de ahí mi pregunta

Talves se pregunten el porque no hago una consulta directamente de Remitentes a Beneficiarios y no estar entorpeciendome con la tabla Historial.

Pues veran lo que intento es que no se repitan ningun remitente y ningun beneficiario
Y tampoco se como lo aria directamente ...

Amigos les estare agradecido que me echen una sugerencia con este lio..

Saludos
Pedro Jeri
#60
Hola. Si alguien me puede ayudar con hacer una consulta SQL con variables.

Dim Tabla, Campo, TextoBusca As String

Tabla = "Empleados"
Campo="Nombre"
TextoBusca="Pedro"


Lo que deseo es mas o menos asi, pero no se como llevarlo a lo correcto:

Rs.Open "SELECT * FROM Tabla  where Campo = TextoBusca", DBConex, adOpenStatic, adLockOptimistic


He intentado con Solo la variable TextoBusca y funciona:
Rs.Open "SELECT * FROM  Empleados where Nombre = '" & Trim(TextoBusca) & "'  ", DBConex, adOpenStatic, adLockOptimistic


Pero lo he intentado haciendo lo mismo para todas las variables pero me arroja error Consulta Imcompleta
Rs.Open "SELECT * FROM '" & Tabla & "'  where '" & Campo & "' = '" & Trim(TextoBusca) & "'  ", DBConex, adOpenStatic, adLockOptimistic


Saludos
Pedro Jeri
#61
A todas las personas de este foro que siempre ayudan y sugieran a los que tengan una inquietud.

Veran, pues estoy dandome el tiempo de crear un Aplicacion simple con una base de datos en acces.

La base de datos, en acces, se encuentra en una "PC" llamado "Server" y que tengo otras 5 "PC's" que se llamaran, Cliente01, CLiente02,...... y Cliente05.

Mi Objetivo es que Las "PC's CLientes" obtengan datos de la Base de datos que se encuentra en la "PC Server".

Pues he probado con una simple aplicacion donde tengo la base de datos en acces que almacena:

Tabla: Empleados
Campos: Nombre, apellidos, cargo, telefono y direccion.

Pues he creado una simple aplicacion usando DATA's

Data1.BaseName
Data1.Recorset

Data1.AddNew
Data.Edit
Data1.Update

Etc, ect y ect. Es decir conexion permanente



Pues una ves ejecutado la aplicacion mis Textbox se cargan con los campos que quiero ya que estan enlazados a mi DATA

Pues luego compilo la aplicacion y la instalo en las 5 "PC's Cliente"

y al ejecutar puedo obtener los datos en las 5 "PC's Clientes" a la ves o al mismo tiempo

Pues llegue a lo que queria! Obtener datos de la Base de datos "Trabajo" que se encuentra en la "PC Server"

¡¡¡¡He aqui mi inquietud!!!!!

Si bien es cierto que he llegado a mi objetivo y bien por ello, pero a la ves siento una curiosidad sobre lo que estara pasando interiormente y de ahi a este tema.

1.- Me preguntaba si todas las PC's Clientes que estan conectadas a la base de datos "Trabajo" ¿habra algun problema?. Es decir si CLientes1 esta en el registro 5 y Clientes2 tambien esta en el registro 5, que estara pasando?

Sera correcto esto o talves luego de estar manipulando con la PC clientes1 y clientes2 llegue a estropear la base de datos. o supongamos que PC Cliente1 se le ocurre modificar el telefono del empleado Juan y, tambien, PC Cliente2 esta modificando el telefono del empleado juan.

¿Que ocurrira si ambos estan conectados a la base de datos con un DATA y modifiquen con:?

Data1.Recorsed.Edit

Simplemente digo: Habra algun problema o no pasa nada. Simplemete si Cliente1 cambia el telefono del empleado Juan por 3885017 y luego lo guarda con:
Data1.Recorsed.UpDate

Y despues cliente2 tambien cambia el telefono del empleado Juan por 3885017 y lo guarda. ¿no pasa nada, porque no ocurre ningun problema, porque si Cliente1 lo guarda pues cliente 2 tambien lo guarda ensima y ya?..

Por todo ello pensaba probrar de la siguente manera mediante:

Cn.Open ("etc, etc, etc=" \\SERVER\D\Trabajo.mdb")
Rs.Open "select *  from Empleados ", Cn, etc, etc, ect etc


Primero abro la base de datos:
Tomo los datos que necesito
cierro la base de dato

Si trabajara de esta manera creo que no tendria problemas, ya que si CLiente1 se conecta a la BD, pues para cuando cliente2 se conecte a la BD encontrara cerrara la BD y podra comunicarse sin ningun problema. Y asi sucesivamente.

Pues asi todas las "PC clientes" estaran trabajando solo con tados obtenidos y no como el caso anterior que siempre estaba conectado a la BD mediente un DATA.

Pero tambien pensaba lo tedioso que es este segundo caso:

1.- Para empezar si tengo mil registros, pues estaria conectandome ala BD y cargar a mi aplicacion en un tabla temporal los mil registros. y para cada tabla seria lo mismo. tedioso, no?.

2- Cada ves que modifique un dato tendria que conectarme a la BD, guardar el dato modificado y cargar nuevamente los datos en una tabla temporal de mi aplicacion y desconectarmen de la BD para que los demas PC Clientes se conecten y no me encuentren cotilleando ahi y producir un posible error. Aparte de ello si despues de haber modificado el dato los demas "PC Clientes" no se enteraran de lo modificado hasta que se conecten a la BD y carguen los datos nuvamente, ¿no?.


Veran amigos todo lo que escribi este desde mi punto personal:

De ahi mi inquietud hacia uds. para que me saquen de esta duda: simplemente espero sugerencias o como uds. ya saben de estas cosas.

02 simples preguntas hacia uds.

1.-  ¿Si utilizo el primer caso habra algun problema como pienzo o no pasa nada y lo dejo asi?

2.- ¿Si el primer caso es incorrecto, seria recomendable tomar el segundo caso de abrir y cerrar la BD inmediatamente o existe otra manera?

Saludos,
Pedro Jeri

#62
Hola amigos.. Aqui como siempre molestandolos.

Tengo un problemilla al guardar datos. Bueno, no exactamente al guardarlos, sino al guardar un dato despues de modificar por un dato en balnco.

Ejemplo:

Set Cn = New Connection
Set Rs = New Recordset
Cn.Open ("Provider=Microsoft.Jet.OLEDB.4 .......... ect, etc")
Rs.Open "select *  from Remitentes ", ........ ect, ect y etc

With Rs
.Find "CodRem='" + Trim(Text1.Text) + "'"
.Fields(2) = Text2.Text    'Telefono de casa
.Fields(3) = Text3.Text    ' Telefono de trabajo
End With
Rs.Update

Rs.Close
Cn.Close


Bueno al inicar:
Telefono de casa     = 3885017
Telefono de trabajo = 4240674

Lo que pasa es que quiero modificar que ya no tenga el telefono de trabajo: es decir el valor del text3.text = ""

Pues al momento de guardar no guarda los cambios. porque sucede eso.

Pero si cambio de numero si se modifican los datos

Pues segun veo que si cuaalquier de mis valores es igual a vacio y mi registro tiene dato. no puede sobreescribirla, pues porqeu no hay dato que ingresar. Eso entiendo.

Pero si en el registro hay un dato=5 y modifico por otro dato=6 pues si puede cambair esos datos..

He intentado poniendo de que si eldato esta vacia pues sea igual a " " (un espacio). asi sobreescribe el dato del registro por " " (un espacio)... pero eso no lo veo tedioso y molesto ademas si quiero modificar un dato por nada pues deberia borrar el dato del registro simplemente.

Porfa.. si me podrian sugerir o si conocen de alguna otra sentencia ...

Atte,
Pedro Jeri
#63
Hola a todos nuevamente.

Verais mi objetivo es abrir una tabla y ubicarme en una registro determinado.

Es decir ubicarme en la fila que dicho dato sea igual a mi variable. Mi problema es como funciona consultar aparir de una varibale. Porque no me sale con variable. Pero ingresando el dato directamente no tengo ningun problema.

Ejemplos de lo que hice:

#### Esta No funciona, porque es con variable  (ID)####

Dim ID As String * 6
ID= ListView1.SelectedItem.ListSubItems(1)       ' ListView1.SelectedItem.ListSubItems(1)= PEJE05


Cn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\bdraicesDATA.mdb")
Rs.Open "select *  from Remitentes WHERE CodRem =
ID order by CodRem", Cn, adOpenDynamic, adLockOptimistic

##### Pero esta si funciona porque no uso ninguna variable, sino ingreso el dato directamente #####

Cn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\bdraicesDATA.mdb")
Rs.Open "select *  from Remitentes WHERE CodRem = '
PEJE05' order by CodRem", Cn, adOpenDynamic, adLockOptimistic

#64
Hola amigos. aqui nuevamente

Estoy liado con restar dos tiempos no fechas please

Me explico:

Hora actual   4:55:01 pm
Hora restada 9:55:01 am

Pues siendo las 4:55:01 pm como lo hago para restarle 7 horas y que me de resultado de 9:55:01 AM

He intentado usando mid()

es decir seprandolas texto por texto_
y simplemnete restarle al primero.

Es obvio que se puede hacer restando cada carater segun vaya cambiado el tiempo y con un timer actualizando los segundos, minutos y la hora.

Pero para no liarme primero decidi preguntaar a vods. que si existe alguna funcion que me permita hacer directamente eso:
algo asi como las fechas:  (fecha())-(fecha()-7)

Si no hay funcion alguna pues nada...

Gracias de antemano.
Pedro Jeri
#65
Hola estimados.


Pues tengo un form con un Toolbar y con susrespectivos imagenes y nombres.

Pero como puedo poner esa raya separadora que separa a lo de otros tipos.

Ejemplo del OuttLook

Correo nuevo  Rsponer Rsder Reenviar (Barra)  Imprimir eliminar (barra)  Envair y reci (barra)

Ven?

Esa barrita simple que se muetra y separa por grupos.

Saludos

Pedro Jerí
#66
Hola amigos.

Saben desde hace unos dias estoy tratando de ubicar el tipo de DataGrid que se utiliza en el Outlook Express.

E intentado utilizando el tipo Microsoft dataGrid 6.0  pero no es igual al de Outlook Express, porque la bara de desplazamiento vertical es entre cortada.

Mi pregunta es como obtengo un data grid similar al de Outllok express. esa data o cuadro donde se almacenan en varias columnas y filas los mensajes entrantes, salientes, elimindaas, etc.

Saludos

Pedro Jerí
Madrid-España
#67
Hola, a todos.

Me gustaría saber como desactivar el click derecho del escritorio, editando el registro de windows (regedit).

Esta es la clave: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"NoDispCPL"=dword:00000001

Quiero hacer este mismo procedimeinto, pero desde Visual Basic:  ;D

Solo, tengo problema con el tido DWORD

Miren aquí tengo un ejemplo, pero del tipo DATO, para que se ejecute un programa al iniciar windows, en este caso el Exel:

***** aquí las declaraciones generales *****
'Autor: TheGhost(Z)
'E-mail: jericangana@yahoo.es

Const REG_SZ = 1
Const HKEY_CURRENT_USER = &H80000001

' Permite Abrir, Ingresar y Cerrar una clave
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

******** aquí un command button *******
Private Sub Command1_Click()
Dim strString As String

strString = "C:\Archivos de programa\Microsoft Office\Office\EXCEL.EXE"
' llamamos la funcion savestring
SaveString HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", "excel", strString
MsgBox ("Programa ingresado el registro run"), vbInformation
End
End Sub

******** aquí la función SaveSrtring ********

Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String)
Dim Ret
    'Crea una nueva llave
    RegCreateKey hKey, strPath, Ret
    'salva el contenido de la llave
    RegSetValueEx Ret, strValue, 0, REG_SZ, ByVal strData, Len(strData)
    'cierra la llave
    RegCloseKey Ret
End Sub


Porfavor. Si alguién me puede ayudar con el tipo de dato DWORD que necesito para la clave NoDispCPL que es para desactivar el click derecho y así no me esten tocando la configuracion del escritorio..  :'(

Saludos

Lima-Perú