elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Temas
Páginas: 1 ... 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 [70] 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 ... 107
691  Programación / .NET (C#, VB.NET, ASP) / (SOLUCIONADO) Fuga de memória en una función :( en: 4 Agosto 2013, 15:01 pm
Tengo una fuga de memória grave en una aplicación, y es debido a una Class de terceros que estoy usando...

Este simple código aloja entre 100-200kb de RAM cada segundo :(

Código
  1. Public Class Form1
  2.  
  3.    Dim isbinded As Boolean = False
  4.    Dim Winamp As clsWACC = New clsWACC
  5.    Dim WithEvents mytimer As New Timer With {.Interval = 50, .Enabled = True}
  6.  
  7.    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles mytimer.Tick
  8.        isbinded = Winamp.Bind()
  9.        ' Label1.Text = isbinded
  10.        ' isbinded = Nothing
  11.    End Sub
  12.  
  13. End Class


Necesito usar un Timer rápido de menos de 50 ms, pero simplemente por curiosidad si aumento el Timer a 1000 ms la ram sigue subiendo sin pausa, aunque sube sólo 8 kb cada segundo.

He intentado examinar y corregir la Class pero no encuentro el fallo, esta es la parte de la Class que manipula el code de arriba:

Código
  1.        Public Sub New(ByVal handle As IntPtr, ByVal str As String)
  2.            'opens the process
  3.            hWinamp = OpenProcess(DAccess.PROCESS_ALL_ACCESS, False, waPID)
  4.            'If hWinamp.Equals(IntPtr.Zero) Then
  5.            '    'exception
  6.            'End If
  7.  
  8.            remStr = str
  9.            remoteBuf = AllocWinamp(handle, Convert.ToUInt32(str.Length + 1))
  10.            Dim localBuf As IntPtr = Marshal.StringToHGlobalAnsi(str)
  11.  
  12.            WriteProcessMemory(hWinamp, remoteBuf, localBuf, str.Length + 1, Nothing)
  13.            Marshal.FreeHGlobal(localBuf)
  14.        End Sub

Código
  1.    Dim path As String = Nothing
  2.    Dim regKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\Winamp", False)
  3.  
  4.   'Binds to WinAmp
  5.    Public Function Bind() As Boolean
  6.        Return Bind("")
  7.    End Function
  8.  
  9.    Public Function Bind(ByVal PathToExecutable As String) As Boolean
  10.        hWnd_Winamp = WinAPI.FindWindow(lpClassName, Nothing)
  11.  
  12.        'waProcess = New Process
  13.        waProcess.EnableRaisingEvents = True
  14.  
  15.        'If WinAmp window handle not found, try to launch it
  16.        If hWnd_Winamp.Equals(IntPtr.Zero) Then
  17.  
  18.            'if path was not specified, try to find it in the Windows registry
  19.            If PathToExecutable = "" Then
  20.                'Dim path As String
  21.                'regKey = Registry.CurrentUser
  22.                'regKey = regKey.OpenSubKey("Software\Winamp", False)
  23.                If regKey IsNot Nothing Then
  24.                    path = Convert.ToString(regKey.GetValue(""))
  25.                    waProcess.StartInfo.FileName = path & "\Winamp.exe"
  26.                    regKey.Close()
  27.                Else
  28.                    Return False
  29.                End If
  30.            Else
  31.                waProcess.StartInfo.FileName = PathToExecutable
  32.            End If
  33.  
  34.            Try
  35.                waProcess.Start()
  36.            Catch ex As System.ComponentModel.Win32Exception When ex.ErrorCode = -2147467259
  37.                Debug.WriteLine("Executable not found")
  38.                Return False
  39.            Catch ex As Exception
  40.                Debug.WriteLine("unknown exception")
  41.                Return False
  42.            End Try
  43.  
  44.            waProcess.WaitForInputIdle()
  45.            hWnd_Winamp = waProcess.MainWindowHandle()
  46.            waPID = waProcess.Id
  47.        Else
  48.  
  49.            'WinAmp handle found
  50.            'now bind to WinAmp process
  51.            'get PID from hWnd
  52.  
  53.            WinAPI.GetWindowThreadProcessId(hWnd_Winamp, waPID)
  54.            If waPID = 0 Then
  55.                Return False
  56.            End If
  57.  
  58.            waProcess = Process.GetProcessById(waPID)
  59.            waProcess.EnableRaisingEvents = True
  60.  
  61.            hWnd_Playlist = GetHWND(WinampWindow.Playlist)
  62.            hWnd_Equalizer = GetHWND(WinampWindow.Equalizer)
  63.            hWnd_Video = GetHWND(WinampWindow.Video)
  64.            Return True
  65.  
  66.        End If
  67.  
  68.        'if hWnd of the main window is still zero,
  69.        'it was not possible to launch or bind to WinAmp
  70.        If hWnd_Winamp.Equals(IntPtr.Zero) Then
  71.            Return False
  72.        Else
  73.            hWnd_Playlist = GetHWND(WinampWindow.Playlist)
  74.            hWnd_Equalizer = GetHWND(WinampWindow.Equalizer)
  75.            hWnd_Video = GetHWND(WinampWindow.Video)
  76.            Return True
  77.        End If
  78.    End Function

Pero la primera condición no se cumple, es decir, solo se manipula esta parte de la función Bind:

Código
  1.        If hWnd_Winamp.Equals(IntPtr.Zero) Then
  2.             ' NADA
  3.        Else
  4.  
  5.            'WinAmp handle found
  6.            'now bind to WinAmp process
  7.            'get PID from hWnd
  8.  
  9.            WinAPI.GetWindowThreadProcessId(hWnd_Winamp, waPID)
  10.            If waPID = 0 Then
  11.                Return False
  12.            End If
  13.  
  14.            waProcess = Process.GetProcessById(waPID)
  15.            waProcess.EnableRaisingEvents = True
  16.  
  17.            hWnd_Playlist = GetHWND(WinampWindow.Playlist)
  18.            hWnd_Equalizer = GetHWND(WinampWindow.Equalizer)
  19.            hWnd_Video = GetHWND(WinampWindow.Video)
  20.            Return True
  21.  
  22.        End If

hWnd_Winamp es un IntPtr
waProcess es un Process (el cual he probado a liberarlo pero sigue pasando lo mismo...)
waPID es un Integer
hWnd_Playlist es un IntPtr
hWnd_Equalizer es un IntPtr
hWnd_Video es un IntPtr

...y GetWindowThreadProcessId es esta función:

Código
  1.        '========================                        =========================
  2.        '======================  GetWindowThreadProcessId  =======================
  3.        '========================                        =========================
  4.        'Retrieves the identifier of the thread that created the specified window
  5.        'and, optionally, the identifier of the process that created the window.
  6.        <DllImport("user32.dll", SetLastError:=True)> _
  7.        Public Shared Function GetWindowThreadProcessId( _
  8.                                        ByVal hwnd As IntPtr, _
  9.                                        ByRef lpdwProcessId As Integer) As Int32
  10.        End Function


y esta la función GetHWND:
Código
  1.    Private Shared Function GetHWND(ByVal Window As WinampWindow) As IntPtr
  2.        Return SendWA_IPC(Window, Message.IPC_GETWND)
  3.    End Function
  4.  
  5.    Private Shared Function SendWA_IPC(ByVal param As Int64, ByVal MessageName As Message) As IntPtr
  6.        Return WinAPI.SendMessage(hWnd_Winamp, WinAPI.Msg.WM_USER, IntPtr.op_Explicit(param), IntPtr.op_Explicit(MessageName))
  7.    End Function
  8.  
  9.        '===============================           ===============================
  10.        '=============================  SendMessage  =============================
  11.        '===============================           ===============================
  12.        'Sends the specified message to a window or windows. It calls the window
  13.        'procedure for the specified window and does not return until the window
  14.        'procedure has processed the message.
  15.        <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
  16.        Public Shared Function SendMessage(ByVal hWnd As IntPtr, _
  17.                                           ByVal Msg As Msg, _
  18.                                           ByVal wParam As IntPtr, _
  19.                                           ByVal lParam As IntPtr) As IntPtr
  20.        End Function


¿Alguna sugerencia?

Gracias...
692  Informática / Hardware / (SOLUCIONADO) Parones y Ralentización en la velocidad de transferencia de un HDD en: 3 Agosto 2013, 04:09 am
Hola

Tengo un cable como este donde tengo conectado el disco duro principal (Windows), y un disco duro secundario de almacenamiento:



El disco duro principal es un WD Black, y el secundario un WD Green, los dos tienen menos de 5 meses.

El problema es que si intento copiar un archivo pesado o muchos archivos sueltos desde el disco principal al secundario, la velocidad de transferencia va disminuyendo hasta quedarse sobre los 522 kb/s (juas), y jamás vuelve a subir la tasa ni a continuar el copiado, simplemente se ralentiza la velocidad de transaferencia y ahi se queda, sin moverse y sin terminar de copiarse el archivo, obligándome a reiniciar, porque si intento seguir copiando otro archivo distinto no me va a dejar hasta que reinicie.

EDITO: De hecho... más bien tengo que apagar el equipo cuando me pasa eso, porque una vez reinicié después de un intento de copiado y al loguearme en Windows el HDD secundario NO SE RECONOCIA por el sistema, habia desaparecido vaya!... hasta que apagué bien el PC y lo volví a encender. Pero el disco secundario no tiene ningún tipo de problema, si hago la prueba con otro HDD secundario me pasa lo mismo, se vuelven "invisibles" xD.

Ahora viene lo más extraño de todo para mi...

Colocamos otro cable como estos en la fuente:



y ahora, en el primer cable dejamos conectado el disco principal, y en este nuevo cable conectamos el disco seundario... de esta manera todo va como la seda al transferir archivos desde el disco principal.

Aunque no soy técnico creo que el experimento demuestra que no se trata de un fallo de hardware (de los HDD al menos no)

Tengo 4 HDD's y solo dos cables, así que necesito conectar un HDD junto al HDD principal...y esa idea no me gusta nada porque me da miedo perder datos del HDD principal o del HDD que esté conectado juno a él cuando vaya a intentar transferir archivos desde el HDD principal.

No entiendo mucho sobre el flujo de datos compartidos al conectar dos HDD's en el mismo cable como el de la imágen... pero pienso que si eso se puede conectar así es porque no deberían ocurrir problemas...

¿Que conflicto puede estar causando que cuando tengo 2 HDD's conectados en el mismo cable me de estos problemas?

· Debo decir que si copio archivos desde el disco secundario al disco principal no hay ningún tipo de problemas, tanto si estan los dos HDD conectados al mismo cable como si están "separados".

· Los cables son nuevecitos también...

· La fuente de alimentación es esta -> Be Quiet Pure Power L8 CM 630W Modular

· Esto me pasa desde que tengo instalado Windows 8 xD, aunque no creo que esa sea la razón... en mi antiguo PC con Windows 7 también me empezó a pasar y fue uno de los motivos por los que me actualicé el PC...

En fín, necesito ayuda y opiniones...

Un saludo!
693  Informática / Hardware / Comprar cable fuente de alimentación en: 3 Agosto 2013, 03:49 am
Hola

(Lo siento si no me explico muy bien)

Mi fuente de alimentación tiene espacio para 3 conectores donde pone "Drives", para conectar cables que conectan dispositivos...




El caso es que la fuente lleva 3 cables, dos de esos cables solo tiene salidas SATA, como este:



...pero el tercer cables tiene todas las salidas IDE, y ahora necesito conectar un dispositivo SATA más pero no puedo al no tener suficientes cables...


He ido a dos tiendas de informática y en las dos me dicen que ese tipo de cable NO se vende por separado, sólo se vende la fuente...
...cosa que me parece extraño, ¿si uno comprase una fuente de 200€ y necesitase comprar un maldito cable de repuesto, tiene que volver a comprar la fuente entera?

He intentado acceder a la web de BeQuiet , el fabricante, para ver si venden cables sueltos http://www.bequiet.com/ pero sólo sale una imágen en grande y nada más...ni que estuviera hackeada, vaya!

Mi pregunta es si saben donde puedo comprar un cable de esos...como el de la imágen, y que como se llama el susodicho cable xD.

Un saludo...
694  Programación / .NET (C#, VB.NET, ASP) / Error: No es posible crear una nueva página de seguridad para la pila en: 1 Agosto 2013, 15:19 pm
¿Alguien me puede explicar a que se debe este error?:

Código:
No es posible crear una nueva página de seguridad para la pila

Esto sucede al dejar una aplicación corriendo (en Standby digamos) durante 2 horas más o menos.

Es muy dificil buscar información sobre el problema cuando el mensaje de error está en castellano, ya que si pongo el mensaje de error en Google la única información relacionada que aparece en los resultados es esto -> Wikipedia: Pila de llamadas <-

...Después de habermelo leido, me he quedado con esta parte:
Citar
...Usualmente hay exactamente una pila de llamadas asociado a un programa en ejecución (o más precisamente, con cada tarea o hilo de un proceso)...
...Si el empujar (push) consume todo el espacio asignado para la pila de llamadas, ocurre un error llamado desbordamiento de pila...

...No entiendo muy bien las explicaciones, pero yo no uso multi-threading en mi aplicación, y todas las funciones que devuelven un valor pues...eso, lo devuelven,
y me parece que todo lo que apilo luego lo desapilo, aunque no entiendo ni se que tipo de datos son los que se apilan en una aplicación y cuales son los que puede que no se estén desapilando bien y como detectarlos.

¿Que debo examinar en mi código para intentar averiguar que puede ser el causante de este error?.

EDITO: Creo que la traducción de mi problema al inglés sería -> Stack overflow <-

EDITO 2: Las recursiones que hago en las subrutinas que uso siempre devuelven un valor es decir que su ejecución termina corréctamente (o eso creo), así que entonces esto no puede estar causando el error, ¿verdad?

Si yo tengo esto, el desapilamiento (poping) de los datos es correcto, ¿no?:

Código
  1. sub loquesea(sender as object) handles algún evento cualquiera
  2.     sender.propiedad = uno(32)
  3. end sub
  4.  
  5. function uno(valor as int32)
  6.    return dos(valor)
  7. end sub
  8.  
  9. function dos(valor as int32)
  10.    ' hacer cosas...
  11.    return valor modificado
  12. end function

...Es que entonces no entiendo que tipo de recursiones son las que no estoy desapilando, si en todas las subrutinas que llamo a otras subrutinas devuelvo un valor para terminar su ejecución.

EDITO 3: Me asalta la duda de cual es el tamaño máximo del Stack (la pila), y si puedo agrandar ese tamaño (mientras busco una solución decente, claro).

EDITO 4: Y también tengo la duda de si existe alguna forma para detectar recursividades conflictivas en un código, porque si tengo que modificar código y luego mantener la aplicación durante 2 horas cada vez para ver si se ha arreglado o no... vaya tela!, y además el analizador de código del VS no me indica ninguna sugerencia que corregir.
 
695  Programación / .NET (C#, VB.NET, ASP) / VisualStudio me ha creado la misma GUID para 2 aplicaciones distintas! en: 26 Julio 2013, 19:04 pm
Hola.

He hecho dos aplicaciones distintas, las dos son single-instance, y a la hora de intentar ejecutarlas al mismo tiempo no he podido.

No quería creermelo pero lo que sucedia parecia ser muy obvio así que lo primero que se me ha ocurrido es ir a las propiedades de los proyectos para comprobar si las GUIDS eran iguales, y ...efectívamente!! las dos aplicaciones tenian la misma GUID, toma ya!



¿Como es esto posible?

Las dos aplicaciones han sido creadas desde cero, quiero decir que no he copiado archivos sueltos de un proyecto a otro, y además son diferentes en todo menos en los recursos de imágenes utilizados, algunas subrutinas, y el nombre de la Class principal.

No entiendo como ha pasado esto.

Me gustaría que alguien me explicase que motivos pueden causar que VS use la misma GUID para dos aplicaciones complétamente distintas.

Un saludo!
696  Programación / .NET (C#, VB.NET, ASP) / [SOLUCIONADO] ¿Cual es el equivalente en .NET al comando MKLINK? en: 21 Julio 2013, 23:44 pm
¿Existe alguna class nativa del Framework donde poder manejarse con los vínculos simbólicos para crear vínculos o uniones de directorios?

Sería el equivalente al comando MKLINK de la CMD.

PD: NO APIS, CÓDIGO NATIVO.
697  Programación / .NET (C#, VB.NET, ASP) / [SOLUCIONADO] Necesito que alguien me compile un proyecto de C# en: 20 Julio 2013, 11:22 am
En mi VisualStudio no tengo instalados los paquetes necesarios para ejecutar algunos proyectos de C

Necesito que una persona bondadosa que use Visual C se apiade de mi alma jeje y me targetee este proyecto a la plataforma x64: http://downloads.sourceforge.net/freeimage/FreeImage3154.zip

...Como bien explican aquí paso a paso como hacerlo funcionar: http://www.sambeauvois.be/blog/2010/05/freeimage-and-x64-projects-yes-you-can/

Necesito esa librería compilada en "AnyCpu" y "x64"

De verdad que yo no puedo abrir el proyecto ni hacer nada con él, no es cuestión de vagancia, podría instalar una maquina virtual e instalar vs alli pero...requiere mucho tiempo y alguno de ustedes puede hacerlo en 5 minutos.

¿Alguien puede hacerlo?.

Un saludo, y gracias...
698  Programación / .NET (C#, VB.NET, ASP) / [SOLUCIONADO] Problema al convertir Bitmap a Ico en: 18 Julio 2013, 06:57 am
Estoy intentando convertir un Bitmap al tipo de imágen Icono (ICO), para guardar esa imágen al disco en formato ICO, pero el resultado que obtengo es un archivo PNG con la extensión modificada a ICO.

¿Porque la Class ImageFormat me guarda la imagen en formato PNG cuando le estoy indicando que me guarde el archivo en formato ICO?.

No conozco otra manera de de guardar una imágen al disco (sin usar librerías o aplicaciones d terceros), ¿Como resuelvo esto?.

¿Acaso hay algo mal en el code?

Esta es la manera en la que estoy usando mi code:
Código
  1. Save_Icon(Resize_Image(Bitmap.FromFile(PictureBox_Regedit.Tag), "Regedit.ico")

Y esto es el resto del code:
Código
  1. Private Sub Save_Icon(ByVal Source As Bitmap, ByVal Filename As String)
  2.  
  3.    Try
  4.        If Not Directory.Exists(AppDir) Then Directory.CreateDirectory(AppDir)
  5.        If Not Directory.Exists(AppIcons) Then Directory.CreateDirectory(AppIcons)
  6.        Source.MakeTransparent()
  7.        Source.Save(Path.Combine(AppIcons, Filename), ImageFormat.Icon)
  8.    Catch ex As Exception
  9.        Throw New Exception(ex.Message)
  10.    End Try
  11.  
  12. End Sub
  13.  
  14. Private Function Resize_Image(ByVal img As Image, ByVal Width As Int32, ByVal Height As Int32) As Bitmap
  15.    Dim Bitmap_Source As New Bitmap(img)
  16.    Dim Bitmap_Dest As New Bitmap(CInt(24), CInt(24))
  17.    Dim Graphic As Graphics = Graphics.FromImage(Bitmap_Dest)
  18.    Graphic.DrawImage(Bitmap_Source, 0, 0, Bitmap_Dest.Width + 1, Bitmap_Dest.Height + 1)
  19.    Return Bitmap_Dest
  20. End Function

EDITO: El problema sucede tanto usando "maketransparent" como sin usarlo.
699  Programación / .NET (C#, VB.NET, ASP) / [SOURCE] Plixid Leecher en: 14 Julio 2013, 16:53 pm
Descripción:

Una aplicación que descarga todas las urls de los últimos albums de la página plixid.com,
las urls se almacenan en un archivo de texto para copiarlas en Jdownloader (por ejemplo), también se pueden copiar desde el menú contextual de la aplicación.

La aplicación guarda las urls copiadas en un archivo log para no volver a descargarlas en el próximo uso de la aplicación.

...Y la búsqueda de albúms se puede filtrar por géneros de música.


Imágenes (última versión):








Demostración (Versión antigua):




Descarga:

-> http://ElektroStudios.tk//Plixid%20Leecher.zip

Version 2.2:
-> http://www.mediafire.com/download/nun04znym2u4hys/Plixid+Leecher.rar
700  Programación / .NET (C#, VB.NET, ASP) / [SOURCE] REG2BAT (Convierte archivos de Registro a scripts Batch) en: 14 Julio 2013, 16:53 pm



Descripción:

Una aplicación para convertir archivos REG a archivos BAT,
para ser más exactos convierte un script de registro a la sintaxis que usa el comando REG.exe.

La aplicación se puede usar también por consola:

Código:
 [+] Syntax:

 REG2BAT [Registry File] [Output File]

Esto es un archivo de registro convertido:

Código
  1. :: Converted with REG2BAT By Elektro H@cker
  2.  
  3. REM Windows Registry Editor Version 5.00
  4.  
  5. REG ADD "HKEY_CURRENT_USER\Test" /V "Test Binary" /T "REG_BINARY" /D "1234567890" /F
  6. REG ADD "HKEY_CURRENT_USER\Test" /V "Test Dword Dec" /T "REG_DWORD" /D "0x00bc614e" /F
  7. REG ADD "HKEY_CURRENT_USER\Test" /V "Test Dword hex" /T "REG_DWORD" /D "0x12345678" /F
  8. REG ADD "HKEY_CURRENT_USER\Test" /V "Test Expand SZ" /T "REG_EXPAND_SZ" /D "%%Temp%%\Hello" /F
  9. REG ADD "HKEY_CURRENT_USER\Test" /V "Test Multi SZ" /T "REG_MULTI_SZ" /D "Hello\0world!\0" /F
  10. REG ADD "HKEY_CURRENT_USER\Test" /V "Test Qword Dec" /T "REG_QWORD" /D "0x00000000000010e1" /F
  11. REG ADD "HKEY_CURRENT_USER\Test" /V "Test Qword Hex" /T "REG_QWORD" /D "0x1234567891234567" /F
  12. REG ADD "HKEY_CURRENT_USER\Test" /V "Test String" /T "REG_SZ" /D "By Elektro H@cker" /F


Imágenes:








Demostración:




Descarga:

-> http://www.mediafire.com/download/1h3zbymfhnb3spt/REG2BAT.rar
Páginas: 1 ... 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 [70] 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 ... 107
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines