elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Como leer info del área de notificación
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como leer info del área de notificación  (Leído 5,795 veces)
Fran1946

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Como leer info del área de notificación
« en: 15 Enero 2014, 13:18 pm »

Hola a todos:

He hecho una aplicación que necesita poder leer el tiempo de conexión de mi modem ADSL, he buscado por la red y no encuentro nada, ni siquiera se si esto es posible hacerlo con VB6.

Agradecería mucho algo de información al respecto.

Adjunto 2 imágenes para que se entienda bien lo que quiero.








Saludos.



No se ve bien la primera imagen, este es el link para poder verla a tamaño real.

http://www.casimages.es/i/140115011940468355.jpg.html][IMG]http://nsae01.casimages.net/img/2014/01/15/mini_140115011940468355.jpg

Lo que quiero poder leer es la duración que está señalada con una flecha roja en la imagen.

Gracias, y perdón por mi torpeza con esto


« Última modificación: 15 Enero 2014, 19:22 pm por Fran1946 » En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Como leer info del área de notificación
« Respuesta #1 en: 15 Enero 2014, 23:26 pm »

para leear esas informaciones tenes que recurrir a las apis o con WMI.

saludos.


En línea

Fran1946

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: Como leer info del área de notificación
« Respuesta #2 en: 16 Enero 2014, 00:35 am »

para leear esas informaciones tenes que recurrir a las apis o con WMI.

saludos.

Puedes darme alguna pista por donde empezar a buscar, por que lo que me dices es muy genérico,

Gracias
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.513


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Como leer info del área de notificación
« Respuesta #3 en: 16 Enero 2014, 02:33 am »

Un ejemplo:

Código
  1. Option Explicit
  2.  
  3. Public Declare Function EnumWindows Lib "user32.dll" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
  4. Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  5. Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
  6. Public Const GWL_STYLE = (-16)
  7.  
  8. Declare Function AccessibleObjectFromWindow Lib "oleacc" (ByVal hwnd As Long, ByVal dwId As Long, riid As tGUID, ppvObject As Object) As Long
  9. 'Esta API que sigue se usa para enumerar los objetos IAccessible de los children de la ventana
  10. 'Declare Function AccessibleChildren Lib "oleacc" (ByVal paccContainer As IAccessible, ByVal iChildStart As Long, ByVal cChildren As Long, rgvarChildren As Variant, pcObtained As Long) As Long
  11.  
  12. Type tGUID
  13.    lData1            As Long '4 bytes DWORD
  14.    nData2            As Integer '2 bytes
  15.    nData3            As Integer '2 bytes
  16.    abytData4(0 To 7) As Byte  '8 bytes (array)
  17. End Type
  18.  
  19. Type AccObject
  20.    objIA As IAccessible 'objeto IAccessible de oleacc.dll
  21.    lngChild As Long '4 bytes
  22. End Type
  23.  
  24. Global Enumerando As Boolean
  25. Global Marcar As Long
  26.  
  27. Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
  28. 'Esta funcion es el Callback de la API EnumWindows (Se llama por cada ventana de nivel 1 que encuentre)
  29. 'Los BalloonTips del Area de Notificacion estan en el nivel 1!
  30.  
  31. Dim retval As Long ' return value
  32. Dim accName As String ' guardar el nombre de la propiedad de IAccessible
  33. Dim clsname As String ' guarda nombre de la clase de la ventana
  34. Dim oParent As IAccessible  ' objeto IAccessible que se llenara al llamar a IAccessibleFromHwnd
  35.  
  36. 'Room for classname
  37. clsname = Space(200)
  38. 'Get classname string
  39. retval = GetClassName(hwnd, clsname, 200)
  40. clsname = Trim(Mid(clsname, 1, retval))
  41. 'get style DWORD of window
  42. retval = GetWindowLong(hwnd, GWL_STYLE)
  43.  
  44. If LCase(clsname) = "tooltips_class32" Then     'if classname is a tooltip
  45.    If retval And &HC0 Then                     'and the style has the TTS_BALLOON (0x40) and the TTS_CLOSE (0x80) bits set
  46.        Set oParent = IAccessibleFromHwnd(hwnd) 'get IAccessible object of window
  47.        accName = Trim(oParent.accName)         'get accName property value
  48.        If InStr(1, accName, "Threat detected by Sophos.") <> 0 Then 'compare propval with my text
  49.            Form1.Label1.Caption = "Sophos Detectado!!!" 'jejeje
  50.        End If
  51.    End If
  52. End If
  53.  
  54. EnumWindowsProc = 1 ' return value of 1 means continue enumeration
  55. End Function
  56.  
  57. Function IAccessibleFromHwnd(hwnd As Long) As IAccessible
  58. 'Obtiene objeto IAccessible de una ventana a partir del hwnd de la misma
  59. Dim oIA As IAccessible
  60. Dim tg As tGUID
  61. Dim lReturn As Long
  62.  
  63. ' Define the GUID for the IAccessible object
  64. ' {618736E0-3C3D-11CF-810C-00AA00389B71}
  65.  
  66. With tg
  67.    .lData1 = &H618736E0
  68.    .nData2 = &H3C3D
  69.    .nData3 = &H11CF
  70.    .abytData4(0) = &H81
  71.    .abytData4(1) = &HC
  72.    .abytData4(2) = &H0
  73.    .abytData4(3) = &HAA
  74.    .abytData4(4) = &H0
  75.    .abytData4(5) = &H38
  76.    .abytData4(6) = &H9B
  77.    .abytData4(7) = &H71
  78. End With
  79.  
  80. ' Retrieve the IAccessible object from the window identified by hwnd
  81. lReturn = AccessibleObjectFromWindow(hwnd, 0, tg, oIA)
  82. ' Return Object
  83. Set IAccessibleFromHwnd = oIA
  84. End Function
  85.  

El código anterior debe ir en un modulo y detectaría una notificacion tipo balloon. En este caso, detecta la ventana que muestra el AV Sophos, al detectar un virus...  :P

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Fran1946

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: Como leer info del área de notificación
« Respuesta #4 en: 16 Enero 2014, 11:54 am »

Hola MCKSys Argentina:

Muchas gracias por reponder, he copiado este código a un módulo.bas.

Pero no se que función tengo que llamar y como.
Solo hay 2 funciones:
EnumWindowsProc
IAccessibleFromHwnd

En el formulario he puesto un Command1 que llama a esta:

Código:
Private Sub Command1_Click()
    Dim r As Long
    r = EnumWindowsProc(Me.hwnd, 0)
End Sub

Al compilar, sale
'Error de compilación
No se ha definido el tipo definido por el usuario'

Y se resalta esta línea: objIA As IAccessible

Puedes ponerme un ejemplo de que llamada a que función, y por que sale este error al compilar.

Saludos.
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.513


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Como leer info del área de notificación
« Respuesta #5 en: 16 Enero 2014, 15:39 pm »

Debes llamar a EnumWindows, pasandole como callback EnumWindowsProc.

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Fran1946

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: Como leer info del área de notificación
« Respuesta #6 en: 16 Enero 2014, 22:35 pm »

Perdona MCKSys Argentina, pero si no me pones un ejemplo de código, no entiendo tu respuesta y no se como empezar a probar, por que ni siquiera arranca el ejemplo de código te he puesto, o sea este:

Código:
Private Sub Command1_Click()
    Dim r As Long
    r = EnumWindowsProc(Me.hwnd, 0)
End Sub

Por que sale este error:
'Error de compilación
No se ha definido el tipo definido por el usuario'

Y se resalta esta línea: objIA As IAccessible

Gracias.
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.513


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Como leer info del área de notificación
« Respuesta #7 en: 17 Enero 2014, 00:53 am »

Aquí tienes el código que usa la API:

Código
  1. Option Explicit
  2.  
  3. Private Sub Command1_Click()
  4. Timer1.Enabled = Not Timer1.Enabled
  5. If Timer1.Enabled Then
  6.    Command1.Caption = "Stop"
  7. Else
  8.    Command1.Caption = "Start"
  9. End If
  10. End Sub
  11.  
  12. Private Sub Timer1_Timer()
  13. Dim retval As Long ' return value
  14.  
  15. If Enumerando Then Exit Sub
  16.  
  17. Label1.Caption = "Sophos NO Detectado"
  18. Enumerando = True
  19. retval = EnumWindows(AddressOf EnumWindowsProc, 0)
  20. Enumerando = False
  21. End Sub
  22.  

El codigo anterior va en un form, con un commandbutton y un timer con intervalo de 1 segundo.

Para que la clase IAccessible sea reconocida, necesitas agregar una referencia a la libreria oleacc.dll.

Saludos!

PD: No te ofendas, pero creo que deberias aprender cómo funciona el Sistema Operativo, antes de intentar programarlo...
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Fran1946

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: Como leer info del área de notificación
« Respuesta #8 en: 17 Enero 2014, 14:43 pm »

Citar
PD: No te ofendas, pero creo que deberias aprender cómo funciona el Sistema Operativo, antes de intentar programarlo...

Hola MCKSys Argentina:

No me ofendo, pero yo no pretendo programar el Sistema Operativo, sólo  pretendía poder leer el tiempo de conexión de mi ADSL, y te agradezco mucho que hayas intentado ayudarme en esto.
He copiado tu código, y en lugar de:

Código:
If InStr(1, accName, "Threat detected by Sophos.") <> 0 Then 'compare propval with my text
            Form1.Label1.Caption = "Sophos Detectado!!!" 'jejeje
        End If

He puesto:

Código:
If InStr(1, accName, "Wanadoo ADSL está ahora conectado") <> 0 Then 'compare propval with my text
                Form1.Label1.Caption = "Wanadoo detectado!!!" 'jejeje
            End If

Que sería el que yo necesito, pero este código no me sirve para lo que quiero, por que solo lo detecta, y además lo sigue detectando aunque el ADSL esté desconectado, y no haya icono en la barra de notificación.

El poner este post con la pregunta, era para obtener info de como hacerlo, y pensaba que esto sería muy fácil a través de alguna API, pero veo que es más complicado, de hecho no encuentro info en Internet sobre esto, todo lo que encuentro es sobre como poner ana aplicación en el Systray, pero eso ya se como se hace.

Yo tengo una aplicación que hice para capturar, ventanas abiertas, y al menos con esa aplicación, si puedo acceder a parte de los datos de una ventana. pego aquí el código por si esto da alguna pista para conseguirlo:

Eset es el código del Form:

Código:
Private Sub Timer1_Timer()
  Dim Ret As Long, i As Integer, mem
    
    'Obtiene la coordenada del Mouse
    Ret = GetCursorPos(Cor)
    'Recuperamos el HWND de la ventana asociada a esa coordenada
    Handle = WindowFromPoint(Cor.x, Cor.y)
    'Handle de la ventana padre
    hParent = GetParent(Handle)
    'Llenamos un Buffer
    ClassName = Space$(128)
    'Recupera el Classname y lo devuelve en el Buffer
    Ret = GetClassName(Handle, ClassName, 128)
    
    'Extraemos el nombre de la clase
    ClassName = LCase(Left$(ClassName, Ret))
    
    ' Cantidad de caracteres del texto
    Caption_Ventana = String(GetWindowTextLength(Handle), Chr$(0))
    'Retorna el caption
    Call GetWindowText(Handle, Caption_Ventana, 100)
    'Obtiene la coordenada del Mouse de la ventana activa
    Call ScreenToClient(Handle, Cor)
    'detectar el teclado
    'Consultamos el valor de la tecla mediante el Api. _
    Si se presionó devuelve -32767 y mostramos el valor de i
    If GetAsyncKeyState(vbKeyBack) = -32767 Then
        Form1.Check1.Value = 0
        coorX = Cor.x
        coorY = Cor.y
        mem = vbKeyBack
        'Call ClickMouse(Handle)
    End If
    'Imprimimos en el Form con los valores
    Me.Cls
    Me.Print " Hwnd : " & Handle
    Me.Print " Hwnd Parent : " & hParent
    Me.Print " Nombre de clase : " & ClassName
    Form1.Text1.Text = ClassName
    Me.Print " Caption de la ventana : " & Caption_Ventana
    Me.Print "x: " & Cor.x & "  y: " & Cor.y
    Form1.Text3 = Caption_Ventana & vbNewLine & " Hwnd : " & Handle & vbNewLine & " Hwnd Parent : " & hParent & vbNewLine
End Sub

Y este es el módulo.bas:

Código:
'Declaraciones APi

' Constantes para las teclas y otros
Public Const KEYEVENTF_KEYUP = &H2
Public Const KEYEVENTF_EXTENDEDKEY = &H1
  
'Declaración del Api keybd_event para la presión de tecla
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
    ByVal bScan As Byte, _
    ByVal dwFlags As Long, _
    ByVal dwExtraInfo As Long)
'--------------------------------------------------------------

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public 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
Public Declare Function SendMessageSTRING Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Public Declare Function SendMessageLONG Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public Declare Function GetWindowRect Lib "user32.dll" (ByVal hwnd As Long, lpRect As RECT) As Long
Public Declare Function GetClientRect Lib "user32.dll" (ByVal hwnd As Long, ByRef lpRect As RECT) As Long

Public Declare Function ScreenToClient Lib "user32" ( _
    ByVal hwnd As Long, _
    lpPoint As POINTAPI) As Long
    
Public Declare Function ClientToScreen Lib "user32" ( _
    ByVal hwnd As Long, _
    lpPoint As POINTAPI) As Long
    
'''''''''''''''''''''''''''''''''''''''''''''''''''
Public Declare Function GetComboBoxInfo Lib "user32" _
    (ByVal hwndCombo As Long, _
    CBInfo As COMBOBOXINFO) As Long

' Mensajes y valores  para los ComboBox
Public Const CB_GETCOUNT = &H146
Public Const CB_GETCURSEL = &H147
Public Const CB_GETLBTEXT = &H148
Public Const CB_GETLBTEXTLEN = &H149

Public n_Items As Long, Item_n As Long
Public i As Integer
Public Items As String
Public El_Item As String
Public Length As Long
'''''''''''''''''''''''''''''''''''''''''''''''''''

Public Declare Function SendMessage _
    Lib "user32" Alias "SendMessageA" ( _
    ByVal hwnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    lParam As Any) As Long
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Obtiene el Handle de una ventana a partir de una coordenada
Public Declare Function WindowFromPoint _
    Lib "user32" ( _
        ByVal xPoint As Long, _
        ByVal yPoint As Long) As Long

'Recupera el nombre de la clase de Ventana  a partir de su handle
Public Declare Function GetClassName _
    Lib "user32" _
    Alias "GetClassNameA" ( _
        ByVal hwnd As Long, _
        ByVal lpClassName As String, _
        ByVal nMaxCount As Long) As Long

'REcupera el Handle de la ventana padre de una ventana
Public Declare Function GetParent _
    Lib "user32" ( _
        ByVal hwnd As Long) As Long

'Estas 2 funciones obtienen el Caption de la ventana
Public Declare Function GetWindowText _
    Lib "user32" _
    Alias "GetWindowTextA" ( _
        ByVal hwnd As Long, _
        ByVal lpString As String, _
        ByVal cch As Long) As Long

' Retorna la cantidad de caracteres del caption de la ventana
Public Declare Function GetWindowTextLength _
    Lib "user32" _
    Alias "GetWindowTextLengthA" ( _
        ByVal hwnd As Long) As Long

'Función Api GetAsyncKeyState para saber si se ha pulsado mouse o tecla
Public Declare Function GetAsyncKeyState _
    Lib "user32" ( _
        ByVal vKey As Long) As Integer


Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_RBUTTONDBLCLK = &H206
Public Const WM_SETTEXT = &HC
Public Const WM_MOUSEMOVE = &H200
Public Const WM_NCMOUSEMOVE = &HA0
Public Const WM_SETFOCUS = &H7

Public Declare Function PostMessageBynum Lib "user32" Alias "PostMessageA" _
            (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam _
            As Long) As Long 'enviar mensajes al control
            
Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal _
             y As Long) As Long 'posicionar el puntero del ratón
            
Public Declare Function GetCursorPos _
    Lib "user32" ( _
        lpPoint As POINTAPI) As Long

Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long

' Estructura POINTAPI para usar con WindowFromPoint
Public Type POINTAPI
  x As Long
  y As Long
End Type

Public Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Public CBI As COMBOBOXINFO
Public Type COMBOBOXINFO
    cbSize As Long
    rcItem As RECT
    rcButton As RECT
    stateButton As Long
    hwndCombo As Long
    hwndEdit As Long
    hwndList As Long
End Type
'-------------------------------------------------------------------------------

Public Vip As String, N As Integer, s As String
Public l As Long, PosXY As Long
Public Cor As POINTAPI, Handle As Long
Public hParent As Long, ClassName As String
Public coorX As Long, coorY As Long, BcoorX As Long, BcoorY As Long
Public rct As RECT, W_mixer As Integer, H_mixer As Integer, Mixer_H As Integer
Public hwndMixer  As Long, carpetaSkin As String, BackhWnd As Long, hwndMain As Long
Public PrimeraVez As Boolean, Caption_Ventana As String
Public No_select As Boolean, Skin_activo As Boolean
Public tail As Integer, head_width As Integer, W_ancho As Integer, Path_Bitmap As String, Path_Mixer_ini As String
Public H_Min As Integer, N_SnapShots As Integer, N_SnapScreen As Integer
Public SkinLeido As Boolean, W_BotSnap As Integer, Xback As Integer, Yback As Integer
Public SnapShot As Integer, Ejecuta As String, Banco As Integer

'Mandar la pulsación del mouse
Public Sub ClickMouse(ByVal hwnd, cual As String, snap As String)
    Dim x As Integer, y As Integer, a As Integer
    
    'simular el click del ratón
    'If cual = "L" Then
        Select Case snap
            Case "MIXER"
                'Para calcular el ancho y alto de la ventana del mixer
                Call GetClientRect(hwnd, rct)
                x = (rct.Right - rct.Left) - W_mixer
                y = coorY - (Mixer_H - (rct.Bottom - rct.Top))
            Case "SCREEN"
                'Para calcular el ancho y alto de la ventana del mixer
                Call GetClientRect(hwnd, rct)
                x = 5   'añade a la coordenada Left para que este centrada
                y = coorY - (Mixer_H - (rct.Bottom - rct.Top))
                'si tiene los snapscreen en la zona de generales
                If Form1B.CheckSnapScreen.Value = 1 Then
                    x = (rct.Right - rct.Left)
                    a = (x - tail) + coorX
                    coorX = a
                    x = 0
                End If
            Case "BANCO"
                BcoorX = Cor.x
                BcoorY = Cor.y
                Call GetClientRect(hwnd, rct)
                If BcoorX > rct.Right Or BcoorX < rct.Left Or BcoorY > rct.Bottom Or BcoorY < rct.Top Then Exit Sub
                y = coorY - (Mixer_H - (rct.Bottom - rct.Top))
                Cor.x = rct.Right - 30
                Cor.y = y
                PosXY = Cor.x + (y * &H10000)
                'Call SetForegroundWindow(hwnd) 'Foco a ventana del Mixer
                Call ClientToScreen(hwnd, Cor)
                Call SetCursorPos(Cor.x, Cor.y)
                GoTo bank
        End Select
        PosXY = (coorX + x) + (y * &H10000)
        Cor.x = coorX + x
        Cor.y = y
bank:
        If cual = "L" Then
            l = PostMessageBynum(hwnd, WM_LBUTTONDOWN, 0&, PosXY)
            l = PostMessageBynum(hwnd, WM_LBUTTONUP, 0&, PosXY)
        End If
        If cual = "R" Then
            l = PostMessageBynum(hwnd, WM_RBUTTONDOWN, 0&, PosXY)
            l = PostMessageBynum(hwnd, WM_RBUTTONUP, 0&, PosXY)
        End If
    PosXY = 0
End Sub

Si puedes orientarme sobre esto, te lo agradezco, pero si estimas que es muy complicado, o no quieres responder, pues lo entiendo y repito:
En cualquier caso muchas gracias por tu interés.
 
Saludos.
« Última modificación: 17 Enero 2014, 14:45 pm por Fran1946 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
2 dudas: Leer info de OTRO ejecutable .exe ; leer accesos directos (LNK)
.NET (C#, VB.NET, ASP)
raul338 8 7,763 Último mensaje 27 Agosto 2009, 01:33 am
por seba123neo
Eliminar icono de área de notificación
GNU/Linux
Gambinoh 4 4,473 Último mensaje 18 Abril 2011, 02:07 am
por Gambinoh
Minimizar al area de notificacion
Programación Visual Basic
Velku 1 4,891 Último mensaje 17 Agosto 2011, 02:43 am
por Elemental Code
Como quitar iconos de la area de notificación
Windows
Puntoinfinito 5 7,514 Último mensaje 9 Marzo 2012, 17:30 pm
por Eleкtro
Ocultar icono del area de notificacion « 1 2 »
Programación General
llAudioslavell 11 10,094 Último mensaje 13 Octubre 2016, 10:36 am
por okik
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines