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

#1
Echale un vistazo a este post aver si te sirve
[urhttp://foro.elhacker.net/index.php/topic,101303.0.htmll][/url]
#2
Para hacer eso debes hacer algo asi : MsgBox text1


Option Explicit

Private Sub Command1_Click()
MsgBox Text1
End Sub


Pones un Textbox y un Commanda en un Form.
Saludos .-.
#3
Disculpa pero no entendi bien cuando decis  "Proceso X" ¿¿no te referis a un servicio no ??
Si No es un servicio podes poner un timer que chequee cada x tiempo si el titulo de la ventana de tu "Proceso X" existe .
Si existe ahi tenes el handle de la ventana ,no se si podras ocultarlo pero terminarlo si que podras.

Hay otra manera que te da todas las ventanas activas con su respectivo handle(Lista todas las ventanas).

Me preguntas si se trabajar con el registro del win ,SI se.

Si podes explicate mejor con algun ejemplo de ¿ que queres que haga tu programa ? con respecto a los datos que pueda sacar del "Proceso X" .

El Proceso X ,es otro programa hecho por vos ??
Un saludo
#4
Hola viejo aca te dejo un code de El Guille ,yo lo recorte bastante y funciona joya.
Podes ejecutar cualquier .exe dentro del picture.
En Un form pones 1 picture box="picR" y un boton="Command1" .
El codigo completo va en el Formulario chao espero te sirva .-.



Option Explicit

Private objDer As PictureBox
Private hndNotepad As Long
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

'------------------------------------------------------------------------------
' APIS para incluir las ventanas en un PictureBox
'------------------------------------------------------------------------------

' Para hacer ventanas hijas
Private Declare Function SetParent Lib "user32" _
    (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
'
' Para mostrar una ventana según el handle (hwnd)
' ShowWindow() Commands
Private Enum eShowWindow
    HIDE_eSW = 0&
    SHOWNORMAL_eSW = 1&
    NORMAL_eSW = 1&
    SHOWMINIMIZED_eSW = 2&
    SHOWMAXIMIZED_eSW = 3&
    MAXIMIZE_eSW = 3&
    SHOWNOACTIVATE_eSW = 4&
    SHOW_eSW = 5&
    MINIMIZE_eSW = 6&
    SHOWMINNOACTIVE_eSW = 7&
    SHOWNA_eSW = 8&
    RESTORE_eSW = 9&
    SHOWDEFAULT_eSW = 10&
    MAX_eSW = 10&
End Enum

Private Declare Function ShowWindow Lib "user32" _
    (ByVal hWnd As Long, ByVal nCmdShow As eShowWindow) As Long
'
' Para posicionar una ventana según su hWnd
Private Declare Function MoveWindow Lib "user32" _
    (ByVal hWnd As Long, ByVal x As Long, ByVal y As Long, _
    ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
'
' Para saber si una ventana es hija de otra
Private Declare Function IsChild Lib "user32" _
    (ByVal hWndParent As Long, ByVal hWnd As Long) As Long

Private Type POINTAPI
    x As Long
    y As Long
End Type
Private Type RECTAPI
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Type WINDOWPLACEMENT
    Length As Long
    Flags As Long
    ShowCmd As Long
    ptMinPosition As POINTAPI
    ptMaxPosition As POINTAPI
    rcNormalPosition As RECTAPI
End Type

Private Declare Function GetWindowPlacement Lib "user32" _
    (ByVal hWnd As Long, ByRef lpwndpl As WINDOWPLACEMENT) As Long

' Mostrar el formulario indicado, dentro de picDock
Private Sub dockForm(ByVal formhWnd As Long, _
                     ByVal picDock As PictureBox, _
                     Optional ByVal ajustar As Boolean = True)
    ' Hacer el formulario indicado, un hijo del picDock
    ' Si Ajustar es True, se ajustará al tamaño del contenedor,
    ' si Ajustar es False, se quedará con el tamaño actual.
    Call SetParent(formhWnd, picDock.hWnd)
    posDockForm formhWnd, picDock, ajustar
    Call ShowWindow(formhWnd, NORMAL_eSW)
End Sub

' Posicionar el formulario indicado dentro de picDock
Private Sub posDockForm(ByVal formhWnd As Long, _
                        ByVal picDock As PictureBox, _
                        Optional ByVal ajustar As Boolean = True)
    ' Posicionar el formulario indicado en las coordenadas del picDock
    ' Si Ajustar es True, se ajustará al tamaño del contenedor,
    ' si Ajustar es False, se quedará con el tamaño actual.
    Dim nWidth As Long, nHeight As Long
    Dim wndPl As WINDOWPLACEMENT
    '
    If ajustar Then
        nWidth = picDock.ScaleWidth \ Screen.TwipsPerPixelX
        nHeight = picDock.ScaleHeight \ Screen.TwipsPerPixelY
    Else
        ' el tamaño del formulario que se va a posicionar
        Call GetWindowPlacement(formhWnd, wndPl)
        With wndPl.rcNormalPosition
            nWidth = .Right - .Left
            nHeight = .Bottom - .Top
        End With
    End If
    Call MoveWindow(formhWnd, 0, 0, nWidth, nHeight, True)
End Sub

Private Sub Command1_Click()

    Call Shell("calc.exe", vbNormalFocus) '<<<Podes cambiar por el programa que quieras vos
    '
    Dim s As String
   
    'hndNotepad = FindWindow(s, "Sin título - Bloc de notas")
    hndNotepad = FindWindow(s, "Calculadora") '<<<<--Titulo de la Ventana
    'si es false se ve el exe tal cual es             LEERRRR
    'si es true se ajusta a la ventana bakan
    dockForm hndNotepad, objDer, False
End Sub



Private Sub Form_Load()
   
    Set objDer = picR
   
End Sub




Podemos ser lo mejor y tambien lo peor con la misma facilidad.   Bersuit Vergarabat -POLACO-

#5
Programación Visual Basic / Re: Pregunta dicil.
30 Agosto 2006, 03:32 AM
Como dice Colaborador el winsock server al ser multiusuario tiene un index,debes identificar el index para enviar solo a ese winsock o todos juntos.
Lo ideal para estos casos es guardar el index junto al nick del chat en un listbox o un listview ,en tu server se creara un listado con todos los nick conectados + el index del winsock y desde ahi seleccionas a quien le envias.
Le podes enviar a todos los winsock conectados o solo a uno o a los que vos eleijas.
Te aconsejo que uses un ListView ,ahi podras guardar el Nº del Index del winsock + el NickName + los datos que vos quieras de cada conexión.
Debes tb hacer un bucle que compruebe cuantos winsock hay conectados y le vaya enviando la data a cada uno Individualmente .-.

#6
Programación Visual Basic / Re: Intalador
11 Agosto 2006, 11:49 AM
Visual Basic 6 trae un instalador ,debes ir a INICIO/Programas/Microsoft Visual Basic 6/Herramientas de microsoft Visual BAsic 6/Asistente para empaquetado y distribucion.
Ahi entras y te va llevando hasta el final.
Yo no lo uso ,dicen que no es muy bueno y que hay otros mejores ,pero eso ni idea.
Con este empaquete haciendo pruebas y funciono la cosa pero los programas quedan muy pesados a mi gusto.
Tambien podes hacerte vos mismo el instalador copiando los archivos que envias junto al programa y pegandolos en el system y registrarlos ,pero eso es mas complicado.
Proba con el que trae el VB un saludo .-.
#7
yo siempre use esto mira,ni recuerdo de donde lo saque,pero funca bien
Lo que hace es verificar cada 10 segundos(eso lo varias si queres) si estas conectado a Internet:

esto va en un Modulo:

'MODULO
Option Explicit
Public Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long
Public Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long

Public Const RAS95_MaxEntryName = 256
Public Const RAS95_MaxDeviceType = 16
Public Const RAS95_MaxDeviceName = 32

Public Type RASCONN95
dwSize As Long
hRasCon As Long
szEntryName(RAS95_MaxEntryName) As Byte
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type

Public Type RASCONNSTATUS95
dwSize As Long
RasConnState As Long
dwError As Long
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type

y esto va en Formulaio solo debes agragr un timer

Option Explicit

Public Function IsConnected() As Boolean

Dim TRasCon(255) As RASCONN95
Dim lg As Long
Dim lpcon As Long
Dim RetVal As Long
Dim Tstatus As RASCONNSTATUS95

TRasCon(0).dwSize = 412
lg = 256 * TRasCon(0).dwSize

RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)

If RetVal <> 0 Then
Exit Function
End If

Tstatus.dwSize = 160
RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)

If Tstatus.RasConnState = &H2000 Then
IsConnected = True
Else
IsConnected = False
End If
End Function



Private Sub Timer1_Timer()
Timer1.Interval = 10000 '=10 segundos
'sacale los msgbox son para que te des cuenta como funca.
If IsConnected = True Then MsgBox "Estas Conectado" 'comienza log
If IsConnected = False Then MsgBox "NO estas Conectado" 'fin log
End Sub


Espero te sirva,si no avisa,saludos .-.
#8
Haces asi en el Formulario declaras esta Api :

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)


y entre accion y accion pones esto :

'accion 1
Sleep 1000 '1000 milisegundos=1segundo
'accion 2

Bien simple espero te sirva .-.
#9
Tiene razon ElMaro .
Evidentemente el error te lo tira por que quiere eliminar algo que NO existe.
Fijate que quizas el tengas alguna ventana sin Titulo y por eso te da el error (Me.Caption="" ).
o si no hace la comparacion algo asi :

If Nombre_Ventana<>"" then
Call xListKillDupes(List1)
End If

Asi NO dara error. Saludos .-.
Del extasis a la agonia ,oscila nuestra hitoria;Podemosser lo mejor y tambien lo peor ,con la misma facilidad.Bersuit
#10
Programación Visual Basic / Re: Chat con voz?
10 Agosto 2006, 01:57 AM
Mira yo estoy haciendo algo parecido a lo tuyo ,pero esto es un chat donde se teclea en una ventana principal (todos los users) y lleva una lista de usuarios ,lo que yo hago es esto: cuando un usuario por ejemplo JUAN da un doble click sobre el listado de usuarios por ejemplo a CARMEN a carmen se le abre una ventana nueva ,otro form que es el Privado ,en ese form siguen tecleando y tiene un boton que es para enviar una invitacion de voz ,lo resumo asi :
Todo lo tecleado SI pasa por el Server.
JUAN le envia a CARMEN una invitacion de voz al enviarla pone un nuevo Winsock a la escucha y por la parte del servidor le envia la IP de JUAN a CARMEN ,si acepta la invitacion ahi se inicia un Nuevo socket ,perooooo este NO pasaria por el server ,si no que seria de conexión directa entre los dos clientes .
El server solo hace de puente para enviar la invitacion ,poner el winsock en Listen y enviar la ip y el puerto a la otra punta.
Esto lo hice por que si el chat tiene muchos usuarios los archivos de VOZ son pesados y si todo pasa por el server ,se recargaria mucho.
Tengo unos codigos de transferencia de voz si te interesa te los paso,saludos .-.