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 - Eleкtro

#6401
Windows / Re: ventanas emergentes
7 Octubre 2014, 03:13 AM
Cita de: roxie en  7 Octubre 2014, 02:45 AMaqui hace un tiempo me pesaron un programa con una interface muy sencilla y sumamente efectivo pero no recuerdo su nombre.

La próxima vez que no recuerdes algo también puedes buscar en tus publicaciones y en las respuestas que te dieron: http://foro.elhacker.net/profiles/roxie-u190814.html;sa,showPosts

-> http://foro.elhacker.net/seguridad/malditas_ventanas_emergentes-t416347.0.html;msg1949088#msg1949088

Es más efectivo que preguntar y esperar a que alguien te de una respuesta xD.

Saludos!
#6403
Hombre, si deshabilitas una característica de Windows mediante Dism (o desde el menú de características de Windows), sigue instalada, si, pero obviamente no sigue accesible.

No se cual será ese script recomendado por Microsoft para eliminar completamente Internet Explorer, pero digo yo que utilizar dicho script complicará todavía más las cosas, o directamente imposibilitará para siempre una posible restauración de la característica desde una ubicación local del SO.

En el directorio WinSXS se guarda una copia (una copia intacta en su estado original, literalmente) de todas las características que vienen incluidas en Windows, así que si ese Script de Microsoft no ha tocado esas fuentes, aun tienes posibilidades.

En consola:

Utiliza esta instrucción para buscar el nombre correcto de la característica de Internet Explorer:
Código (dos) [Seleccionar]
Dism.exe /online /get-features

Cuando la hayas encontrado, intenta re-habilitarla. Ejemplo:
Código (dos) [Seleccionar]
Dism.exe /online /enable-feature /featurename:Internet-Explorer-Optional-amd64

Si eso no te funciona, olvídate, seguramente no exista una fuente accesible en tu PC de donde restaurar la característica.

También puedes probar a descargar el instalador offline:
http://www.microsoft.com/en-us/download/Internet-Explorer-11-details.aspx
( Si te dice que ya tienes instalado IE11, pulsa el botón Next para descargarlo igualmente )

Saludos.
#6404
Como he comentado en otras ocasiones C++/Cli no es mi fuerte, quizás me equivoque en algún aspecto de lo que voy a comentar a continuación, pero he notado cierta irregularidad aquí:

Código (csharp) [Seleccionar]
FileStream ^fs = gcnew FileStream(path, FileMode::Open, FileAccess::Read);
BinaryReader ^br = gcnew BinaryReader(fs);


Me he fijado en el operador gcnew, y me he informado un poco sobre su funcionalidad, pero al parecer dicho operador lo único que hace es indicar que los objetos se deben auto liberar, eso no significa que se vayan a liberar inmediatamente despues de enviar el return value, el garbage collector libera recursos cuando así lo cree necesario (a menos que lo invoques directamente), puede ser inmediatamente, o pueden pasar 2 o 20 segundos, aunque, con el uso de ese operador no estoy nada seguro la verdad, pero prueba a añadirle un bloque Finally a tu Try/catch para liberar los objetos:

Código (vbnet) [Seleccionar]
Dim fs As FileStream = Nothing
Dim br As BinaryReader = Nothing

Try
   fs = New FileStream("", FileMode.Open, FileAccess.Read)
   br = New BinaryReader(fs)

Catch ex As Exception

Finally
   If fs IsNot Nothing Then
       fs.Close()
   End If

   If br IsNot Nothing Then
       br.Close()
   End If

End Try


C# (conversión al vuelo):
Código (csharp) [Seleccionar]
FileStream fs = null;
BinaryReader br = null;

try {
fs = new FileStream("", FileMode.Open, FileAccess.Read);
br = new BinaryReader(fs);

} catch (Exception ex) {

} finally {
if (fs != null) {
fs.Close();
}

if (br != null) {
br.Close();
}

}


Lo mismo digo en el bloque Try/Catch donde usas el método LockBits, ¿que ocurre si hubiera un error de por medio y no se procesa la instrucción UnLockBits?,
yo directamente eliminaría el Try/catch, y en caso de encontrar una excepción la intentaría resolver, pero bueno, si quieres usar Try/catch entonces es tu deber asegurarte de que la imagen se desbloquea siempre en cualquier circunstancia:

Código (vbnet) [Seleccionar]
Dim bmpData As BitmapData = Nothing
Dim bmp As Bitmap = Nothing
Dim success As Boolean = False

Try
   bmp = Bitmap.FromFile("")
   bmpData = bmp.LockBits(New Rectangle With {.Width = bmp.Width, .Height = bmp.Height},
                          ImageLockMode.ReadWrite, bmp.PixelFormat)

   bmp.UnlockBits(bmpData)
   success = True

Catch ex As Exception

Finally
   If Not success Then
       bmp.UnlockBits(bmpData)
   End If

End Try


C# (conversión al vuelo):
Código (csharp) [Seleccionar]
BitmapData bmpData = null;
Bitmap bmp = null;
bool success = false;

try {
bmp = Bitmap.FromFile("");
bmpData = bmp.LockBits(new Rectangle {
Width = bmp.Width,
Height = bmp.Height
}, ImageLockMode.ReadWrite, bmp.PixelFormat);

bmp.UnlockBits(bmpData);
success = true;


} catch (Exception ex) {
} finally {
if (!success) {
bmp.UnlockBits(bmpData);
}

}


No se si esos pequeños ajustes resolverán el problema, pero tampoco puedo ayudar mucho más.

Saludos!
#6405
Cita de: luis456 en  6 Octubre 2014, 06:12 AM¿ como y por donde empiezo a romperme el coco para que pueda hacerlo desde un txt que tenga ya estos números  ?

-> File.ReadAllLines(String)

Cita de: luis456 en  6 Octubre 2014, 06:12 AMestos números pueden de de cuatro números ( 10 20 30 80 )  hasta 10 números ( 01 05 06 20 25 40 50 55 60 90 ) por ejemplo

-> For Each...Next
+
-> String().Count
+
GetDifferenceExpression(Long, Long) by Elektro

Saludos!
#6406
El mensaje de error se explica por si mismo, te está indicando que se está intentando bloquear la misma imagen simultaneamente (Bitmap.LockBits) sin haberla desbloqueado previamente (Bitmap.UnlockBits), y claro está, no puedes bloquear la imagen dos veces consecutivas si no la desbloqueas, comprueba bien lo que estés haciendo con ese objeto 'bitMap'.

EDITO: Tras leer el título de tu pregunta (que antes no me fijé muy bien) afirmas que la aplicación es multi-hilo, entonces probablemente la causa se deba a que varios hilos están intentando acceder/usar la misma imagen simultaneamente, el problema sigue siendo el mismo que he mencionado arriba.
Prueba a utilizar el método Bitmap.Clone para evitar esa excepción.






Cita de: SARGE553413 en  6 Octubre 2014, 00:00 AM3 - He leído algo de Invoke e InvokeRequired. PictureBox tiene el InvokeRequired a 'false' así que imagino que no tiene nada que ver con usar invoke.

Si tu aplicación es single-threaded no tienes porque preocuparte desde que Class (Form) asignes la propiedad de cualquier control,
de lo contrario, si tu aplicación es multi-htreaded y estás intentando modificar la propiedad de ese control desde un thread distinto al que creó el control, entonces por supuestisimo debes usar Control.InvokeRequired + Control.Invoke.

Aparte, en lo referente al Timer, no veo razón para que te estés complicando la vida con un Threading.Timer (+ Callbacks), el cual si tu aplicación es multi-hilo entonces es probable que también cause un error derivado con la imagen, ¿es realmente necesario para tu propósito?, prueba a utilizar un Windows.Forms.timer en su lugar.

saludos
#6407
Cita de: luis456 en  5 Octubre 2014, 17:49 PM
Bueno no se que ha pasado que no entraba el foro,me imagino que una caida de servidor :)

Gracias elektro lo revizo :)


Luis

Dímelo a mi, a los 10 minutos de leer tu pregunta (ayer sabado por la noche) ya habia escrito el ejemplo de arriba para ti y te lo quería mostrar para que tuvieras algo con lo que programar 'por que era sábado' como dijiste ;), pero hasta hoy por la mañana no pude postear el code xD.

PD: Todo es por culpa de un individuo o una panda de Juanckers que se dedican a Ddosear el foro, pero bueno, en este mundo debemos aprender a convivir con gente (y gentuza) de todo tipo.

Saludos!
#6408
Cita de: Randomize en  5 Octubre 2014, 10:27 AM
Acciones legales...  :¬¬

Y una somanta de palos también, pero lo primero caerá antes, ya que más tarde o temprano cometerán un fallo, como suele pasar.
#6409
Solo tienes que obtener la diferencia, no se que tipo de complicación le encuentras para realizar lo mismo en un código.

Prueba así:

Código (vbnet) [Seleccionar]
Public Class Form1

   Private Shadows Sub Load() Handles MyBase.Load

       Dim sb As New System.Text.StringBuilder
       Dim Values As New List(Of Integer()) From
           {
               ({1I, 19, 1I}),
               ({7I, 22, 4I}),
               ({8I, 27, 11}),
               ({20, 29, 17}),
               ({23, 33, 22}),
               ({39, 46, 31})
           }

       For Each ValueCol() As Integer In Values

           Dim Value1 As Integer = ValueCol(0)
           Dim Value2 As Integer = ValueCol(1)
           Dim Value3 As Integer = ValueCol(2)
           Dim Diff1 As String = GetDifferenceExpression(Value1, Value2)
           Dim Diff2 As String = GetDifferenceExpression(Value2, Value3)

           sb.AppendLine(String.Format("{0} -> {1} = {2}",
                         Value1.ToString("00"), Value2.ToString("00"), Diff1))

           sb.AppendLine(String.Format("{0} -> {1} = {2}",
                         Value2.ToString("00"), Value3.ToString("00"), Diff2))

           sb.AppendLine()

       Next ValueCol

       MessageBox.Show(sb.ToString)

       Application.Exit()

   End Sub

   ' Get Difference expression
   ' ( By Elektro )
   '
   ' Usage Examples:
   ' MessageBox.Show(GetDifferenceExpression(5, 10))
   '
   ''' <summary>
   ''' Gets the arithmetic sum/rest difference expression between two values.
   ''' </summary>
   ''' <param name="Value1">The first value.</param>
   ''' <param name="Value2">The second value.</param>
   ''' <returns>The arithmetic expression.</returns>
   Friend Function GetDifferenceExpression(ByVal Value1 As Long, ByVal Value2 As Long) As String

       Select Case Value2

           Case Is > Value1 ' Value2 is bigger than Value1.
               Return String.Format("+{0}", CStr(Value2 - Value1))

           Case Is < Value1 ' Value2 is lower than Value1.
               Return String.Format("-{0}", CStr(Value1 - Value2))

           Case Else ' Value2 is equals to Value1.
               Return "0"

       End Select

   End Function

End Class






Saludos.
#6410
yo no digo nada, pero... esta vez la han tumbado pero que bien tumbada, malditos sean, ¿se la tienen jurada a elhacker.net o que narices les pasa ya?, que asco de gente.

Saludos!