|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - ebolo
151
« en: Lunes 16 de Febrero de 2004, 10:48 »
He comprobado que el link que hay en el doc no funciona. Lo adjunto en este post con un ejemplo de uso. Saludos.
152
« en: Sábado 14 de Febrero de 2004, 14:40 »
Hola Brroz. Es un control activex: systray.ocx; pongo una información de él. ---------------------- Con este control pueden crearse aplicaciones que permanezcan ocultas al usuario y solo muestren in Icono en la Región del Sistema, al lado de la hora, el altavoz del sistema, el administrador de telefonía, etc, y solo pinchando en éste Icono la aplicación sea visible.
Para su funcionamiento no son necesarias muchas propiedades: -Intray: activa o desactiva su funcionamiento, sus valores posibles con True/False. - TrayIcon: Icono que se mostrará en la Barra de Tareas. - TrayTip: mensaje que se mostrará al usuario si este deja el ratón sobre el Icono.
Tampoco posee muchos eventos: -MouseDown: puede usarse para mostrar un menú al pulsar el botón derecho. -MouseUp: controla cuando un botón del ratón se deja de pulsar. -MouseMove: indica que con un botón presionado, el usuario mueve el Icono. -MouseDblClick: cuando el usuario realiza doble click sobre el Icono, siver para mostrar una página de propiedades, etc. Este tipo de aplicaciones puede implementar un temporizador (Timer) para ejecutar, comprobar, etc una tarea en un período de tiempo determinado o para determinar el estado de una tarea, como por ejemplo el estado de una conexión telefónica, etc, también puede usarse para implementar un acceso rápido a alguna parte de una aplicación que sea de mucha utilidad, etc. ----------------------- ¿Hay algún otro control que haga lo mismo y pueda apagar el PC sin que tener que cerrar la aplicación?. He comprobado que no es por el Timer, sino por la aplicación que está activa. He dejado adjunto un doc que tiene un link donde bajarlo y como usarlo. Saludos.
153
« en: Viernes 13 de Febrero de 2004, 20:26 »
Hola. Tengo hecha una aplicación, puesta en inicio, que usa el componente systray para dejarla activa en la bandeja de sistema. Esta aplicación tiene un timer que cada 1 segundo comprueba si se ha creado un archivo en una ruta y poder realizar una serie de acciones. El problema está en que si tengo la aplicación en marcha no me deja apagar el pc, y no me interesa decir como se cierra para evitar problemas por cerrarla, se supone, sin querer. ¿Es normal esto?. Hay alguna otra manera de poner la aplicación en la bandeja de sistema y no me cree esa problema; ó el problema es por el timer?. Saludos y gracias de antemano.
154
« en: Miércoles 11 de Febrero de 2004, 13:07 »
Hola. Para los que quieran tener el Kodakimg en wXP, teniendo acceso a un w2000, dejo un documento adjunto que explica como instalarlo en wXP. Saludos.
155
« en: Miércoles 4 de Febrero de 2004, 16:34 »
Hola rechy. Yo creo con sólo esto ya está: Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii < 48 Or KeyAscii > 57 Then MsgBox "Pon sólo nº" End Sub Saludos.
156
« en: Martes 3 de Febrero de 2004, 10:47 »
Gracias Brroz por tu comentario. El problema está en que quiero automatizar una copia del registro para cuando no uso yo el pc. Ayer me tocó volver a instalar el w2000 y el servipack encima del que ya tenía y volvió a funcionar. Instalaron y desisntalaron una aplicación y dejó de funcionar bien el w2000, por lo que pude comprobar había cosas raras en el registro.
Entonces la idea es hacer un program que puesto en inicio me haga una copia del registro al arrancar el windows. Con w98 y w Xp no hay problemas porque las hace automáticamente, pero con w2000 no he encontrado la herramienta para automatizarlo.
El SCANREGW, por lo que he visto, es una herramiento de w98 y WMe.
Saludos.
157
« en: Lunes 2 de Febrero de 2004, 19:20 »
Hola. ¿Es posible hacer un programa en VB que haga un backup del registro de windows?. He visto la api que hay para el registro pero no sé si alguna de ellas lo permite hacer; estas son las que he econtrado:
- Declare Function OSRegOpenKey Lib "advapi32" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpszSubKey As String, phkResult As Long) As Long
- Declare Function OSRegCreateKey Lib "advapi32" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpszSubKey As String, phkResult As Long) As Long
- Declare Function OSRegCloseKey Lib "advapi32" Alias "RegCloseKey" (ByVal hKey As Long) As Long
- Declare Function OSRegDeleteKey Lib "advapi32" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpszSubKey As String) As Long
- Declare Function OSRegEnumKey Lib "advapi32" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal iSubKey As Long, ByVal lpszName As String, ByVal cchName As Long) As Long
- Declare Function OSRegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpszValueName As String, ByVal dwReserved As Long, lpdwType As Long, lpbData As Any, cbData As Long) As Long
- Declare Function OSRegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpszValueName As String, ByVal dwReserved As Long, ByVal fdwType As Long, lpbData As Any, ByVal cbData As Long) As Long
- Public Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA" (ByVal hKey As Long, ByVal lpFile As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Seguramente de usar alguna sería una de las 3 últimas pero no sé muy bien que es lo que hacen.
Saludos y gracias de antemano.
158
« en: Viernes 30 de Enero de 2004, 18:56 »
Solucionado. llevo todo el día con ello y la cabeza echa un bombo. Tenía puesta la línea de "respuesta=MSComm1.Imput" fuera de la condición: If MSComm1.InBufferCount >= 8 Then y tenía que estar dentro de la condición. Eso me producía el error de la matriz, porque sólo me vale el input que tiene 8 byte, y estaba igualando "respuesta=" a cualquier valor del input. Saludos.
159
« en: Viernes 30 de Enero de 2004, 18:24 »
Después de comprobar con Ubound, he visto que no me coge bien el input, me da valor 1 cuando debiera ser 7, pero no sé porque es porque en un programa me lo hace bien y en el otro, que sólo cambia en principio el diseño, no. Saludos.
160
« en: Viernes 30 de Enero de 2004, 17:11 »
Nada que no hay manera, no sé donde fallo, yo te entiendo carlosjrey lo que me comentas; le resto a la variable respuesta(q-1) porque es de tipo byte, y el primer valor que llega con el MSComm1.input es el (0). Lo he metido en un módulo por separar la respuesta y tratarla, pero me sigue dando el mismo error. He vuelto a modificar un poco el código: ------------------------------------ Private Sub Command6_Click() Dim mensaje Dim tempo As Double Dim respuesta() As Byte If MSComm1.PortOpen = False Then MsgBox "Abrir puerto primero" Exit Sub End If
If Text1.Text <> "" Then mensaje = "" checksum% = (Val(Text1.Text) + Val(Text4.Text) + 0 + 0 + 0 + 63) Mod (256) 'MsgBox checksum% mensaje = Chr$(Val(Text1.Text)) & Chr$(Val(Text4.Text)) & Chr$(0) & Chr$(0) & Chr$(0) & Chr$(63) & Chr$(checksum) & Chr$(13) MSComm1.Output = mensaje End If
tempo = Timer
Do respuesta = MSComm1.Input 'On Error GoTo errorp If MSComm1.InBufferCount >= 8 Then MsgBox MSComm1.InBufferCount Call Tramitarespuesta(respuesta()) End If Loop Until (Timer - 5) > tempo End Sub
Sub Tramitarespuesta(respuesta) Dim X As Integer ReDim respq(1 To 8) As Long Dim mensrec As String, tempo As Double For X% = 1 To 8 MsgBox Form1.MSComm1.Input respq(X%) = respuesta(X% - 1) If (X% = 3) Or (X% = 4) Or (X% = 5) Then respq(X%) = Val(Hex$(respuesta(X%))) End If MsgBox "respq(" & X% & "):" & respq(X%) mensrec = mensrec & respq(X%) Next X% Text3.Text = Text3.Text & mensrec If (tempo) > (Timer + 5) Then tempo = Timer End If Text3.Text = Timer Exit Sub errorp: If Err.Number <> 0 Then MsgBox "Error" Resume Next End If End Sub ------------------------------------------------
Saludos y gracias por la ayuda.
161
« en: Viernes 30 de Enero de 2004, 13:39 »
Gracias carlosjrey por la rápida respuesta. He modificado el código pero me sigue dando el mismo error.
--------------------------------------------- Private Sub Command6_Click() Dim mensaje As String Dim respuesta() As Byte Dim q, t As Integer ReDim respq(1 To 8) As Long Dim mensrec As String, tempo As Double
If MSComm1.PortOpen = False Then MsgBox "Abrir puerto primero" Exit Sub End If
If Text1.Text <> "" Then mensaje = "" For t = 1 To Len(Text1.Text) Step 2 mensaje = mensaje & Chr$(Mid$(Text1.Text, t, 2)) Next t MSComm1.Output = mensaje End If
tempo = Timer
Do respuesta = MSComm1.Input 'On Error GoTo errorp If MSComm1.InBufferCount >= 8 Then MsgBox MSComm1.InBufferCount 'Call tramitarespuesta(respuesta) For q = 1 To 8 respq(q) = respuesta(q - 1) If (q = 3) Or (q = 4) Or (q = 5) Then respq(q) = Val(Hex$(respuesta(q))) End If MsgBox "respq(" & q & "):" & respq(q) mensrec = mensrec & respq(q) Next q Text3.Text = Text3.Text & mensrec End If If (tempo) > (Timer + 5) Then tempo = Timer End If Text3.Text = Timer Loop Until (Timer - 5) > tempo Exit Sub
errorp: If Err.Number <> 0 Then MsgBox "Error" Resume Next End If End Sub -------------------------------------------------
Saludos.
162
« en: Viernes 30 de Enero de 2004, 11:48 »
Hola. Aquí os pongo un código que me está dando error nº 9 de subindice (el subindice está fuera del intervalo) y no sé porque es. Esto mismo, con otros nombres de variables, lo tengo puesto en otro programa y no me dá error. ----------------------------------------- Private Sub Command6_Click() Dim mensaje As String Dim respuesta() As Byte, q As Integer Dim respq(1 To 8) As Long Dim mensrec As String, tempo As Double If MSComm1.PortOpen = False Then MsgBox "Abrir puerto primero" Exit Sub End If If Text1.Text <> "" Then mensaje = "" For q = 1 To Len(Text1.Text) Step 2 mensaje = mensaje & Chr$(Mid$(Text1.Text, q, 2)) Next q MSComm1.Output = mensaje End If tempo = Timer Do resp = MSComm1.Input 'On Error GoTo errorp If MSComm1.InBufferCount >= 8 Then MsgBox MSComm1.InBufferCount 'Call tramitarespuesta(respuesta) For q% = 1 To 8 resp(q%) = respuesta(q% - 1) '----AQUÍ ME DA EL ERROR If (q% = 3) Or (q% = 4) Or (q% = 5) Then resp(q%) = Val(Hex$(respuesta(q%))) End If MsgBox "respq(" & q% & "):" & resp(q%) mensrec = mensrec & resp(q%) Next q% Text3.Text = Text3.Text & mensrec End If If (tempo) > (Timer + 5) Then tempo = Timer End If Text3.Text = Timer Loop Until (Timer - 5) > tempo Exit Sub
errorp: If Err.Number <> 0 Then MsgBox "Error" Resume Next End If End Sub ----------------------------------------------- Si sabeis que puede ser me podriais echar una mano. Saludos.
163
« en: Jueves 29 de Enero de 2004, 08:30 »
Hola a todos. Todos los días se aprende algo. Brroz: --------------------------------- Private Sub Form_Resize() If Me.WindowState = 1 And Not indAllowResize Then ........ --------------------------------- ¿No debería ser:? If Me.WindowState = 1 And Not indAllowMinimize Then ......... ---------------------------------- Saludos.
164
« en: Martes 27 de Enero de 2004, 20:11 »
Lo unico que se me ha ocurrido es lo siguiente:
-------------------------------------- Private Sub Command1_Click() Timer1.Enabled = True End Sub
Private Sub Command2_Click() Timer1.Enabled = False End Sub
Private Sub Form_Load() Timer1.Interval = 50 End Sub
Private Sub Timer1_Timer() If Form1.WindowState = 1 Then Form1.WindowState = 0 End Sub --------------------------------------- Pones 2 botones command y un timer. Por lo que he comprobado usar las propiedades del form "Maxbutton" y "Minbutton" no se puede dentro de código porque da error. Saludos.
165
« en: Martes 27 de Enero de 2004, 11:12 »
Hola de nuevo. Te dejo adjunto un ejemplo para que te funcione con wXP y access2000. Mirar el leeme.txt antes. Me ha funcionado sin problemas; usa un método papa ver visualización por pantalla y otro para imprimir el informe. Es la única forma que le he hecho funcionar bien. Saludos.
166
« en: Martes 27 de Enero de 2004, 09:33 »
EDITO: ya veo que se adelantado Brroz, que sabe mucho más que yo.
Hola de nuevo. Yo lo uso tanto con wXP como con w2000 y access97 y me funciona sin problemas; NO necesito tener abierto el access para que me muestre el informe. Eso me ocurría al principio y por eso le añadí: ---------------- Set ObjAccess = CreateObject("access.application.8") 'Si la base de datos fuera de access 2000 tendríamos que poner un 9, en vez de 8( que es para access 97). 'Abrimos la B.D. que nos interesa ObjAccess.OpenCurrentDatabase "BaseDeDatos.mdb" ---------------- Has probado a ponerle el 9 en vez de 10.
En cuanto a la Referencia del proyecto, yo creo que no depende del s.o. y SÍ del access que vayas a usar; pero en ésto no estoy seguro.
En cuanto a la consulta debes pasarle, si la fecha de nacimiento es campo Fecha, pues así:" [Fecha Nacimiento]=#" & format(TuvariableFechanacimiento,"dd/mm/yyyy") & "#" . Le sobra el "Select .........". Es decir al filtro se le pasa sólo el campo de la consulta por el que se quiere discriminar y su valor. Lo que puedes hacer para ver el filtro como te debe pasar al informe, es hacerte la consulta en access, ponerle en el diseño, el valor del criterio del campo con el que quieres discriminar la consulta, grabarla y lanzar el informe. Luego en el informe vas a propiedades y miras como está el filtro; y según esté es como se lo debes pasar.
Saludos y suerte. PD: yo no soy ningún experto, Si alguien del foro puede aclarar las dudas que han surgido creo que todos les estaremos agradecidos.
167
« en: Lunes 26 de Enero de 2004, 18:17 »
Hola Bopo. Pues supongo que si lo maximizas inmediatamente antes del msgbox con: Form1.windowstate=2 ó Form1.windowstate=0 te saldrá
Saludos.
168
« en: Lunes 26 de Enero de 2004, 18:14 »
Hola Bopo. Pues supongo que si lo maximizas inmediatamente antes del msgbox con: Form1.windowstate=2 té saldra.
Saludos.
169
« en: Lunes 26 de Enero de 2004, 14:35 »
Hola, te dejo un doc donde está el código de vb para lanzar un iforme de acces desde vb, aportado por Brroz y que yo completé sñolo un poco. Saludos.
172
« en: Lunes 12 de Enero de 2004, 13:35 »
Hola a todos. Por si todavía lo necesitas, te adjunto un archivo con varias fuentes true type de código de barras, que debes instalar en la carpeta Fonts del windows y directamente podrás usarlas cómo otro tipo de letra más. Es decir, si eliges ese tipo de letra directamente sale el código de barras según escribes.
Si lo que quieres codificar no es muy grande con el code39 tienes bastante, sino deberías usar un code128 ó ean128.
Saludos.
173
« en: Lunes 12 de Enero de 2004, 13:19 »
Hola aragonaledu. Te adjunto un archivo con un ejemplo en vb de como usar el MSCOMM. Saludos y suerte.
174
« en: Martes 30 de Diciembre de 2003, 08:09 »
Muchisimas gracias de nuevo Jonathan. Ahora ya lo tengo claro y puedo empezar a trastear. La página que me has puesto me aclara todas las dudas, de momento. Saludos y que tengais un buen fin de año.
175
« en: Lunes 29 de Diciembre de 2003, 15:56 »
Muchas gracias Jonathan. Estoy empezando a ver un poco de luz!!. Pero tengo muchisimas dudas, soy un aficionadillo a esto. Entonces mejor puerto paralelo. -Los 5 voltios que entra a los integrados vienen del pin que yo decida del puerto paralelo, entonces las salidas digitales del puerto paralelo (8 de registro de datos y 4 de control) es simplemente información que se manda a través de código, pero ¿por el mismo pin que le entra el voltaje?. -De cada una de las 32 salidas que obtenemos al final se puede conectar a un relé y mandándole un 1 a una salida ¿se activa el relé que tuvieramos conectado ahí?. -Si con las 8 salidas iniciales de momento tengo bastante para probar, no tengo integrados, ¿el código me sirve igual? pero sólo con las salidas S0 a S7. De momento con esto ya tengo algo con lo que estudiar y probar.
|
|
|