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ú

Temas - 5TU4RT

#1
Bueno, quisiera saber la verdad que ha pasado con los proyectos.. ¡¡¿¿¿???!!!   

Hay nuevos?? estan desarrollando alguno?? algo en lo que yo pueda ayudar???

antes de retirarme estaba creando un reportador de bugs, no logré terminarlo, pero le pase el source hasta donde lo llevaba a Pr0Ph3t..!!!

¿¿??? que paso con eso??


Salu2.
5TU4RT


#2
Presentaciones y cumpleaños / Presentación...! 5TU4RT
Octubre 18, 2012, 02:45:05 PM
Muy buen Dia, tarde o noche, Segun corresponda!

Mi nombre es 5TU4RT... Ya algunos me conocen, Por muchos motivos me retiré del foro y por muchos motivos mas estoy volviendo :)

Me pasaron calamidades, problemas, muchas cosas mas, etc, etc...  Pero bueno, Aqui estoy denuevo!
Espero que llevemos un buen grupo y ambiente de trabajo!!!

Me Conectare lo mas que pueda desde el trabajo mientras arreglo mi PC y hago algunos ajustes en mi hogar...


No me queda mas que decir...
0 Rencores con Todos, y pa'delante..!


Edit: Ya saben que estoy disponible para Todos y Cualquier duda, curiosidad o en lo que yo pueda ayudarles, no duden en avisarme!!!  :)

Salu2
5TU4RT
#3
Dudas y pedidos generales / [SOLUCIONADO] Webcams...
Julio 07, 2012, 07:04:59 PM
Quisiera que alguien me dijera que me recomienda para lo siguiente:

digamos que en un cuarto hay una orquesta tocando y yo quiero que la vea una persona, la cual no se encuentra en el mismo pais...

ej: por medio de skype se pueden hacer conferencias, y podria hacer esto... pero que pasa si yo quiero que en el cuarto hayan 3 camaras... y quiero escojer cual camara mostrarle a la persona del otro pais, desde diferentes puntos de vista...

no se si me hice entender...

algo asi como una orquesta en vivo... supongamos que ustedes quieren ver una orquesta en vivo que se encuentra en mi casa... nos estamos viendo por skype u otro medio... entonces yo tengo 3 camaras instaladas en direfentes puntos... y quiero al inicio de la musica mostrar la camara 1, a la mitad mostrar la camara 2, y al final la camara3...


no se si sea posible desde skype y tener 3 camaras instalas en el equipo... o no se con que plataforma se podria llegar a hacer!!!


Porfavor espero sus propuestas y opiniones... necesito ideas!!!



SALu2
5TU4RT
#4
Muy buenas... como algunoss saben hace rato ya, estaba aprendiendo a programar en este magnifico lenguaje (PHP)... Lo deje a un lado por motivos personales, pero estoy devuelta...

Se me vino a la cabeza hacer un proyectico, Un convertidor de string a asccii... como me lo estaba imaginando, seria un poco tedioso llenar el codigo de condiciones, con todo el abecedario xDDD

he llegado a este punto y no es que no pueda seguir, si no que como lo llevo la unica manera que se me ocurre, seria cojer letra por letra y hacerle la condicion a cada una...

ya separe cada letra de la variable como lo ven en la imagen:



este es el code que llevo ahsta ahora!

Código: php
<?php
$h = '104';
$o = '111';
$l = '76';
$a = '97';
$ii = 0;
if(isset($_POST['button']))
{
$longitud = $string;
$lala = strlen($longitud); // longitud del string
echo "<br>";

while ($ii <= $lala)
{
$letra = '';
$letra = substr ($string, $ii, 1); // devuelve un caracter
echo $letra;
echo "<br>";
$ii++;
}

}
?>

<form name="form1" method="post" action="">
  <p>String:
    <input type="text" name="string">
</p>
  <p>Ascii:
    <input type="text" name="ascii" value="<?php echo $ascii; ?>" />
</p>
  <p>
    <input type="submit" name="button" value="Convertir">
  </p>
</form>


Ej: si "A" = A Entonces A --> 65 (65 valor en ascii)   Entonces asi me tocaria hacer letra por letra todo el abecedario e incluir mayusculas denuevo todo el abecedario xDD un poco larguito..

Pero ps les pregunto porque me imagino que debe haber alguna funcion en PHP que busque la conincidencia de nombres, con los nombres de las variables...

Espero me hayan entendido..

Salu2


EDIT:

Bueno, ya terminé el conversor, aqui se los muestro  ;D

Código: php
<?php
/* Coded By 5TU4RT */
$ii = 0;
if(isset($_POST['button']))
{
$longitud = $string;
$lala = strlen($longitud); // longitud del string

while ($ii < $lala)
{
$letra = '';
$letra = substr ($string, $ii, 1); // devuelve un caracter
$ascii = ord($letra);
$total = $total.','.$ascii;
$ii++;
}
$final = substr ($total, 1);
}
?>

<form name="form1" method="post" action="">
  <p>String:
    <input type="text" name="string">
</p>
  <p>Ascii:
    <input name="ascii" type="text" value="<?php echo $final; ?>">
</p>
  <p>
    <input type="submit" name="button" value="Convertir">
  </p>
</form>


Muchisimas gracias a todos por aclarar mis dudas, que detallazo...


SALU2
#5
Tutoriales / Atajos de Teclado Photoshop [Tutorial]
Abril 05, 2012, 06:16:06 AM
Bueno, Estos atajos sirven mucho para los diseñadores, los tenia por ahi archivado en mi HDD... Aqui les dejo.!


Herramientas:

A seleccion directa y trazado
B picel y lapiz
c recortar
D colores fondo y primer plano
E borrador/etc
F modos de pantalla
G degradado/bote de pintura
H mano
Barra espaciadora mano usando otras herramientas
I cuentagotas/medir/
J Aerografo
K sector
L lazo/etc
M marco/marco eliptico
N notas
O sobreexponer/sbexponer/esponja
P pluma/etc
Q mascara de enfoque
R desenfocar/enfocar/dedo
S tampon
T texto
U dibujo de formas
V mover
Ctrol mover cuando usas otra herramienta
W varita magica
X cambia color frontal y fondo
Y pincel historico
Z zoom
ALT + Z disminuye zoom
Control+barra espacio+ clic raton zomm

Todas las herramientas que posean mas de una en la misma casilla usando MAYUS mas la letra de la herramienta alterna entre esas herramientas


Menú Archivo:

Nuevo Ctrl + N
Abrir Ctrl + O
Cerrar Ctrl + W
Guardar Ctrl + S
Guardar Como Mayús + Ctrl + S
Salir/Cerrar Ctrl + Q
Ayuda F1


Menú Edición:

Deshacer Ctrl + Z
Paso adelante Ctrol+mayus+z
paso atras ctrol+alt+z
Cortar Ctrl + X
Copiar Ctrl + C
Copiar Combinado Mayús + Ctrl + C
Pegar Ctrl + V
Pegar Dentro Mayús + Ctrl + V
Transformación Libre Ctrl + T


Menú Imagen:

Ajustar Niveles Ctrl + L
Ajustar Niveles Autmáticos Mayús + Ctrl + L
Ajustar Curvas Ctrl + M
Ajustar Equilibrio de Color Ctrl + B
Ajustar Tono/Saturación Ctrl + U
Desaturar Mayús + Ctrl + U
Invertir Ctrl + I
Extraer Ctrl + Alt-X


Menú Capa:

Nueva Capa Mayús + Ctrl + N
Nueva Capa Vía Copiar Ctrl + J
Nueva Capa Vía Cortar Mayús + Ctrl + J
Agrupar con Anterior Ctrl + G
Desagrupar Mayús + Ctrl + G
Traer al Frente Mayús + Ctrl + ]
traer Adelante Ctrl + ]
Combinar Hacia Abajo Ctrl + E
Combinar Visibles Mayús + Ctrl + E


Menú Selección:

Seleccionar Todo Ctrl + A
Deseleccionar Ctrl + D
Reseleccionar Mayús + Ctrl + D
Invertir selección Mayús + Ctrl + I
Calar Ctrl + Alt-D


Menú Filtro:

Último Filtro Ctrl + F
eliminar el ultimo filtro Ctrl + z
Transición Mayús + Ctrl + F


Menú Vista:

Aumentar Ctrl + +
Reducir Ctrl + -
Encajar en Pantalla Ctrl + 0 (cero)
Pixels Actuales Ctrl + Alt-0 (cero)
Mostrar/Ocultar Bordes Mayús + Ctrl + H
Mostrar/Ocultar Trazado Ctrl + R
Mostrar/Ocultar Guías Ctrl + ;
Ajustar con las Guías Mayús + Ctrl + ;
Bloquear Guías Ctrl + Alt-;
Mostrar/Ocultar Cuadrícula Ctrl + "
Ajustar a la Cuadrícula Mayús + Ctrl + "

TAB muestra o oculta las paletas.

May+Ctrl+Alt+E Sirve para hacer una copia de todas las capas visibles agrupandolas en una sola capa (suelo crear una capa vacia y despues pulso la combiacion de teclas).


Pinceles:

Aumentar tamaño de pincel }
Disminuir tamaño de pincel {
Reducir la dureza del pincel May+[
Aumentar la dureza del pincel May+]
1 2 3 4 .... Pulsando los numeros directamente lo que hacemos es cambiar la opacidad del pincel que estamos gastando



SALU2  8)
#6
Bueno, hace dias me llegó un computador para formatear y ps estuve volteando con el practicamente 1 semana, ya que organizaba el menu de booteo y automaticamente siempre booteaba por la tarjeta de RED, tampoco reconocia mi unidad de DVD externa por USB ni ningun medio extraible, absolutamente nada... despues de casi tirarlo a la basura me dio por mirarle los capacitores, estos se veian levemente inflados en la parte de arriba...!!! La función de estos condensadores es almacenar energia....



La verdad nunca habia hecho el cambio de estos capacitores, pero simplemente hice una pequeña pregunta a mi amigo ANTRAX y me saco de la duda!!! asi que me di a la lucha xD y como sabran siempre hay una primera vez...

Me sirvio mucho este video como referencia, se los recomiendo!!!



Despues de esto, me funciono todo perfectamente y pude formatear tranquilo sin que me volviera a romper los webos.... 8) 8)


SALU2
#7
Bueno, este es un tutorial Basico, pero estoy seguro de que para muchos sera una joya como lo fue para mi en algun tiempo. Ya que estaba programando a la antigua (datacontrol)...!

(ADO = ActiveX Data Objects)

Empecemos desde el principio... para que te vayas acostumbrando... aunque ya deberías saber crear tus propios formularios y añadir los controles... es algo que te enseñan en prácticamente cualquier libro e incluso en los "tutoriales" que incluye el Visual Basic.

Aspecto del formulario en tiempo de diseño

Los controles usados son:
En la parte superior:
cmdMover, un array de 0 a 3
Label1, un array de 0 a 2, Text1, un array de 0 a 2
cmdAdd, cmdActualizar, cmdBorrar
El segundo grupo:
Label2, Text2, cmdBuscar
Un Listview1 para mostrar los resultados de la búsqueda
Una etiqueta (LblData) para mostrar algunos mensajes y el botón de salir es: cmdSalir

Las referencias necesarias:
En el menú Proyecto/Referencias... selecciona Microsoft ActiveX Data Objects 2.6 Library -aunque también puedes seleccionar cualquiera de las otras que te muestra, (si es que te muestra alguna más); a mi me aparecen las versiones 2.0, 2.1, 2.5 y 2.6, la única que no deberías seleccionar es la 2.0 que ya está obsoleta-

Una vez añadida la referencia a los objetos ADO, puedes usar los objetos expuestos por esta librería.
En este ejemplo usaremos dos de esos objetos, que serán los que en la mayoría de los casos usemos:
El objeto Connection y el objeto Recordset.
El primero es el que permite acceder a la base de datos y el segundo será el que acceda a los datos propiamente dicho, cuando veas el código seguramente lo entenderás y si no lo entiendes... me preguntas!

Los objetos ADO más comunes:
Normalmente, el objeto Connection suele declararse de forma que sea visible en todo el formulario, salvo en el caso de que añadieses algún módulo BAS y necesitaras usarlo desde ese módulo BAS, en cuyo caso, deberías declararlo Público o Global, pero como por ahora no es necesario... dejemos las cosas estar...

El objeto Recordset de ADO produce eventos, por tanto, si necesitamos acceder a esos eventos, declararemos la variable con WithEvents, de esa forma podemos interceptar los eventos que produzca de la misma manera que lo hacemos con el resto de controles (de esto veremos más en las entregas de las clases)
En el procedimiento Buscar, veremos cómo usar otro recordset, pero de la forma tradicional: sin eventos.

Escribe este código en las declaraciones generales del formulario:
Código: vb
Option Explicit

' En ADO, se usa el objeto Connection para abrir las bases de datos
Private cnn As ADODB.Connection
' Necesitamos los eventos si queremos controlar algunas cosillas
Private WithEvents rst As ADODB.Recordset


Al cargar el formulario, creamos los objetos y asignamos la información correspondiente para abrir la base de datos y crear o llenar el Recordset.
Como te dije, la base de datos se abre usando el objeto Connection, del cual usaremos el método Open al cual hay que indicarle el "proveedor" y el nombre de la base de datos:
Código: vb
Private Sub Form_Load()
    '
    Text2 = ""
    '
    ' Indicar el path correcto de la base de datos
    ' ¡ACUERDATE DE PONER EL PATH CORRECTO!
    Const sPathBase As String = "C:\Program Files\Microsoft Visual Studio\VB98\BIBLIO.MDB"
    '
    ' Crear los objetos
    Set cnn = New ADODB.Connection
    Set rst = New ADODB.Recordset
    '
    ' Crear la conexión manualmente
    ' Usar "Provider=Microsoft.Jet.OLEDB.3.51;" para bases de Access 97
    ' Usar "Provider=Microsoft.Jet.OLEDB.4.0;"  para bases de Access 2000
    With cnn
        .ConnectionString = _
            "Provider=Microsoft.Jet.OLEDB.3.51;" & _
            "Data Source=" & sPathBase & ";"
        .Open
    End With
    ' Indicarle de que tabla vamos a leer los datos
    rst.Open "SELECT * FROM Authors", cnn, adOpenDynamic, adLockOptimistic
    '
    ' Asignar los nombres de los campos a las etiquetas
    Label1(0).Caption = "Au_ID:"
    Label1(1).Caption = "Author:"
    Label1(2).Caption = "Year Born:"
    '
    With ListView1
        ' El tipo de Listview que queremos es del tipo "reporte"
        .View = lvwReport
        ' Que muestre las líneas de separación entre datos
        .GridLines = True
        ' Que no se puedan modificar los datos del listview
        .LabelEdit = lvwManual
        ' Añadimos las cabeceras
        .ColumnHeaders.Add , , "Au_ID", 900
        .ColumnHeaders.Add , , "Autor", 2700
        .ColumnHeaders.Add , , "Año nacimiento", 1500, lvwColumnRight
    End With
    '
    ' Si hay datos, posicionarlo en el primer registro:
    cmdMover_Click 0
End Sub


En el ejemplo de la entrega anterior, teníamos un procedimiento al que llamábamos cada vez que teníamos que actualizar la información del registro que estaba activo.  Pero como el Recordset de ADO produce eventos, vamos a usar uno de esos eventos: MoveComplete, el cual se produce cada vez que se cambia el registro activo.
Como te comenté antes, las variables declaradas con WithEvents siguen la misma "nomenclatura" que los eventos de los controles, por tanto, ese evento estará en: rst_MoveComplete (selecciona el objeto rst de la lista desplegable derecha y el evento MoveComplete de la lista de la izquierda), éste es el código para mostrar los datos cada vez que se cambia el registro activo, aunque realmente no sería necesario si hubiésemos "ligado" los controles con el recordset... pero de esa forma no tendríamos el control total sobre los datos, así que vamos a seguir con esto de usar los eventos:
Código: vb
Private Sub rst_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, _
ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, _
ByVal pRecordset As ADODB.Recordset)
    ' Cada vez que el registro actual cambie,
    ' se producirá este evento (igual que con el DataControl)
    With rst
'----------------------------------------------------------------------
' Nota aclaratoria del 18/Dic/2003:
' Cuando en un Recordset no hay datos, tanto BOF como EOF devuelven True
'----------------------------------------------------------------------
        If .EOF And .BOF Then
            lblData.Caption = "No hay ningún registro activo"
            .MoveFirst
        Else
            Text1(0) = .Fields("Au_ID")
            ' Por si el dato es nulo, añadirle una cadena vacia
            Text1(1) = .Fields("Author") & ""
            Text1(2) = .Fields("Year Born") & ""
        End If
    End With
End Sub


En este evento podemos usar tanto el objeto rst como el que está en el parámetro: pRecordset, los dos se refieren al mismo objeto.
Hacemos una pequeña comprobación de que no nos encontremos con un recordset vacío o que esté fuera de los límites permitidos, (cosa que ocurre cuando queremos pasar al siguiente registro cuando estamos al final (se produce EOF) o cuando pasamos al registro anterior y estamos al principio, (se produce BOF).
Si todo va bien, asignamos a las cajas de textos el contenido de los campos correspondientes.
Fíjate que en algunos de los campos añado una cadena vacía al contenido del campo, esto es para los casos en que esos campos contengan un valor nulo. Si se lo quitas al Year Born, verás cómo se produce un error, ya que en la base de datos Biblio, que es la que usaremos para este ejemplo, ese campo no suele estar asignado.

Ahora te muestro el resto del código para los botones de Mover, Nuevo, Actualizar y Eliminar, que es prácticamente igual al de la versión para DAO, con la salvedad de Actualizar, ya que en ADO no es necesario poner un registro (o columna que es como se debería decir), en modo edición para poder modificarlo, ya que al usar Update, se actualiza el registro.

Código: vb
Private Sub cmdMover_Click(Index As Integer)
    ' Mover según el botón pulsado
    'On Error Resume Next
    '
    With rst
        If Index = 0 Then       ' Primero
            .MoveFirst
        ElseIf Index = 1 Then   ' Anterior
            .MovePrevious
        ElseIf Index = 2 Then   ' Siguiente
            .MoveNext
        ElseIf Index = 3 Then   ' Último
            .MoveLast
        End If
        '
        If .BOF Or .EOF Then
            .MoveFirst
            lblData.Caption = " No hay datos..."
        Else
            lblData.Caption = " Registro actual: " & rst("Au_ID")
        End If
    End With
    '
    Err = 0
End Sub

Private Sub cmdAdd_Click()
    ' Añadir un nuevo registro
    rst.AddNew
    ' Añadimos algún texto, para que no se pierda este registro
    Text1(1) = "Nuevo"
    ' Actualizamos los datos
    rst.Update
    ' Movemos al último registro para que los cambios se hagan permanentes
    ' y se muestre el nuevo registro
    rst.MoveLast
End Sub

Private Sub cmdActualizar_Click()
    ' Guardar el contenido de las cajas de texto
    With rst
        ' Este campo es auto numérico, así que no asignarlo
        '.Fields("Au_ID") = Text1(0) + 0
        ' Añadimos una cadena vacía al final
        ' ya que si Text1(1) está vacío, se asignará un valor NULL y dará error
        .Fields("Author") = Text1(1) & ""
        ' Idem con el año de nacimiento, pero como es numérico, se sumará 0
        .Fields("Year Born") = Text1(2) + 0
        ' Actualizar los datos en el recordset
        .Update
    End With
End Sub

Private Sub cmdBorrar_Click()
    ' Borrar el registro actual
    ' Se comprueba que haya algún registro activo,
    ' para ello se comprueba que no hayamos pasado del principio o el final del Recordset
    '
    ' Comprobar que hay registros, porque si no hay, dará error
    If (rst.EOF Or rst.BOF) Then
        ' Avisar de que no hay registros
        lblData.Caption = "Ningún registro activo"
    Else
        ' Eliminar el registro actual
        rst.Delete
        '
        ' Movemos al primer registro para que los cambios se hagan permanentes
        ' (también podríamos haberlo movido al último registro)
        rst.MoveFirst
    End If
End Sub


Creo que no necesita información adicional, en los comentarios está todo explicado.

Para terminar, vamos a ver el código para Buscar datos:
Código: vb
Private Sub cmdBuscar_Click()
    ' Mostrar los datos en el listview
    Dim sBuscar As String
    Dim tRs As Recordset
    Dim tLi As ListItem
    '
    ' Comprobar si tiene caracteres "no válidos" para ADO:
    ' NOTA: Replace es una función de VB6
    sBuscar = Text2
    sBuscar = Replace(sBuscar, "*", "%")
    sBuscar = Replace(sBuscar, "?", "_")
    '
    Text2 = sBuscar
    ' Formar la cadena de la consulta:
    ' Se busca por el nombre del autor y se muestran clasificados por el nombre
    sBuscar = "SELECT * FROM Authors WHERE Author LIKE '" & sBuscar & "' ORDER BY Author"
    ' Creamos un recordset del tipo "estático", el cual no es modificable
    ' para poder modificarlo, tendría que ser del tipo dbOpenDynamic
    Set tRs = cnn.Execute(sBuscar)
    ' Comprobar que hay datos en el recordset
    With tRs
        ' Si no hay datos...
'----------------------------------------------------------------------
' Nota aclaratoria del 18/Dic/2003:
' Cuando en un Recordset no hay datos, tanto BOF como EOF devuelven True
'----------------------------------------------------------------------
        If (.BOF And .EOF) Then
            MsgBox "No se han encontrado los datos buscados"
        Else
            ' Mostrar los datos hallados
            ListView1.ListItems.Clear
            .MoveFirst
            Do While Not .EOF
                Set tLi = ListView1.ListItems.Add(, , .Fields("Au_ID") & "")
                tLi.SubItems(1) = .Fields("Author") & ""
                tLi.SubItems(2) = .Fields("Year Born") & ""
                .MoveNext
            Loop
        End If
    End With
End Sub


Caracteres comodines:
Como podrás comprobar el procedimiento de buscar es muy parecido, por no decir casi idéntico al usado en DAO, con la salvedad de que hacemos una comprobación para cambiar los caracteres comodines que hubiese en el texto indicado para la búsqueda, ya que en ADO no son los mismos que en DAO.
Según la ayuda de ADO, se usará el carácter % (tanto por ciento) en lugar del * (asterisco), cuando queramos indicar cualquier cosa que haya en el sitio en que se encuentra dicho carácter, por ejemplo: %jan% encontrará todos los registros que contenga "jan", esté en el sitio que esté: Janet, Alejandro, etc. Si pusiéramos jan%, sólo mostraría los que empezaran con jan, etc.

Por otro lado, el carácter _ (subrayado bajo) sustituye a la ? (interrogación), en este caso este comodín significa "cualquier carácter que esté en esa posición", por ejemplo: %r_us% encontrará cualquier palabra que contenga: una r seguida de cualquier cosa, seguida de us. Tal es el caso de Rouse, Marcus, etc.

La función Replace usada para cambiar esos caracteres es propia de la versión 6 de Visual Basic, en VB5 no existe, así que tendrás que crearte tu propia función Replace.

Bueno, vale... aquí la tienes:
Código: vb
Private Function Replace(ByVal Expresion As String, _
                         ByVal Encontrar As String, _
                         ByVal ReemplazarCon As String) As String
    '---------------------------------------------------------------
    ' Función Replace para usar con VB5 o anteriores
    '---------------------------------------------------------------
    Dim i As Long, j As Long
    '
    j = 1
    Do
        ' Buscar la cadena indicada en la expresión
        i = InStr(j, Expresion, Encontrar)
        ' Si la hemos hallado, quitamos dicha cadena y ponemos la nueva
        If i Then
            Expresion = Left$(Expresion, i - 1) & ReemplazarCon & Mid$(Expresion, i + Len(Encontrar))
            j = i + 1
        End If
    Loop While i
    ' Devolver la cadena
    Replace = Expresion
End Function



SALU2  ;D


Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#8
Buenas..

Quisiera saber si alguien me puede decir en que se encuentra encriptado esto...
y si alguien me puede colaborar a desencriptarlo...

nc60Zuk4onSOg

Muchas Gracias


SALU2
#9
Hola amigos, Tengo acceso a una web que maneja una informacion reee buena xD... y no he podido subirle la shell editando cabeceras con el live http headers...

Alguna otra idea???


SALU2
#10
Bueno, Estoy metiendome de lleno a la programacion, y por ahora quisiera editar un source de un crypter...

Alguien me puede decir concretamente, ¿Que es lo que se le debe editar para que vuelva a ser indetectable???
¿Porque lo detecta el AV?


Muchas gracias  :)