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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Temas
Páginas: 1 ... 53 54 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 ... 105
671  Programación / .NET (C#, VB.NET, ASP) / (SOLUCIONADO) Problema con Listview en: 6 Agosto 2013, 19:24 pm
Estoy intentando hacer una manera para recuperar los items de un listview si la aplicación se cierra o se mata indebídamente.

El listview está en modo "detalles" y tiene 3 columnas.

Para guardar los items, hago esto:

Código
  1.    Dim Recovery_Items As New List(Of Tuple(Of Integer, String, String))()
  2.  
  3.    Private Sub Recovery_Timer_Tick() Handles Recovery_Timer.Tick
  4.  
  5.        Recovery_Items.Clear()
  6.  
  7.        For Each item As ListViewItem In ListView_Monitor.Items
  8.            Recovery_Items.Add(Tuple.Create(item.Index, item.SubItems(1).Text, item.SubItems(2).Text))
  9.        Next
  10.  
  11.        IO.File.WriteAllText("Recovery.tmp", String.Join(vbNewLine, Recovery_Items), System.Text.Encoding.Default)
  12.  
  13.    End Sub


...Lo cual me genera esto en un archivo de texto:

Código:
(0, Valor1, Valor2)
(1, V-a-l-o-r-1, V-a-l-o-r-2)
(2, V,a,l,o,r,1, V,a,l,o,r,2)



Ahora, ¿Como puedo parsear/castear el contenido del archivo de texto para agregarlo como item del listview en sus respectivas columnas?



Un ejemplo de lo que intento hacer, esto sucedería al iniciar la aplicación:

Código
  1.    Private Sub Recovery()
  2.  
  3.        If IO.File.Exists("Recovery.tmp") Then
  4.  
  5.            For Each Line As String In IO.File.ReadAllLines("Recovery.tmp")
  6.                ListView_Monitor.Items.Add(TryCast(Line, ListViewItem))
  7.            Next
  8.  
  9.        End If
  10.  
  11.    End Sub

Pero claro... al contener tantas comas los valores, no puedo hacer un Split, ni se me ocurre nada que hacer.
672  Programación / .NET (C#, VB.NET, ASP) / (SOLUCIONADO) ¿Tri-Dictionary? en: 6 Agosto 2013, 18:41 pm
Necesito crear una colección donde se almacenen 3 valores, como por ejemplo en esta tupla:
Código
  1. Dim Recovery_Items As Tuple(Of Integer, String, String)

El problema es que necesito un contenedor de capacidad "infinita" para añadir más items, como por ejemplo un Dictionary con el método ".add", pero claro, esto no se puede hacer:
Código
  1. Dim Recovery_Items As New Dictionary(Of Integer, String, String)

He intentado hacerlo en un Array de 3 dimensiones pero he acabado hecho un lio a la hora de redimensionarlo y agregar los items, no me sale bien.

¿Alguien me puede dar alguna sugerencia de como es la manera más práctica para hacer lo que necesito, que debería usar?

Saludos
673  Comunicaciones / Redes / ONO, ¿mi opinión?... ESTAFADORES en: 4 Agosto 2013, 18:18 pm
Al conectar mi adaptador de red (cable), después de unos minutos la conexión se vuelve increiblemente lenta, de la típica velocidad de descarga que tengo sobre los 1,80mb/s va descendiendo hasta la mitad y a veces hasta los 200-300 kb incluso hasta los 100kb/s de media... al rato.

Si desconecto y vuelvo a conectar el router pues puedo descargar a velocidad normal (1,90 mb/s), pero como he dicho, solo dura unos pocos minutos...

He testeado la velocidad descargando archivos directos de uploaded.net (soy premium) y de ISO's de la web de Microsoft y archivos de otros sitios, descargando diréctamente desde Firefox como desde el JDownloader, y aparte los tests online de velocidad también me dan el mismo resultado...

Esto me pasa desde hace una o dos semanas, durante ese tiempo he reinstalado Windows 8 y me sigue pasando lo mismo...

No tengo ninguna conexión remota extraña (Lo he mirado con TCPView)

Tampoco tengo ningún proceso extraño corriendo.

Los drivers de Ethernet son los correctos, siempre he dejado elegir a Windows los drivers, ningún problema con eso.

El solucionador de problemas de internet de Windows me dice que todo va perfecto (mis cojones...)

Un escaneo con el Kaspersky TDSSKiller no me encuentra nada.

El Spybot search&Destroy tampoco encuentra nada.

Y un escaneo profundo con el NOD32 tampoco encuentra nada.

Aparte tengo el Firewall de Windows activado y no me ha advertido de nada hasta el momento.

Y hmmm... Tengo el Defender desactivado.

He probado a usar las DNS ipv4 de Google aunque no creo que esto tenga mucho que ver...pura desesperación...

Y he probado a desactivar el límite QoS del sistema, pero nada...

En fín no entiendo que puede ser...

He llegado a pensar que podría ser un problema del nodo pero imagino que si fuese eso en estas dos semanas ya alguien habría reportado el problema a los de ONO...

Lo más extraño es que a horas muy tempranas o muy nocturnas el problema desaparece como por arte de mágia...

Ya no sé que programa puedo usar para comprobar si todo está bien o si alguien me está chupando banda ancha...

¿Alguien tiene alguna sugerencia antes de llamar al apestoso soporte técnico de mi compañia para que me digan cosas absurdas que ya he probado? :P

Un saludo.
674  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...
675  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!
676  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...
677  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.
 
678  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!
679  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.
680  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...
Páginas: 1 ... 53 54 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 ... 105
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines