Visual Basic
I Love You – Virus informático…
17 jun
Hola! .
Pues hoy os traigo el famoso virus I♥YOU!
Bueno, que mas decir, aquí teneis el código.
Código: http://tinypaste.com/f0ecd
Más información sobre cómo se expande y una ficha técnica más completa, está en Visual Basic Script (VBS).
http://www.hacksoft.com.pe/virus/vbs.loveletter.htm
Saludos
Llamar a punteros desde VB6
8 may
Ésta es una forma de llamar punteros en VB6 sin usar ninguna API externa a VB, programada por Karcrack.
Option Explicit Private Type SUBROUTINE lNull As Long '// Must be 0 lPtr As Long End Type Private Declare Function GoSubReturn Lib "MSVBVM60" Alias "__vbaGosubReturn" (ByRef lpSubRoutine As Long) As Long '--------------------------------------------------------------------------------------- ' Procedure : GoToPtr ' Author : Karcrack ' Date : 08/05/2010 ' Purpose : GoTo a pointer ' Warning : It's not a JMP, is a GoTo, so the execution of the program won't continue ' where you made the GoTo... '--------------------------------------------------------------------------------------- ' Public Sub GoToPtr(ByVal lPtr As Long) Dim tSubRoutine As SUBROUTINE tSubRoutine.lPtr = lPtr Call GoSubReturn(VarPtr(tSubRoutine)) End Sub
Hay que tener cuidado con el puntero al cual llamamos, pues debido a que el Stack se deforma para hacer el salto no se puede volver al lugar desde el cual se llamo a la funcion.
Ejemplo de uso:
Sub Main() Call GoToPtr(gP(AddressOf RMain)) End Sub Function gP(ByVal lPtr As Long) As Long gP = lPtr End Function Sub RMain() MsgBox "HOLA" End End Sub
Gracias a Karcrack por el código.
Más >
Copiar archivos de un directorio a otro
18 abr
En Visual Basic podemos copiar un archivo de un directorio a otro empleando una función nativa llamada “FileCopy“, su sintaxis es:
Public Sub FileCopy( _ ByVal Source As String, _ ByVal Destination As String _ )
Los parámetros necesarios en esta función son muy fáciles de interpretar, estos son: Source: Indica la ruta del archivo de origen. Destination: Indica la ruta donde se copiará el archivo.
Ejemplo de uso de la función FileCopy():
FileCopy("C:\Imagen_S.jpg","D:\Imagen_D.jpg")
Calcular el factorial de un número
4 abr
Bueno, aclararles que no soy para nada un fan de VB, y tampoco es que me la lleve muy bien con él, pero en fin…Cuando toca hacer trabajos o actividades en determinado lenguaje no queda más alternativa ¿no?.
Esta función hace poco la expuse aquí en ObjectPascal, ahora hice una traducción a Visual Basic, un poco tosca pero es lo que hay, xD.
' --------------------------------------- '|---------- Función Factorial ----------| '|-- Calcula el factorial de un número --| '|--------- Autor: .:WindHack:. ---------| '|-- Sitio Web: http://daw-labs.com ---| ' --------------------------------------- Public Function Factorial(Num As Double) As String Dim I As Integer If Num >= 170 Then Factorial = "Numero Infinito..." Else For I = 1 To Num - 1 Num = Num * I Factorial = Num Next End If End Function
Con “recursividad”:
Public Function FactorialR(Num As Double) As Currency If (Num > 0) Then FactorialR = Num * FactorialR(Num - 1) Else FactorialR = 1 End If End Function
Saludos,
Obtener nombre de ventana activa [VB]
4 abr
Esta es otra función muy parecida a la anteriormente mostrada en Delphi -> La pueden ver aquí. Programada por mi amigo y compañero The Swash.
'----------------------------------------------------------- ' Function : [GetTitleActiveApp] ' Type : [SNIPPET] ' Autor : [The Swash] ' DateTime : [31/03/2010] '----------------------------------------------------------- Option Explicit 'User32 Lib Apis Private Declare Function GetForegroundWindow Lib "user32" () As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long 'SendMessage Constants Const WM_GETTEXT = &HD Const WM_GETTEXTLENGTH = &HE Public Function GetTitleActiveApp() As String Dim hRet As Long Dim hSpace As Long Dim sBuffer As String hRet = GetForegroundWindow If hRet <> 0 Then hSpace = SendMessage(hRet, WM_GETTEXTLENGTH, 0&, 0&) + 1 If hSpace > 0 Then sBuffer = Space$(hSpace) Call SendMessage(hRet, WM_GETTEXT, hSpace, sBuffer) End If End If GetTitleActiveApp = Trim(sBuffer) End Function
Un ejemplo de llamada puede ser:
MsgBox GetTitleActiveApp

