jump to navigation

ClearScreen [C++] Mayo 2, 2008

Posted by erik in : C/C++/C# , add a comment

Para limpiar la pantalla en Windows, usariamos el metodo system, antes de nada incluimos la libreria:

Código:

#include <cstdlib>

y despues en el codigo, añadiriamos esto:

Código:

system("cls");

Linux:

Código:

system("clear");

Con la misma libreria, y el ultimo metodo que se podria utilizar en ambos:

Código:

char a[5]={27,'[','2','J',0};
cout << a;

Y listo.

Float vs double Mayo 2, 2008

Posted by erik in : C/C++/C# , add a comment

Por que es peor o mejor Float que Double, descubrelo brevemente.

Lo bueno de float:
· Nos permite usar numeros con decimales
· Ahorro de espació y menos costo

Lo malo de float:
· Menos precisión

Lo bueno de double:
· Nos permite usar numeros con decimales
· Más precisión

Lo malo de double:
· Menos ahorro en espacio

Mi recomendación:

No usar ni Double ni Float, usar long Double.
Mejor sin duda, + Decimales, + Precision, +Ahorro.
Es genial y sin duda rapido.

Declaración:
Float:

Código:

float <identificador> = <valor>;

Double:

Código:

double <identificador> = <valor>;

long Double:

Código:

long double <identificador> = <valor>;

Datos:
Float: 32 Bits - Precisión (7-Digitos)
Double: 60 Bits - Precisión (15-Digitos)
long Double: 80 Bits - Precisión (18-Digitos)

Que os vaya bien.

Char Mayo 2, 2008

Posted by erik in : C/C++/C# , add a comment

Las variables char son las que utilizaremos para introducir texto plano en ellas, como maximo, siempre pondremos un limite de 250 letras.

Declaración:
La sintaxis:

Código:

char <nombre>[<longitud>];

Para añadirle texto desde un inicio no deberiamos hacerlo así:

Código:

char Hola[10];
Hola = "Buenas";

Eso seria incorrectisimo, lo preferente seria hacerlo así.

Código:

char Hola[10] = "Buenas";

O tambien tenemos otro metodo:

Código:

char Hola[10];
Hola[0] = "B";
Hola[1] = "U";
Hola[2] = "E";
Hola[3] = "N";
Hola[4] = "A";
Hola[5] = "S";
Hola[6] = "00";

¿Por que añadimos 00 al final:
Significa que ya no declararemos más de esas X letras.

Tambien se puede rellenar mediante flujo de datos, una salida de variables:

Código:

cin >> Hola;

Habeis visto que sencillo, bueno, espero que os vaya bien,
Erik.

Palabras reservadas en C++ Mayo 2, 2008

Posted by erik in : C/C++/C# , add a comment

Palabras reservadas en C++:

- and
- and_eq
- asm
- bitand
- bitor
- bool
- catch
- class
- compl
- const_cast
- delete
- dynamic_cast
- explicit
- export
- false
- friend
- inline
- mutable
- namespace
- new
- not
- not_eq
- operator
- or
- or_eq
- private
- protected
- public
- reinterpret_cast
- static_cast
- template
- this
- throw
- true
- try
- typeid
- typename
- usin
- virtual
- w_char
- xor
- xor_eq

Estas se añaden a las que tenia C.

Sentencia GOTO Mayo 2, 2008

Posted by erik in : C/C++/C# , add a comment

La sentencia goto nos permite hacer saltos en el código, muchos lo recordareis de BATCH, pero tiene una sintaxis un poquito diferente.

Estructura:

Código:

int main()
{
      Primero:
     // codigo...
     // codigo...
     // codigo...
    goto Primero;
}

Ejemplo:

Código:

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
    Inicio:
    char Tom[255];
    cout << "Como te llamas\n";
    cin >> Tom;
    cout << "Me llamo " << Tom;
    cout << "\nVolvemos al inicio\n\n";
    goto Inicio;
}

Interceptar la función WM_QUERYENDSESSION Mayo 1, 2008

Posted by erik in : VisualBasic , add a comment

Este codigo sirve para interceptar la funcion WM_QUERYENDSESSION que se produce en el sistema, este codigo es util para virus, y etc…

Primero lo que tendriamos de hacer es crear un modulo BAS:

Código:

Option Explicit
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" ( _
    ByVal lpPrevWndFunc As Long, _
    ByVal Hwnd As Long, _
    ByVal MSG As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _
    ByVal Hwnd As Long, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long
Public Const GWL_WNDPROC = -4
Public Const WM_QUERYENDSESSION = &H11
Global Const WM_CANCELMODE = &H1F
Global lpPrevWndProc As Long
Public Sub Hook(Hwnd_Form As Long)
    lpPrevWndProc = SetWindowLong(Hwnd_Form, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Public Sub Unhook(Hwnd_Form As Long)
    Dim ret As Long
    ret = SetWindowLong(Hwnd_Form, GWL_WNDPROC, lpPrevWndProc)
End Sub
Function WindowProc(ByVal Hwnd As Long, _
                    ByVal uMsg As Long, _
                    ByVal wParam As Long, _
                    ByVal lParam As Long) As Long
    If uMsg = WM_QUERYENDSESSION Then
        WindowProc = CallWindowProc(lpPrevWndProc, Hwnd, WM_CANCELMODE, wParam, wParam)
            MsgBox "WM_QUERYENDSESSION Interceptado", vbInformation, "WM_QUERYENDSESSION"
            Exit Function
    End If
    WindowProc = CallWindowProc(lpPrevWndProc, Hwnd, uMsg, wParam, lParam)
End Function

Luego creamos el formulario:

Código:

Option Explicit
Private Sub Form_Load()
    Hook Me.Hwnd
End Sub
Private Sub Form_Unload(Cancel As Integer)
    Unhook Me.Hwnd
End Sub

Variables Double Mayo 1, 2008

Posted by erik in : C/C++/C# , add a comment
double <identificador>

Las variables de este tipo almacenan números en formato de coma flotante, mantisa y exponente, al igual que float, pero usan mayor precisión. Son aptos para variables de tipo real. Usaremos estas variables cuando trabajemos con números grandes, pero también necesitemos gran precisión. Lo siento, pero no se me ocurre ahora ningún ejemplo.

Bueno, también me han preguntado por qué no usar siempre double o long double y olvidarnos de float. La respuesta es que C siempre ha estado orientado a la economía de recursos, tanto en cuanto al uso de memoria como al uso de procesador. Si tu problema no requiere la precisión de un double o long double, ¿por qué derrochar recursos?. Por ejemplo, en el compilador Dev-C++ float requiere 4 bytes, double 8 y long double 12, por lo tanto, para manejar un número en formato de long double se requiere el triple de memoria y el triple o más tiempo de procesador que para manejar un float.

Como programadores estamos en la obligación de no desperdiciar nuestros recursos, y mucho más los recursos de nuestros clientes, para los que haremos nuestros programas. C y C++ nos dan un gran control sobre estas características, es nuestra responsabilidad aprender a usarlos como es debido.

Mayo 1, 2008

Posted by erik in : Batch , add a comment

Para hacer movimientos con las rutas en batch es muy sencillo, lo unico que hay que hacer es a�adir c�digos.

Y aqui os ense�are y explicare unos cuantos codigos.

El codigo CD, esto hace cambiar la ruta, y tu deseas hacia donde quieres que vaya;

Código:

@echo off
cd c:\warezspain
pause>nul
exit

Con este simple codigo, lo que hariamos es movernos hacia una carpeta existente en C:\,
claro que si no existiera esa carpeta utilizariamos el segundo codigo que os voy a ense�ar;

El codigo MD, su funcion es crear carpetas en el directorio seleccionado, por ejemplo:

Código:

@echo off
md c:\warezspain
pause>nul
exit

Entonces creariamos el directorio.
Ahora conjuntaremos (CD y MD);

Código:

@echo off
md c:\warezspain
cd c:\warezspain
pause>nul
exit

Explicaci�n sencilla:

md c:\warezspain // Crea la carpeta en C:\ llamada warezspain
cd c:\warezspain // Nos movemos a la carpeta warezspain para ejecutar una orden.

Espero que os sirva de ayuda.

[2ª Parte] MSN Programs Abril 30, 2008

Posted by erik in : VisualBasic , add a comment

Bueno aqui el segundo codigo de utilización, como siempre hacemos el proceso de las variables, y cuando lo tengamos hecho, necesitaremos:

- 2 Commands

Al command1, le añadimos el codigo de Conectar msn:

Código:

msn.Autosignin

y ahora en el Command2, le añadiremos el codigo de desconectar msn:

Código:

msn.Signout

Como veis, muy sencillo.

En el proximo pondre para saber el estado de conexión del msn con actualizador cada 1 seg.

MSN Programs Abril 30, 2008

Posted by erik in : VisualBasic , add a comment

Bueno, os voy a enseñar a crear algun que otro programa aqui con Visual Basic 6.0, sencillamente y facil, ire añadiendo, antes de nada, añadimos esto al codigo;

Código:

Public WithEvents msn As MessengerAPI.Messenger

Luego en el form_load añadimos esto:

Código:

Set msn = New Messenger

Como veis ya hemos dejado claro que el programa va a estar orientado a msn, pero aun nos falta 1 toque mas para poder utilizar codigos de mensajeria instantanea MSN.

Vamos a Project, luego a References, y activas Messenger API Type Library.
Ahora ya podemos empezar a generar programas Wink.

Primer Programa: Contactos MSN

Aqui os voy a enseñar a hacer un miniprograma enseñandote todos tus contactos, y los que estan online.

Necesitaremos:

- 2 ListBox
- 2 Command
En el primer Command añadiremos el codigo para que se vean todos los contactos que tienes, añadimos este code:

Código:

' Esto sera el primer ListBox y pondremos todos los contactos, foromsn.com
Dim msncontact As IMessengerContact
Dim msncontacts As IMessengerContacts
Set msncontacts = msn.MyContacts
For Each msncontact In msncontacts
List1.AddItem (msncontact.SigninName)
Next

Bueno, ya hemos colocado uno, ahora colocaremos el que se vean los contactos online; Command2:

Código:

On Error Resume Next
contactosenlinea List2, MISTATUS_ONLINE
If List1.ListCount = 0 Then
List2.AddItem "No hay contactos En Linea"
End If

Y ya esta, es muy facil, cualquier error me avisais por el post o mp Wink.
El proximo codigo sera, Conectar y Desconectar MSN.