PREGUNTAS CONTESTADAS -

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  159 - MINIMIZAR CON "MINIMIZE TO TRAY"
Autor:  Mike79
Mi pregunta es la siguiente, estoy programando una aplicacion en Vbasic 5.0 para windbugs 95 que diga Virus95, upsss Windows95, y quisiera que mi aplicacion se minimizara con el ahora tan popular "minimize to tray", supongo tengo que llamar una dll externa, agradecere cualquier informacion al respecto, y si se puede algun programa de ejemplo que lo realice.
  Respuesta:  Diego Femenias
Hola, primero que nada, no me parece correcto que hables mal de Windows, para hacerlo es necesario algo mas de conocimientos del mismo que haber leido un articulito protohacker, y por lo que veo en tu pregunta (que me parece 100% razonable) no los tenes. O sea, es bueno que preguntes, pero no menosprecies a Windows sin motivo.

Como se hace, hay objeto, csystray.ocx, que deja el icono en el tray, tenes que darle la propiedad "InTray" en TRUE, y poner la propiedad del formulario "ShowInTaskBar" en FALSE.
  Respuesta:  Xavi
Colocar un icono en el tray es bastante facil.
El problema es si quieres que este icono sea sensible, es decir, que lo pulses y haga algo.
Para ello hay que ´Subclasear´ la ventana.
Como es bastante complicado te digo donde encontrar un programa de ejemplo.
www.planet-source-code.com, apartedo de VB, en el buscador que te saldra pon "systray" o "subclass"
SUERTE
  Respuesta:  Asdruval Velasquez
Tengo un Código de ejemplo de como se hace via Api de Windows. Aqui lo puedes descargar: resp159.zip

    Pregunta:  160 - UTILIZAR UNA BASE DE DATOS UBICADA EN UN AS/400
Autor:  Sigfrido
¿Como puedo utilizar con Visual Basic una base de datos remota ubicada en un AS/400 tipo DB2/400, y que tipo de conexion necesito?
Nota: Actualmente tengo tarjetas de comunicación sincronas SDLC.
Gracias
  Respuesta:  Antonio Gago
Dim Cnn as string
dim rs as ADODB.Recordset

Public Sub Main()

Cnn="Provider=IBMDA400;Data Source=192.168.1.1;User id='usuario';Password='pass';"
set rs = new adodb.recordset
rs.open "Select * from biblioteca.archivo where...."
while not rs.eof
list1.add rs("nombrecampo")
rs.movenext
wend
rs.close
set rs = nothing
end sub
  Respuesta:  cesar castellanos
puedes utilizar una conecxio odbc primero instala el drive de client access y configuara la ruta hacia la base de datos en este caso a lo mejor tendras que dirigirte hacia una biblioteca en particular luego en vb podras generar un data enviroment donde podras jalar los datos para luego hacer las sentencias sql que necesistes suerte.
  Respuesta:  José Benicio García Gómez
La manera más rápida y eficaz es usando una conexión tipo OLEDB, puedes usar la que trae el propio Client Access o yo por ejemplo uso la de Hit Software, y la verdad es que va muy bien.
  Respuesta:  Sebastian Door's
Podes usar ODBC para DB2 provisto por los clientes de comunicacion de (Client Access) de IBM, o si es una aplicacion mas grande y queres conexiones mas avanzadas podrias instalar un SNA Server que provee todo tipo de comunicaciones entre Mainframes y Windows NT.
  Respuesta:  InCaSaS
¿Utilizas algún tipo de emulación (tipo EXTRA, BOSSANOVA, etc))?
Echale, si puedes, un ojillo a mi JomPeich: http://www.geocities.com/BourbonStreet/Delta/3637/index.html
  Respuesta:  Gonzalo
Usa ClientAccess Version 3R1M3, puedes bajar la version beta en la pagina de IBM debe haber una liga de AS/400.

    Pregunta:  170 - ACTUALIZAR EL BITMAP DEL ESCRITORIO
Autor:  Jorge
Quisiera saber como puedo actualizar el Bitmap del escritorio desde VB 5.0, por ejemplo cada 5 minutos.
  Respuesta:  Jorge Serrano
Visita mi página http://www.ciudadfutura.com/visualbasic, en la que encontrarás un ejemplo para cambiar el fondo de Windows.
Haces una aplicación que se coloque en la barra de tareas (al lado del reloj) y con ShowTaskBar a False.
En la aplicación metes un Timer que se ejecute cada 300000 milisegundos, y dentro del evento Timer metes el código para cambiar el fondo de Windows.
Espero que te sirva.
Un saludo. :)

    Pregunta:  179 - NUMERO DE SERIE DE LA BIOS
Autor:  Florencio
Mi pregunta es la siguiente, vereis necesito hacer una función preferiblemente en Visual Basic, que me devuelva en unas string o una variable de tipo numerico, el nº de la bios del equipo en el que se está ejecutando, repito el de la bios, no el HDD ni el del sistema. Muchas gracias de antemano
  Respuesta:  Juan Manuel Ferrer
La solución la tienes en el WMI de microsoft. Esta utilidad viene incluida en Windows XP, pero para windows Me/9x, tienes que instalarla. La puedes conseguir en el sitio de microsoft.

Con WMi (Windows Management Intrumentation) le sacas todos los parametros a los dispositivos hardware.

Si deseas ver algunos ejemplos de como hacerlo, visita la pagina de Planet Source Code (www.pscode.com). y has la busqueda correspondiente.

El ejemplo que te da Luis Diez, No funciona en Windows XP, a menos que "Abras" los puertos correspondientes. De otro forma la aplicación se abortará.

Si quieres abrir los puertos, echale un ojo al sitio de SoftCircuits (www.softcircuits.com). Ahí podrás encontrar utilidades Freeware para que puedas abrir los puertos de la pc bajo Windows XP.
  Respuesta:  Luis Diez
Esta funcion nos devuelve la fecha de fabricacion.

Option Explicit

Private Declare Sub GetMem1 Lib "msvbvm50.dll" (ByVal _ MemAddress As Long, var As Byte)

Private Function GetBIOSDate() As String
Dim p As Byte, MemAddr As Long, sBios As String
Dim i As Integer

MemAddr = &HFFFF5
For i = 0 To 7
Call GetMem1(MemAddr + i, p)
sBios = sBios & Chr$(p)
Next i
GetBIOSDate = sBios
End Function
´Using
´Text1.Text = GetBiosDate
  Respuesta:  c&m
Yo es poco lo que se de Visual Basic. Pero por lo poco que conozco encuentro razonable que Visual Basic no pueda detectar cual es el número de serie de la BIOS, ya que Visual Basic es un software orientado básicamente a las Bases de Datos y no a la administración de Hardware y Software.
A mi parecer la solución debería ser :

1) Crear un programa en C, C++ o Assembler, que entregue el resultado que tu deseas en un archivo de text (.txt).
2) Ejecutar desde Visual Basic el programa creado en punto anterior.
3) Leer con Visual Basic el archivo de texto.
Según lo que he leido, con Visual Basic 5.0 se podría hacer lo que quieres, según algunos paper´s que he leido es como una mezcla de C++ y Visual Basic.

    Pregunta:  181 - INSTRUCCION PARA BLOQUEAR UN REGISTRO
Autor:  Eric
Soy un programador novato en Visual Basic 4 y necesito diseñar un sistema que utilice una base de datos en una red.
¿Qué instrucciones necesito aplicar para poder bloquear los registros en los momentos indicados (por ejemplo en las actualizaciones)?
Mandame un ejemplo de como utilizarlos, y bibliografia en donde pueda leer más del tema.
  Respuesta:  Pepo
Si estas utilizando el control Data, lo que tienes que hacer para bloquearlo es poner la propiedad
ReadOnly a True, o sea:
Data1.ReadOnly=True
Espero que te funcione, saludos.
  Respuesta:  Fernando Berenguer Doméne
Lo primero y más importante:
Si lo que quieres es desarrollar una aplicación para trabajar en red, no debes utilizar controles Data, porque bajarán muchísimo el rendimiento.  Crea Dynasets o Snapshots e indícales si los datos serán de lectura o de lectura/escritura, y especifícale el tipo de bloqueo que usarás, en las opciones de creación de Dynaset y Snapshot.  Otra opción son las intrucciones de OBDC, pero de recomiendo que empices probando lo sencillo y luego pruebes con el plato fuerte.
Mañana te daré un par de referencias que tocan el tema a fondo.
Para cualquier duda o aclaración tienes mi Mail.  No dudes en preguntar, se ahorra mucho tiempo.

Aquí te señalo un par de referencias sobre el tema.

Programación Cliente/Servidor con Visual Basic
Spencer Miller - Ed. Mc Graw Hill

Programación de bases de datos con Visual Basic.
Alfons González - Ed. Rama.

Estos dos libros me han ayudado mucho en estos temas.

De todas maneras, no olvides que el bloqueo es a nivel de página y no de registro.

    Pregunta:  188 - ENCADENAS UN PROGRAMA CON UNA APLICACIÓN EXTERNA
Autor:  Andrés
Como hago para encadenar un programa en Visual Basic con una aplicación externa como lo es programa Matlab, de tal forma que pueda utilizar algunas de las funciones que proporcionan Matlab dentro de mi programa en Visual Basic?
Otra pregunta: como leo y/o escribo a traves de los puertos usando una DLL de Visual Basic?
Me gustaria también que alguien me explicara el manejo de una targeta de adquisicion de datos, o si conoce bibliografia al respecto.
Gracias
  Respuesta:  mistaker47
Para comunicarte desde Matlab con VisualBasic puedes usar el protocolo DDE, en la ayuda de Matlab pone toda la información que necesitas. Con DDE puedes usar todo el rendimiento de Matlab desde tu aplicación VisualBasic; Matlab funcionara como un servidor.
  Respuesta:  Alejandro Lavarello
Para manejar directamente los puertos serie y paralelo del PC, te recomiendo la página: http://www.beyondlogic.org/, que trae drivers que funcionan en Windows 98 y NT/XP.
Si te interesa enviar texto a través del puerto serie, usando Visual Basic,
tal vez te sirva mi página:
http://www.geocities.com/ejemplo_mscomm/index.html
Suerte!
  Respuesta:  Ernesto Luis Mosquera
Desde Visual Basuic puedes ejecutar cualquier codigo matlab o usar sus funciones como lo haces facil mira el codigo pero primero debes hacer referencia a la libreria de matlab haciendo click enel menu proyecto-referencias y buscas donde diga matlab (Oviamente debe estar instalado el malab)

Dim Matlab As Object
Dim Vari As String
Dim Resultado As String
Dim Res As Integer
Genie.Play "Processing"
Set Matlab = CreateObject("Matlab.Application")
Matlab.Execute ("syms S;")
Vari = "ilaplace(" + TxtNumerador.Text + "/(" + TxtComunDivisor.Text + "))"
TxtSol.Text = Matlab.Execute(Vari)
esten ejemplo ejecuta la transformada inversa de laplace.

Espero con esto poder ayudarte.
  Respuesta:  carlos echavarria
Si el problema que tienes es para leer y escribir al puerto paralelo deel pc, esto lo solucionas facil con la libreria inpout32.dll que encuentras en http://www.zona84.com/vb/inpout.htm yo la use para comunicarme con un circuito que hice, o si es con el puerto serie, visual basic proporciona el control mscomm con el cual lees y escribes a este puerto. Espero te sirva si te interesa yo tengo la libreria y el .bas para llamarla, escribeme.
  Respuesta:  InCaSaS
En principio, si MatLab lo permite (lo desconozco, ya que no he trabajado con MatLab)., puedes realizar un enlace OLE 2.0. Es decir, podrías trabajar con MatLab desde Visual Basic como si de un Componente ActiveX se tratase.
¿Como puedo saber si me lo permite?. Muy sencillo: Presionas [Ctrl]+[T] desde edición en VB (visualizar los componentes OLE que puedo insertar en mi aplicación), si si te aparece alguna referencia a MatLab, intenta insertarla en tu proyecto. El resto, son referencias OLE que deberían venir referenciadas en el manual de MatLab.
Echale, si puedes, un ojillo a mi JomPeich: http://www.geocities.com/BourbonStreet/Delta/3637/index.html
  Respuesta:  LuisR
No se si ya has resuleto con enlaces ole como te indicaron o de otra forma, si quieres te puedo enviar un código con el que me ´entiendo´ con la calculadora de Windows (la abre, la pone en forma estandard si está como cientifica, puedes operar con ella y luego copia el resultado en un TextBox), aunque esto seguramente sea mucho mas sencillo de lo que tu pretendes quizás te pueda ayudar.

    Pregunta:  189 - RELLENAR UN FORMULARIO DE WORLD
Autor:  Luis
Desde VB5.0 quiero rellenar un formulario en World (previamente hecho) compuesto de campos que quiero actualizar con la base de datos que estoy trabajando en VB. ¿Puedo ordenar comandos al World desde VB?
  Respuesta:  Jorge Morales
en un fichero WOrd o a partir de una plantilla puedes tener n campos para rellenar, el orden relativo de ellos es de la siguiente forma, el primer campo formulario que aparece desde arriba hacia abajo le corresponde a 1 y asi sucesivamente.

Luego a través de código haces esto

dim appl as Object
set appl= createobject("word.application")
appl.documents.add "designa viatico.dot"
with appl.activedocument.formfields
.item(1).select
.item(1).result= txtNombreCliente.text
end with

y asi sucesivamente
si tienes problemas con la sintáxis a utilizar declara una variable de tipo application

y declara los eventos y demases y aparecerán la opciones que tienes disponibles, con nuestro objeto previo no funciona así porque es de tipo Object.
  Respuesta:  Gilberto De Campos
Lo que estas tratando de hacer me parece muy particular, lo primero que te recomendaria es evaluar el porque tienes que usar un archivo de word y no usas una interface completamente visual basic o richtext.
Pero me imagino que ya evaluastes esto y que no hay otra salida que usar el archivo de word, debes insertar el control OLE ligandolo al archivo donde esta el formulario, activar la aplicación y barrer la base de datos enviando caracter por caracter a través del commando Sendkey, si mantienes la ventana donde esta la aplicación en primer plano podras ver como si estuvieras tecleando en cada uno de los campos.
Espero que te sea de ayuda y puedes contactarme cuando quieras...
Saludos
  Respuesta:  Tomás Bradanovic
Si tienes instalado Office 97 estás listo, creas el formulario en el documento de Word, luego entras a "macros" "editor de visual basic" y tendrás el Visual Basic 5.0 para Aplicaciones que permite programar todo tipo de características en Word, Excell o Power Point.
Armas el formulario para ingreso de datos al cual le incluyes un botón para "llenar el formulario", para aprender las instrucciones y sintaxis del VBA es muy fácil, entras a "macros" y "grabar macros" haces todas las operaciones "a mano" y las grabas, luego podrás ver el código resultante en VBA. En mi página www.freeyellow.com/members5/tombrad/ tengo una introducción al tema. Si quieres un ejemplo ya hecho te lo puedo enviar sin problemas

    Pregunta:  191 - MODIFICAR EL CONTENIDO DE UNA COLUMNA DE UN DBGRID
Autor:  Arquimedes
Estoy programando con Visual Basic 4.0 y tengo un problema a la hora de modificar en tiempo de ejecución el contenido de una columna de un DBGrid. Lo he intentado en varios eventos (BeforeInsert, BeforeUpdate, etc.) pero en todos los casos me da el error 438: El objeto no soporta esa propiedad o método. ¿Es que no se puede modificar por código una columna del DBGrid?. La documentación dice que si, pero yo no lo he conseguido. En cambio, si que puedo acceder a ella para imprimirla desde la ventana de debug
  Respuesta:  VICTOR HUGO PEREZ APONTE
Hay varias GRID, posiblemente a la Grid que tu te referes es a MSFLEXGRID, o su prima MSHFLEXGRID, estas grid son solamente para lectura, nunca podras modificar, eliminar o agregar registros directamente sobre ella.
Existe otra GRID, la cual puedes realizar cualquier tipo de operacion de actualizacion y esa grid es DATAGRID, yo la estoy utilizando precisamente por eso, porque puedo actualizar los registros atraves de ella. En los codigos fuentes de la web del programador, busca minusiosamente unos programas echos con DATAGRID, Y OBSERVA EL CODIGO FUENTE PARA QUE LA PUEDAS TRABAJAR
  Respuesta:  Marcelo Sanhueza
EN realidad el modificar un dato o registro de dbgrid, es poco usual, cuando quieras usar grillas ocupa el msflexgrid que es mucho mejor y pedes manejar las columnas con:
MSFLEXGRID.COL= 1 ' hace mencion a el numero de la coumna que quieres modificar y las filas MSFLEXGRID.ROW= 1 hace mencion al numero de la fila que quieres modificar
  Respuesta:  Alex Abreu
Bueno cada vez que yo quiero actualizar un dbgrid para ver los datos devueltos por la condicion lo que hago es:

mibasededatos.refresh
dbgrid1.resfresh
  Respuesta:  Elisa Basanta
Si el objeto contiene datos de más de una tabla no te deja actualizarlo. Yo tengo muy poca experiencia en VB y me da el mismo error con un control llamado vaSpread.
Lo único que he visto es que si el objeto contiene datos de una sola tabla, si me deja actualizarlo.
Set v_dynaset = v_base_datos.dbCreateDynaset(Obtener_Sql(33), ORADYN_ORAMODE)
v_dynaset.dbmovefirst
For i = 1 To vaSpread1.MaxRows
vaSpread1.Row = i
vaSpread1.Col = 6 (modificada si/no)
If vaSpread1.Value = True Then
vaSpread1.Col = 4
v_dynaset1.dbEdit
v_dynaset1("codigo").Value = vaSpread1.Value 'mete nuevo codigo
v_dynaset1.dbUpdate
End If
Next i
No es la mejor solución pero es la única que yo he visto hasta ahora.
  Respuesta:  Obelix
Este segmento de codigo lo tengo insertado en un evento Activate de un form, y funciona perfectamente, echale un vistazo!. datPrimaryRS es un control data insertado en el formulario y al cual está asociado el dbgrid nombres es un recordset que apunta a una base de datos cobol.
While Not datPrimaryRS.Recordset.EOF
codtarj = CLng(datPrimaryRS.Recordset.Fields("Codigotarjeta").Value)
nombres.FindFirst "[CodFicha] = " & codtarj
If Not nombres.NoMatch Then
nom = nombres.Fields(1).Value
Else
nom = "desconocido"
End If
datPrimaryRS.Recordset.Edit
datPrimaryRS.Recordset.Fields("Trabajador").Value = nom
datPrimaryRS.Recordset.Update
datPrimaryRS.Recordset.MoveNext
nombres.MoveFirst
Wend
  Respuesta:  Fernando Berenguer Doméne
Yo estuve intentándolo unos dos meses, haciéndole mil y una pruebas.  Si te funciona con el ejemplo que te ha pasado el colega Obelix no busques más.  Yo tuve que pasarme a Visual Basic 5.0.  Al parecer la versión 4 salió con el control DBGrid sin posibilidad de modificar los datos que había en las celdas, desde código.  O al menos eso me dijeron a mí.

    Pregunta:  192 - CERRAR LOS DEMAS PROGRAMAS DESDE UN PROGRAMA EN VB
Autor:  Jhorbam
Hola, estoy realizando un programa en VB50, el cual tiene una función parecida al administrador de programas, pero con la diferencia que a un determindo tiempo debe cerrar los programs que se encuentren funcionando y apagar el equipo. La ejecución de los programas y el apagado del equipo estan listas, pero el PROBLEMA radica en que necesito una función que sepa que programas se estan ejecutando, y si estos solicitan salvar o realizar una función antes de salir la realice incluyenco programas de DOS (ejemplo: si el Windword se está ejecutando y al salir pregunta por guardar los cambios el programa automaticamente debe realizar ese tarea para cerrarlo). si desean que especifique más acerca de esto. hagan sus preguntas
  Respuesta:  Jorge
Holas, en VB60 al menos se encuentra el comando shell, el cual te permite manejar aplicaciones de Windows, ahora no recuerdo la sintasis, pero es algo asi <var> = shell(Ruta\Aplicacion.exe), e var da un valor de retorno que identifica internamente el procedimiento que ejecuto el shell, ademas con el comando SENKEYS puedes mandar pulsaciones del teclado predeterminadas, puedes manejar ENTER, TAB, CONTROL, FLECHA ARRIBA, etc, incluso puedes tipear textos en los cuadros de texto de "Guardar Como"... en todo caso echale una mirada a la ayuda de estos comandos talves te sirvan... espero... ;P
  Respuesta:  Paul Guerra
Probá usando las siguientes APIs:

EnumWindows - Por alguna razón no está en el Visor de APIs
GetWindowThreadProcessId
PostQuitMessage (o TerminateProcess para cerrar el programa sin preguntar nada)
SendMessage (para confirmar el mensaje 'desea guardar...')
  Respuesta:  Gerardo A. Mendoza
Hola:
Apenas estoy aprendiendo a programar el VB (y estoy empezando con la 4), pero héchale un vistazo a el sitio de EL GUILLE, es un buen lugar sobre VB.
http://guille.costasol.net/indice_cf.htm
Respecto a tu duda revisa la sección de API.

    Pregunta:  206 - ANULAR EL SALTO DE PÁGINA EN LAS IMPRESIONES
Autor:  Iñigo
He realizado una aplicación y quiero que imprima UNA UNICA LINEA ante determinados eventos y que no haga salto de página (supongo que hay que utilizar alguna API pero no sé cual)
He hecho el ENDDOC pero es lento (si solo espera imprimir una linea) y ademas hece salto de página por cada linea escrita.
  Respuesta:  Enrique Gondra
Se puede imprimir utilizando el puerto paralelo con tres funciones de la API:
-CreateFile
-WriteFile
-CloseHandle

Ejemplo:

Private Sub Command1_Click()
Dim res As Long
Dim Linea As String
Dim NumBytes As Long
Dim BytesEscritos As Long

hImpresora = CreateFile("LPT1", GENERIC_WRITE, 0, ByVal 0&, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, &HFFFFFFFF)
NumBytes = Len(Text1.Text)
Linea = String(NumBytes + 2, 0)
Linea = Text1.Text + Chr$(13) + Chr$(10)
NumBytes = NumBytes + 2
res = WriteFile(hImpresora, Linea, NumBytes, BytesEscritos, ByVal 0&)
res = CloseHandle(hImpresora)
End Sub

las declaraciones de las funciones son (varían un poco respecto a las del API viewer):
Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, ByVal lpBuffer As String, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As Any) As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

|<  <<  1 2 3 4 5 6 7 8 9 10 11  >>  >|