|
8381
|
Programación / .NET (C#, VB.NET, ASP) / Re: Cambiar una página por otra Visual Basic
|
en: 10 Agosto 2013, 22:55 pm
|
Quiero que los cambios sean permanentes en la PC Acabo de codear una Class para manipular el archivo Hosts, puedes agregar un nuevo mapeo, bloquear diréctamente una url, eliminar un mapeo ...sólamente lo he testeado lo necesario. Aquí tienes : #Region " Hosts Helper " Public Class Hosts_Helper ' [ Hosts Helper ] ' ' // By Elektro H@cker ' ' Examples: ' ' MsgBox(Hosts_Helper.HOSTS_Exists) ' Hosts_Helper.Add("www.youtube.com", "231.7.66.33") ' Hosts_Helper.Block("www.youtube.com") ' MsgBox(Hosts_Helper.IsAdded("www.youtube.com")) ' MsgBox(Hosts_Helper.IsBlocked("www.youtube.com")) ' Hosts_Helper.Remove("www.youtube.com") ' Hosts_Helper.Clean_Hosts_File() Shared ReadOnly HOSTS As String = _ IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "Drivers\etc\hosts") ''' <summary> ''' Adds a new Block mapping into the Hosts file. ''' </summary> Public Shared Sub Block(ByVal URL As String) Dim Entry As String = String.Format("::1 {0}", URL) If HOSTS_Exists() AndAlso IsBlocked(URL) Then Throw New Exception(String.Format("""{0}"" is already blocked.", URL)) Exit Sub ElseIf HOSTS_Exists() AndAlso IsAdded(URL) Then Remove(URL) End If Try IO. File. AppendAllText(HOSTS, (Environment. NewLine & Entry ), System. Text. Encoding. Default) Catch ex As Exception Throw New Exception(ex.Message) End Try End Sub ''' <summary> ''' Adds a new mapping into Hosts file. ''' </summary> Public Shared Sub Add(ByVal URL As String, ByVal IP_Address As String) Dim Entry As String = String.Format("{0} {1}", IP_Address, URL) If HOSTS_Exists() AndAlso (IsAdded(URL) OrElse IsBlocked(URL)) Then Throw New Exception(String.Format("""{0}"" is already mapped.", URL)) Exit Sub ElseIf Not Validate_IP(IP_Address) Then Throw New Exception(String.Format("""{0}"" is not a valid IP adress.", IP_Address)) Exit Sub End If Try IO. File. AppendAllText(HOSTS, (Environment. NewLine & Entry ), System. Text. Encoding. Default) Catch ex As Exception Throw New Exception(ex.Message) End Try End Sub ''' <summary> ''' Removes a blocked or an added URL from the Hosts file. ''' </summary> Public Shared Sub Remove(ByVal URL As String) If Not HOSTS_Exists() Then Throw New Exception("HOSTS File does not exists.") Exit Sub ElseIf HOSTS_Exists() And Not (IsAdded(URL) OrElse IsBlocked(URL)) Then Throw New Exception(String.Format("""{0}"" is not added yet.", URL)) Exit Sub End If Try Dim Content As String = _ System. Text. RegularExpressions. Regex. Replace(IO. File. ReadAllText(HOSTS ). ToLower, _ String.Format("(\d{{1,3}}\.\d{{1,3}}\.\d{{1,3}}\.\d{{1,3}}|::1)(\s+|\t+){0}", URL.ToLower), String.Empty) IO. File. WriteAllText(HOSTS, Content, System. Text. Encoding. Default) Catch ex As Exception Throw New Exception(ex.Message) End Try End Sub ''' <summary> ''' Checks if an URL is already added into the Hosts file. ''' </summary> Public Shared Function IsAdded(ByVal URL As String) As Boolean Return If(Not HOSTS_Exists(), False, _ System.Text.RegularExpressions.Regex.IsMatch( _ System. Text. RegularExpressions. Regex. Replace(IO. File. ReadAllText(HOSTS ). ToLower, "\s+|\t+", ";"), _ String.Format(";[^\#]?\d{{1,3}}\.\d{{1,3}}\.\d{{1,3}}\.\d{{1,3}};{0}", URL.ToLower))) End Function ''' <summary> ''' Checks if an URL is already blocked into the Hosts file. ''' </summary> Public Shared Function IsBlocked(ByVal URL As String) As Boolean Return If(Not HOSTS_Exists(), False, _ System.Text.RegularExpressions.Regex.IsMatch( _ System. Text. RegularExpressions. Regex. Replace(IO. File. ReadAllText(HOSTS ). ToLower, "\s+|\t+", String. Empty), _ String.Format("[^\#](127.0.0.1|::1){0}", URL.ToLower))) End Function ''' <summary> ''' Checks if the Hosts file exists. ''' </summary> Public Shared Function HOSTS_Exists() As Boolean Return IO. File. Exists(HOSTS ) End Function ''' <summary> ''' Cleans all the mappings inside the Hosts file. ''' </summary> Public Shared Sub Clean_Hosts_File() Try IO. File. WriteAllText(HOSTS, String. Empty) Catch ex As Exception MsgBox(ex.Message) End Try End Sub ' Validates an IP adress. Private Shared Function Validate_IP(ByVal IP_Address As String) As Boolean Dim IP As System.Net.IPAddress = Nothing Return System.Net.IPAddress.TryParse(IP_Address, IP) End Function End Class #End Region
De nada
|
|
|
8382
|
Programación / Scripting / Re: wget duda batch
|
en: 10 Agosto 2013, 20:38 pm
|
elektro no me sirve ese codigo por que ocupa logiar a un ftp si podrias ayudarme con este gracias o si alguien se anima gracias
¿Porque no te sirve?, si solo tienes que modificar el nombre del archivo, y la dirección FTP añadiendo el user y el pass como lo haces en el segundo ejemplo... :-/ Como ya te digo solo tienes que hacer eso xD, pero bueno, te doy una solución alternativa, si dices que es un archivo nulo entonces puedes checkar el tamaño del archivo descargado (en bytes): REM Hacer cosas con el archivo... ) )
Saludos
|
|
|
8383
|
Sistemas Operativos / Windows / Re: CHKDSK me ha borrado todo AYUDAA
|
en: 10 Agosto 2013, 13:19 pm
|
yo no lo creo. en más de 300 veces que lo he usado en todo tipo de discos, no ha pasado nada. Si, he pasado el chkdsk y me ha borrado todo.... Doy fé de que un simple escaneo con CHKDSK (activando las opciones de reparación automática) eliminará cualquier archivo que no se pueda reconstruir, lo sé por propia experiencia, CHKDSK es una mierd@ de sistema del que no hay que fiarse ni un pelo, espero que en Windows 8 no siga eliminando archivos sin más. Saludos!
|
|
|
8384
|
Informática / Hardware / Re: Ralentización máxima en la velocidad de transfernecia de un HDD
|
en: 10 Agosto 2013, 10:56 am
|
Con respecto al tema del cable, este que usas lo trajo la fuente o tu se lo añadiste con una extensión o algo así?
lo trajo la fuente El único inconveniente seria si usas discos con conexión IDE. son todos SATA Prueba conectado los discos en las diferentes conexiones a ver que tal te va, esos problemas puedes venir por esos Quick Format que has hecho uno tras otro... Eso ya lo probé, varias veces xD, pero los parones en el SO no dejan de cesar... ahora mismo acabo de tener uno de unos 20 segundos, suceden sobretodo cuando tengo Firefox corriendo, es cuando más se notan y suceden con más frecuencia, pero también suceden cuando quieren dejando el SO en "Standby" sin hacer prácticamente nada. Soy una persona que intenta probar todas las posibilidades así que ya he probado a desactivar todas las extensiones de Firefox, el plugin de AdobeFlash, e incluso a reinstalarlo eliminando mi perfil de Firefox ...pero nada, no creo que sea problema del Firefox. Sé que en un formateo rápido no se borra todo, pero no entiendo que tipo de conflicto puede llevar a que un disco con un formato rápido NTFS pueda ser el causante de esto, no entiendo la relación que puede haber, si el espacio "vacío" de los datos formateados luego se vuelven a reescribir cuando es necesario por el SO, por otro lado también leí hace unos años que en los formateos "normales" el disco pierde un considerable procentaje de vida, por eso las dos veces le he dado un formato rápido, pero aún así tendré en cuenta lo que me has dicho para la próxima vez que tenga que reinstalar Windows, porque ya me estoy cansando mucho de estos parones... cuando eso pase le haré un formateo lento a ver que pasa. Saludos!
|
|
|
8385
|
Programación / .NET (C#, VB.NET, ASP) / Re: Cambiar una página por otra Visual Basic
|
en: 10 Agosto 2013, 10:18 am
|
¿Puedes ser más específico?, ¿Pretendes hacerlo en tiempo de ejecución en un WebBrowser Control?, ¿O pretendes que los cambios sean permanentes en el PC con cualquier navegador?. Para lo segundo es tán sencillo como añadir una entrada el archivo HOSTS. http://msdn.microsoft.com/en-us/library/ff749174.aspxEDITO: Y para lo primero puedes checkar la url del control para modificarla por la que quieras. Private Sub WebBrowser1_Navigated(sender As Object, e As WebBrowserNavigatedEventArgs) _ Handles WebBrowser1.Navigated Select Case True Case sender.url.ToString.ToLower.StartsWith("http://www.google") sender.navigate("youtube.com") Case Else ' MsgBox(sender.url.ToString.ToLower) End Select End Sub
Saludos
|
|
|
8386
|
Programación / .NET (C#, VB.NET, ASP) / Re: Detectar tipo de teclado
|
en: 10 Agosto 2013, 09:54 am
|
Siento decirte que según mis informaciones es símplemente imposible hacerlo en VBNET (al menos usando un hook de bajo nivel como haces), es más, si quisieras hacerlo en otro lenguaje necesitarías pasar a un siguiente nivel muy superior de experiencia para escribir el hook, inyectarlo, hacerlo compatible con 64 bits, y bypassear UAC. Intenté solucionar el mismo problema, pero mis capacidades para esto son igual de limitadas e inexpertas, te cito la respuesta a mi problema por parte de un Dios de la programación, para que lo entiendas mejor: You can never write a correct low-level keyboard hook that translates virtual keys to typing keys. The keyboard state and the active keyboard layout are properties of the process that owns the foreground window. Never of the process that implements the hook.
In particular the keyboard state will be wrong, you don't know if the logical state of the keyboard for the process has the shift, alt, control and Windows key active. That state is recorded when the program receives a keyboard event. Particular to a keyboard layout for languages that use diacritics are the state of the dead keys, the ones you type to get the next typed letter to have an accent. This keyboard state is a per-process state and cannot be retrieved from another process. It is only discoverable within the process itself, GetKeyboardState() function. Much the same for the active keyboard layout, GetKeyboardLayout() function. The language bar allows processes to use different layouts.
It can only ever work 100% correctly when you use a WH_KEYBOARD hook. It requires a DLL that can be injected into other processes. The 3rd argument of SetWindowsHookEx(). Which ensures that GetKeyboardState and GetKeyboardLayout return accurate information. You cannot write such a DLL in VB.NET, the process you inject won't have the CLR loaded to execute managed code. A language like C, C++ or Delphi is required, languages that have very modest runtime support requirements. This is usually where the project peters out. Not just because of the runtime injection problem, debugging such code and dealing with the bitness of a process on a 64-bit operating system as well as UAC are major headaches.
You can limp along somewhat by using GetAsyncKeyState() to get the state of the modifier keys. There is no solution for dead keys other than an injected DLL. This is not a helpful answer, it merely explains why you can never make it work completely reliably in vb.net.
The mapping of Keys.Oemtilde to a typing key is the job of the keyboard layout. Different keyboards produce different letters for that key. The underlying winapi function is ToUnicodeEx(). Note how it requires the keyboard state and layout as I described. Si quieres leer el resto: http://stackoverflow.com/questions/16893190/issue-with-the-keys-enumeration-and-a-low-level-keyboard-hook#comment24389665_16900034EDITO: y esto por otra parte para aclarártelo aún más: A global WH_KEYBOARD hook however executes in teh context of the app. that is recieving the keyboard message so your code has to be injected into every running process. This is NOT a good idea IMHO. Saludos
|
|
|
8387
|
Programación / .NET (C#, VB.NET, ASP) / Re: Experimento de consumo de memória... ver para creer!
|
en: 10 Agosto 2013, 09:44 am
|
¿Elektro, puedes subir un video donde se muestre algún aumento exagerado (algunas decenas de Mb) o decirnos hasta cuánto ha llegado este aumento? Con .NET me va a costar un poco más porque sube léntamente así que necesita varias horas para mostrar subidas exageradas... hoy haré el experimento de la VM y dejaré grabándolo en video. Con Java si que puedo mostrarte como subre de 30 a 60 MB en menos de 30 segundos, también lo mostraré. Por cierto, ElBenjo, quizás ayudaría que también mencionases el SO y la cantidad de RAM de la que dispones para que los expertos puedan intentar entender porque a ti solo te sube 500 kb. Yo tengo Windows 8 x64 y 8GB de RAM, nunca consumo mucha ram ni tengo muchas aplicaciones pesadas abiertas. Saludos!
|
|
|
8388
|
Sistemas Operativos / Windows / Re: ayuda!! algun virus me esta molestan para acceder a cualquier pagina de internet
|
en: 9 Agosto 2013, 17:19 pm
|
@solkan05 Ya te eliminaron un post, a ver si dejas de duplicar más posts, ya vale ¿no?, no es necesario que lo repitas más. Si tanta ayuda necesitas puedes empezar por responder a las indicaciones que te aocnsejé yo y otra gente, vaya: http://foro.elhacker.net/windows/internet_virus-t396153.0.html;msg1875882#msg1875882(No es necesario que hagas doble post para comentar el mismo problema...)
Si no tienes un AntiVirus instálate el Avira o el NOD32, y pásale un "escaneo profundo" a tu PC para desinfectar ese "Download.exe" en caso de que lo hayas ejecutado.
Después de eso renombra o elimina (como prefieras) la carpeta de tu perfil de usuario de Firefox para que los cambios sospechosos que se hayan hecho en tu perfil no sucedan más, o en su defecto haz una reinstalación LIMPIA de Firefox (Primero desinstalas Firefox junto a los perfiles guardados y luego instalas la última versión de Firefox 22.0, para que no siga usando la configuración de tu perfil de usuario).
PD: Tu perfil lo puedes encontrar aquí: Código:
C:\Users\Administrador\AppData\Roaming\Mozilla\Firefox\Profiles
Saludos... No necesitas más. Saludos
|
|
|
8390
|
Sistemas Operativos / Windows / Re: CHKDSK me ha borrado todo AYUDAA
|
en: 9 Agosto 2013, 14:00 pm
|
el recuva me pierde archivos... Usa el RECUVA ... XD Recuva te va a funcionar igual que cualquier otro recuperador de archivos, ninguno en especial hace milagros ni puede recuperar de donde ya no hay nada que recuperar, aunque si quieres mi opinión el recuperador de archivos que más me gusta es "Wondershare Data Recovery" porque tiene vista prévia de archivos y muchas mas opciones que un programa gratis como Recuva, pero si quieres probar suerte con otro recuperador gratis que también me gusta bastante es el "Undelete360" -> http://www.undelete360.com/ . Si Recuva no te puede recuperar lo(s) archivo(s) es porque ya se han sobreescrito datos en ese espacio vacío del disco, en resumen: No hay nada que hacer con los archivos que no has podido recuperar, lo siento. PD: Por eso siempre se recomienda no manipular el disco físico en ningún aspecto (dejar el SO corriendo ya es manipular) después de una pérdida de datos para que no se sobreescriba el espacio que necesitas recuperar. Saludos!
|
|
|
|
|
|
|