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 - BlackZeroX

#1461
.
me recuerda este tema:

Virus Melissa o W97M/Melissa.A

Del año 1999, crees que despues de tantos años funcione tu estrategia?.

P.D.: estos temas si no mal recuerdo estan prohibidos en este sub-foro.

Temibles Lunas!¡.
#1462
Programación Visual Basic / Re: api hook
18 Marzo 2011, 04:46 AM
.
No se delphi, pero lo que si se es identificar las apis y hay hay apis mas que nada; usa el buscador y veras unas ligas a unos proyectos que hookean apis ( puse las ligas anteriormente ).

Dulces Lunas!¡.
.
#1463
.
Ojo esta es una Opinion/Ayuda/Consejo/Guia/ComoQuieraVerlo para los servidores tipo Megauload Mediafire etc...

Para descargar de sitios gratuitos que generan un link unico por peticion debes decrgar antes el codigo de la pagina y ya posteriormente d eun analis determinar como o donde esta el enlace de descarga; en algunos servidores tienes que esperar un X tiempo por ejemplo MegaUpload pero ese tiempo es solo un contador molesto y de hecho en el html de la pagina viene la liga del enlace.

Temibles Lunas!¡.
.
#1464
.
Me parece que debes leerte un manual de la plataforma y uno del IDE,

Pero por si acaso: en Windows debes poner la dll de forma recomendada pero no abligatoria en la carpeta de la instalacion windows\system32\  despues registrarla y la en el IDE o compilador solo realizar el link a dicha libreria, segun se desee, de manera habitual se configura esto en el menu preferencias de la sección Compilador/Compilacion

Temibles Lunas!¡.
#1465
.
Usa OpenGL o DirectX. pero para mas portalidad usa OpenGL.

Temibles Lunas!¡.
.
#1466
.
WM_PAINT

y creo que tendras que usar una inyección para subclasificar.

Edito:

Quisas puedas usar SetWindowSubclass() aun que no estoy muy seguro.

Temibles Lunas!¡.
#1467
.
@XXX-ZERO-XXX

No se si esto que estoy haciendo te ayude (Lo estoy haciendo para tratar Despejes):

Código (Vb) [Seleccionar]


'
' ////////////////////////////////////////////////////////////////
' // 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 que sea modificado/editado o engrandecido    //
' // o achicado, si es en base a este código                    //
' ////////////////////////////////////////////////////////////////
' //
' ////////////////////////////////////////////////////////////////

' 50x-9+114-32x
' (50-32)x = 9-114
' x = (9-114) / (50-32)

Option Explicit

Enum eOperandos
    eParentesisI = 0
    eParentesisF = 1
    ePotencia = 2
    eRaiz = 3
    eMultiplicacion = 4
    eDivicion = 5
    eSuma = 6
    eResta = 7
End Enum

Private Operandos(0 To 7) As String

'   //  Ecuación de 1er grado.
'Public Function EcuacionLineal(ByVal vExpresion$) As String'
'Dim str_Exp$()
'    str_expr$() = Split(vExpresion$, "=", 2)'
'    If UBound(str_expr$) = 1 Then
'        ReDim Preserve str_expr$(0 To 1)
'    End If
    '   //  Hubicamos los terminos (Incognitas en el lado izquierdo y las constantes en el derecho)
   
'End Function

Public Function GetParentesis(ByVal vExpresion$) As String
Dim lng_op&(0 To 1)             '   //  Posicion Inicial/Final
Dim str_bloq$
Dim boo_res         As Boolean

    lng_op&(1) = InStr(1, vExpresion$, Operandos(eOperandos.eParentesisF))
    If (lng_op&(1) <> 0) Then
        lng_op&(0) = InStrRev(vExpresion$, Operandos(eOperandos.eParentesisI), lng_op&(1))
        If (lng_op&(0) = 0) Then
            lng_op&(0) = 1
        Else
            lng_op&(0) = lng_op&(0) + 1
        End If
        GetParentesis = Mid$(vExpresion$, lng_op&(0), lng_op&(1) - lng_op&(0))
    Else
        GetParentesis = vExpresion$
    End If
   
End Function


' // Terminos Semejantes ( Con incognita ).
Public Function ReduccionDeOperandos(ByVal vExpresion$, Optional ByVal Incognita As String = "x") As String
Dim str_spl$()
Dim lng_val#(0 To 1)
Dim lng_ing&(0 To 1)
Dim str_coll$()
Dim lng_c&
Dim str_res$
Dim lng_Opd&

    vExpresion$ = Replace$(vExpresion$, " ", "")
    vExpresion$ = Replace$(vExpresion$, ",", ".")
   
    If (Len(vExpresion$)) Then
        Do
       
            lng_Opd& = BuscarOperando(vExpresion$)
            If (lng_Opd& > -1) Then
                str_spl$ = Split(vExpresion$, Operandos(lng_Opd&), 2)
               
                If (lng_Opd& = eOperandos.eRaiz) Then
                    lng_val#(0) = GetVal(str_spl$(UBound(str_spl$)), &H0, False)
                    str_res$ = Sqr(lng_val#(0))
                    vExpresion$ = Replace$(vExpresion$, Operandos(lng_Opd&) & lng_val#(0), str_res$)
                   
                ElseIf (lng_Opd& <= eOperandos.eResta) Then
                   
                    lng_val#(0) = GetVal(str_spl$(0), &H0, True)
                    lng_val#(1) = GetVal(str_spl$(1), &H0, False)
                   
                    lng_ing&(0) = InStr(1, str_spl$(0), Incognita, vbTextCompare)
                    lng_ing&(1) = InStr(1, str_spl$(1), Incognita, vbTextCompare)
                   
                   
                    Select Case lng_Opd&
                        Case eOperandos.ePotencia
                            str_res$ = lng_val#(0) ^ lng_val#(1)
                           
                        Case eOperandos.eMultiplicacion
                            str_res$ = lng_val#(0) * lng_val#(1)
                           
                        Case eOperandos.eDivicion
                            str_res$ = FormatNumber(lng_val#(0) / lng_val#(1), 9)
                           
                        Case eOperandos.eSuma
                            str_res$ = lng_val#(0) + lng_val#(1)
                           
                        Case eOperandos.eResta
                            str_res$ = lng_val#(0) - lng_val#(1)
                           
                    End Select
                    vExpresion$ = Replace$(vExpresion$, lng_val#(0) & Operandos(lng_Opd&) & lng_val#(1), str_res$)
                   
                Else
                    ReduccionDeOperandos = vExpresion$
                    Exit Function
                   
                End If
               
            End If
       
        Loop Until lng_Opd& = -1
       
    End If
   
    ReduccionDeOperandos = vExpresion$
   
End Function

Public Function BuscarOperando(ByVal vExpresion$, Optional ByVal Reverse As Boolean = False, Optional ByRef Inpos&) As Long
Dim lng_Opd&
    lng_Opd& = -1
    If (Len(vExpresion$)) Then
        For lng_Opd& = 2 To UBound(Operandos)
            If (Reverse) Then
                Inpos& = InStrRev(vExpresion$, Operandos(lng_Opd&), Len(vExpresion$))
            Else
                Inpos& = InStr(1, vExpresion$, Operandos(lng_Opd&))
            End If
            If (Inpos&) Then
                Exit For
            End If
        Next lng_Opd&
        If (lng_Opd& = UBound(Operandos) + 1) Then
            BuscarOperando = -1
        Else
            BuscarOperando = lng_Opd&
        End If
    End If
End Function

Public Function GetVal(ByVal vExpresion$, ByRef OutPos As Long, Optional ByVal Reverse As Boolean = False) As Double
Dim str_res$
    If (Len(vExpresion$)) Then
        str_res$ = BuscarOperando(vExpresion$, Reverse, OutPos)
        If (Reverse) Then
            If (str_res$ = -1) Then
                OutPos = 1
            End If
            GetVal = Val(Mid$(vExpresion$, OutPos))
        Else
            If (str_res$ = -1) Then
                GetVal = Val(Mid$(vExpresion$, 1))
                OutPos = Len(vExpresion$)
            Else
                GetVal = Val(Mid$(vExpresion$, 1, OutPos))
            End If
        End If
    End If
End Function

Private Sub Class_Initialize()
    Operandos(eOperandos.eParentesisI) = "("
    Operandos(eOperandos.eParentesisF) = ")"
    Operandos(eOperandos.ePotencia) = "^"
    Operandos(eOperandos.eRaiz) = "sqrt"
    Operandos(eOperandos.eMultiplicacion) = "*"
    Operandos(eOperandos.eDivicion) = "/"
    Operandos(eOperandos.eSuma) = "+"
    Operandos(eOperandos.eResta) = "-"
End Sub



Ej.

Código (Vb) [Seleccionar]


Private Sub Form_Load()
Dim cls_ecuLineal As New cls_ecuLineal
    With cls_ecuLineal
        Dim str$, str2$
        str2$ = "((7 + 4 * 5 + 4)) + 54 + (42) * (4 * (8 / (45 * 10)))*sqrt(9)"
        Do
            DoEvents
            str$ = .GetParentesis(str2$)
            If Len(str2$) <> Len(str$) Then
                str2$ = Replace(str2, "(" & str$ & ")", .ReduccionDeOperandos(str$))
            Else
                MsgBox .ReduccionDeOperandos(str$) & vbNewLine & ((7 + 4 * 5 + 4)) + 54 + (42) * (4 * (8 / (45 * 10))) * Sqr(9)
                Exit Do
            End If
        Loop
    End With
End Sub



P.D.: Haber si mañana lo termino.

Dulces Lunas!¡.
#1468
Cita de: .:WindHack:. en 12 Marzo 2011, 03:42 AM
Un número puede alterar todo y no podemos suponer que existe "otro" por ahí. Así que hay que ser concretos y conciso.  ;)

Se iguala a cero aqui y en china pára denotar la ecuacion y cumplir las mismas.



Ej.

1) 50x-9+114-32x
2) (50-32)x = 9-114
3) x = (9-114) / (50-32)
4) x= (-105)/(18) = -5.83333...333

por lo tanto:

(50-32)(-105)/(18)=9-114
(50-32)(-105)/(18)-9+114=0

Temibles Lunas!¡.
-.
#1469
.
No quierop sonar pretencioso pero la ecuacion de 1er y 2do Grado pueden ser faciles si:

* Quitamos espcios
* Simpificamos las ecuaciones al maximo.
* Usamos la gerarquia de los operandos con la implementacion de unos Split()
* Usamos tacticas de recursividad ya que esto tiene cierta dificultad.

P.D.: Lo tomare como reto, ya les contare dentro de unos dias como me fue.

Temibles Lunas!¡.
#1470
.
Que idiotes puse :'(