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

#1301
a mi tambien me ha pasado, se me prendia la pc de escritorio sola, y nunca supe porque, pero era cuando prendia el router antes que la pc y se conectaba, ahi se me prendia, se ve que la placa de red la prendia, como dijo Tzhed.

saludos.
#1302
Hola, aca les traigo otra creacion de mi abuerrimiento  :xD, esta vez una aplicación para ver los usuarios que estan conectados a este foro, a travez del SSI del SMF.

Al apretar el boton "Actualizar" lo que hace es cargar el HTML del SSI y lo parsea con una libreria para parsear HTML de una forma muy facil, una de las mejores o la mejor, libre, llamada HtmlAgilityPack.

muestra en la grilla los nombres de los usuarios conectados y el link de su perfil que al hacer doble click sobre el mismo se habre en el navegador.

de paso tambien le coloca al nombre el color del usuario segun su rango, Admin,CoAdmin..etc.

Tambien muestra debajo de la grilla, un log de las conexiones y desconexiones que se van produciendo desde la ultima vez que se apreto el boton "Actualizar", ya que el programa no esta constantemente actualizando, es necesario apretar el boton.

Capturas:



Extras:


  • Al minimizar la aplicación queda en la bandeja del sistema.
  • La libreria para parsear el HTML va incrustada como recurso dentro del .exe y se carga en memoria al momento de ejecutarse, por lo tanto no es necesario llevarla junto al .exe.

Descargar: Online Users

saludos.
#1303
la unica que se me ocurre es que se haya borrado por alguna razon el primer post...pero yo no puedo hacerlo, dice que no tengo permisos, pero un moderador global o administrador debe poder...igual es raro quien lo va a borrar...

saludos.
#1304
Hola, proba con esto, vos ponelo despues en un listview, lo que hace es enumerar los iconos del system tray, tambien te saca el nombre del proceso que pertenece al Hwnd de la ventana de cada proceso y el icono del mismo, y de paso te dice el tooltiptext que tiene el icono...en windows XP funciona bien.

Código (vb) [Seleccionar]
Option Explicit

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function DrawIconEx Lib "user32" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function VirtualFreeEx Lib "kernel32" (ByVal hProcess As Long, lpAddress As Any, ByRef dwSize As Long, ByVal dwFreeType As Long) As Long
Private Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Long, lpAddress As Any, ByRef dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, Optional lpNumberOfBytesWritten As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, Optional lpNumberOfBytesWritten As Long) As Long
Private Declare Function EnumProcessModules Lib "psapi" (ByVal hProcess As Long, ByRef lphModule As Long, ByVal cb As Long, ByRef lpcbNeeded As Long) As Long
Private Declare Function GetModuleFileNameEx Lib "psapi" Alias "GetModuleFileNameExA" (ByVal hProcess As Long, ByVal hModule As Long, ByVal ModuleName As String, ByVal nSize As Long) As Long

Const PROCESS_QUERY_INFORMATION = (&H400)
Const PROCESS_VM_READ = (&H10)
Const PROCESS_VM_WRITE = (&H20)
Const PROCESS_VM_OPERATION = (&H8)
Const MEM_COMMIT = &H1000
Const MEM_RESERVE = &H2000
Const MEM_RELEASE = &H8000
Const PAGE_READWRITE = &H4
Const MAX_PATH = 260
Const WM_USER = &H400
Const TB_BUTTONCOUNT = (WM_USER + 24)
Const TB_GETBUTTON = (WM_USER + 23)
Const TB_GETBUTTONTEXTA = (WM_USER + 45)

Private Type TBBUTTON
    iBitmap As Long
    idCommand As Long
    fsState As Byte
    fsStyle As Byte
    dwData As Long
    iString As Long
End Type

Private Type TRAYDATA
    hWnd  As Long
    uID As Long
    uCallbackMessage As Long
    Reserved1 As Long
    Reserved2 As Long
    hIcon As Long
End Type

Private Sub Form_Load()
    Dim hSysTray As Long, pID As Long, hProcess As Long, N As Long, Y As Long, L As Long
    Dim tbb As TBBUTTON, lptbb As Long, td As TRAYDATA, lptd As Long, S As String * 128
   
    BackColor = vbWhite
    AutoRedraw = True
    hSysTray = GetNotificationWindow
    GetWindowThreadProcessId hSysTray, pID
    hProcess = OpenProcess(PROCESS_VM_READ Or PROCESS_VM_WRITE Or PROCESS_VM_OPERATION, 0, pID)
    lptbb = VirtualAllocEx(hProcess, ByVal 0&, Len(tbb), MEM_COMMIT Or MEM_RESERVE, PAGE_READWRITE)
    lptd = VirtualAllocEx(hProcess, ByVal 0&, Len(td), MEM_COMMIT Or MEM_RESERVE, PAGE_READWRITE)
    L = VirtualAllocEx(hProcess, ByVal 0&, Len(S), MEM_COMMIT Or MEM_RESERVE, PAGE_READWRITE)
    N = SendMessage(hSysTray, TB_BUTTONCOUNT, 0, ByVal 0&)
   
    For N = 0 To N - 1
        SendMessage hSysTray, TB_GETBUTTON, N, ByVal lptbb
        SendMessage hSysTray, TB_GETBUTTONTEXTA, N, ByVal L
        ReadProcessMemory hProcess, ByVal L, ByVal S, Len(S)
        Debug.Print Split(S, vbNullChar)(0)
        ReadProcessMemory hProcess, ByVal lptbb, tbb, Len(tbb)
        ReadProcessMemory hProcess, ByVal tbb.dwData, td, Len(td)
       
        If (td.Reserved1 And 1) = 0 Then
            DrawIconEx hdc, 2, Y, td.hIcon, 16, 16, 0, 0, 3
            CurrentX = 20 * Screen.TwipsPerPixelX
            CurrentY = (Y + 2) * Screen.TwipsPerPixelY
            Print GetProcessNameFromHwnd(td.hWnd)
            Y = Y + 18
        End If
    Next
   
    VirtualFreeEx 0, lptbb, 0, MEM_RELEASE
    VirtualFreeEx 0, lptd, 0, MEM_RELEASE
    CloseHandle hProcess
End Sub

Private Function GetNotificationWindow() As Long
    Dim H As Long
    H = FindWindowEx(0, 0, "Shell_TrayWnd", vbNullString)
    H = FindWindowEx(H, 0, "TrayNotifyWnd", vbNullString)
    H = FindWindowEx(H, 0, "SysPager", vbNullString)
    GetNotificationWindow = FindWindowEx(H, 0, "ToolbarWindow32", vbNullString)
End Function

Private Function GetProcessNameFromHwnd(ByVal hWnd As Long) As String
    Dim ProcessId As Long, hProcess As Long, hModule As Long, S As String * MAX_PATH
    GetWindowThreadProcessId hWnd, ProcessId
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, ProcessId)
    EnumProcessModules hProcess, hModule, 1, ByVal 0
    GetModuleFileNameEx hProcess, hModule, S, MAX_PATH
    GetProcessNameFromHwnd = Left$(S, InStr(S, vbNullChar) - 1)
    CloseHandle hProcess
End Function


saludos.

#1305
Hola, fijate si este ejemplo te ayuda en algo...

Código (vbnet) [Seleccionar]
Imports System.Text

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim vCantidadEquipos As Integer = 5

        Dim vTotalFechas As Integer = vCantidadEquipos - 1
        Dim vPartidosPorFecha As Integer = vCantidadEquipos \ 2

        Dim vFechas As String()() = New String(vTotalFechas - 1)() {}

        For vFecha As Integer = 0 To vTotalFechas - 1
            vFechas(vFecha) = New String(vPartidosPorFecha - 1) {}
        Next

        For vFecha As Integer = 0 To vTotalFechas - 1
            For vPartido As Integer = 0 To vPartidosPorFecha - 1
                Dim vLocal As Integer = (vFecha + vPartido) Mod (vCantidadEquipos - 1)
                Dim vVisitante As Integer = (vCantidadEquipos - 1 - vPartido + vFecha) Mod (vCantidadEquipos - 1)

                If vPartido = 0 Then
                    vVisitante = vCantidadEquipos - 1
                End If

                vFechas(vFecha)(vPartido) = (vLocal + 1) & " v " & (vVisitante + 1)
            Next
        Next

        Dim vLista As New StringBuilder()

        For i As Integer = 0 To vFechas.Length - 1

            vLista.Length = 0
            Debug.WriteLine("Fecha: " & (i + 1))
            Array.Sort(vFechas(i))

            For outer As Integer = 0 To vPartidosPorFecha - 1
                vLista.Append(vFechas(i)(outer) & ", ")
            Next

            vLista.Length = vLista.Length - 2
            Debug.WriteLine(vLista.ToString())
            Debug.WriteLine("")
        Next
    End Sub
End Class


saludos.
#1306
ya por mi parte creo que te dimos bastante, porque si cada cosa que queres hacer vas a tener que preguntar, para eso no sirve el foro, agarra un libro de visual basic y leetelo entero, o algun manual online basico, como este que te enseña lo basico que necesitas saber antes de hacer algo:

Manual básico de Visual Basic

leete todos los capitulos de ese manual.

saludos.
#1307
esto es facil, el archivo tiene definido un largo fijo para cada campo, con un Mid() lo solucionas, o sea desde la posicion 0 a la 13 tenes el codigo, de la 14 a la 25 la descripcion etc...con eso ya lo tenes.

saludos.
#1308
anda con MySQL directamente, va a ser lo mejor, que estar renegando con access, yo diria que no le brindes mas tiempo a esto y pasate a MySQL...
#1309
Hola, es verdad, no se si los de microsoft lo hicieron a proposito, pero los controles del compact framework estan estirpados de un monton de propiedades y eventos utiles, pero bueno siempre hay que encontrarle la vuelta para ver como solucionarlo, yo ya estoy curado de esto, buscando en internet podes encontrar algunas adaptaciones para hacer esto, por ejemplo:

AutoComplete with a .NETCF ComboBox

saludos.
#1310
a access ni hace falta hacerle test, es una cag.......pero para cositas chicas sirve y sobra.

siempre se dijo que MySQL es rapido y SQL Server es mas robusto, para grandes volumenes de datos, pero mas lento que MySQL an algunas cosas.

igualmente oracle, me imagino que si es asi de cara es porque es buena no ?

saludos.