|
6081
|
Programación / .NET (C#, VB.NET, ASP) / Re: Programación de Archivos en C#
|
en: 25 Enero 2015, 14:45 pm
|
En el método Read no deberías comprobar si la linea está vacía, ya que el método Write finaliza al detectar una linea vacía. He hecho otras modificaciones: VB.Net: Module Module1 ''' <summary> ''' Defines the entry point of the application. ''' </summary> Public Sub Main() ListaEnlazada.Write() ListaEnlazada.Read() ListaEnlazada.Wait() End Sub End Module
+ Imports System.IO Imports System.Text Public NotInheritable Class ListaEnlazada Shared ReadOnly filepath As String = Path.Combine(Path.GetTempPath, "frases.txt") Public Shared Sub Write() Console.WriteLine(String.Format("Escriba palabras que se guardaran en un archivo llamado '{0}'", Path.GetFileName(filepath))) Dim inputText As String Using sw As New StreamWriter(filepath, append:=False, encoding:=Encoding.Default) inputText = Console.ReadLine() Do Until String.IsNullOrEmpty(inputText) sw.WriteLine(inputText) inputText = Console.ReadLine() Loop End Using End Sub Public Shared Sub Read() ' NOTA: ' Puedes simplificar todo este bloque en una sola instrucción: ' Console.Write(File.ReadAllText(filepath, encoding:=Encoding.Default)) Using sr As New StreamReader(filepath, encoding:=Encoding.Default) Do Until sr.EndOfStream Console.WriteLine(sr.ReadLine()) Loop End Using End Sub Public Shared Sub Wait() Console.WriteLine("Oprima una tecla para continuar...") Console.ReadKey() End Sub End Class
C#: using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApplication1 { class Program { /// <summary> /// Defines the entry point of the application. /// </summary> static void Main(string[] args) { ListaEnlazada.Write(); ListaEnlazada.Read(); ListaEnlazada.Wait(); } } }
+ using Microsoft.VisualBasic; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.IO; using System.Text; public sealed class ListaEnlazada { static readonly string filepath = Path.Combine(Path.GetTempPath, "frases.txt"); public static void Write() { Console.WriteLine(string.Format("Escriba palabras que se guardaran en un archivo llamado '{0}'", Path.GetFileName(filepath))); string inputText = null; using (StreamWriter sw = new StreamWriter (filepath, append : false, encoding : Encoding .Default)) { inputText = Console.ReadLine(); while (!(string.IsNullOrEmpty(inputText))) { sw.WriteLine(inputText); inputText = Console.ReadLine(); } } } public static void Read() { // NOTA: // Puedes simplificar todo este bloque en una sola instrucción: // Console.Write(File.ReadAllText(filepath, encoding: Encoding.Default)); using (StreamReader sr = new StreamReader (filepath, encoding : Encoding .Default)) { while (!(sr.EndOfStream)) { Console.WriteLine(sr.ReadLine()); } } } public static void Wait() { Console.WriteLine("Oprima una tecla para continuar..."); Console.ReadKey(); } } //======================================================= //Service provided by Telerik (www.telerik.com) //=======================================================
Saludos
|
|
|
6082
|
Sistemas Operativos / Windows / Re: mi pc anada muy lento
|
en: 25 Enero 2015, 01:52 am
|
la ruta del programa bsr.exe es C:\Program Files (x86)\CyberLink\Shared files no se paraa que es. Está relacionado con algún producto de la compañia CyberLink, como PowerDVD, Power Media Player, etc, pero si está en esa carpeta entonces más bien será algún servicio en segundo plano que seguramente realiza un consumo de recursos innecesarios, quizás sería mejor para ti prevenir su ejecución para no empeorar más el rendimiento de tu PC.
Desmarca la casilla de "heuristica avanzada", de formma permanentemente, al menos mientras tu PC esté en el estado actual. ¿Que si es una característica necesaria?, bueno, es un extra de seguridad, siempre viene bien, pero tiene sus inconvenientes (vuelve lento al SO), tu decides. ese malwarebytes es el que usas? esta seguro que deberia cambiar mi antivirus? Si, es el que yo utilizo, o mejor dicho es mi AV principal, ya que lo uso junto a otros programas relacionados que no requieren instalación. Yo me lo cambiaría, si, por el AV que sea menos NOD32 (y digo esto despues de haberlo usado unos 5 años continuamente como AV principal), pero dejando a un lado mis preferencias y mi odio por el consumo de recursos de ESET, creo que como mínimo debes downgradearte el producto, no porque sea peor usar SmartSecurity, sino porque la situación lo requiere, ya que estás usando una suite de seguridad con más características (que yo considero innecesarias) y eso consume más recursos que si solamente utilizases el NOD32. así que simplemente podrías desinstalarte el Smartsecurity e instalar el antivirus ESET NOD32, seguro que notarás una mejora (por leve que sea) del rendmiento. De todas formas creo que estamos desviando el tema, no se trata de que AV usar, se trata de si es el AV el que está provocando ese colapso de I/O en tu PC, y eso es algo que puedes averiguar desinstalándote el SmartSecurity y viendo si despues de eso te sigue funcionando lento tras reiniciar el PC, ¡así de simple!  , si ves que estaba equivocado, lo vuelves a instalar. EDITO: Se me olvidaba comentar que aparentemente no tienes ningún escaneo de archivos programado. EDITO 2: Si te ves capacitado con los suficientes conocimientos entonces también deberías administrar los servicios que se ejecutan al inicio de Windows, para desactivar los innecesarios (ej: Fax, Windows Media Player, Hyper-V, Indexación, ¿CyberLink-PowerDVD?, etc), ya que cuantos más servicios mayor será el consumo de recursos, escribe en consola: Otra cosa que deberías hacer es asegurarte de que tu disco duro principal tiene un espacio libre mayor del 20% (por la fragmentación de los archivos). Y realizar una limpieza con CCLeaner. Son muhas cosas más las que podrías optimizar aparte, pero bueno, creo que es suficiente. Saludos!
|
|
|
6083
|
Programación / .NET (C#, VB.NET, ASP) / Re: Problema con el control webbrowser
|
en: 25 Enero 2015, 01:15 am
|
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: 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
|
|
|
6084
|
Informática / Software / Re: DJ Virtual AYUDA
|
en: 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!
|
|
|
6085
|
Programación / Scripting / Re: ayuda con dos programas .bat
|
en: 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.
|
|
|
6086
|
Sistemas Operativos / Windows / Re: mi pc anada muy lento
|
en: 24 Enero 2015, 22:15 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. ay 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. esto 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. en 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!
|
|
|
6087
|
Programación / .NET (C#, VB.NET, ASP) / Re: Problema con el control webbrowser
|
en: 24 Enero 2015, 20:54 pm
|
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
|
|
|
6089
|
Programación / .NET (C#, VB.NET, ASP) / Re: Problema con el control webbrowser
|
en: 24 Enero 2015, 19:29 pm
|
hice 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.
tambien 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: '... 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...: 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
|
|
|
6090
|
Programación / .NET (C#, VB.NET, ASP) / Re: Reemplazo del DHTML Edit en vb.net
|
en: 24 Enero 2015, 18:13 pm
|
En 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
|
|
|
|
|
|
|