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 - Keyen Night

#241
¿Por qué no lo haces con Stream? tan sencillo como abrir un FileStream, recorrer los Bytes a escribir, escribilos con .WriteByte() y cerrar el Stream. con menos de 10 líneas de código lo haces.
#242
Bueno tengo varias cosas que aclararte :) la primera a través de la clase Process puedes obtener el StartTime del proceso y restado con Date.Now puede obtener el tiempo en TimeSpan que lleva corriendo el proceso desde que se inicio.

Aquí un ejemplo de como hacerlo con el proceso mismo
Código (vb.net) [Seleccionar]

  MessageBox.Show(Date.Now.Subtract(Process.GetCurrentProcess.StartTime).ToString)


Y con respecto a lo del ejecutable hay una noticia buena y una mala :xD

La mala es que sin escribir el archivo en el disco no lo podrás correr.
La buena es que si el ejecutable está en .Net y no está ofuscado o protegido el código lo puedes cargar con Reflexion.
#243
O es espacio de nombres o es tipo, quizás tengas un espacio de nombres que tiene el mismo nombre que un tipo interno y el compilador los confunde, no sé realmente fue lo primero que se me vino a la mente, pon el código a ver.
#244
¿Nos estás mandando a hacerte el trabajo? :silbar:

Este es el tema más descarado de todos los tiempos al menos por los 2 años que llevo en el foro
#245
.NET (C#, VB.NET, ASP) / Re: problema con login form
30 Septiembre 2011, 03:44 AM
Igual usa la forma que te digo para guardar la información es más seguro, y con lo de recordar el usuario eso si lo puedes hacer en la configuración igualmente guardando el Hash del usuario recordado.
#246
.NET (C#, VB.NET, ASP) / Re: problema con login form
29 Septiembre 2011, 21:12 PM
Si guardas los users y sus respectivas contraseñas en los archivos de configuración de tu aplicación cualquiera podrá tener acceso a esos datos por que estan en un archivo que no está cifrado en %AppData% en una carpeta con el nombre de tu software. Estas trajando con seguridad, me refiero estas trabajando con Logins y contraseñas, quiere decir que el sistema debe ser 99.99% seguridad total y que ese 0.01% que existira en todos los sistemas no se llegue a descubrir nunca :xD

Te recomiendo, ocupas mucho código de la manera en que lo estás haciendo un If por cada usuario, entonces imaginate que Facebook controlará los logins de sus usuarios de 1 If por cada usuario :-X

Puedes pasarle un Hash, como MD5, hay otros más seguros pero con ese te basta, a la contraseña junto con el usuario y lo guardes en un archivo, de está forma una línea por usuario, así cuando un usuario se vaya a conectar se le cálcula el Hash a la contraseña con el usuario que está colocando y se busca que el Hash exista en el archivo donde guardar los Logins, sino existe entonces el usuario no existe o la contraseña es incorrecta, puedes aplicar lo mismo a una base de datos. Si no sabes que es un Hash http://es.wikipedia.org/wiki/MD5, hay miles de otras formas pero esta en la más sencilla.
#247
Bueno decidí compartir este código lo acabo de hacer sirve para capturar los procesos que se han iniciado y los que se han terminado, me parece bastante útil, utiliza como base WMI solo que en la clase está mucho más administrado y más cómodo de utilizar. Deben liberar el objeto con .Dispose cuando vayan a cerrar la aplicación que use la clase o lanza un error.

Código (vb.net) [Seleccionar]
Public Class ProcessWatcher

    Partial Class StoppedProcess

        Public Sub New(ByVal PropertiesDictionary As Dictionary(Of String, Object))

            Dim AllFlags As BindingFlags = &H107FF7F
            Dim Field As FieldInfo = Nothing

            For Each FieldProperty As KeyValuePair(Of String, Object) In PropertiesDictionary
                Field = Me.GetType.GetField("_" & FieldProperty.Key, AllFlags)
                If Field IsNot Nothing Then
                    Field.SetValue(Me, FieldProperty.Value)
                End If
            Next

        End Sub

#Region " Properties "

        Private _ProcessName As String
        Public ReadOnly Property ProcessName() As String
            Get
                Return _ProcessName
            End Get
        End Property

        Private _ProcessID As UInteger
        Public ReadOnly Property Id() As UInteger
            Get
                Return _ProcessID
            End Get
        End Property

        Private _ParentProcessID As UInteger
        Public ReadOnly Property ParentProcessId() As UInteger
            Get
                Return _ParentProcessID
            End Get
        End Property

        Private _ExitStatus As UInteger
        Public ReadOnly Property ExitCode() As UInteger
            Get
                Return _ExitStatus
                Process.GetCurrentProcess()
            End Get
        End Property

        Private _SessionID As UInteger
        Public ReadOnly Property SessionId() As UInteger
            Get
                Return _SessionID
            End Get
        End Property

#End Region

    End Class

    Public Event Started(ByVal e As Process)
    Public Event Stopped(ByVal e As StoppedProcess)

    Private ProcessQueryEvent_Start As WqlEventQuery
    Private ProcessWatcher_Start As ManagementEventWatcher

    Private ProcessQueryEvent_Stop As WqlEventQuery
    Private ProcessWatcher_Stop As ManagementEventWatcher

    Private WatcherEnabled As Boolean = False

    Public Sub New(Optional ByVal AutoStart As Boolean = True, _
                   Optional ByVal SetAsFalseCheckForIllegalCrossThreadCalls As Boolean = False, _
                   Optional ByVal Frequency As Double = 1000)

        ProcessQueryEvent_Start = New WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")
        ProcessWatcher_Start = New ManagementEventWatcher(ProcessQueryEvent_Start)

        ProcessQueryEvent_Stop = New WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace")
        ProcessWatcher_Stop = New ManagementEventWatcher(ProcessQueryEvent_Stop)

        AddHandler ProcessWatcher_Start.EventArrived, AddressOf StartEvent
        AddHandler ProcessWatcher_Stop.EventArrived, AddressOf StopEvent

        ProcessQueryEvent_Start.WithinInterval = TimeSpan.FromMilliseconds(Frequency)
        ProcessQueryEvent_Stop.WithinInterval = TimeSpan.FromMilliseconds(Frequency)

        Control.CheckForIllegalCrossThreadCalls = Not SetAsFalseCheckForIllegalCrossThreadCalls

        If AutoStart Then
            Enabled = True
        End If

    End Sub

    Private Sub StopEvent(ByVal sender As Object, ByVal e As EventArrivedEventArgs)

        Dim RawDictionary As New Dictionary(Of String, Object)

        For Each ProcessProperty As PropertyData In e.NewEvent.Properties
            If Not ProcessProperty.IsArray Then
                RawDictionary.Add(ProcessProperty.Name, e.NewEvent(ProcessProperty.Name))
            End If
        Next

        RaiseEvent Stopped(New StoppedProcess(RawDictionary))

    End Sub

    Private Sub StartEvent(ByVal sender As Object, ByVal e As EventArrivedEventArgs)
        RaiseEvent Started(Process.GetProcessById(e.NewEvent("ProcessID")))
    End Sub

    Public Property Frequency() As Double
        Get
            Return ProcessQueryEvent_Start.WithinInterval.TotalMilliseconds
        End Get
        Set(ByVal value As Double)
            If value < 0 Then
                Throw New ArgumentException("value")
            Else
                ProcessQueryEvent_Start.WithinInterval = TimeSpan.FromMilliseconds(value)
                ProcessQueryEvent_Stop.WithinInterval = TimeSpan.FromMilliseconds(value)
            End If
        End Set
    End Property

    Public Property Enabled() As Boolean
        Get
            Return WatcherEnabled
        End Get
        Set(ByVal value As Boolean)
            If WatcherEnabled Then
                ProcessWatcher_Start.Stop()
                ProcessWatcher_Stop.Stop()
            Else
                ProcessWatcher_Start.Start()
                ProcessWatcher_Stop.Start()
            End If
            WatcherEnabled = Not WatcherEnabled
        End Set
    End Property

    Public Sub Dispose()

        If Enabled Then
            ProcessWatcher_Start.Stop()
            ProcessWatcher_Stop.Stop()
        End If

        ProcessWatcher_Start.Dispose()
        ProcessWatcher_Stop.Dispose()

    End Sub

End Class


Un poco largo el código :-X

Los parametros del constructor son:

AutoStart, Boolean, True para iniciar automáticamente con la construcción y False para iniciar después mediante la propiedad Enabled.

SetAsFalseCheckForIllegalCrossThreadCalls
, Boolean, True para desactivar la detección de llamadas de controles fuera del MainThread y false para activar.

Frequency, Double, el intervalo en milisegundos en cuál se va a chequear.
#248
Y usando el ASCII de "ó" no funcionará?

Código (vb.net) [Seleccionar]
Convert.ToChar(&HF3)

Código (vb.net) [Seleccionar]
WebBrowser1.Document.GetElementById("Iniciar Sesi" & Convert.ToChar(&HF3) & "n").InvokeMember("submit")
#249
.NET (C#, VB.NET, ASP) / Re: Cambio de color de label
27 Septiembre 2011, 03:54 AM
Aún no terminas de decir que es lo que quieres :-X
#250
.NET (C#, VB.NET, ASP) / Re: Cambio de color de label
27 Septiembre 2011, 01:58 AM
Realmente no entendi, lo poco que entendi es que tu quieres que al darl Click a un label se ponga verde y al darle de nuevo se ponga rojo y viceversa?