PREGUNTAS CONTESTADAS - Visual Basic

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  2896 - RECUPERAR EL CODIGO FUENTE UNA VEZ CREADO EL EXE
Autor:  Nelson Lorenzana
Es posible recuperar codigo fuente después de compilar un programa? y Si es posible, como se hace?
  Respuesta:  Proteo
Perdones pero para conocer de que compilador se ha hecho un executable si es posible solamente abriendo el archivo EXE, como, pues muy facil puedes hacer un programa el cual chece si es creado en vb 5, 6, etc. o en Tc++ o en cualquier otro lenguaje de programacion, esto se logra como lo dije abriendo el archivo executable con cualquier programa que soporte abrir archivos EXE grandes una vez adentro simplente busca la cadena de texto en la cual indica en que compilador se ha realizado el fuente y por supuesto tan solo queda traducir el codigo EXE a ensablador y luego a FUENTE de ducho lenguaje

Enjoy : )
  Respuesta:  Oswaldo Monagas
Lei por ahi en una pagina web que ahora no recuerdo, que si se puede obtener el codigo fuente de un programa realizado en Visual Basic. Yo lo he hecho con un programa mio en VB 3.0 y se obtiene todo el codigo en unos archivos .txt
En esa pagina web decian los autores que si alguno de nosotros programaba e inventaba nuevas herramientas para tratar de proteger nuestros programas de esos que pretenden hacerlo obteniendo el codigo. Este muchacho Juan Carlos Rodriguez esta en lo correcto pero debe saber que lo que se hace para adelante con conocer como se hizo para atras se puede.
Oswaldo Monagas
  Respuesta:  Juan Carlos Rodriguez
Bueno amigo, la verdad no entiendo tu problema, pero debes saber que cuando se compila un programa no se hace mas que validar la sintaxis del lenguaje en el que se compila, pues y si este programa no encuentra errores, y has elegido crear el archivo EXE, pues entonces el paso siguiente del compilador es generar un archivo BINARIO que de alli en adelante solo entendera el S:O de la maquina en la que lo ejecutes, el codigo fuente no puede ser recuperado jamas, pues se transforma en instrucciones binarias que solo entiende el Sistema operativo para el proceso respectivo esto en lenguaje mnemonico ASSEMBLER, a partir de aqui solo se puede hacerle un seguimiento al programa con un debugger, como el debug del DOS o Turbo Debugger del Turbo C++, entre otros.
En pocas palabras no es posible restaurar el codigo fuente del programa exe,
de serlo asi, como haria tal programa para saber si ese EXE del que se extrajo el codigo, fue programado en VB en VC++, en Delphi, en C++, en VFP, Basic, etc..
Que opinas.
JC

    Pregunta:  2924 - QUE PASA CON EL APPLICATION SETUP WIZARD
Autor:  Pablo Romero
Hola, mi nombre es pablo y trabajo en un programa de facturacion einventario en VB5, armo los reportes con CrystalReport y ya lo tengo listo, pero al crear el instalador con el application setup wizard de vb5 los reportes no me muestran los datos, uso bases de datos con access, lo peor es que genero el archivo .exe del programa y anda bien, pero cuando creo el instalador no me muestra nada y no me genera ningun tipo de error.
tengo que entregar este programa y me estoy volviendo loco, si me puedes ayudar te lo agraceria mucho.
gracias.
  Respuesta:  Rodrigo García Puente
Creo que tu problema es que cuando intentas visualizar un informe no le dices la fuente de datos que ha de utilizar (es decir, la base de datos).

Esto se arregla de la siguiente manera (imagina que existe en un formulario un control CrystalActiveX con nombre Informe):

Private Sub Imprimir_Click()
Informe.DataReports(0)=ruta de la base de datos
Informe.Destination=crptToWindow
Informe.PrintReport
End Sub

Y verás el informe y los datos.

Mirá más información en http://www.galeon.com/rgpuente/ zona Visual Basic.

Saludos

    Pregunta:  2926 - IMPRIMIR DIRECTAMENTE POR LPT O COM
Autor:  David Garcia
Saludos,
Necesitaria imprimir una especie de Listado de sentencias de Escape a una impresora conectada bien al puerto LPT1 o COM2, sin necesidad de imprimir con los drivers de impresoras de Windows, el archivo seria un archivo TXT, es muy urgente.

Muchas gracias.
  Respuesta:  Gersom Muñoz
lo otro q puedes hacer es crear el archivo que te proponen y luego copiarlo a LPT1 file copy [file] , LPT1
  Respuesta:  Charles Sepúlveda
lo que puedes hacer es tratar la impresora como si fuera un archivo plano secuencial de basic.

Ej.

Open "LPT1:" For Output As #1
Print #1, "Texto, Texto, Texto, etc."
Print #1, "Linea siguiente , etc."
Close #1

Primero Abres el archivo para salida (output)
luego le envias los datos (print #1,.....)
Luego lo cierras (Close #1).
Nota: la impresora comienza a funcionar cuando cierras el archivo.
  Respuesta:  Fernando Ise
Puedes Usar la sentencia TYPE del Dos por ejemplo
Type Impresion.txt >lpt1
Type Impresion.txt >lpt2
Acepta totalmente los caracteres de escape para remarcados.Funciona tambien en Win NT y toma las impresoras remotas como por ejemplo lpt3.
Suerte

    Pregunta:  2941 - CONEXION CON UNA BASE DE DATOS SQL
Autor:  Maye Espinosa
Desearia saber como puedo llamar a un trigger o un procedure dentro de una aplicaciòn de Visual Basic, o algo similar.
muchas gracias
  Respuesta:  Charles Sepúlveda
Lo primero que debes tener claro es que un trigger es llamado automáticamente cuando se modifican los datos que este mismo monitores.

Bueno el procedimiento almacenado lo puedes ejecutar con un objeto Command o Recordset.

Ej.
´*** Agregar la Referencia de Activex Data Object (ADO) ***
Dim Conexión as ADODB.Connection
Set Conexión = New ADODB.Connection
Conexión.Open "Driver={SQl Server};Server=Servidor;Uid=Usuario;Pwd=Contraseña;Database=BaseDatos"
Dim Comando As New ADODB.Command
Dim RecSet As New ADODB.Recordset
Comando.Activeconnection = Conexión
Comando.CommandText = "exec Procedimiento [Parametro]"
Set RecSet = Comando.Execute

    Pregunta:  2953 - ENVIAR EL RESULTADO DE UNA CONSULTA ATRAVES DE WINSOCK
Autor:  pedro torres
Como puedo enviar el resultado de una consulta a una Base de datos a otro computador atraves del control Winsock.

Saludos
  Respuesta:  Dante Salazar
El tema es bastante amplio y no se que tanto hayas avanzado.
Lo primero que debería hacer es hacer una ventana que envíe el contenido de un text box al text box de otra ventana.
En cada ventana va un winsock. Al segundo le defines un número de puerto y lo pones en estado de espera. El primero hace un pedido de conexión al segundo y luego de conectado, con un botón envías el dato del textbox.
Después vas complicando las cosas hasta enviar los datos de un registro de una tabla, luego varios registros etc.
Finalmente lo haces de una máquina a otra. Si necesitas más detalles mándame un e-mail

    Pregunta:  2955 - PROTECCION CONTRA COPIAS CON CD-ROMS
Autor:  Martha Castrillon
Hola!
Estoy buscando un método económico para proteger el software contra copias.
Pienso distribuir un CD-ROM con el instalador del programa. Una forma que se me había ocurrido es, cuando se ejecuta el software, obligar a que se encuentre el CD puesto en la unidad, comparando su número de serie con un archivo dentro de ese CD que contenga el número de serie.
El problema que tengo es que al hacer una copia del CD, el nuevo CD tiene ese mismo número de serie, y el método falla. Lo mismo sucede con los diskettes.

¿Alguien sabe como evitar este problema, o conoce algún método mejor?
  Respuesta:  Rafael Carpio Huamaní
Hola Martha:

Lo que tienes que hacer es que cuando se inicie por primera vez tu prog. que ingrese el mismo código que tiene el CD; luego eso lo guardas en un campo de una tabla, ya sea en la misma bd u otra; cuando vuelvas a abrir el prog. que vea si ese campo esta vacio que pida el numero de serie caso contrario que salte al siguiente evento; claro que para cada Cd tienes que dar el numero de serie pero ya no tendras que volver a compilar el prog.

Saludos
Rafael Carpio H.
  Respuesta:  eduardo garcia
estimada marta, yo tambien estoy buscando lo mismo que vos
ahora bien la idea seria la siguiente
conocer de antemano el numero de serie de una seccion por ejemplo de un cd y el mismo incorporarlo en elejecutable y en el instalador
cuando se ejecuta el instalador, lo primero que verifica es que el numero de serie del CD en el que esta corriendo, es el de un CD que llamaremos original

si hago una copia de este CD el numero de serie cambiara pero no el numero que esta en el ejecutable ya compilado el EXE,
cuando se ejecuta como lo primero que hace es leer el numero de serie del propio CD que esta, al no coincidir se aborta la operacion con un mensaje de este CD no es original muchas gracias, si quiere un original puede comunicarse con ,,,, etc, etc, etc

El problema consiste en como leer un CD multiseccion con VB entendes
que es lo que todavia no pude descrubrir
Por ejemplo grabas un CD con dos secciones en la primera colocar cualquier archivo txt con un nombre o alguna frase, da lo mismo, ya que la idea es conocer de antemano el numero de serie de esa seccion

luego en la segunda seccion grabas todo lo demas del programa instalador etc y cerras el CD
la seccion que siempre leera sera la ultima, el tema es como leo la primera seccion con VB porque el numero que tenga el ejecutable sera el de la primera seccion solamente y en cada nuevo CD que hagas, deberas cambiar ese numero para uno nuevo y volver a compilar

suerte
[email protected]
si podes escribime chau y suerte
  Respuesta:  Osvaldo Gardiman
Por lo menos con el estado de la tecnica actual no se puede.
Si alguien encuentra un metodo para hacerlo, que lo patente rapido puesto que ganara mas dinero que Billy Gates.
  Respuesta:  hernan casadesus
Hola,

Para poder hacer eso, lo que tenes que hacer es usar las interrupciones de Dos.

No se bien como se usan, pero si buscas en internet informacion sobre como cracker, te explican todo.

si no me equivoco el interrupcion que usan es INT13. buscalo.
busca tambien tutoriales de SoftIce, que ahi seguro vas a encontrar algo.
Tal vez puedas aplicar esto en VB

espero te sirva de algo
chau

    Pregunta:  2958 - CAMBIAR EL SIMBOLO DECIMAL ES WINDOWS
Autor:  Hubert Diaz Rodriguez
Como puedo hacer para cambiar en la configuración de Windows el caracter de simbolo decimal y separador de miles, creo que se que es con una API pero no se cual es y si supiera, no se como usarla.
Gracias de antemano.
  Respuesta:  Gabriel H. Arenovich Busquet
Mira la respuesta que le dí a la pregunta 1806. Se utiliza la función SetLocaleInfo del API.

    Pregunta:  2975 - QUE ES MEJOR DAO O ADO
Autor:  HHH Diaz Rodriguez
Estoy haciendo una aplicacion en VB 6.0 y he estado usando los objetos de acceso a datos DAO para accesar a una base de datos local con extension ".mdb", Tuve que usar el control MSHFlexGrid, pero me decia que es necasario el control ActiveX Data Control (ADO), asi que lo use y tambien uso sus objetos, como el Connnection, el Command, etc. Mi pregunta es si pueden funcionar DAO y ADO conjuntamente, o si tengo que usar solo uno, y de ser así, cual es mejor?
  Respuesta:  Guillermo
Para bases de datos que trabajan con el motor Jet (por ejemplo las bases de datos de Access) DAO tiene una mejor performance, mientras que para otras BD como SQL es mejor utilizar ADO (Esto según la propia Microsoft).
Pero evidentemente, ADO es una tecnología mas moderna, con nuevos métodos y propiedades que le otorgan mayor funcionalidad y DAO tiende a quedarse obsoleto.
Te recomiendo utilizar ADO. Cualquier consulta puedes escribirme.
  Respuesta:  Santiago Tomas
ADO es una apuesta de futuro y bastante eficiente, ademas relativamente comodo y el sustituto de ODBC, con las ventajas y desventajas que ello supone.

DAO y el motor JET ya está comenzando a morir, lo cual, ahora que lo conozco como la palma de mi mano, es, y perdon, una putada.
  Respuesta:  afogutu unge
Hola.

Mirá, antes que nada te comento que yo programo en visual basic 6.0 y con Access 7.0 y SQL Server 7.0.

Te comento que yo obtuve mejores resultados trabajando con DAO que con ADO, el tema es el siguiente. DAO dentro de poco será obsoleto, no asi el ADO, con lo que si desarrollas en ADO te evitarás problemas ante una posible migración.

Otra ventaja que tiene el ADO es que los controles desarrollados para el mismo son mucho mejores y sus tiempos de respuesta mucho menores que en DAO.

Lo que no me termina de cerrar es para que usaste el flexgrid. fijate que por ahí con la datagrid obtenes mejores resultados ante consultas no agrupadas.

Desde ya estoy a tu disposición ante cualquier duda.

Afogutu

    Pregunta:  2988 - DATAREPORT
Autor:  Victor Valencia
Estoy intentando conectar un recordset a un datareport de forma dinámica. Para ello me he creado un control data (ADO) en un formulario. Lo conecto a mi base de datos (Access 97) y funciona correctamente.
Escribo el siguiente código al hacer click en un botón del formulario

Private Sub Command1_Click()
´Conecto el DataReport a la fuente de datos
Set DataReport1.DataSource = Adodc1.Recordset
´ Asigno los campos correspondientes a cada uno de los controles del informe
With DataReport1.Sections("sccDetalle")
.Controls("rptCodigo").DataField = "ProductID"
End With
DataReport1.Show
End Sub

Cuando intenta abrir el datareport obtengo el error de que el origen de datos no es válido.

¿Se puede hacer lo que pretendo?, si es así, ¿qué estoy haciendo mal?

Gracias
  Respuesta:  Andres Jua
hola, es mas facil utilizar Ado asi

Ej
dim rs as adodb.recodrset
set rs = new adodb.recordeset

rs.open " select * from clientes",con(conexionen), adopenddinam(completar)

whit datareport1
set .datasource = rs
.section("encadezado").controls("txtnumero").datafields = "cod_cliente"
.refresh
.show
rs.close
set rs = nothing
end with

"y asi voy cargando cada control que cree en cualquiera de las secciones del informe "cod_cliente" es igual a el nombre de un campo de la consulta donde abro el recordset , "encabezado" es el nombre que le doy a una seccion del report y "txtnuemero" es un control de datareport, que se encuentra debajo de las herramientas comunes, que tiene la propiedad datafields, si el control no tiene esta propiedad se debe usar .Caption en vez de .DataFields .

Discupa mi redaccion. culaquier problema. enviame un mail
[email protected]
  Respuesta:  ROMAN NAVAS
esto es lo malo:

Set DataReport1.DataSource = Adodc1.Recordset

en lugar de asignar la propiedad datasource de esta manera, si estas usando un control grafico como: " Adodc1"

no lo asignes la propiedad datasource en tiempo de ejecucion, hazlo en modo de diseño

solo ve a las propiedades del datareport y busca la propiedad datasource y ahi elije ADODC1

ESO ES TODO
  Respuesta:  Paco Benito
Desconozco si puedes hacerlo como dices, pero yo siempre que uso un DataReport me obliga a tener enlazado un Dataenvironment que tenga un objeto comand con la sentencia SQL. El Datareport debe tener sus propiedades .DataSource enlazado al Dataenvironmet y .Datamember al objeto comand de ese dataenvironment.

Espero que te ayude.
  Respuesta:  El
El problema es que estás utilizando DAO en lugar de ADO. Prueba a crear una conexion

Dim vd As Boolean, conexion As New ADODB.Connection
Dim comando As New ADODB.Command, resultado As New ADODB.Recordset
´abrimos la conexion
With conexion
.Provider = "Microsoft.Jet.OLEDB.3.51"
.ConnectionString = "Data Source=" & CurDir & "\molsandb.mdb"
.Open
End With
With comando
.CommandType = adCmdUnknown
.CommandText = "SELECT Clientes.razon_social, AlbaranesxCliente.cli_codigo, AlbaranesxCliente.numero_albaran, Sum(AlbaranesxCliente.importe_neto) AS im, AlbaranesxCliente.desde, AlbaranesxCliente.hasta, AlbaranesxCliente.cobrado FROM Clientes INNER JOIN AlbaranesxCliente ON Clientes.codigo = AlbaranesxCliente.cli_codigo GROUP BY Clientes.razon_social, AlbaranesxCliente.cli_codigo, AlbaranesxCliente.numero_albaran, AlbaranesxCliente.desde, AlbaranesxCliente.hasta, AlbaranesxCliente.cobrado ORDER BY AlbaranesxCliente.numero_albaran;"
.ActiveConnection = conexion
End With
resultado.Open comando
Set rpt_albaranes_a.DataSource = resultado
rpt_albaranes_a.Caption = "Albaranes A"
With rpt_albaranes_a.Sections("secc_encabezado")
.Controls("txt_desde").Caption = resultado!desde
.Controls("txt_hasta").Caption = resultado!hasta
.Controls("e_titulo").Caption = "Albaranes A"
End With
With rpt_albaranes_a.Sections("secc_detail")
.Controls("txt_numero").DataField = "numero_albaran"
.Controls("txt_codigo").DataField = "cli_codigo"
.Controls("txt_razon").DataField = "

    Pregunta:  2992 - COMO PUEDO HACER QUE UN DBCOMBO MUESTRE DOS CAMPOS A LA VES?
Autor:  Alvaro Cerpa Bedregal
En una base de datos tengo el campo Nombre y el campo Apellido; ¿Como puedo hacer que el DBCombo muestre simultaniamente los dos campos?
¿O que otro control puedo Utilizar?
  Respuesta:  Oswaldo Monagas
Aqui te envio un codigo para abrir dos campos de una base de datos con un DBComboCómo incluir dos campos en un control DBCOMBO
Una forma facial es hacerlo con una sentencia SQL
El control dbcombo de Visual Basic permite visualizar campos independientes de la tabla especificada en un control de datos. Hay una forma sencilla de incluir el contenido de dos campos en este control. Para ello basta con indicar en la propiedad RecordSource del control de datos la sentencia SQL apropiada. Por ejemplo:
RecordSource = "select au_id & "" "" & author as "& "enlazado from authors"
selecciona y concatena los campos au_id y author de la tabla Authors.
El control dbcombo podrá asociarse posteriormente al campo enlazado.
En un proyecto Visual Basic, para hacer esto deberían añadirse los controles dbcombo y data control en un formulario e indicar en sus propiedades:
Data1
DatabaseName = "C:\Biblio.mdb"
RecordSource = "select au_id & "" "" & author as " & "enlazado from authors"
DBCombo1
ListField = "enlazado"
BoundColumn= "enlazado"
En este codigo debes acomodarlo a tu proyecto. Modificalo a tu gusto.

|<  <<  46 47 48 49 50 51 52 53 54 55 56  >>  >|