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

#631
Hola


He codeado este util script para añadir 3 nuevas opciones en el BootLoader de Windows 8 y Windows 8.1

· Modo Seguro

· Modo seguro con funciones de Red

· Modo Seguro con consola








@echo off & SetLocal EnableDelayedExpansion



Title Easy Add SafeModes in Windows 8
REM   By Elektro H@cker



::: Customize your safe mode descriptions here:
:::
Set "SafeMode_Description=Windows 8 Modo Seguro"
Set "SafeModeNetrowk_Description=Windows 8 Modo Seguro con funciones de Red"
Set "SafeModeShell_Description=Windows 8 Modo Seguro con Consola"
:::



REM [ STEP 1 ]
REM Add the new Boot loader entries

Echo [+] Adding Boot Loader entries... | MORE

:: Add the entries and make sure they are not already added
(
Bcdedit /Enum /V | FINDSTR /I "^Descrip" | FIND /I "%SafeMode_Description%" 1>NUL && (
Echo [X] Duplicate found: "%SafeMode_Description%")
) || (
Echo [+] Adding: "%SafeMode_Description%"
Bcdedit /Copy {current} /D "%SafeMode_Description%" 1>NUL
)

(
Bcdedit /Enum /V | FINDSTR /I "^Descrip" | FIND /I "%SafeModeNetrowk_Description%" 1>NUL && (
Echo [X] Duplicate found: "%SafeModeNetrowk_Description%")
) || (
Echo [+] Adding: "%SafeModeNetrowk_Description%"
Bcdedit /Copy {current} /D "%SafeModeNetrowk_Description%" 1>NUL

)

(
Bcdedit /Enum /V | FINDSTR /I "^Descrip" | FIND /I "%SafeModeShell_Description%" 1>NUL && (
Echo [X] Duplicate found: "%SafeModeShell_Description%")
) || (
Echo [+] Adding: "%SafeModeShell_Description%"
Bcdedit /Copy {current} /D "%SafeModeShell_Description%" 1>NUL
)



REM [ STEP 2 ]
REM Store the necessary values

Echo+ & Echo [+] Getting Boot Loader Information... | MORE

:: Get the boot loader identifiers
For /F "Tokens=2" %%# in (
'Bcdedit /Enum /V ^| FINDSTR /I "^Identif"'
) do (
SET /A ID_INDEX+=1
Set "ID!ID_INDEX!=%%#"
)

:: Get the boot loader descriptions
For /F "Tokens=1,*" %%A in (
'Bcdedit /Enum /V ^| FINDSTR /I "^Descrip"'
) do (
SET /A DES_INDEX+=1
Set "DES!DES_INDEX!=%%B"
)



REM [ STEP 3 ]
REM Set the boot config parametters

:: Set the Boot config parametters
Echo [+] Setting Boot Loader parametters... | MORE

For /L %%X in (1, 1, %ID_INDEX%) do (

If /I "!DES%%X!" EQU "%SafeMode_Description%" (
Bcdedit /Set "!ID%%X!" safeboot Minimal 1>NUL
)

If /I "!DES%%X!" EQU "%SafeModeNetrowk_Description%" (
Bcdedit /Set "!ID%%X!" safeboot Network 1>NUL
)

If /I "!DES%%X!" EQU "%SafeModeShell_Description%" (
Bcdedit /Set "!ID%%X!" safeboot Minimal           1>NUL
Bcdedit /Set "!ID%%X!" safebootalternateshell Yes 1>NUL
)

)



SetLocal DisableDelayedExpansion
Echo [+] Done! | MORE
Pause&Exit
:: END




EDITO:

Pueden eliminar las nuevas entradas de forma sencilla desde la utilidad MSCONFIG.exe (Ver la última imagen de arriba) o con el Switch "/Delete" del comando Bcdedit:

Código (dos) [Seleccionar]
Bcdedit /Delete "Identificador"
REM Nota: Se debe usar un identificador, no una descripción.


También pueden modificar el tiempo de espera que se muestran las entradas con este comando:

Código (dos) [Seleccionar]
bcdedit /timeout 10
REM Nota: El valor son segundos, no milisegundos.


O pueden desactivar el Boot Loader o el tiempo de espera en las opciones avanzadas de "Inicio y recuperación" de las propiedades del sistema:


#633
Esta es una colección personal de iconos para programadores, para el diseño de interfaces de usuario. Contiene más de 40.000 iconos (pero no esperen grandísima variedad, ya que algunos sets de iconos contienen varios miles de archivos).

Los iconos están clasificados en los siguientes directorios:
  • Developers
  • FileTypes
  • Payments
  • Social Media
  • World Flags
Y dentro de cada directorio hay subdirectorios con los nombres de los sets de iconos.

Algunoss sets de iconos son de pago, pero la mayoría gratuitos.

La colección incluye la extensa librería de iconos oficial de Microsoft Visual Studio 2012.

SIn más, les dejo un enlace de descarga:

www.mediafire.com/file/1zt3qgfuqy01wp3/Icons+for+developers+-+by+Elektro.zip

¡Saludos!
#634



:::::::::     ::: ::::::::::: :::    :::  ::::::::  
:+:    :+:  :+: :+:   :+:     :+:    :+: :+:    :+:
+:+    +:+ +:+   +:+  +:+     +:+    +:+ +:+        
+#++:++#+ +#++:++#++: +#+     +#++:++#++ +#++:++#++
+#+       +#+     +#+ +#+     +#+    +#+        +#+
#+#       #+#     #+# #+#     #+#    #+# #+#    #+#
###       ###     ### ###     ###    ###  ########  

By Elektro H@cker








· DESCRIPCIÓN:

PATHS es una aplicación por línea de comandos para administrar las entradas de la variable de entorno PATH y PATHEXT de Windows.

Tiene opciones para agregar y eliminar entradas así como limpiar, restaurar o crear una copia de seguridad del PATH y del PATHEXT.

La aplicación ha sido desarrollada usando VisualStudio 2012 en el lenguaje VB.NET y bajo Framework 4.0 por el uso de LINQ.





· MODO DE EMPLEO:

[+] Syntax:

   PATHS.exe [SWITCHES] [DIRECTORY or EXTENSION or INDEX]


[+] Switches:

   /l (or) /list    | Displays a list of the path entries.
   /b (or) /backup  | Backup the entries to a Registry file.  
   /c (or) /clean   | Clean duplicates and invalid entries.
   /r (or) /reset   | Reset the paths to Windows default.
                    |
   /add -current    | Add an entry to the current user PATH.
   /add -local      | Add an entry to the local machine PATH.
   /a (or) /add     | Add an entry to both PATH's.
                    |
   /del -current    | Delete an entry from current user PATH.
   /del -local      | Delete an entry from local machine PATH.
   /d (or) /del     | Delete an entry from both PATH's.
                    |
   /addext -current | Add an extension to current user PATHEXT.
   /addext -local   | Add an extension to local machine PATHEXT.
   /addext          | Add an extension to both PATHEXT's.
                    |
   /delext -current | Delete an extension from current user PATHEXT.
   /delext -local   | Delete an extension from local machine PATHEXT.
   /delext          | Delete an extension from both PATHEXT's.
                    |
   /? (or) /help    | Display this help.


[+] Additional switch value's Syntax:

   /del -current (Directory)
   /del -current (Entry Index)

   /del -local   (Directory)
   /del -local   (Entry Index)

   * You can see all the entry index numbers typing: PATHS /list

   /addext -current (File-Extension)
   /addext -local   (File-Extension)

   /delext -current (File-Extension)
   /delext -local   (File-Extension)


[+] Usage examples:

   PATHS /list

   PATHS /clean

   PATHS /reset

   PATHS /backup "C:\Registry File.reg"
   (Saves all the PATH and PATHEXT entries to the destination file)

   PATHS /add -current "C:\Directory"
   (Adds a new entry "C:\Directory" to Current User PATH)

   PATHS /add -local "C:\Directory"
   (Adds a new entry "C:\Directory" to All Users PATH)

   PATHS /add "C:\Directory"
   (Adds a new entry "C:\Directory" to both PATH's)

   PATHS /del -current "C:\Directory"
   (Deletes entries matching as "C:\Directory" from Current User PATH)

   PATHS /del -local "C:\Directory"
   (Deletes entries matching as "C:\Directory" from All Users PATH)

   PATHS /del "C:\Directory"
   (Deletes entries matching as "C:\Directory" from both PATH's)

   PATHS /del -current 5
   (Deletes entry index 5 from Current User PATH)

   PATHS /del -local 5
   (Deletes the entry index 5 from All Users PATH)

   PATHS /addext -current ".hack"
   (Adds a new ".hack" extension to Current User PATHEXT)

   PATHS /addext -local ".hack"
   (Adds a new ".hack" extension to All Users PATHEXT)

   PATHS /addext ".hack"
   (Adds a new ".hack" extension to both PATHEXT's)

   PATHS /delext -current ".hack"
   (Deletes extensions matching as ".hack" from Current User PATHEXT)

   PATHS /addext -local ".hack"
   (Deletes extensions matching as ".hack" from All Users PATHEXT)

   PATHS /addext ".hack"
   (Deletes extensions matching as ".hack" from both PATHEXT's)[/quote]






· IMÁGENES:


















· DESCARGA:

(Resubido el 05-Marzo-2014)
http://www.mediafire.com/download/ffuxgwezf4jd5c0/PATHS.rar

Incluye Source, compilado, e instalador.

Aquí pueden ver o descargar una versión antigua y no tán completa que codeé hace bastante tiempo en Ruby: [RUBY] [APPORTE PARA WINDOWS] PATHS v0.3 - Una utilidad para el PATH
#635
Hola

Ayer me animé a contratar algún servicio de estos que reparan HDD's, tengo un disco que está estropeado y llevaba 5 años queriendo repararlo... pero nunca tomé la iniciativa porque todas las personas me decian que era bastante caro, pero bueno, entre todos los servicios online que encontré me fijé en "OnRetrieval" por este comentario de su propia web:

CitarLe ofrecemos soluciones para la recuperación de datos a partir de 12 horas como servicio urgente y con precios desde 90€.

Diagnóstico definitivo gratuito en menos de 5h.

Hasta ahí todo bien, yo ya suponía que la recuperación debería costar un poco más alrededor de unos 200 € pero me daba igual... valía la pena recuperar los datos para mi.

En fín, ayer mandaron a una persona a recoger el HDD para llevarlo a la sede central del servicio, y hoy me han mandado un email donde he flipado, es que no tengo palabras, véanlo ustedes mismos:



¿¡ 660 EUROS !?

...¿PUES NO DECIAN QUE OFRECIAN SOLUCIONES DESDE 90 EUROS?, Es un precio muy desorbitado para una persona autónoma y para un disco de 320 GB.

Encima lo que me molesta incluso más que el precio es que no te ofrecen un listado de los archivos que se pueden recuperar antes de la recuperación... yo no voy a pagar 600 € y menos lo voy a pagar a ciegas para que al final solo se pudieran recuperar 4 archivos de los miles y miles que hay en ese disco.

En fín, yo quería preguntaros si conoceis algún servicio que sea más barato y de confianza (a ser posible en Valencia o que recogan el HDD en tu propia casa como OnRetrieval) y donde al menos te den un listado de los archivos antes de pagar por recuperarlos.

Al menos ahora sé cual es la causa del problema de ese disco (lo pone en la imágen), ahora tengo más información de la que tenía antes pero yo no sé hacer este tipo de reparaciones...

... Por eso de verdad yo le pagaría 200€ encantado a aquella persona que supiera recuperar los datos de mi disco (Eso va por Simorg y otros de confianza si me están leyendo xD) (Abstenerse de contestar a este comentario personas que no conozco para nada)

Gracias por leer.
#636
Hola

Estoy desarrollando una aplicación donde se interactua con una especie de teclado virtual que está agrupado de la siguiente manera:



y...bueno, como siempre intento hacer las cosas de manera correcta pues he investigado acerca de los distintos layouts de keyboards de UK, USA, y España. y me han asaltado unas dudas...


...Me he fijado que en los keyboards de UK/USA no existe este caracter: · (Shift + 3)




Pero dicho caracter lo podeis ver en cualquier lista / tabla:



Sincéramente yo no soy un erudito en lenguas pero que ese caracter no aparezca en los keyboards me hace suponer que ese caracter proviene del Castellano aunque se use de forma global, pero yo jamás he visto una palabra que contenga el caracter · en el Castellano.


Entonces... ¿Alguien me aclara mis dudas dándome un poco de información?, ¿ese caracter es del Castellano o estoy volviendome paranoico xD?, ¿Y porque no aparece el caracter en los keyboards guiris cuando se usa en BBCode y en todos sitios?


PD: Y cualquier sugerencia sobre el orden de los caracteres o cualqueir cosa que crean que está mal diganmelo.

Saludos!
#637
.NET (C#, VB.NET, ASP) / [SOURCE] Filmen
31 Agosto 2013, 21:47 PM


DESCRIPCIÓN

Filmen fue una de las primeras aplicaciones que hice en VB.NET así que debido a mi inexperiencia por aquel entonces la parte estética de la interface no es muy bonita, toda la lógica del programa está a simple vista, y hay algunos detalles que habría que retocar y/o mejorar, pero en general la app está más o menos terminada de forma decente y es 100% funcional, que es lo que importa.

Esta aplicación es más o menos un organizador de películas ...muy peculiar, porque más que organizar las peliculas su funcionalidad es realizar una serie de tareas y búsquedas sobre los videos de un directorio, por ejemplo remuxear videos e informar de ciertos tipo de problemas, bueno, con las imágenes de abajo pueden entender mejor su funcionalidad.

Es un software totálmente dedicado, es decir que las opciones de la aplicación son muy extravagantes porque están adaptadas a mis necesidades.


Estas son las funciones del programa:

· Eliminar los metadatos de un video.
· Crear listas de reproducción (de los videos que contenga cada directorio, se crean en ese mismo directorio).
· Renombrar los videos a TitleCase, WordCase, LowerCase o UpperCase.
· Informar de videos que contengan más de una pista de audio.
· Informar de videos que contengan pistas de audio en formato AC3/DTS/WAV.
· Informar de videos que contengan pistas de audio de formato X en un bitrate mayor/menor de X.
· Informar de videos que contengan archivos adjuntados.
· Un editor de scripts (Batch) para ejecutar un script personalizado de FFMPEG con los videos del "informe".

PD: No se pierde calidad alguna en las conversiones.
PD2: Si, quizás pude usar algún wrapper de FFMPEG, pero por aquel entonces ni sabia de su existencia.


IMÁGENES










DESCARGA

http://elektrostudios.tk/Filmen.zip

Incluye Source, compilado, instalador, y versión portable.
#638
.NET (C#, VB.NET, ASP) / [SOURCE] RegOpen
31 Agosto 2013, 21:08 PM


DESCRIPCIÓN

Es una aplicación de consola muy sencilla, su único propósito es abrir el Regedit en la ubicación de la clave que especifiquemos.

No suelo hacer este tipo de aplicaciones tan pequeñas pero necesitaba hacerla para agilizar una tarea así que quizás a alguien le sea igual de util esta aplicación :).


MODO DE EMPLEO

RegOpen    .:: By Elektro H@cker ::.


[+] Syntax:

   RegOpen [KEY]


[+] Example:

   RegOpen "HKCU\Software"



DESCARGA

http://elektrostudios.tk/RegOpen.zip

Incluye código fuente y compilado.
#639
Alguien me puede decir una marca o modelo de algún reproductor multimedia que tenga soporte para reproducir videos MKV (importantisimo) y con disco duro de 2 o 3 TB para almacenar (me da igual grabar, lo quiero para almacenar videos), y que no valga 300 ni 3.000 euros, porfavor...  :¬¬ xD

La cuestión es que quiero comprarle a mi padre algo capaz de reproducir archivos mkv en la TV, y así almacenarle mis películas en el disco duro del "aparato", y olvidarme de preocupaciones...
...si la mejor solución para esto en relación calidad/precio no es un reproductor casero entonces porfavor aconséjenme ottras opciones, gracias.

No estoy nada puesto en el tema, quizás ha sido una pregunta tonta

un saludo!
#640
.NET (C#, VB.NET, ASP) / [SOURCE] SEO Calculator
23 Agosto 2013, 11:09 AM

AUTORES

Elektro H@cker (85% del código)
Ikillnukes (15% del código, concrétamente la idea en si misma, la parte del cálculo de la paleta de colores, y la parte del lenguaje HTML.)

DESCRIPCIÓN

SEO Calculator es una aplicación que nos permite calcular los resultados de uno o varios términos de búsqueda en los distintos buscadores de Internet, ahorrándonos de esta manera el trabajo de buscar manuálmente desde el navegador.
...Esto es útil por ejemplo para decidirnos por el nombre de nuestra próxima web basándonos en el SEO...

· De momento sólamente permite buscar en Bing y/o Google.
· El reporte se puede mostrar en HTML o en texto plano.
· Dispone de opciones para modificar el BackColor y el Forecolor del reporte HTML.

IMÁGENES

   



DESCARGA

http://elektrostudios.tk/SEO%20Calculator.zip

Incluye Source, compilado, y versión portable.

PD: Se me olvidó incluir una de las DLL, ya está el enlace corregido.
#641
¿Algún experto en Redes puede explicarme algún posible motivo por el cual sucede esto?:

Un test de velocidad me da estos resultados:

14403 Kbps is 1800.38 kB/s
Or 14.4 Mbps  ::: 1.8 MB/sec


Pero cuando intento descargar cualquier cosa me va a velocidad muy reducida, 170kb/s, y lo he probado con todo tipo de servicios de descarga directo donde tienen capacidad de hasta más de 100mbp/s así que debería poder descargar al límite.

Sé que no es un problema de mi PC, repito, no es un problema de mi PC, por eso no busco respuestas como "quizás es un virus, etc"...

Yo lo único que quiero saber es si un servicio de Internet (ONO) puede engañar dando resultados normales en un test de velocidad, pero a la misma vez puede cortar a un cliente la capacidad de descarga a la hora de descargar cualquier cosa?.

Es decir, ¿mi ISP puede darme una velocidad normal en un test de velocidad, y al mismo caparme la velocidad al descargar datos?, es que no sé si se comparan los mismos tipos de datos al realizar un test que cuando descargamos un archivo.

¿Pueden hacer eso?
#642
Hola

Vengo buscando opiniones sobre un buen servicio de Internet (Que no sea ONO, ni Telefónica) para contratar una linea por cable, en España (Valencia).

Busco opiniones personales sobretodo porque todos los servicios dicen ser el número uno (nunca el dos ni el trés xD) en fin y ya sabeis cuantas estafas hacen, y cuanto prometen, y en fin... vamos, que de poco me sirve ponerme a buscar y comparar precios y servicios, cuando la verdad sobre estos servicios puede ser engañosa y poco eficiente.

Actuálmente tengo contratado ONO por cable, telefono + internet por unos 60€ al més cada factura, y el router me descargaba a 1,60 MB/s hasta hace unas semanas, he leido infinidad de estafas de ONO de las cuales me acabo de enterar al parecer...tarde, lo mio no sé si será una estafa, pero dicen que ni saben lo que le pasa a mi red ni que van a mandarme un técnico ni nada, así que me doy de baja y busco algo mejor por un precio decente.

Un saludo!
#644
Hola, me gustaría saber una cosa muy simple, pero no encuentro está información en ningún sitio.


¿Que tarda más en realizarse, una comprobación, o setear diréctamente un valor?

Pongo un ejemplo:


Código (vbnet) [Seleccionar]

' Setear diréctamente:
Private MyPoint As New Point(0, 8)

Private Sub blabla()

   MyPoint.X = 257
         
End Sub


Código (vbnet) [Seleccionar]

' Comprobar, y si la condición no se cumple, setear:
Private MyPoint As New Point(0, 8)

Private Sub blabla()

    If Not MyPoint.X = 257 Then MyPoint.X = 257
         
End Sub



Quizás también tenga que ver del objeto con el que estemos tratando, por ejemplo quizás una propiedad de un control "pesado" tardaría más en leerse que en diréctamente setear su valor?

#645
Hoy he descubierto algo que me ha impactado bastante.

Creamos un nuevo WinForm, y lo dejamos EN BLANCO, es decir, sin ningún tipo de código, simplemente el Form1.vb generado por el VS...

Ahora, si compilamos esa aplicación vacía, al mover el mouse sobre el form, sólo esa acción consume unos 8kb cada segundo. (no estoy seguro de si se trata del evento MouseEnter o del MouseMove, o quizás el problema no sea de un Evento y sea otra cosa que desconozco)

Lo más impactante de este experimento es que dicho consumo jamás se llega a liberar!, cuanto más muevo el mouse por el Form, más subre el consumo de RAM, 8 kb cada vez que muevo el mouse por el form, pero ese consumo nunca vuelve a bajar, y esto quiere decir que un Form vacío podría dar un problema de overflow sólamente por mover el mouse por el form!!?¿

¿Como es esto posible?, ¿Cual es la razón?, ¿Que se puede hacer para solucionarlo?, ¿Alguien más se habia dado cuenta de esto antes?.

PD: No se si es un WinForm de C# pasará lo mismo Con un Winform de C# sucede exáctamente lo mismo, lo he testeado con VB.NET, con Framework 4.0 y 4.5.


EDITO:

Con Java es incluso peor, es traumático, al mover el mouse sobre el background de una aplicación vacía la memória aumenta por MB's cada segundo, no por kb's, y no se llega a liberar jamás tampoco, puede pasar de 40 mb a 60 mb en menos de 30 segundos símplemente por mover el mouse por la ventana sin parar, y encima ese consumo no va a bajar nunca, es increible, en fín si que es cierto lo que dicen sobre Java y el consumo de RAM si...

Tengo algunos programas profesionales de terceros desarrollados en C/C++ y al mover el mouse por sus ventanas no sube el consumo en absoluto.



Bueno, ahí dejo el experimento, espero que alguien pueda dejar explicaciones sobre las causas de estos sucesos paranormales,
y si se puede evitar de alguna manera ese consumo excesivo OverRideando algún método o... como sea!!.



Saludos.
#646
Multimedia / Alternativa a DVDFab
7 Agosto 2013, 11:42 AM
Hola

No se si lo sabeis pero las versiones 8 y 9 de DVDFab están Mega bugueadas para la mayoría de usuarios que usan Windows 8, producen hangs, algunas vecs pantallazos, y nunca se llega a iniciar la aplicación. Y por si fuera poco los desarrolladores han tenido la genial idea de bloquear el uso de DVDFab en máquinas virtuales para los que pretendemos seguir usándolo en versiones anteriores de Windows... (En fín).

Por eso estoy buscando alguna alternativa a DVDFab.

Lo único que quiero es ripear BR's DESCARGADOS, es decir, el BR está en una carpeta... de una típica descarga "Full BluRay", NO QUIERO RIPEAR DESDE EL LECTOR DE BluRays.

He probado el AnyDVD pero creo que sólo permite ripear desde el lector, no desde una carpeta...

En DVDFab puedes abrir una carpeta que contenga un rip de un BR y sacar la película completa (sin menues ni extras nada) con la pista en Castellano y eliminando las otras pistas, sin recomprimir ni nada, sólo eliminar las pistas y la demás basura, pues eso es lo que necesito hacer.

Saludos
#647
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 (vbnet) [Seleccionar]
   Dim Recovery_Items As New List(Of Tuple(Of Integer, String, String))()

   Private Sub Recovery_Timer_Tick() Handles Recovery_Timer.Tick

       Recovery_Items.Clear()

       For Each item As ListViewItem In ListView_Monitor.Items
           Recovery_Items.Add(Tuple.Create(item.Index, item.SubItems(1).Text, item.SubItems(2).Text))
       Next

       IO.File.WriteAllText("Recovery.tmp", String.Join(vbNewLine, Recovery_Items), System.Text.Encoding.Default)

   End Sub



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

(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 (vbnet) [Seleccionar]
   Private Sub Recovery()

       If IO.File.Exists("Recovery.tmp") Then

           For Each Line As String In IO.File.ReadAllLines("Recovery.tmp")
               ListView_Monitor.Items.Add(TryCast(Line, ListViewItem))
           Next

       End If

   End Sub


Pero claro... al contener tantas comas los valores, no puedo hacer un Split, ni se me ocurre nada que hacer.
#648
Necesito crear una colección donde se almacenen 3 valores, como por ejemplo en esta tupla:
Código (vbnet) [Seleccionar]
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 (vbnet) [Seleccionar]
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
#649
Redes / ONO, ¿mi opinión?... ESTAFADORES
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.
#650
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 (vbnet) [Seleccionar]
Public Class Form1

   Dim isbinded As Boolean = False
   Dim Winamp As clsWACC = New clsWACC
   Dim WithEvents mytimer As New Timer With {.Interval = 50, .Enabled = True}

   Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles mytimer.Tick
       isbinded = Winamp.Bind()
       ' Label1.Text = isbinded
       ' isbinded = Nothing
   End Sub

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 (vbnet) [Seleccionar]
       Public Sub New(ByVal handle As IntPtr, ByVal str As String)
           'opens the process
           hWinamp = OpenProcess(DAccess.PROCESS_ALL_ACCESS, False, waPID)
           'If hWinamp.Equals(IntPtr.Zero) Then
           '    'exception
           'End If

           remStr = str
           remoteBuf = AllocWinamp(handle, Convert.ToUInt32(str.Length + 1))
           Dim localBuf As IntPtr = Marshal.StringToHGlobalAnsi(str)

           WriteProcessMemory(hWinamp, remoteBuf, localBuf, str.Length + 1, Nothing)
           Marshal.FreeHGlobal(localBuf)
       End Sub


Código (vbnet) [Seleccionar]
   Dim path As String = Nothing
   Dim regKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\Winamp", False)

  'Binds to WinAmp
   Public Function Bind() As Boolean
       Return Bind("")
   End Function

   Public Function Bind(ByVal PathToExecutable As String) As Boolean
       hWnd_Winamp = WinAPI.FindWindow(lpClassName, Nothing)

       'waProcess = New Process
       waProcess.EnableRaisingEvents = True

       'If WinAmp window handle not found, try to launch it
       If hWnd_Winamp.Equals(IntPtr.Zero) Then

           'if path was not specified, try to find it in the Windows registry
           If PathToExecutable = "" Then
               'Dim path As String
               'regKey = Registry.CurrentUser
               'regKey = regKey.OpenSubKey("Software\Winamp", False)
               If regKey IsNot Nothing Then
                   path = Convert.ToString(regKey.GetValue(""))
                   waProcess.StartInfo.FileName = path & "\Winamp.exe"
                   regKey.Close()
               Else
                   Return False
               End If
           Else
               waProcess.StartInfo.FileName = PathToExecutable
           End If

           Try
               waProcess.Start()
           Catch ex As System.ComponentModel.Win32Exception When ex.ErrorCode = -2147467259
               Debug.WriteLine("Executable not found")
               Return False
           Catch ex As Exception
               Debug.WriteLine("unknown exception")
               Return False
           End Try

           waProcess.WaitForInputIdle()
           hWnd_Winamp = waProcess.MainWindowHandle()
           waPID = waProcess.Id
       Else

           'WinAmp handle found
           'now bind to WinAmp process
           'get PID from hWnd

           WinAPI.GetWindowThreadProcessId(hWnd_Winamp, waPID)
           If waPID = 0 Then
               Return False
           End If

           waProcess = Process.GetProcessById(waPID)
           waProcess.EnableRaisingEvents = True

           hWnd_Playlist = GetHWND(WinampWindow.Playlist)
           hWnd_Equalizer = GetHWND(WinampWindow.Equalizer)
           hWnd_Video = GetHWND(WinampWindow.Video)
           Return True

       End If

       'if hWnd of the main window is still zero,
       'it was not possible to launch or bind to WinAmp
       If hWnd_Winamp.Equals(IntPtr.Zero) Then
           Return False
       Else
           hWnd_Playlist = GetHWND(WinampWindow.Playlist)
           hWnd_Equalizer = GetHWND(WinampWindow.Equalizer)
           hWnd_Video = GetHWND(WinampWindow.Video)
           Return True
       End If
   End Function


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

Código (vbnet) [Seleccionar]

       If hWnd_Winamp.Equals(IntPtr.Zero) Then
            ' NADA
       Else

           'WinAmp handle found
           'now bind to WinAmp process
           'get PID from hWnd

           WinAPI.GetWindowThreadProcessId(hWnd_Winamp, waPID)
           If waPID = 0 Then
               Return False
           End If

           waProcess = Process.GetProcessById(waPID)
           waProcess.EnableRaisingEvents = True

           hWnd_Playlist = GetHWND(WinampWindow.Playlist)
           hWnd_Equalizer = GetHWND(WinampWindow.Equalizer)
           hWnd_Video = GetHWND(WinampWindow.Video)
           Return True

       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 (vbnet) [Seleccionar]
       '========================                        =========================
       '======================  GetWindowThreadProcessId  =======================
       '========================                        =========================
       'Retrieves the identifier of the thread that created the specified window
       'and, optionally, the identifier of the process that created the window.
       <DllImport("user32.dll", SetLastError:=True)> _
       Public Shared Function GetWindowThreadProcessId( _
                                       ByVal hwnd As IntPtr, _
                                       ByRef lpdwProcessId As Integer) As Int32
       End Function



y esta la función GetHWND:
Código (vbnet) [Seleccionar]
   Private Shared Function GetHWND(ByVal Window As WinampWindow) As IntPtr
       Return SendWA_IPC(Window, Message.IPC_GETWND)
   End Function

   Private Shared Function SendWA_IPC(ByVal param As Int64, ByVal MessageName As Message) As IntPtr
       Return WinAPI.SendMessage(hWnd_Winamp, WinAPI.Msg.WM_USER, IntPtr.op_Explicit(param), IntPtr.op_Explicit(MessageName))
   End Function

       '===============================           ===============================
       '=============================  SendMessage  =============================
       '===============================           ===============================
       'Sends the specified message to a window or windows. It calls the window
       'procedure for the specified window and does not return until the window
       'procedure has processed the message.
       <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
       Public Shared Function SendMessage(ByVal hWnd As IntPtr, _
                                          ByVal Msg As Msg, _
                                          ByVal wParam As IntPtr, _
                                          ByVal lParam As IntPtr) As IntPtr
       End Function



¿Alguna sugerencia?

Gracias...
#651
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!
#652
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...
#653
¿Alguien me puede explicar a que se debe este error?:

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 (vbnet) [Seleccionar]
sub loquesea(sender as object) handles algún evento cualquiera
    sender.propiedad = uno(32)
end sub

function uno(valor as int32)
   return dos(valor)
end sub

function dos(valor as int32)
   ' hacer cosas...
   return valor modificado
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.
#654
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!
#655
¿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.
#656
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...
#657
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 (vbnet) [Seleccionar]
Save_Icon(Resize_Image(Bitmap.FromFile(PictureBox_Regedit.Tag), "Regedit.ico")

Y esto es el resto del code:
Código (vbnet) [Seleccionar]
Private Sub Save_Icon(ByVal Source As Bitmap, ByVal Filename As String)

   Try
       If Not Directory.Exists(AppDir) Then Directory.CreateDirectory(AppDir)
       If Not Directory.Exists(AppIcons) Then Directory.CreateDirectory(AppIcons)
       Source.MakeTransparent()
       Source.Save(Path.Combine(AppIcons, Filename), ImageFormat.Icon)
   Catch ex As Exception
       Throw New Exception(ex.Message)
   End Try

End Sub

Private Function Resize_Image(ByVal img As Image, ByVal Width As Int32, ByVal Height As Int32) As Bitmap
   Dim Bitmap_Source As New Bitmap(img)
   Dim Bitmap_Dest As New Bitmap(CInt(24), CInt(24))
   Dim Graphic As Graphics = Graphics.FromImage(Bitmap_Dest)
   Graphic.DrawImage(Bitmap_Source, 0, 0, Bitmap_Dest.Width + 1, Bitmap_Dest.Height + 1)
   Return Bitmap_Dest
End Function


EDITO: El problema sucede tanto usando "maketransparent" como sin usarlo.
#658
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):

[youtube=640,360]http://www.youtube.com/watch?v=Bw0832EjAQ4&feature=youtu.be[/youtube]


Descarga:

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

Version 2.2:
-> http://www.mediafire.com/download/nun04znym2u4hys/Plixid+Leecher.rar
#659




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:

[+] Syntax:

REG2BAT [Registry File] [Output File]


Esto es un archivo de registro convertido:

Código (dos) [Seleccionar]
:: Converted with REG2BAT By Elektro H@cker

REM Windows Registry Editor Version 5.00

REG ADD "HKEY_CURRENT_USER\Test" /V "Test Binary" /T "REG_BINARY" /D "1234567890" /F
REG ADD "HKEY_CURRENT_USER\Test" /V "Test Dword Dec" /T "REG_DWORD" /D "0x00bc614e" /F
REG ADD "HKEY_CURRENT_USER\Test" /V "Test Dword hex" /T "REG_DWORD" /D "0x12345678" /F
REG ADD "HKEY_CURRENT_USER\Test" /V "Test Expand SZ" /T "REG_EXPAND_SZ" /D "%%Temp%%\Hello" /F
REG ADD "HKEY_CURRENT_USER\Test" /V "Test Multi SZ" /T "REG_MULTI_SZ" /D "Hello\0world!\0" /F
REG ADD "HKEY_CURRENT_USER\Test" /V "Test Qword Dec" /T "REG_QWORD" /D "0x00000000000010e1" /F
REG ADD "HKEY_CURRENT_USER\Test" /V "Test Qword Hex" /T "REG_QWORD" /D "0x1234567891234567" /F
REG ADD "HKEY_CURRENT_USER\Test" /V "Test String" /T "REG_SZ" /D "By Elektro H@cker" /F



Imágenes:








Demostración:

[youtube=640,360]http://www.youtube.com/watch?v=qbB5jgHMJf4&feature=youtu.be[/youtube]


Descarga:

-> http://www.mediafire.com/download/1h3zbymfhnb3spt/REG2BAT.rar
#660
Descripción:

Un simple cronómetro, siempre me hizo ilusión hacer uno xD.


Imágenes:




Demostración:

[youtube=640,360]http://www.youtube.com/watch?v=x4vpLFcWCiE&feature=youtu.be[/youtube]


Descarga:

-> http://elektrostudios.tk//CronoX.zip
#661
Pues eso, si alguien me puede explicar como puedo modificar la ganancia de un Wav...

En un form reproduzco un Wav que lo tengo como archivo de Recurso (my.resources.wave), lo que quiero es poder ajustar el nivel de audio de este Recurso para reproducirlo con un nivel más bajo del máximo (1.000f = Máximo).

Se supone que con la librería NAudio se puede conseguir esto, pero sólo he llegado hasta aquí:
Código (vbnet) [Seleccionar]
Public wavefile As New NAudio.Wave.WaveFileReader("C:\Archivo.wav")

la class tiene miles de métodos y no son nada claros para mi, no sé como hacerlo.

Si alguien conoce otro método para conseguir esto no tiene importancia, no dependo de dicha librería, sólo es que ...es lo único que he encontrado sobre el tema.






Aquí tienen la Lib, por si alguien puede ayudar echándole un vistazo:
http://naudio.codeplex.com/
PD: Los ejemplos son en C#,
hay una "demoApp" que hace exáctamente lo que quiero, pero todo el code es demasiado Pro para mi nivel a la hora de intentar trasladar lo que necesito a VB.



Creo que la parte interesante del source de la Demo está aquí:

Código (csharp) [Seleccionar]
       namespace NAudioDemo.AudioPlaybackDemo

       this.fileWaveStream = plugin.CreateWaveStream(fileName);
       var waveChannel =  new SampleChannel(this.fileWaveStream, true);
       this.setVolumeDelegate = (vol) => waveChannel.Volume = vol;
       waveChannel.PreVolumeMeter += OnPreVolumeMeter;

       var postVolumeMeter = new MeteringSampleProvider(waveChannel);
       postVolumeMeter.StreamVolume += OnPostVolumeMeter;

...Obviamente falta mucho más código necesario, pero es que es muy, muy, muy extensa.

Saludos
#662
Scripting / MOVIDO: Modificar ISO.
10 Julio 2013, 20:06 PM
#663
¿Alguien me puede introducir en el tema?

Estoy recien empezando con una web que trata sobre un pequeño negocio, y bueno... quiero salir en el buscador de Google para captar clientes.

La web tiene un nombre muy particular, son dos palabras claves juntas, no se si eso puede ayudar. (Prefiero no decir el nombre de la web)

Si me pueden dar algún enlace de referencia para estudiar sobre los trucos básicos (y no tán básicos)...


Y si pudieran decirme si algo de esto es una buena idea para salir en el buscador de Google:

· Crear miles de dominios .TK (puedo hacerlo de hasta 12 meses de duración) con palabras clave para que salgan en google y así redireccionarlos a mi web principal.

· Añadir algún tipo de botón de esos de google, para votar por la web. (Ni idea de en que zona de Google se consigue ese script ni como se llama el maldito susodicho xD).

· Poner un Header en el Body con palabras clave (Uno de mis hermanos me dijo este truco, y lleva 30 años diseñando webs, aunque no recuerdo lo que me dijo exáctamente ni tmapoco puedo preguntarle).

No se me ocurre nada más, soy un completo newbie en el tema de administrar una web.

EDITO: He visto que en la página principal de ElHacker.net hay un botón de Google Plus, pero solo tiene "862" votos. En una web que tiene miles de visitas cada día, y sólo consigue esos pocos votos... me parece muy extraño! me gustaría saber desde cuando lleva ese botón ahi, para hacerme una idea de cuantas personas podrían votarme a lo largo de un año entero (con muy, muy pocas visitas al día)

Gracias por leer,
Saludos!
#664
Seguridad / Protección contra ataques (DDOS)
7 Julio 2013, 19:54 PM
No se nada acerca de esto, pero me están ayudando a crear una web y...bueno, necesito protección.

La verdad es que no necesito "caching" ni porquerías, yo solo quiero que si un intruso accede muchas veces seguidas con la misma ip en un intervalo muy corto de tiempo, pues hacerle un baneo temporal a esa IP. (Si alguien puede dar información sobre como hacer esto lo agradecería)

Pero claro...si ese intruso usa bots (proxies) pues entonces el baneo temporal va a dar igual y en ese caso lo mejor sería bloquear la página temporálmente como hace Cloudfare, ¿no?.

¿Quizás CloudFare se puede configurar de alguna manera para que si solo se detecta un usuario que intenta hacer DDOS repetídamente, entonces banear a esa ip, pero si en cambio se detectan muchas ips (bots) en un intervalo corto de tiempo, entonces bloquear la web?, si algún servicio ofrece ese razonamiento de lógica...sería genial.

Mi favorito es CloudFare (tampoco conozco otros) http://www.cloudflare.com/
Comentarios: http://www.forbes.com/sites/eliseackerman/2012/02/29/how-cloudflares-free-ddos-protection-service-is-disrupting-the-multibillion-dollar-computer-security-and-content-delivery-markets/2/

#666
Estoy tratando de localizar una página cuyo nombre no recuerdo exáctamente, era anime evolution, evolanime evoanime animeevo, algo parecido, es un foro donde hay muchísimos rips de Anime doblado al castellano, seguro que quien controle de Anime sabrá a que página me refiero... digánmela ! xD

Bueno, y si saben más tipos de páginas/foros de este estilo pues porfavor digánmelas, como mcanime.net o animehd.org, pero tener en cuenta que no me interesan ni los animes subtitulados ni los animes doblados al latino.

Un saludo!
#667
Descripción:
Esta aplicación sirve para organizar canciones que estemos escuchando en WinAmp.

Imaginemos que tenemos una carpeta con 1.000 canciones, de varios estilos, reproducimos la carpeta en WinAmp y queremos organizar las canciones enviándolas a distintos directorios según el estilo de música que séa cada canción, pues para eso existe esta aplicaicón.


Imágenes:











Demostración:

Quizás puede resultar un poco dificil entender el concepto o la finalidad de la aplicaicon, por eso pueden ver este video donde se muestran todas las funciones del programa:

[youtube=640,360]http://www.youtube.com/watch?v=MAs5tpw3dto&feature=youtu.be[/youtube]

Descarga:

Título : WTF (WinampToFolder)
Versión: 1.1
Framework: 4.0
Requisitos: Winamp -> www.winamp.com
Descarga: http://elektrostudios.tk/WinampToFolder.zip

PD: El programa ha sido testeado con la version 5.X de WinAmp.

Espero que os guste,
Saludos!
#668
Necesito los típicos botones de Play, Pause, Stop, Previous y Next, preferíblemente de estilo mínimal.

El problema de buscar estos iconos en google images es que te pueden salir resultados muy variados, por ejemplo un icono azul y otro rosa... ya me entienden.

Sé como encontrar este tipo de recursos de manera más eficaz... pero antes de ponerme a revisar las infinitas páginas de DeviantArt y otros sitios pues... me gustaría saber si alguien ha hecho algún proyecto relacionado a reproductores de video/audio y si quiere compartir el pack de iconos que usó en su reproductor...

Gracias.

Por si no lo entienden, aquí irian los iconos de los botonoes:



Saludos.

EDITO:

Pfff... La verdad es que todos los sets de iconos que encuentro son de pago... y en deviantart y findicons no encuentro nada parecido.

Busco algo más o menos como esto:







#669
Desde el día 14 de este més Youtube ha modificado los streams de los videos "VEVO" y otros tipos de videos "de autores" ...por llamarlo así.

¿Alguien sabe como descargar estos videos de Youtube?

Con JDownloader es imposible, además según el hilo oficial no van a añadir soporte porque el nuevo formato está protegido por una estúpida ley Alemana.

He probado con muchas extensiones para Firefox, igual que otros gestores de descarga como IDM, pero todo ha sido inutil.

Una url de ejemplo: http://www.youtube.com/watch?v=lES1SB9SqQw

Un saludo.

#670
Hardware / Disminuir el ruido del PC
13 Junio 2013, 19:47 PM
Hola,
bueno pues mi PC hace muchísimo ruido y me gustaría saber que necesito comprar para disminuir el ruido de manera considerable.

...Es que no sé si debo centrarme en los ventiladores (añadir más ventiladores o reemplazar los que hay), o en el disipador (reemplazar el disipador).

Además debo decir que el ruido del ventilador no sé percibir exáctamente si se trata del ventilador de la GPU o del CPU... :-/ (Normalmento no gasto la GPU así que pienso que será el de la CPU)

Y en la bios tengo el modo "silencioso" activado, pero silencioso mis cullons... xD

Aquí tienen la info de las temperaturas y otros datos de mi PC por si sirve de algo o ven algo que no esté bien:







Un saludo.
#671
Hola

A ver, me estoy volviendo bastante loco con esto...

Hace unos pocos días me descargué una Class de VB para examinarla, el caso es que al usar el Intellisense sobre una de las funciones que contenia la Class, la información XML de los parámetros de dicha función aparecía debajo del tag de la descripción, en un color azúl cielo brillante, este tag precísamente:
Código (xml) [Seleccionar]
''' <param name="Number">Description of the Number parameter</param>

Lo que sale en rojo pues en el Intellisense aparecia en color azul junto a la descripción en el color grisaceo ese de la IDE, pero el parámetro destacaba mucho vaya! y junto a la descripción del parámetro hacia el entendimiento de la función mucho más sencilla...

...en fín, el caso es que me gustó mucho ese efecto azulado (además de poder añadir descripción para un parámetro) así que hice un Copy/Paste de esa línea para agregarlo a una de mis funciones...

...Y el problema es que por más que lo intento no consigo que el intellisense me muestre nada, solo me muestra la descripción, a pesar de tener varias líneas escritas incluyendo la del parámetro:

Código (xml) [Seleccionar]
   ''' <summary>
   ''' Function to pause a thread.
   ''' </summary>
   '''
   ''' <param name="Process_Name">The name of the process, ex: cmd.exe</param>
   ''' <param name="Thread_Number">The thread to pause, ex: 0</param>
   ''' <param name="Recursive"> <value name="True">Pause the thread in all processes recursively</value></param>
   ''' <returns>True if the process is found; otherwise, False.</returns>
   Public Shared Function Pause_Thread(ByRef Process_Name As String, _
                             Optional ByVal Thread_Number As Int32 = 0, _
                             Optional ByVal Recursive As Boolean = False) As Boolean


Y esto es lo que me muestra el Intellisense:



Según lo que ví en la Class que me descargué, me debería mostrar el parámetro en un color azúl, debajo de la descripción,
...es decir, justo debajo de "Function to pause a thread" debería salir "Process_Name" en azúl brillante, y a la derecha debería poner "The name of the process, ex: cmd.exe" en color blanco.

¿Alguien sabe en que estoy fallando?

PD: Por desgracia no guardé la Class, copié lo único que me interesaba ...que era el ejemplo de la documentación XML en azul brillante, y no recuerdo que Class era ni de donde la saqué ni nada.

PD2: Tengo activado el archivo de configuración XML en las propiedades del proyecto en la pestaña de Compilar.
#672
Necesito ayuda con este xml para escapar el CDATA de la variable del RegEx (No quiero usar comillas dobles porque en otros códigos no puedo hacerlo),
no sé nada de XML y estoy perdido, muy perdido, no sé si esto tiene solución, ¿Que puedo hacer?:

Código (xml) [Seleccionar]
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
 <CodeSnippet Format="1.0.0">
   <Header>
     <SnippetTypes>
       <SnippetType>Expansion</SnippetType>
     </SnippetTypes>
     <Title>
        Regex match htm html
     </Title>
     <Author>Elektro H@cker</Author>
     <Description>
        Expresión regular para encontrar urls.htm
     </Description>
     <HelpUrl>
     </HelpUrl>
     <Shortcut>
     </Shortcut>
   </Header>
   <Snippet>
     <Declarations>
       <Literal Editable="true">
         <ID>aaaaaaaaa</ID>
         <ToolTip>sfsdf</ToolTip>
         <Default>
         </Default>
         <Function>sdfsdf</Function>
       </Literal>
     </Declarations>
     <Code Language="vb"><![CDATA[


 


       Dim RegEx As New System.Text.RegularExpressions.Regex( _
       <a><![CDATA[(http://|https://|www).*\.html?]]></a>.Value)





]]></Code>
   </Snippet>
 </CodeSnippet>
</CodeSnippets>



Según esto al final del comentario a mi no me ha quedado muy claro si hay algún "trick" para mezclar los CDATA y que funcione :S : http://stackoverflow.com/questions/223652/is-there-a-way-to-escape-a-cdata-end-token-in-xml

...¿Alguna ayuda?
#673
Hola

No puedo hallar la manera de traducir esta línea de código por mi mismo, espero que puedan ayudarme.

El problema es en este For, que se usa la función anónima "MyEnumThreadWindowsProc" como un argumento, sin pasarle argumentos a dicha función, y esto no sé traducirlo a VBNET.

Código (csharp) [Seleccionar]
foreach (ProcessThread t in p.Threads)
{
 EnumThreadWindows(t.Id, MyEnumThreadWindowsProc, IntPtr.Zero);
}


Los traductores no saben traducirlo corréctamente, y obtengo este reusltado:

Código (vbnet) [Seleccionar]
For Each t As ProcessThread In p.Threads
 EnumThreadWindows(t.Id, MyEnumThreadWindowsProc, IntPtr.Zero)
Next


Según una persona me ha comentado hace poco, esto podría ser una solución:
Código (vbnet) [Seleccionar]
  For Each t As ProcessThread In p.Threads
  Dim returnMyEnumThreadWindowsProc As Object
  returnMyEnumThreadWindowsProc = MyEnumThreadWindowsProc ( ... )
  EnumThreadWindows(t.Id, returnMyEnumThreadWindowsProc , IntPtr.Zero)
Next


...Pero aún así sigo con el problema de no saber que parámetros enviarle a "MyEnumThreadWindowsProc " en esa última modificación.




Aquí tienen la class de C#:
Código (csharp) [Seleccionar]
using System;
using System.Text;
using System.Runtime.InteropServices;
using System.Diagnostics;

namespace TaskbarHide
{
   /// <summary>
   /// Helper class for hiding/showing the taskbar and startmenu on
   /// Windows XP and Vista.
   /// </summary>
   public static class Taskbar
   {
       [DllImport("user32.dll")]
       private static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
       [DllImport("user32.dll", CharSet = CharSet.Auto)]
       private static extern bool EnumThreadWindows(int threadId, EnumThreadProc pfnEnum, IntPtr lParam);
       [DllImport("user32.dll", SetLastError = true)]
       private static extern System.IntPtr FindWindow(string lpClassName, string lpWindowName);
       [DllImport("user32.dll", SetLastError = true)]
       private static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className,  string windowTitle);
       [DllImport("user32.dll")]
       private static extern IntPtr FindWindowEx(IntPtr parentHwnd, IntPtr childAfterHwnd, IntPtr className, string windowText);
       [DllImport("user32.dll")]
       private static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
       [DllImport("user32.dll")]
       private static extern uint GetWindowThreadProcessId(IntPtr hwnd, out int lpdwProcessId);

       private const int SW_HIDE = 0;
       private const int SW_SHOW = 5;

       private const string VistaStartMenuCaption = "Start";
       private static IntPtr vistaStartMenuWnd = IntPtr.Zero;
       private delegate bool EnumThreadProc(IntPtr hwnd, IntPtr lParam);

       /// <summary>
       /// Show the taskbar.
       /// </summary>
       public static void Show()
       {
           SetVisibility(true);
       }

       /// <summary>
       /// Hide the taskbar.
       /// </summary>
       public static void Hide()
       {
           SetVisibility(false);
       }

       /// <summary>
       /// Sets the visibility of the taskbar.
       /// </summary>
       public static bool Visible
       {
           set { SetVisibility(value); }
       }

       /// <summary>
       /// Hide or show the Windows taskbar and startmenu.
       /// </summary>
       /// <param name="show">true to show, false to hide</param>
       private static void SetVisibility(bool show)
       {
           // get taskbar window
           IntPtr taskBarWnd = FindWindow("Shell_TrayWnd", null);

           // try it the WinXP way first...
           IntPtr startWnd = FindWindowEx(taskBarWnd, IntPtr.Zero, "Button", "Start");

           if (startWnd == IntPtr.Zero)
           {
               // try an alternate way, as mentioned on CodeProject by Earl Waylon Flinn
               startWnd = FindWindowEx(IntPtr.Zero, IntPtr.Zero, (IntPtr)0xC017, "Start");
           }

           if (startWnd == IntPtr.Zero)
           {
               // ok, let's try the Vista easy way...
               startWnd = FindWindow("Button", null);

               if (startWnd == IntPtr.Zero)
               {
                   // no chance, we need to to it the hard way...
                   startWnd = GetVistaStartMenuWnd(taskBarWnd);
               }
           }

           ShowWindow(taskBarWnd, show ? SW_SHOW : SW_HIDE);
           ShowWindow(startWnd, show ? SW_SHOW : SW_HIDE);
       }

       /// <summary>
       /// Returns the window handle of the Vista start menu orb.
       /// </summary>
       /// <param name="taskBarWnd">windo handle of taskbar</param>
       /// <returns>window handle of start menu</returns>
       private static IntPtr GetVistaStartMenuWnd(IntPtr taskBarWnd)
       {
           // get process that owns the taskbar window
           int procId;
           GetWindowThreadProcessId(taskBarWnd, out procId);

           Process p = Process.GetProcessById(procId);
           if (p != null)
           {
               // enumerate all threads of that process...
               foreach (ProcessThread t in p.Threads)
               {
                   EnumThreadWindows(t.Id, MyEnumThreadWindowsProc, IntPtr.Zero);
               }
           }
           return vistaStartMenuWnd;
       }

       /// <summary>
       /// Callback method that is called from 'EnumThreadWindows' in 'GetVistaStartMenuWnd'.
       /// </summary>
       /// <param name="hWnd">window handle</param>
       /// <param name="lParam">parameter</param>
       /// <returns>true to continue enumeration, false to stop it</returns>
       private static bool MyEnumThreadWindowsProc(IntPtr hWnd, IntPtr lParam)
       {
           StringBuilder buffer = new StringBuilder(256);
           if (GetWindowText(hWnd, buffer, buffer.Capacity) > 0)
           {
               Console.WriteLine(buffer);
               if (buffer.ToString() == VistaStartMenuCaption)
               {
                   vistaStartMenuWnd = hWnd;
                   return false;
               }
           }
           return true;
       }
   }
}





Y aquí la class "traducida":

Código (vbnet) [Seleccionar]
'
' * Copyright (c) 2008..11 by Simon Baer
' *
' *  You may use this code for whatever you want.
'


Imports System
Imports System.Text
Imports System.Runtime.InteropServices
Imports System.Diagnostics

Namespace TaskbarHide
   ''' <summary>
   ''' Helper class for hiding/showing the taskbar and startmenu on
   ''' Windows XP and Vista.
   ''' </summary>
   Public NotInheritable Class Taskbar
       Private Sub New()
       End Sub
       <DllImport("user32.dll")> _
       Private Shared Function GetWindowText(hWnd As IntPtr, text As StringBuilder, count As Integer) As Integer
       End Function
       <DllImport("user32.dll", CharSet := CharSet.Auto)> _
       Private Shared Function EnumThreadWindows(threadId As Integer, pfnEnum As EnumThreadProc, lParam As IntPtr) As Boolean
       End Function
       <DllImport("user32.dll", SetLastError := True)> _
       Private Shared Function FindWindow(lpClassName As String, lpWindowName As String) As System.IntPtr
       End Function
       <DllImport("user32.dll", SetLastError := True)> _
       Private Shared Function FindWindowEx(parentHandle As IntPtr, childAfter As IntPtr, className As String, windowTitle As String) As IntPtr
       End Function
       <DllImport("user32.dll")> _
       Private Shared Function FindWindowEx(parentHwnd As IntPtr, childAfterHwnd As IntPtr, className As IntPtr, windowText As String) As IntPtr
       End Function
       <DllImport("user32.dll")> _
       Private Shared Function ShowWindow(hwnd As IntPtr, nCmdShow As Integer) As Integer
       End Function
       <DllImport("user32.dll")> _
       Private Shared Function GetWindowThreadProcessId(hwnd As IntPtr, lpdwProcessId As Integer) As UInteger
       End Function

       Private Const SW_HIDE As Integer = 0
       Private Const SW_SHOW As Integer = 5

       Private Const VistaStartMenuCaption As String = "Start"
       Private Shared vistaStartMenuWnd As IntPtr = IntPtr.Zero
       Private Delegate Function EnumThreadProc(hwnd As IntPtr, lParam As IntPtr) As Boolean

       ''' <summary>
       ''' Show the taskbar.
       ''' </summary>
       Public Shared Sub Show()
           SetVisibility(True)
       End Sub

       ''' <summary>
       ''' Hide the taskbar.
       ''' </summary>
       Public Shared Sub Hide()
           SetVisibility(False)
       End Sub

       ''' <summary>
       ''' Sets the visibility of the taskbar.
       ''' </summary>
       Public Shared WriteOnly Property Visible() As Boolean
           Set
               SetVisibility(value)
           End Set
       End Property

       ''' <summary>
       ''' Hide or show the Windows taskbar and startmenu.
       ''' </summary>
       ''' <param name="show">true to show, false to hide</param>
       Private Shared Sub SetVisibility(show As Boolean)
           ' get taskbar window
           Dim taskBarWnd As IntPtr = FindWindow("Shell_TrayWnd", Nothing)

           ' try it the WinXP way first...
           Dim startWnd As IntPtr = FindWindowEx(taskBarWnd, IntPtr.Zero, "Button", "Start")

           If startWnd = IntPtr.Zero Then
               ' try an alternate way, as mentioned on CodeProject by Earl Waylon Flinn
               startWnd = FindWindowEx(IntPtr.Zero, IntPtr.Zero, DirectCast(&Hc017, IntPtr), "Start")
           End If

           If startWnd = IntPtr.Zero Then
               ' ok, let's try the Vista easy way...
               startWnd = FindWindow("Button", Nothing)

               If startWnd = IntPtr.Zero Then
                   ' no chance, we need to to it the hard way...
                   startWnd = GetVistaStartMenuWnd(taskBarWnd)
               End If
           End If

           ShowWindow(taskBarWnd, If(show, SW_SHOW, SW_HIDE))
           ShowWindow(startWnd, If(show, SW_SHOW, SW_HIDE))
       End Sub

       ''' <summary>
       ''' Returns the window handle of the Vista start menu orb.
       ''' </summary>
       ''' <param name="taskBarWnd">windo handle of taskbar</param>
       ''' <returns>window handle of start menu</returns>
       Private Shared Function GetVistaStartMenuWnd(taskBarWnd As IntPtr) As IntPtr
           ' get process that owns the taskbar window
           Dim procId As Integer
           GetWindowThreadProcessId(taskBarWnd, procId)

           Dim p As Process = Process.GetProcessById(procId)
           If p IsNot Nothing Then
               ' enumerate all threads of that process...
               For Each t As ProcessThread In p.Threads
                   EnumThreadWindows(t.Id, MyEnumThreadWindowsProc, IntPtr.Zero)
               Next
           End If
           Return vistaStartMenuWnd
       End Function

       ''' <summary>
       ''' Callback method that is called from 'EnumThreadWindows' in 'GetVistaStartMenuWnd'.
       ''' </summary>
       ''' <param name="hWnd">window handle</param>
       ''' <param name="lParam">parameter</param>
       ''' <returns>true to continue enumeration, false to stop it</returns>
       Private Shared Function MyEnumThreadWindowsProc(hWnd As IntPtr, lParam As IntPtr) As Boolean
           Dim buffer As New StringBuilder(256)
           If GetWindowText(hWnd, buffer, buffer.Capacity) > 0 Then
               Console.WriteLine(buffer)
               If buffer.ToString() = VistaStartMenuCaption Then
                   vistaStartMenuWnd = hWnd
                   Return False
               End If
           End If
           Return True
       End Function
   End Class
End Namespace

'=======================================================
'Service provided by Telerik (www.telerik.com)
'Conversion powered by NRefactory.
'Twitter: @telerik, @toddanglin
'Facebook: facebook.com/telerik
'=======================================================
#674
¿ Alguien sería tán amable de mostrarme un código para crear un Hook de bajo nivel GLOBAL (que funcione FUERA del Form) para manejar los mensajes de windows (En concreto WM_MOUSEWHEEL) ?

Esto he aprendido a hacerlo dentro del Form con la Interface "IMessageFilter", pero cuando lo intento hacer para que funcione fuera del form no hay manera, todo lo que consigo son un par de Fails!,

Me han explicado la manera de hacerlo global, se puede hacer importando la librería user32.dll (La función "SetWindowsHookEx") para crear un low-level hook para interceptar los mensajes de Windows, la teoría la tengo, pero no sé hacerlo, me trabo en el punto de intentar usar la función "SetWindowsHookEx" y crear el sub para interceptar los mensajes (if m.message = &HX then...), todo el código que encuentro es para C++/C#, y para lo poco que encuentro de VBNET, (que además tiene poco que ver con los mensajes que quiero interceptar) ni me entero, bastante dificil.

Lo que necesito es hacer algo como esto:

Pseudo-código:
Código (vbnet) [Seleccionar]
Dim mousewheel_up as boolean
Dim mousewheel_down as boolean

Sub that Overides the windows messages to set the mousewheel booleans

   If mousewheel_up then msgbox("MouseWheel up")
   If mousewheel_down then msgbox("MouseWheel down")

End sub


Pero como ya digo, fuera del form.

Un saludo.
#675
Hola.

Esto es pura curiosidad...

Me estaba preguntando cuanto tardaría en pulir un parser para los tags de un sitio específico, y esa pregunta me ha llevado a otra un poco ridícula quizás:
¿Cuanto tardaría en parsear un html de 100 mb?, y esta pregunta me lleva a la pregunta que reálmente quiero hacer (por curiosidad):

- ¿Existe un tamaño límite especificado en el lenguaje html?

...Es decir, ¿Si un html sobrepasa X tamaño (o número de líneas) es posible que el intérprete del navegador no pueda interpretar el código?

...¿Puede existir por la inmensa Internet un html de 2 Gb por ejemplo?, sé que es un tamaño descomunal, debería contener millones de líneas escritas, pero ahí tengo esa duda xD

Saludos!