Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#8921
Al final esos mensajes no eran ningún error ni tenian la más mínima importancia, solo me avisaba de que no habia hecho cambios en algunos valores, es decir que algunos valores seguian con su valor por defecto y no se iban a guardar en el archivo xml, símplemente con eliminar esos valores era suficiente para que los mensajes no volvieran a marear.

...Y después de todo me ha quedado un Windows 8 desatendido con el aspecto que casi todos quisimos que hubiera tenido por defecto :D

(EDITO: Y el Taskmanager.exe tán productivo de Windows 7, que se me ha olvidado mostrarlo xD)






tema solucionado.

Saludos!
#8922
Hola

A ver si los entendidos en http me pueden ayudar a salir de dudas.

Fíjense en esta url: http://www.mp3crank.com/releases/12549/page/1

Fíjense especiálmente en el número 12549, el cual me lo he inventado, pero lo comento porque para testear lo siguiente que voy a explicar hay que cambiar dicho número de la url por cualquier otro número (o bueno, cualquier otra parte de la url para que tire un error 404, pero eso me ha parecido la más fácil de sugerir como referencia).

Bien, el problema es que esa url devuelve un código 404 la primera vez que intento acceder a ella (obtener la respuesta desde un lenguaje de programación), si intento obtener la respuesta una segunda vez, lo que me devolverá es un código 200 (success) SIEMPRE.

Esto es incomprensible para mi porque no sé lo suficiente a nivel web, y a la única conclusión a la que he llegado ha sido esta:

Cita de: EleKtro H@cker en 25 Mayo 2013, 16:13 PM
...Esto no tengo ni idea de porque sucede, imagino que el servidor detecta que se ha intentado acceder a una página que no existe, y entonces por algún extraño motivo se crea automáticamente esa página de forma temporal para devolver el código "200" las siguientes veces?, hasta ahí llega mi imaginación, no lo sé.

¿Alguien me puede explicar de forma sencilla porque un servidor primero envía error 404 y luego en todos los demás intentos devuelve un 200?, ¿Esto es algo normal?

Y lo más importante, aunque no supieran de programación, ¿Se os ocurre como puedo verificar si la página reálmente existe mediante un lenguaje de programación aunque la url me lanze un "200?,
...por ejemplo: "si Elektro, busca X cosa en los headers para verificarlo", o cosas así, cualquier información me sirve, pero no sé por donde empezar... porque la respuesta que me va a dar es un maldito "200", así que...

Gracias por leer.
#8923
Vaya que casualidad que justo cuando escribo el post encuentro la solución al primer problema... odio que me pase eso xD.

Una función que hace el try:ctach por mi, si este es el único modo de hacer las cosas... pues lo veo aceptable:

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

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://www.mp3crank.com/releases/12548/page/1")
       Dim response As System.Net.HttpWebResponse = GetHttpResponse(request)

       If response.StatusCode = System.Net.HttpStatusCode.NotFound Then
           MsgBox("Error 404")
       End If

   End Sub

   Public Shared Function GetHttpResponse(request As System.Net.HttpWebRequest) As System.Net.HttpWebResponse
       Try
           Return DirectCast(request.GetResponse(), System.Net.HttpWebResponse)
       Catch ex As System.Net.WebException
           If ex.Response Is Nothing OrElse ex.Status <> System.Net.WebExceptionStatus.ProtocolError Then
               Throw
           End If
           Return DirectCast(ex.Response, System.Net.HttpWebResponse)
       End Try
   End Function

End Class


Pues ahora me queda por resolver el segundo problema, que me da por válida (200) páginas que reálmente no existen (404), y esto ya si que no sé donde buscarlo ni como pensar en poder solucionarlo.

Saludos!
#8924
Hola

Tengo dos problemas con una página web.

Esta página devuelve un error 404: http://www.mp3crank.com/releases/1925/page/1

El primer problema es que necesito detectar ese error, lo he intentado mediante los "statuscode" pero a la hora de declarar la variable "response" da exception ("página no encontrada error 404"):

Código (vbnet) [Seleccionar]
   Dim request As HttpWebRequest = HttpWebRequest.Create("http://www.mp3crank.com/releases/1925/page/1")
   Dim response As HttpWebResponse = request.GetResponse()
   Dim sr As StreamReader = New StreamReader(response.GetResponseStream())

   If response.StatusCode = HttpStatusCode.NotFound Then
       MsgBox("Error 404")
   End If


Podría hacer un simple try catch en la variable "dim response" pero esto me parece muy cutre, ...¿aunque quizás esa es la única solución?

EDITO: No puedo usar la solución del Framework 4.5, estoy usando 3.5

El segundo problema es que la primera vez que se accede a esa url devuelve un 404, pero si se intenta acceder una segunda vez devolverá el código 200, así que el código de arriba, aunque me funcionase para detectar el error 404 sólamente me valdría para la primera vez (aunque si se accede desde el navegador seguirá devolviendo un 404)...

...Esto no tengo ni idea de porque sucede, imagino que el servidor detecta que se ha intentado acceder a una página que no existe, y entonces por algún extraño motivo se crea automáticamente esa página de forma temporal para devolver el código "200" las siguientes veces?, hasta ahí llega mi imaginación, no lo sé.

El caso es que la url que he puesto de enlace, si se testea más de una vez dará "200" pero en realidad no existe, es un "404", así que tengo dos problemas en uno y para hacer mis pruebas tengo que estar modificando cada vez el número "1925" de la url que os he dicho, por cualquier otro año entre "1XXX-1969", es un coñazo, jeje.

A ver si alguien me puede ayudar,
Gracias.

#8925
Aquí os dejo este archivo de instalación desatendida de Windows 8 que he hecho con WSIM (Windows System Image Manager),
Funciona de maravilla, lo único que requiere es elegir el disco donde se desea instalar Windows 8, TODO lo demás lo he dejado preconfigurado y no requiere más intervención que lo que acabo de comentar.

El nombre de usuario por defecto es "Administrador".
La red por defecto es "Hogar".
La hora, el idioma y esas cosas está configurado para Español de España.

Posibles valores que quieran modificar:
- Nombre de la organización
- Nombre del PC
- Nombre de usuario
- La clave (Si disponen de una clave legal)

...Es fácil de modificar, solo hay que buscar el valor correspondiente en este archivo de aquí abajo, y cambiar el valor.

El archivo lo guardan como "AutoUnattend.xml" y lo colocan en el DVD de Windows 8 en la carpeta principal junto al "setup.exe".

PD: No lo he testeado con Windows 8 PRO.

Código (xml) [Seleccionar]
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
   <settings pass="windowsPE">
       <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <UserLocale>es-ES</UserLocale>
           <UILanguageFallback>es-ES</UILanguageFallback>
           <UILanguage>es-ES</UILanguage>
           <SystemLocale>es-ES</SystemLocale>
           <InputLocale>es-ES</InputLocale>
       </component>
       <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <Display>
               <HorizontalResolution>1920</HorizontalResolution>
               <VerticalResolution>1080</VerticalResolution>
               <ColorDepth>32</ColorDepth>
           </Display>
           <UserData>
               <ProductKey>
                   <WillShowUI>Never</WillShowUI>
                   <Key>FB4WR-32NVD-4RW79-XQFWH-CYQG3</Key>
               </ProductKey>
               <AcceptEula>true</AcceptEula>
               <Organization>Elektro Studios</Organization>
               <FullName>Christian Soriano</FullName>
           </UserData>
           <EnableNetwork>true</EnableNetwork>
           <EnableFirewall>true</EnableFirewall>
       </component>
   </settings>
   <settings pass="specialize">
       <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <AutoLogon>
               <Enabled>true</Enabled>
               <LogonCount>1</LogonCount>
               <Username>Administrator</Username>
           </AutoLogon>
           <ComputerName>Elektro-PC</ComputerName>
           <ProductKey>FB4WR-32NVD-4RW79-XQFWH-CYQG3</ProductKey>
           <RegisteredOrganization>Elektro Studios</RegisteredOrganization>
           <ShowWindowsLive>false</ShowWindowsLive>
           <TimeZone>Romance Standard Time</TimeZone>
           <WindowsFeatures>
               <ShowInternetExplorer>false</ShowInternetExplorer>
               <ShowMediaCenter>false</ShowMediaCenter>
               <ShowWindowsMail>false</ShowWindowsMail>
               <ShowWindowsMediaPlayer>false</ShowWindowsMediaPlayer>
           </WindowsFeatures>
       </component>
   </settings>
   <settings pass="oobeSystem">
       <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <OOBE>
               <HideEULAPage>true</HideEULAPage>
               <SkipUserOOBE>true</SkipUserOOBE>
               <SkipMachineOOBE>true</SkipMachineOOBE>
               <ProtectYourPC>3</ProtectYourPC>
               <NetworkLocation>Home</NetworkLocation>
               <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
               <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
               <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
               <HideLocalAccountScreen>true</HideLocalAccountScreen>
           </OOBE>
           <VisualEffects>
               <FontSmoothing>On</FontSmoothing>
           </VisualEffects>
       </component>
   </settings>
   <cpi:offlineImage cpi:source="wim:c:/users/administrador/desktop/Elektro Win8-Core-Mod/x64/sources/install.wim#Windows 8" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>
#8926
FC "1.txt" "2.txt"
Comparando archivos 1.txt y 2.TXT
***** 1.txt
***** 2.TXT
usuario1
usuario2
*****





FC "1.txt" "2.txt" | MORE +1
***** 1.txt
***** 2.TXT
usuario1
usuario2
*****





FC "1.txt" "2.txt"  | MORE +1 | findstr /V "^\*\*\*\*\* .+$" | Findstr "."
usuario1
usuario2


Saludos
#8927
Cita de: SyntaxError404 en 24 Mayo 2013, 18:02 PM
Veo que el codigo es muy diferente

Sólamente he usado los códigos de ejemplo que te puse, con alguna que otra modificación.

El proyecto está hecho en VS2012, VB.NET

Saludos
#8928
Cita de: OmarHack en 24 Mayo 2013, 16:55 PM¿Y eso?

Pues que los milagros suceden y el crack perfecto existe xD, ahí dejo la cosa!

Pueden cerrar este tema ya si quieren

un saludo
#8929
vamos, que no es dificil SyntaxError404

Pero si empeizas a usar if's anidados te puedes acabar liando.

Aquí tienes el source del siguiente form: http://elektrostudios.tk/WindowsApplication3.zip

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

   Dim Run_Sound As Boolean = False
   Dim Run_Program As Boolean = False

   Dim TotalTime As Long
   Dim Time_Elapsed_Watch As New Stopwatch
   Dim Time_Remaining_Span As New TimeSpan()
   Dim WithEvents CountDown_Timer As New Timer

   Dim TimeIsOut As Boolean = False
   Dim Want_To_Stop As Boolean


#Region " Form "

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       RadioButton1.Tag = "sound"
       RadioButton2.Tag = "program"
   End Sub

   Private Sub RadioButtons_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _
                                                                                          RadioButton1.Click, _
                                                                                          RadioButton2.Click
       Select Case sender.tag.tolower
           Case "sound" : Run_Sound = True : Run_Program = False
           Case "program" : Run_Program = True : Run_Sound = False
           Case Else : Throw New Exception("Wrong tagname")
       End Select

   End Sub

   Private Sub NumericUpDown1_ValueChanged(sender As Object, e As EventArgs) Handles _
                                                                     NumericUpDown1.ValueChanged, _
                                                                     NumericUpDown2.ValueChanged, _
                                                                     NumericUpDown3.ValueChanged

       TotalTime = (NumericUpDown1.Value * 3600000) _
                 + (NumericUpDown2.Value * 60000) _
                 + (NumericUpDown3.Value * 1000)

   End Sub

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       TimeIsOut = False
       Want_To_Stop = False
       CountDown_Start()
       While Not TimeIsOut : Application.DoEvents() : End While
       If Not Want_To_Stop Then Time_Success()
   End Sub

   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       Want_To_Stop = True
   End Sub

#End Region

#Region " Procedures "

   Private Sub CountDown_Start()
       Time_Remaining_Span = TimeSpan.FromMilliseconds(TotalTime + 1000)
       Time_Elapsed_Watch.Start()
       CountDown_Timer.Start()
   End Sub

   Private Sub CountDown_Timer_Tick(sender As Object, e As EventArgs) Handles CountDown_Timer.Tick

       Dim TimeRemaining As TimeSpan = Time_Remaining_Span - Time_Elapsed_Watch.Elapsed

       If Want_To_Stop Then TimeIsOut = True : Time_Elapsed_Watch.Reset() : CountDown_Timer.Stop()

       Try
           NumericUpDown1.Value = String.Format("{0:00}", CLng(Math.Floor(TimeRemaining.TotalHours)) Mod 999999999999999999)
           NumericUpDown2.Value = String.Format("{0:00}", CLng(Math.Floor(TimeRemaining.TotalMinutes)) Mod 60)
           NumericUpDown3.Value = String.Format("{0:00}", CLng(Math.Floor(TimeRemaining.TotalSeconds)) Mod 60)
       Catch
           TimeIsOut = True
           Time_Elapsed_Watch.Reset()
           CountDown_Timer.Stop()
       End Try

   End Sub

   Private Sub Time_Success()
       If Run_Sound Then
           MsgBox("Reproducir sonido")
       ElseIf Run_Program Then
           MsgBox("Ejecutar proceso")
       Else
           Throw New Exception("Wrong option")
       End If
   End Sub

#End Region
   
End Class


Saludos.
#8930
Cita de: SyntaxError404 en 24 Mayo 2013, 16:43 PMgracias el codigo que me das Electro.. tal parece no funciona...

En ningúna parte de tú código veo que hayas usado el código que te he mostrado, tampoco veo que hayas declarado las variables de mi ejemplo.

PD: Aunque tampoco voy a testear un código sin que me des detalles de porque "no funciona"

Saludos!