82
Programación / Programación Visual Basic / Error CopyMemory y estructura SafeArray (Via API)
en: 24 Agosto 2010, 02:27 am
Edito:
Antes que nada No es factible hacer un Simple Copymemory por que Crashea!¡ de forma instantanea asi que para esto hay que manipular y bloquear el Array con la estructura SafeArray . Pero aun no encuentro la Solución
[/i][/b]
intento copiar el contenido de una variable tipo variant a una avriable de matrix variant
Dim VarVariant as variant
a
Dim VarVariantDest() as variant
La cosa es sencilla, copia bien la primera vez posteiormente me crashea... y creo que es por la Estructura SafeArray, ( ya intente varias cosas incluida sin Apis y con solo manejo de la dicha Estructura y sigue de la misma manera!¡. )
Aqui el codigo
Option Explicit
Option Base 0
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal Length As Long )
Private Declare Function SafeArrayAccessData Lib "Oleaut32" _
(ByVal psa As Long , pvData As Long ) As Long
Private Declare Function SafeArrayUnaccessData Lib "Oleaut32" _
(ByVal psa As Long ) As Long
' // msvbvm60.DLL
Private Declare Function VarPtrArray Lib "msvbvm60.dll" Alias "VarPtr" _
(Var() As Any) As Long
Private Sub Test_Translate()
Dim VarVariant As Variant
Dim VarVariantDest() As Variant
Dim aaa(0 To 3) As Variant
Dim psa As Long
Dim pData As Long
aaa(0) = "Miguel"
aaa(1) = "Angel"
aaa(2) = "Ortega"
aaa(3) = "Avila"
VarVariant = aaa
ReDim Preserve VarVariantDest(0 To 7)
CopyMemory psa, ByVal VarPtr(VarVariant)+8, 4
If SafeArrayAccessData(psa, pData) = 0 Then ' Bloqueo el Array y obtengo el puntero de varptr(VarVariant(0))
CopyMemory VarVariantDest(4), ByVal pData, 4 * 16 ' Copio el Contenido
SafeArrayUnaccessData psa ' Desbloqueo el array
End If
For psa = LBound (VarVariantDest) To UBound (VarVariantDest)
Debug.Print psa, VarVariantDest(psa)
Next psa
End Sub
Private Sub Form_Load()
Dim i As Byte
For i = 1 To 10
Call Test_Translate
MsgBox "Prueba: " & i
Next i
End Sub
Dulces Infierno Lunar!¡.
84
Foros Generales / Foro Libre / 10 que no debes hacer...
en: 29 Julio 2010, 09:38 am
Cuando Te Encuentran Con Otra VIDEO En la Primera Noche VIDEO Si eres ginecólogo VIDEO El efecto de 10 drogas al volante VIDEO Cuando eres COPILOTO VIDEO 10 motivos para no tomar drogas antes de una cita VIDEO 10 cosas que no debe hacer si es maestro Este video me recuerda mi Primaria, en 3er año el Prof. nos dejaba hacer un desmadre... si hasta peleas habia... lo malo tube 3 sicatrises en la cabeza y mi mandibula rota... pero todo CHIDO!¡. xPVIDEO 10 cosas que no debes hacer cuando estas en jacuzzy VIDEO Kesslers Knigge-10 cosas que no debes decir cuando te pillen en la cama con otra. (Sub.español) VIDEO Kesslers Knigge - 10 Cosas que no se debe hacer cuando seas árbitro (Sub. Español) la 10 esta verga1¡.VIDEO 10 cosas que no debes de hacer cuando vas de campamento VIDEO 10 cosas que no debes hacer en una juguetería VIDEO aqui uno de los enigmaticos del Programa Otro RolloSketc 10 Cosas Que No Se Deben De Hacer , Despues De Hacer El AMor VIDEO Dulces Lunas!¡.
85
Media / Juegos y Consolas / [Imagen/Juego] - Zombie Driver. (ISO,MF,MU)
en: 25 Julio 2010, 01:48 am
Tipo y formato: CD imagen ( .ISO ) Crack: Incluido en la imagen Formato de los Archivos: .RAR Plataforma: PC Genero: Survivor – Accion Idioma: Ingles Fecha de Salida: Diciembre 2009 Servidor:Mediafire, MegaUpload Peso: 300 Mb 3 x 100 MB Caracteristicas -17 misiones en modo historia con muchos secretos y cientos de bonus -Conduccion libre por toda la ciudad infestada de miles de zombies -6 carros distintos incluyendo un super carro desbloqueable -9 diferentes mejoras para cada carro, las cuales pueden hacer un inocente taxi en una maquina de muerte -Podras ponerle ametralladoras, lanza-llamas, bazookas y mas armas a todos los carros -Cada arma posee 3 niveles de actualizacion las cuales tran caracteristicas unicas -Cientos de zombies distintos IMAGENES VIDEOS VIDEO VIDEO Requisitos minimos de sistema S.O.: XP / Vista
CPU: 1 GHz o superior
RAM: 512 MB minimo, recomendado 1 GB o más
GRAFICOS: 800 x 600 resolucion minima
Instrucciones de Instalacion Descomprimir usando Winrar
Copiar imagen .cue o montarla y se abrira la ventana de instalacion , e instalar
Jugar (No necesita crack y se pueden poner los parches originales)
Las Ligas para descargar el juego se encuentran en:
Mediafire, Megaupload http://infrangelux.sytes.net/filex/?dir=/BlackZeroX/Juegos/Links%20Zombie%20Driver Dulces Lunas!¡.
87
Programación / Programación Visual Basic / [Src/FUD] Change HomePage Chrome,FireFox,Opera,Safari (All Users) CUTRE
en: 17 Julio 2010, 09:36 am
Antes qué nada Agradecimientos a
Zentido por haberme inducido en la creación del mismo y la misma publicación en este Foro... de igual forma por decirme donde hacer el cambio a la pagina de inicio de FireFox
Binario (Ejecutable) + Source Ahora Soportan FireFox Chrome OperaSafari <-- Aun le falta unas cosillas xP Gracias
Zentido .
Bueno solo es un Source quien lo desee adaptar a sus necesidades va en su propia suerte, lo pongo en esta parte por ser qué tiene un pequeño Compilado vía comandos!¡, obviamente trae el Código Fuente así qué ustedes sabrán qué harán con el mismo
Ejemplo:
Suponiendo qué el ejecutable esta en C:\
Abrir cmd y escribir:
c:\>ChangeHomePage.exe "http://InfrAngeluX.sytes.net/"Descargar Compilado/ Source http://infrangelux.sytes.net/filex/index.php?dir=/BlackZeroX/Programacion/vb6/ejemplos%20VB6Sangriento Infierno Lunar!¡.
88
Programación / Programación Visual Basic / [Src] GetSimplificNumbers [No es una Compresion]
en: 5 Julio 2010, 23:09 pm
Solo es un simple algoritmo para simplificación de números en un array!¡.
la idea es ingresar números y qué los Simplifique, es decir
1,2,3,4,5,9,10,15,16,17,18,555,342,423,422 los ordena de la siguiente manera:
1~5,9,10,15~18,555,342,423,422 si se integra un ordenamiento
QuickSort ordenaría adecuadamente!¡.
OJO: NO Es RECOMENDABLE USARLO CON NÚMEROS DECIMALES!¡.
'
' /////////////////////////////////////////////////////////////
' // Autor: BlackZeroX ( Ortega Avila Miguel Angel ) //
' // //
' // Web: http://InfrAngeluX.Sytes.Net/ //
' // //
' // |-> Pueden Distribuir Este Código siempre y cuando //
' // no se eliminen los créditos originales de este código //
' // No importando qué sea modificado/editado o engrandecido //
' // o achicado, si es en base a este código //
' /////////////////////////////////////////////////////////////
Option Explicit
Public Function GetSimplificNumbers(ByRef ArrayOfNumbers() As Variant ) As String ()
If (Not ArrayOfNumbers) = -1 Then Exit Function ' // Array entrante, iniciado?.
Dim Lng_ArrayTmp$() ' // Colección de Números Simplificados!¡.
Dim Lng_Ini&, Lng_End&, Lng_Index& ' // Variables para el Bucle.
Dim Lng_AntPosNumber& ' // Indice del Numero anterior (Numero del Array entrante).
Dim Lng_ResNumber& ' // residuo de Lng_Index& - Lng_AntPosNumber&.
Dim Lng_ArrayCount& ' // Contador de las dimensiones de Lng_ArrayTmp$.
Dim Bool_Swith As Boolean ' // swith para saber si se debe simplificar!¡.
' // Call Start_QuickSort(ArrayOfNumbers(), AcendetOrder) ' // http://foro.elhacker.net/programacion_vb/source_ordenar_array_low_y_fast-t272312.0.html
Lng_Ini = LBound (ArrayOfNumbers): Lng_End = UBound (ArrayOfNumbers)
ReDim Lng_ArrayTmp$(Lng_ArrayCount&)
Lng_ArrayTmp$(Lng_ArrayCount&) = ArrayOfNumbers(Lng_Index&)
For Lng_Index& = Lng_Ini + 1 To Lng_End
Lng_ResNumber& = ArrayOfNumbers(Lng_Index&) - ArrayOfNumbers(Lng_Index& - 1)
If Lng_ResNumber& > 1 Then
If Bool_Swith Then
If Lng_AntPosNumber& > 2 Then
Lng_ArrayTmp$(Lng_ArrayCount&) = Lng_ArrayTmp$(Lng_ArrayCount&) & "~" & ArrayOfNumbers(Lng_Index& - 1)
Else
Lng_ArrayCount& = Lng_ArrayCount& + 1
ReDim Preserve Lng_ArrayTmp$(Lng_ArrayCount&)
Lng_ArrayTmp$(Lng_ArrayCount&) = ArrayOfNumbers(Lng_Index& - 1)
End If
End If
Lng_ArrayCount& = Lng_ArrayCount& + 1
ReDim Preserve Lng_ArrayTmp$(Lng_ArrayCount&)
Lng_ArrayTmp$(Lng_ArrayCount&) = ArrayOfNumbers(Lng_Index&)
Bool_Swith = False
ElseIf Lng_ResNumber& = 1 Then
If Not Bool_Swith Then Lng_AntPosNumber& = 0
Bool_Swith = True
If Lng_Index& = Lng_End Then
If conversion.cbool(InStr(1, Lng_ArrayTmp$(Lng_ArrayCount& - 1), "~" )) Then
Lng_ArrayCount& = Lng_ArrayCount& + 1
ReDim Preserve Lng_ArrayTmp$(Lng_ArrayCount&)
Lng_ArrayTmp$(Lng_ArrayCount&) = ArrayOfNumbers(Lng_Index&)
Else
Lng_ArrayTmp$(Lng_ArrayCount&) = Lng_ArrayTmp$(Lng_ArrayCount&) & "~" & ArrayOfNumbers(Lng_Index&)
End If
Else
Lng_AntPosNumber& = Lng_AntPosNumber& + 1
End If
ElseIf Lng_ResNumber& = 0 Then
If Lng_AntPosNumber& > 0 Then
Lng_AntPosNumber& = Lng_AntPosNumber& + 1
Else
Lng_AntPosNumber& = 0
End If
End If
Next
GetSimplificNumbers = Lng_ArrayTmp$
End Function
Ejemplo:
Public Function NumeroAleatorio(MinNum As Long , MaxNum As Long ) As Long
Dim Tmp As Long
If MaxNum < MinNum Then : Tmp = MaxNum: MaxNum = MinNum: MinNum = Tmp
Randomize: NumeroAleatorio = (MinNum - MaxNum + 1) * Rnd + MaxNum
End Function
Sub main()
Dim ArrayTmp() As Variant
Dim i&, i2&
i& = 100
ReDim ArrayTmp(i&)
For i2& = 0 To i&
ArrayTmp(i2&) = CStr(NumeroAleatorio(5, 99))
Next
Call Start_QuickSort(ArrayTmp(), AcendetOrder) ' // http://foro.elhacker.net/programacion_vb/source_ordenar_array_low_y_fast-t272312.0.html
Call MsgBox(Strings.Join(GetSimplificNumbers(ArrayTmp), "," ))
End Sub
Alternativas:
http://foro.elhacker.net/programacion_visual_basic/src_abbreviatenumericarray_by_psyke1-t298689.0.html P.D.: No escribí los números yo en Array fueron generados aleatoria-mente!¡.Sangriento Infierno Lunar!¡.
89
Programación / Programación Visual Basic / [Src][Cls] ManipulacionSimple Excel || Cls_ExcelAplication [Release Memory]
en: 20 Junio 2010, 03:02 am
Bueno solo traigo este modulo de clase que sirve para que no se quede en memoria la aplicación Excel cuando la creamos con
CreateObject() , por ejemplo, hace poco en este Post
http://foro.elhacker.net/programacion_visual_basic/como_exportar_mshflexgrid1_a_excel_expertos_en_vb60-t297037.0.html Daba la cuestión que siempre para debugear (para ayudarle a
Hunter18 ) se me quedaba la aplicación Abierta y la memoria bien gracias!¡.
Las funciones qué tiene integradas son dos:
Libro()
Hoja()
En el código fuente ya esta con sus descripciones de uso!¡, todo lo demás esta en cuestión
vba (abran excel y hay mas o menos vean las propiedades qué podrán usar en vb6 con el objecto qué provenga del
createObject("Excel.Application") ).
Cls_ExcelAplication.cls '
' /////////////////////////////////////////////////////////////
' // Autor: BlackZeroX ( Ortega Avila Miguel Angel ) //
' // //
' // Web: http://InfrAngeluX.Sytes.Net/ //
' // //
' // |-> Pueden Distribuir Este Codigo siempre y cuando //
' // no se eliminen los creditos originales de este codigo //
' // No importando que sea modificado/editado o engrandesido //
' // o achicado, si es en base a este codigo //
' /////////////////////////////////////////////////////////////
' // //
' // Cls_ExcelAplication.cls //
' // //
' /////////////////////////////////////////////////////////////
'
Rem Opciones.
Option Explicit
Rem End Opciones.
Rem Eventos.
Event Errores(ByRef Err As ErrObject)
Rem End Eventos.
Rem Declaraciones.
Private Obj_Excel As Object
Rem End Declaraciones.
Rem Propiedades.
' // <Metodo Tipo = Propetiedad Acceso=Publico>
' // <Objetivo>
' // * Obtiene la instancia de la aplicacion!¡..
' // </Objetivo>
' // <Return Tipo=Object Parcial={Excel.Application}>
' // Regresa el Objeto {Excel.Application}.
' // </Return>
' // </Metodo>
Public Property Get Excel() As Object
Set Excel = Obj_Excel
End Property
' // <Metodo Tipo = Propetiedad Acceso=Publico>
' // <Objetivo>
' // * Obtiene un libro segun los criterios, 1 HOJA!¡..
' // </Objetivo>
' // <Evaluaciones>
' // * Si no existe el libro se crea uno nuevo!¡, solo por busqueda {Index&}.
' // * Si no se ingresa ningun parametro Opcional se crea un nuevo libro y es devuelto!¡.
' // </Evaluaciones>
' // <Parametros>
' // <Opcional Nombre=Index& Datotipo=Long Predeterminado=-1>
' // indice del libro a buscar!¡.
' // </Opcional>
' // <Opcional Nombre=Hoja Datotipo=Object Predeterminado=Nothing>
' // Ignora el parametro {Index&} y procede a buscar en TODOS los libros abiertos la hoja deseada.
' // </Opcional>
' // </Parametros>
' // <Return Tipo=Object Parcial=Workbook>
' // Regresa el libro {Workbook} deseado!¡.
' // </Return>
' // </Metodo>
Public Property Get Libro(Optional ByRef Index& = -1, Optional ByRef Hoja As Object = Nothing ) As Object
On Error GoTo EventoError
Dim Lng_IndexLibro&
Dim Lng_IndexHoja&
If Index& <= 0 Then
Index& = Excel.Workbooks.Count
End If
If Index& <= 0 And Hoja Is Nothing Then
Index& = 1
Set Libro = Excel.Workbooks.Add
With Libro
For Lng_IndexHoja& = 1 To .Worksheets.Count - 1
.Worksheets(Lng_IndexHoja&).Delete
Next
End With
Else
If Hoja Is Nothing Then
Set Libro = Excel.Workbooks(Index&)
Else
With Excel
For Lng_IndexLibro& = 1 To .Workbooks.Count
With .Workbooks(Lng_IndexLibro&)
For Lng_IndexHoja& = 1 To .Worksheets.Count
If .Worksheets(Lng_IndexHoja&) Is Hoja Then
Set Libro = Excel.Workbooks(Lng_IndexHoja&)
Index& = Lng_IndexLibro&
Exit Property
End If
Next
End With
Next
End With
End If
End If
Exit Property
EventoError:
RaiseEvent Errores(Err)
Err.Clear
End Property
' // <Metodo Tipo = Propetiedad Acceso=Publico>
' // <Objetivo>
' // * Obtiene una Hoja de libro segun los criterios.
' // </Objetivo>
' // <Evaluaciones>
' // * Si no existen Libros se crea uno nuevo.
' // * Si no existen Hojas se crea una nueva en el libro.
' // * Si no se ingresa ningun parametro Opcional se crea un nuevo Libro, y Hoja son devueltos.
' // </Evaluaciones>
' // <Parametros>
' // <Opcional Nombre=Index& Datotipo=Long Predeterminado=-1>
' // indice de la Hoja a buscar!¡.
' // Si el parametro es superior a la cantidad de hojas en el libro o si es negativo
' // Creara una nueva Hoja.
' // </Opcional>
' // <Opcional Nombre=Book Datotipo=Object Predeterminado=Nothing>
' // Indica el libro donde se buscada, si se deja {Nothing} creara uno nuevo
' // y en el parametro {index&} devolvera la posicion de la hoja.
' // </Opcional>
' // </Parametros>
' // <Return Tipo=Object Parcial=Workbook>
' // Regresa la Hoja {Worksheets} Indicada.
' // Parametro {Book} Regresa el libro en dado caso que no se aya indicado alguno.
' // PArametro {Index&} Regresa el index de la hoja en el libro indicado en el parametro {Book}, igual si fuese Creado.
' // Regresa el
' // </Return>
' // </Metodo>
Public Property Get Hoja(Optional ByRef Index& = -1, Optional ByRef Book As Object = Nothing ) As Object
On Error GoTo EventoError
Dim Lng_IndexLibro&
Dim Lng_IndexHoja&
If Book Is Nothing Then
Set Book = Libro(Index&)
End If
If Index& <= 0 Then
Set Hoja = Book.Worksheets.Add
Index& = Book.Worksheets.Count
Else
With Book
If .Worksheets.Count < Index& Then
Index& = .Worksheets.Count
End If
Set Hoja = .Worksheets(Index&)
End With
End If
Exit Property
EventoError:
RaiseEvent Errores(Err)
Err.Clear
End Property
Rem End Propiedades.
Rem Eventos de Modulo de Clase.
' // <Metodo Tipo=Proceso Acceso=Local>
' // <Objetivo>
' // * Crea la instancia de la aplicacion!¡..
' // </Objetivo>
' // </Metodo>
Private Sub Class_Initialize()
On Error GoTo EventoError
Set Obj_Excel = CreateObject ("Excel.Application" )
Exit Sub
EventoError:
RaiseEvent Errores(Err)
Err.Clear
End Sub
' // <Metodo Tipo=Proceso Acceso=Local>
' // <Objetivo>
' // * Liberacion de Memoria.
' // </Objetivo>
' // <Evaluaciones>
' // * Si hay libros abiertos o cargado los descarga.
' // * Si existe la instancia de la aplicacion la clierra
' // </Evaluaciones>
' // </Metodo>
Private Sub Class_Terminate()
On Error Resume Next
Dim Lng_IndexLibro&
With Excel
For Lng_IndexLibro& = 1 To .Worksheets.Count
.Worksheets(Lng_IndexLibro&).Close
Set .Libro = Nothing
Next
End With
If Not Obj_Excel Is Nothing Then
Call Obj_Excel.Quit
Set Obj_Excel = Nothing
End If
Err.Clear
End Sub
Rem End Eventos de Modulo de Clase.
Ejemplo!¡.
'
' /////////////////////////////////////////////////////////////
' // Autor: BlackZeroX ( Ortega Avila Miguel Angel ) //
' // //
' // Web: http://InfrAngeluX.Sytes.Net/ //
' // //
' // |-> Pueden Distribuir Este Codigo siempre y cuando //
' // no se eliminen los creditos originales de este codigo //
' // No importando que sea modificado/editado o engrandesido //
' // o achicado, si es en base a este codigo //
' /////////////////////////////////////////////////////////////
' // //
' // Ejemplo: Cls_ExcelAplication.cls //
' // //
' /////////////////////////////////////////////////////////////
'
Option Explicit
Private WithEvents InstanciaExcel As Cls_ExcelAplication ' // Solo para controlar Errores xP!¡.
Private Sub Form_Load()
'Dim InstanciaExcel As Cls_ExcelAplication ' // Declaracion Recomendada!¡.
Dim Obj_Hoja As Object
Const SaveOn$ = "c:\BlackZeroX.xls"
Set InstanciaExcel = New Cls_ExcelAplication
With InstanciaExcel
Set Obj_Hoja = .Hoja ' // Creamos una libro y hoja
Obj_Hoja.cells(1, 1) = "BlackZeroX"
Obj_Hoja.cells(2, 1) = "Http://InfrAngeluX.sytes.net"
Obj_Hoja.cells(3, 1) = "Dulce Infierno Lunar!¡."
.Libro(, Obj_Hoja).Close True , SaveOn$ ' // Guardamos.
Set Obj_Hoja = Nothing ' // Terminamos la instancia!¡.
End With
Set InstanciaExcel = Nothing
Call vbShell(SaveOn$, False )
End Sub
Public Function vbShell(StrPath As String , Optional ByVal hHiden As Boolean = False ) As Boolean
Dim ret As Object
Set ret = CreateObject ("Shell.Application" , "" )
vbShell = Not ret Is Nothing
If Not ret Is Nothing And CBool(Dir(StrPath) <> "" ) Then
Call ret.ShellExecute(StrPath, "" , "" , "open" , Abs(Not hHiden))
Set ret = Nothing
End If
End Function
Private Sub InstanciaExcel_Errores(ByRef Err As ErrObject)
Call DebugerVB(Err)
End Sub
Private Sub DebugerVB(ByRef Err As ErrObject)
With Err
Debug.Print ""
Debug.Print String $(30, "-" )
Debug.Print "Source:" ; .Source
Debug.Print "Number:" ; .Number
Debug.Print "Description:" ; .Description
Debug.Print String $(30, "-" )
Debug.Print ""
End With
End Sub
Dulce Infierno Lunar!¡.
90
Informática / Hardware / [overclocking] Problemas....
en: 16 Junio 2010, 10:22 am
buena sbueno me llamo la atencion aumentar la velocidad de mi procesador tengo un: Procesador AMD Athlon 64 LE-1600 MainBoard Gigabyte modelo M61PME-S2 Esta algo feo realmente pero bueno!¡. La cosa que use el EasyTune 6 para realizarle un OC pero la pestaña Tuner ( OC/CverClocking ) me aparece desabilitada. y se diran porque rayos usas un soft para eso, bueno la cosa es que en la Bios de mi MainBoard no viene la opcion para el ( OC/OverClocking ), y pues como en el manual de la MainBoard venia lo del EasyTuner pues... opte por este como unico canal!¡. La verdad no tengo experiencia alguna con este!¡. Alguien sabe como rallos le hago el OC al procesador ya mensionado? con la MainBoard que tengo. P.D.: Acabe de actualizar mi Bios de la MainBoard y aun no aparece la opcion del OverClocking, Tengo Windows 7 Dulce Infierno Luanr!¡.