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 - Lekim

#251
.NET (C#, VB.NET, ASP) / Virus heurístico
18 Noviembre 2015, 17:58 PM
Hola
Los antivirus borran mis programas. ¿Cómo evitarlo?

sl2
#252
 :o ¿En serio? ¿Nadie contesta?

En fin no me extraña. Parece como si nadie programara con WPF en código VB. Cada vez que busco en Google, casi todo es C#.

Pero no importa porque encontré la solución a base de analizar paso por paso el código XAML del estilo del Combobox. Sin embargo hay un problema, de la solución se deriva un nuevo problema que no creo que pueda resolver y que si nadie contesta plantearé en una nueva pregunta.

LA SOLUCIÓN:
Lo primero es aplicar la propiedad  IsEditable="True"

Código (xml) [Seleccionar]
< <ComboBox  Name="ComboBox1"  Height="23" IsEditable="True" HorizontalAlignment="Left" Margin="35,31,0,0" VerticalAlignment="Top" Width="192" />

También se puede aplicar esta propiedad para todos los ComboBox en nuestro estilo ComboBox en código XAML del ResourceDictionary :

Código (xml) [Seleccionar]
 <Setter Property="IsEditable" Value="True" />

Dentro del estilo Combobox...:
     
Código (xml) [Seleccionar]
<Style x:Key="{x:Type ComboBox}" TargetType="ComboBox">
           <Setter Property="SnapsToDevicePixels" Value="true"/>
           <Setter Property="OverridesDefaultStyle" Value="true"/>
           <Setter Property="IsEditable" Value="True" />
           <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
           <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
           <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
           <Setter Property="MinWidth" Value="120"/>
....


Hecho esto el ComboBox es editable, sí, pero ocurre lo siguiente. Si hacemos click en el combo para escribir en él se despliega la lista del combo, esté lleno o no:




Esto ocurre porque el ComboBox se compone de capas una sobre otra y la capa TextBox tiene el valor de la propiedad Width nulo. El número de  capas depende del estilo. En el  link que puse arriba está el ToggleButton que es el botón, y encima de él está el TextBox (la caja de texto). Hay muchos estilos colgados en la red para este control y todos coinciden en no establecer el Width para la caja de texto, luego su valor es 0. De modo que cuando haces click sobre cualquier parte del ComboBox es como si presionaras el botón. El valor del Width de la caja de texto crece a medida que se escribe.

Entonces solo hay que establecer el Width del TexBox del Combo. El valor debe ser igual al ancho (Width) del Combo. El ancho del combo no incluye el botón gráfico, por lo que el ancho del TexBox se detendrá justo antes de llegar al botón gráfico.

Esto lo haces en el estilo del ResourceDictionary:

(observa Width="192")
Código (xml) [Seleccionar]

....
<TextBox x:Name="PART_EditableTextBox"
           Style="{x:Null}"
           Template="{StaticResource ComboBoxTextBox}"
           HorizontalAlignment="Left"
           VerticalAlignment="Center"
           Width="192"
           Margin="3,3,23,3"
           Focusable="True"
           Background="Transparent"
           Visibility="Hidden"
           IsReadOnly="{TemplateBinding IsReadOnly}"/>
....


Ahora el TexBox no tiene valor nulo y cuando hagas click en el Combo se activará la caja de texto para escribir, y no se desplegará la lista, puesto que has hecho click en la caja de texto y no en el botón.



Sin embargo hay un problema, si sigues escribiendo el width de la caja de texto no para de crecer superando incluso el botón gráfico, lo cual no queda bien. No es nada presentable. Podemos establecer el MaxLength= X pero ¿Que pasa si queremos meter una dirección URL cuyo número de carácteres supera el MaxLength? pues que no podremos meterlo. Entonces no nos sirve:



Espero que alguien pueda solucionarme este último problema. No se si hay una propiedad para establecer el límite (y que no sea MaxLength pues no sirve)

Saludos
#253
Gracias

Bueno, el código es en realidad prácticamente un copia y pega del MSDN  :P

Lo estaba arreglando de la siguiente manera:

Código (vbnet) [Seleccionar]
   Dim UrlCode As String = Nothing
       Dim myHttpWebRequest As System.Net.HttpWebRequest = _
           CType(System.Net.WebRequest.Create("https://foro.elhacker.net/net/el_codigo_html_extraido_de_una_web_no_muestra_acentos_aeo-t444215.0.html;msg2046878#msg2046878"),  _
               System.Net.HttpWebRequest)
       myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" '".NET Framework Test Client"
       ' "Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1)"
       myHttpWebRequest.Method = "GET"
       myHttpWebRequest.Timeout = 10000
       myHttpWebRequest.ProtocolVersion = System.Net.HttpVersion.Version10
       Dim myHttpWebResponse As System.Net.HttpWebResponse = CType(myHttpWebRequest.GetResponse(), System.Net.HttpWebResponse)
       Dim streamResponse As System.IO.Stream = myHttpWebResponse.GetResponseStream()

       Dim streamRead As System.IO.StreamReader = Nothing
       If Not IsNothing(streamResponse) Then
           Try
               streamRead = New System.IO.StreamReader(streamResponse, System.Text.Encoding.Default) 'System.Text.Encoding.GetEncoding(name:="windows-1252")
               ' Lea y devuelva todo el contenido de la cadena.
               UrlCode = streamRead.ReadToEnd
           Catch ex As Exception
               Throw New Exception()
           Finally
               streamRead.Close()
               streamResponse.Close()
               myHttpWebResponse.Close()
           End Try
       End If



También vale?


Lo de no importar es una manía mía, porque me gusta saber de donde vienen las clases.



Ok gracias, pondré Windows-1252
#254
Hola

Pues el asunto ya lo explica todo. Extraigo el código de una página web y no aparecen caracteres especiales como los acentos y creo que la 'ñ' tampoco.

Mi código es el siguiente:

Código (vbnet) [Seleccionar]
        Dim UrlCode As String = Nothing
       Dim myHttpWebRequest As System.Net.HttpWebRequest = _
           CType(System.Net.WebRequest.Create("https://foro.elhacker.net/net/el_codigo_html_extraido_de_una_web_no_muestra_acentos_aeo-t444215.0.html;msg2046878#msg2046878"),  _
               System.Net.HttpWebRequest)
       myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" '".NET Framework Test Client"
       ' The response object of 'HttpWebRequest' is assigned to a 'HttpWebResponse' variable.
       Dim myHttpWebResponse As System.Net.HttpWebResponse = CType(myHttpWebRequest.GetResponse(), System.Net.HttpWebResponse)
       ' Display the contents of the page to the console.
       Dim streamResponse As System.IO.Stream = myHttpWebResponse.GetResponseStream()
       Dim streamRead As New System.IO.StreamReader(streamResponse)

       UrlCode = streamRead.ReadToEnd

       streamRead.Close()
       streamResponse.Close()
       myHttpWebResponse.Close()


En lugar del acento aparece un cuadrito 'cami[]n'

Gracias



Ya lo solucioné, añadiendo System.Text.Encoding.

Código (vbnet) [Seleccionar]
 Dim streamRead As New System.IO.StreamReader(streamResponse, System.Text.Encoding.GetEncoding(1252))

También me ha servido poner System.Text.Encoding.Default

Código (vbnet) [Seleccionar]
Dim streamRead As New System.IO.StreamReader(streamResponse, System.Text.Encoding.Default)

Parece ser que es debido a la conversión de la Web a Unicode  que hace Net.
#255
Dudas Generales / Re: Ver series retro
11 Noviembre 2015, 13:16 PM
Hola
Bueno, no lo he encontrado en kickass, pero gracias.

Que rabia cuando hacen remakes de series o películas porque luego Internet se llena de los remakes y desaparecen los/las originales. En fin, que se le va a hacer. :(

De momento emule parece que me lo está bajando, pero joer que lento va... por eso lo pedía online.

Salu2
#256
Dudas Generales / Ver series retro
10 Noviembre 2015, 15:21 PM
Hola
Estoy buscando donde ver online la serie 'Los ángeles de Charlie (1976)'. Busco en Google y me sale seriesyonkies por ejemplo pero a la hora de verlo no hay manera, me dice o que actualice Flash que ya lo he actualizado oy firefox que también lo tengo actualizado, pero desde el propio firefox no desde el enlace que te proponen ¿lógico no?.

¿Dónde puedo verla?

Gracias



Bueno, he vuelto a probar y ahora me lleva a una página en blanco.
#257
Hola

El otro día me conecté a la red usando el móvil como modem. Mi movil  tiene límite de datos, y pasado 1 GB, me cobran 1 € cada 100 mb. En fin, un timo. Es para uso mínimo

El caso es que me conecté desde XP y afortunadamente tengo un programa que hice yo mismo para controlar subida y la bajada.  Se que hay herramientas para verlo pero se muestra en bytes y no suma la bajada y la subida, lo cual lo que cuenta es todo en este caso.

Por suerte me percaté pronto de que había algo descargando sin parar y desconecté la conexión. Hice lo siguiente:
- Mediante el Firewall de mi antivirus bloquee la conexión de programas que tratan de utilizar a la red.
-Desconecté Windows Update. Además ya lo tenía en avisarme y no descargar.
-Mediante un programa What's Running, compruebo que se conecta a la red. También desde consola.

Veo que sea lo que sea usa svchost.exe

Por mucho que haga no conseguía averiguar qué es lo que se estaba descargando y qué programa lo hacía. Hasta que  me puse con los servicios. Al final resulta que era: Servicio de transferencia inteligente en segundo plano

Lo deshabilité y listo ya no descargaba nada en absoluto. Sólo cuando navegaba ya que al hacerlo se descargan y envían datos.

Si tengo deshabilitado Windows Update ¿Qué programa usaba o qué se descargaba a través de este servicio?

Gracias








#258
Hola

Mediante este código obtengo los bytes enviados y recibidos por la red.

Código (vbnet) [Seleccionar]
 Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) _
   Handles Timer1.Tick
       Dim nics As System.Net.NetworkInformation.NetworkInterface()
       nics = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()

       For Each nic As NetworkInterface In nics
           Dim S As Integer = nic.NetworkInterfaceType
 
           If nic.OperationalStatus = 1 Then
               If S = NetworkInterfaceType.Wireless80211 Or S = NetworkInterfaceType.Ethernet Then
                   Dim ipv4Stats As System.Net.NetworkInformation.IPv4InterfaceStatistics
                   ipv4Stats = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces.First.GetIPv4Statistics
                   Label1.Text = String.Format("Enviado: {0} bytes", ipv4Stats.BytesSent.ToString("##,##"))
                   Label2.Text = String.Format("Recibido: {0} bytes", ipv4Stats.BytesReceived.ToString("##,##"))

               End If
               If S = NetworkInterfaceType.Ppp Then
                   Dim ipv4Stats As System.Net.NetworkInformation.IPv4InterfaceStatistics
                   ipv4Stats = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces(1).GetIPv4Statistics
                   Label1.Text = String.Format("Enviado: {0} bytes", ipv4Stats.BytesSent.ToString("##,##"))
                   Label2.Text = String.Format("Recibido: {0} bytes", ipv4Stats.BytesReceived.ToString("##,##"))
               End If
           End If
       Next
   End Sub




Pero no cuadra con los mostrados por Windows a través del cuadro "Estado de Conexión de red inalámbrica":





Gracias

#260
C++
Código (cpp) [Seleccionar]
float potencia(float x,int y)
  {
  float acum=1:
  for(int i=1;i<=y;i++)
     acum*=x;
  return(acum);
  }


http://www.forosdelweb.com/f96/calcular-potencias-c-477125/


C#
Código (csharp) [Seleccionar]
int ValorA = 2;
int ValorB = 5;
int Resultado = 0;
Resultado = Math.Pow(ValorA, ValorB);


Math.Pow (Método)