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

#5771
Sinceramente, jamás vi este tipo de comportamiento en una aplicación, de todas formas hay varios bugs conocidos sobre la pérdida de foco de un WebBrowser (los cuales Microsoft no ha arreglado en años, ni pensará en hacerlo), y esto parece ser más o menos algo similar, ya que el WebBrowser se activa automaticamente o hace que el form se reactive tras minimizarlo, creo que quizás has descubierto o re-descubierto un bug con el WebBrowser que se da en circunstancias muy específicas (las cuales desconozco), de alguna manera esa url tambien debe estar involucrada, ¿pero cómo?, ¡no lo se!.


Bueno, tras investigar un poco el código he averiguado varias cosas sin sentido

1) La propiedad Dock del WebBrowser es lo que entra en conflicto con el Form, mientras el valor de la propiedad Dock sea Fill, el form se reactivará al minimizarlo, y no sirve de nada insertar el WebBrowser en un panel, o añadir márgenes en el Form (superponer o sobreponer el webbrowser), ni nada similar.

2) Así pues, si no quieres que la ventana del form se auto-restaure, primero debes desactivar el Docking del WebBrowser (cambiarlo de Fill a None), y viceversa al restaurar la ventana del Form, (de None a Fill) pero he aquí otro problema que también has descubierto, no sirve de nada suscribirse a los eventos Size/Resize del Form (ni tampoco del WebBrowser) para intentar hacer esas modificaciones.

3) El problema desaparece si instancias el Form en tiempo de ejecución, en vez de añadir el control en tiempo de diseño. Esa sería una solución.
( Ambos WebBrowsers usando el mismo docking, pero el problema desaparece, ¡no tiene sentido! )


Al final he optado por procesar los mensajes de la ventana usando el procedimiento WndProc, pero vaya mi sorpresa fue descubrir que ¡modificar el Docking del webbrowser justo al procesar el mensaje de minimizado tampoco tiene ningún efecto! (mientras que si lo haces antes, si que surge efecto).

Pero por suerte, descubrí que era suficiente con modificar la visibilidad del WebBrowser, aunque solo tiene efecto si la modificas al procesar los mensajes de la ventana del Form.

Solución:

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

   Dim WithEvents wb As WebBrowser = Me.WebBrowser1

   Public Enum WindowsMessages As Integer

       ' MSDN Documentation:
       ' https://msdn.microsoft.com/en-us/library/windows/desktop/ms646360%28v=vs.85%29.aspx

       ''' <summary>
       ''' A window receives this message when the user chooses the maximize button, minimize button, restore button, or close button.
       ''' </summary>
       WM_SYSCOMMAND = &H112I

   End Enum

   Public Enum wParams As Integer

       ' MSDN Documentation:
       ' https://msdn.microsoft.com/en-us/library/windows/desktop/ms646360%28v=vs.85%29.aspx

       ''' <summary>
       ''' Minimizes the window.
       ''' </summary>
       SC_MINIMIZE = &HF020I

       ''' <summary>
       ''' Restores the window to its normal position and size.
       ''' </summary>
       SC_RESTORE = &HF120I

   End Enum

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load

       '  MyBase.Controls.Add(Me.wb)

       With Me.wb
           .Dock = DockStyle.Fill
           .Navigate("http://144.76.33.166:443/?0,2,0,15,0&nn=hello")
       End With

   End Sub

   ''' <summary>
   ''' Invokes the default window procedure associated with this window to process messages.
   ''' </summary>
   ''' <param name="m">
   ''' A <see cref="T:System.Windows.Forms.Message"/> that is associated with the current Windows message.
   ''' </param>
   Protected Overrides Sub WndProc(ByRef m As Message)

       If m.Msg = WindowsMessages.WM_SYSCOMMAND Then

           Select Case m.WParam.ToInt32

               Case wParams.SC_MINIMIZE
                   Me.wb.Visible = False

               Case wParams.SC_RESTORE
                   Me.wb.Visible = True

               Case Else
                   ' Do Nothing

           End Select

       End If

       ' Return Message to base message handler.
       MyBase.WndProc(m)

   End Sub

End Class


Saludos
#5772
Software / Re: DJ Virtual AYUDA
25 Enero 2015, 00:45 AM
No me causas molestia ni tampoco debes pedirme disculpas, date cuenta que si te digo eso es por tu bien y para ayudarte con el problema (no por criticarte), ya que si no das información al respecto entonces no puedes obtener una ayuda cualificada para resolver el problema, porque no hay por donde coger el problema... pueden ser mil y una cosas, nada más.

Sabes que puedes (y deberías) ser más específico, todo el mundo debería.

Saludos!
#5773
Scripting / Re: ayuda con dos programas .bat
24 Enero 2015, 23:05 PM
¿Que buscas, orientación, o que te hagan los trabajos?.


Elementos necesarios para llevar a cabo el problema nº1:

%1 - %5
Copy CON
EQU
IF
Set /P



Elementos necesarios para llevar a cabo el problema nº2:

CLS
FOR /F
If Exists
Pause
Set
Sort
Type
|
||



Saludos.
#5774
Windows / Re: mi pc anada muy lento
24 Enero 2015, 22:15 PM
Cita de: Misterio_S en 22 Enero 2015, 15:02 PM
hay ratos en que trabaja demasiaaaaaaaaaaaado lento y sin abrir tantos programas, a veces solo con 3 - 4 programas , por curiosidad abri el taskmgr y en la pestaña disco se mantiene entre 95% - 100%  color rojo lo cutrioso es que en la pestaña cpu es todo lo contrario entre 3% - 5 % , la memoria entre 30% y 40%,

No es raro/curioso, simplemente tu PC está haciendo demasiadas operaciones de lectura/escritura en disco, mientras que las operaciones de CPU y RAM están bien.


Cita de: Misterio_S en 22 Enero 2015, 15:02 PMay veces que solo descomprimir un rar de 100 mb se tarsda 15 minutos o abrir el chrome tarda 20-50 segundos, abrir una carpeta tambien, apagarlo pc puede demorar hasta 15 minutos

Todo lo que comentas son indicativos de lo que he mencionado arriba, debido a que hay otras operaciones de lectura/escritura de disco, y éstas por algún motivo tienen mayor prioridad sobre el resto de operaciones (algo normal en un antivirus), por eso una descompresión te tarda un tiempo excesivo, al igual que te tarda en abrir el navegador, etc.


Cita de: Misterio_S en 22 Enero 2015, 15:02 PMesto NO ocurre todas las veeces, pero si miuchas y ya me aburri no se que hacer.la pc es casi nueva.

Un buen motivo para que te sucediera "de vez en cuando" es que puedes tener escaneos automáticos programados en NOD32, escaneos que realizarían un análisis completo de todos los archivos del disco o discos, con el tiempo de duración que un análisis conlleva ...por no decir que es una tarea bastante intensiva, y, ¿he dicho ya que el proceso de un AV por defecto suele tener prioridad sobre el resto de procesos? (aunque siempre puedes modificar de forma manual las priodades I/O del proceso), lo tienes blanco y en botella.

Comprueba los análisis automáticos, y desactívalos, creo que se pueden encontrar en el programador de Nod32:
How do I create a scheduled scan? (5.x) - ESET ...
(o tal vez el escaneo esté agregado como una tarea del sistema en del programador de tareas de Windows, tal vez como un archivo con extensión .job en la carpeta del sistema)

Otro motivo por el que te puede suceder esa ralentización (aunque no de forma tan excesiva), es si tienes activada la opción de heurística avanzada, o algo parecido, no recuerdo bien el nombre... dejé de utilizar NOD32 hace años precisamente por los problemas de ralentización que suele causar.
En fin, dicha opción de "heurística avanzada" hace un análisis más exhaustivo de cualquier programa que ejecutes (antes de iniciarlo por completo), y eso ralentizaría MUCHO el tiempo de ejecución del archivo que está siendo analizado (por ejemplo, podría ralentizar la apertura del proceso del navegador, como comentaste), compruébalo también y desactívalo.


Cita de: Misterio_S en 24 Enero 2015, 14:39 PMen otras veces el system parece que se dispara despues de cerrar algunos programas, en monitor  recursos pestaña escritura(B/s) se eleva a 5,000,000  alguna idea de lo que pasa?

comno ves solo hya abiertos 4 o 5 programas , o ninguno solo un par de carpetas y el disco esta 100%.

System es un pseudo-proceso, no debes fijarte mucho en el, sino en los procesos que se sirven de él, en palabras sencillas (y también mal explicadas): System es un proceso que corre sub-procesos críticos en segundo plano, y de nuevo es un indicativo más (practicamente definitivo diría yo), de que NOD32 te está dando bien por el ****.






En definitiva, por las evidencias encontradas en las imágenes que has mostrado, en un principio con detener y/o desactivar los análisis del NOD32 sería suficiente, pero por propia experiencia usando NOD32 en el pasado, lo que realmente yo te recomendaría directamente es desinstalar NOD32 y optar por otro AV más estable en relación al rendimiento (ej: MalwareBytes), o como mínimo que desactivases NOD32 durante 1 día o los días que necesites para verificar si el causante de las operaciones masivas de lectura/escritura en disco es el maldito NOD32, que me apuesto lo que quieras a que si que lo acabará siendo.

Nota: El proceso bsr.exe me es desconocido, si para ti también lo es entonces comprueba que no se trate de malware, realizando un análisis en un multi-escaner online (no usando NOD32, ya que no lo estaría detectando).

Saludos!
#5775
Cuando digo que muestres el código me refiero a todo lo que sea relevante al problema, por ejemplo si estás minimizando/restaurando el Form mediante código (o haciendolo en un MDI donde tengas el WebBrowser), etc, a menos que realmente solo sea relevante esa instrucción que mostraste... claro está.

Explica los pasos a seguir para intentar reproducir el problema, porque lo que comentas que te sucede es algo muy raro ...al menos sin conocer más información sobre la app, danos también un poco más de información respecto a la app, ¿es un WinForms?, una imagen también estaría bien.

Saludos
#5776
No se porque sucede, pero debe ser algún tipo de conflicto, prueba a limpiar todas las cookies de Google.

Una solución que le ha funcionado a otros es re-loguearse en Google+ de forma manual.
Fuente: https://productforums.google.com/forum/#!topic/youtube/LHDj4L9StVI

[OFFTOPIC]
Linkear a subirimagenes.com debería estar prohibido en el foro, en serio, que servicio más penoso e inutil, las imágenes a tamaño original nunca se ven o siempre va lentísimo en cargarlas, porfavor, ¡no lo utilicen más!

[/OFFTOPIC]

Saludos!
#5777
Cita de: darky666 en 24 Enero 2015, 17:15 PMhice un programa para ver solo una pagina en especial con un form1 y un webbrowser1
pero cuando quiero minimizar la ventana esta regresa a como estaba antes, pasa de minimized a normal automaticamente

esto solo pasa cuando la pagina esta cargada y con esa pagina en especial
con alguna otra pagina no tengo ese problema

como puedo evitar que pase esto?

Muestra tú código, y la página en cuestión.






Cita de: darky666 en 24 Enero 2015, 17:15 PMtambien queria saber si hay alguna forma de detectar el error 404 en el webbrowser mediante codigo

No, no es posible.

Tienes dos opciones:

1) Realizar una petición HTTP antes de navegar en el WebBrowser control, para parsear la respuesta del server:
Código (vbnet) [Seleccionar]
'...
Dim response As HttpWebResponse = request.GetResponse()

If response.StatusCode = HttpStatusCode.OK Then
  ...
End If



2) Usar la interface COM de SHDocVw.WebBrowser:

Primero referencia al proyecto Microsoft Internet Controls


Y luego...:
Código (vbnet) [Seleccionar]
Public NotInheritable Class TestForm ' WebBrowser Test Form by Elektro

   Friend WithEvents wb As Windows.Forms.WebBrowser
   Friend WithEvents wbAX As SHDocVw.WebBrowser

   Private ReadOnly uri As New Uri("http://foro.elhacker.net/404/")

   ''' <summary>
   ''' Handles the Load event of the TestForm control.
   ''' </summary>
   ''' <param name="sender">The source of the event.</param>
   ''' <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
   Private Sub TestForm_Load(ByVal sender As Object, ByVal e As EventArgs) _
   Handles MyBase.Load

       Me.wb = New Windows.Forms.WebBrowser
       With Me.wb
           .Dock = DockStyle.Fill
       End With

       MyBase.Controls.Add(Me.wb)

       Me.wbAX = DirectCast(Me.wb.ActiveXInstance, SHDocVw.WebBrowser)

   End Sub

   Private Sub TestForm_Shown(ByVal sender As Object, ByVal e As EventArgs) _
   Handles MyBase.Shown

       Me.wbAX.Navigate(Me.uri.AbsoluteUri)

   End Sub

   ''' <summary>
   ''' Handles the <see cref="SHDocVw.WebBrowser.NavigateError"/> event of the <see cref="wbAX"/> object.
   ''' MSDN Documentation:
   ''' https://msdn.microsoft.com/en-us/library/bb268221%28v=vs.85%29.aspx
   ''' https://msdn.microsoft.com/en-us/library/bb268233%28v=vs.85%29.aspx
   ''' </summary>
   ''' <param name="pDisp">
   ''' Object that evaluates to the top-level or frame WebBrowser object corresponding to the failed navigation.
   ''' </param>
   ''' <param name="url">
   ''' String expression that evaluates to the URL for which navigation failed.
   ''' </param>
   ''' <param name="frame">
   ''' String that evaluates to the name of the frame in which the resource is to be displayed,
   ''' or Null if no named frame is targeted for the resource.
   ''' </param>
   ''' <param name="statusCode">
   ''' Integer that contains a status code corresponding to the error, if available.
   ''' For a list of the possible status codes, see https://msdn.microsoft.com/en-us/library/bb268233%28v=vs.85%29.aspx.
   ''' </param>
   ''' <param name="cancel">
   ''' Boolean that specifies whether to cancel the navigation to an error page and/or any further autosearch.
   ''' </param>
   Private Sub WbAX_NavigateError(ByVal pDisp As Object,
                                  ByRef url As Object,
                                  ByRef frame As Object,
                                  ByRef statusCode As Object,
                                  ByRef cancel As Boolean) Handles wbAX.NavigateError

       Select Case CInt(statusCode)

           Case 404I
               cancel = True
                MessageBox.Show("Server has returned a 404 HTTP status code.",
                                Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)

           Case -2146697211I ' INET_E_RESOURCE_NOT_FOUND
               cancel = True
               ' ...

           Case Else
               ' ...

       End Select

   End Sub

End Class
#5778
Cita de: darky666 en 24 Enero 2015, 17:40 PMEn vb6 podia usar el control dhtml edit
en vb.net hay algun control similar?

No, bueno, su equivalente sería usar tecnología ASP.Net, un proyecto de tipo ASP.Net Web Application.




De todas formas, para usar el control DHTML de Microsoft solo necesitas tener y referenciar la ActiveX OCX.

1) Descarga el instalador de la OCX:
DHTML Editing Control for Applications Redistributable Package (x86)

2) Accede al menú de la caja de controles para añadir dicho control (Click derecho en el ToolBox > Choose Items...):


Nota: Referencia al proyecto la dll triedit.dll que va adjuntada con la OCX, en caso de ser necesario (no lo he probado).

Saludos
#5779
Hola

No tiene nada que ver con la versión objetivo de .Net Framework, en la información que has mostrado, el error se explica por si mismo, y también la solución :P

No puedes enlazar los datos de la query directamente, así que debes generar una colección local.

Prueba una de estas simples modificaciones dependiendo de la tecnología que estés usando (WinForms / WPF / ASP.Net, como se especifica en el error de arriba):
Código (csharp) [Seleccionar]
this.productoList.ItemsSource = bbdd.element.ToList;
Código (csharp) [Seleccionar]
this.productoList.ItemsSource = bbdd.element.ToBindingList;

o tal vez:
Código (csharp) [Seleccionar]
this.productoList.ItemsSource = (from item in bbdd select).ToList();

Saludos