|
Mostrar Temas
|
Páginas: [1] 2
|
1
|
Programación / Programación Visual Basic / chrome en picturebox mandar informacion o comandos
|
en: 17 Julio 2015, 00:58 am
|
hola a todos. Tengo el siguiente código que encontré por aquí el cual mete chrome en el picturebox. y necesito en enviarle algún código javascrypt por ejemplo a la consola pero no se como hacer lo. la única manera que e conseguido es abriendo la consola y con sendkey mandar le código y enter. hay alguna manera mejor de hacer lo se podría recibir también datos desde vb6. por si decís que use el control webbroser ya lo use y me da muchos fallos prefiero el chrome así y el único problema es ese. un saludo Private Declare Function SetParent Lib "user32" _ (ByVal hWndChild As Long, _ ByVal HWNDParent As Long) As Long Private Declare Function ShowWindow Lib "user32" _ (ByVal hwnd As Long, _ ByVal nCmdShow As Long) As Long Private Declare Function SetWindowPos Lib "user32" _ (ByVal hwnd As Long, _ ByVal hWndInsertAfter As Long, ByVal x As Long, _ ByVal y As Long, ByVal cx As Long, _ ByVal cy As Long, _ ByVal wFlags As Long) As Long '//Funcion API para obtener el handle de la aplicación que se quiere menter en el Picture Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long '//Ejecuta el programa Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long '//Función para cerrar la aplicación incrustada 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 Const SHOW_FULLSCREEN = 3 Const SW_SHOWMINIMIZED = 2 Const SW_SHOWMAXIMIZED = 3 Const SWP_NOZORDER = &H4 Const WM_SYSCOMMAND = &H112 Const SC_CLOSE = &HF060&
Dim HWNDParent As Long
Private Sub Commandmeterchrome_Click() HWNDParent = 0 ShellExecute Me.hwnd, "", "chrome.exe", _ "https://farmsatoshi.com", Environ("programfiles") & "\Google\Chrome\Application\", SW_SHOWMINIMIZED Espera (1) 'Espera 1 segundo a que se cargue Do While HWNDParent = 0 HWNDParent = FindWindow("Chrome_WidgetWin_1", vbNullString) 'Obtiene el handle padre DoEvents Loop Do While N& = 0 N& = SetParent(HWNDParent, Picture1.hwnd) 'Meter la apcliación en el picture DoEvents Loop 'Ajusta la ventana de Chrome al Picture Call SetWindowPos(HWNDParent, HWND_TOP, 0, 0, _ Picture1.ScaleWidth, _ Picture1.ScaleHeight, _ SWP_NOZORDER) End Sub
|
|
|
2
|
Programación / Programación Visual Basic / ayuda para sacar estas imagenes WebBrowser
|
en: 25 Septiembre 2014, 04:04 am
|
hola a todos haber como me podiais ayudar para sacar estas imagenes capcha de estas paginas web. en todas es muy similar pero al estar en un iframe no consigo haceder a ellas tambien intente WebBrowser1.Document.getelementbyid("adcopy-outer").ScrollIntoView (True) para acercar el srcoll y luego capturar la pantalla pero si esta minimizada no se como capturar solo el WebBrowser y no la ventana activa. tambien se agradeceria si supieses la forma de capturar los controles recargar capcha mas o menos para ponerlos yo y poder hacerlo mas automatizado. y ya para terminar hay algun programa que te rellene los capchas automaticamente. //http://payfaucet.com/ //http://www.faucetbtc.com //http://www.greencoins.org Dim ORange As Object Dim i As Integer Set ORange = WebBrowser1.Document.Body.createControlRange() Picture2.Cls For i = 0 To WebBrowser1.Document.images.length - 1 Call ORange.Add(WebBrowser1.Document.images.Item(i)) Call ORange.execCommand("Copy") Set Picture2.Picture = Clipboard.GetData ' MsgBox WebBrowser1.Document.Images.Item(i).GetAttribute("src") MsgBox WebBrowser1.Document.images.Item(i).GetAttribute("src") ' If WebBrowser1.Document.images.Item(i).GetAttribute("id") = "banner" Then ' Call ORange.Add(WebBrowser1.Document.images.Item(i)) ' Call ORange.execCommand("Copy") ' Set Picture2.Picture = Clipboard.GetData ' Exit For ' End If Next End If
un saludo y muchas gracias
|
|
|
3
|
Programación / Programación Visual Basic / alert WebBrowser bloquea programa, tengo dos posibles soluciones
|
en: 31 Julio 2014, 22:26 pm
|
Hola a todos tengo un programa que coge unos datos de un WebBrowser pero este salta una alerta y deja bloqueado el programa hasta que no se da aceptar. bien yo desde un programa aparte con el siguiente codigo detecto el Hwnd o de la ventana o del boton y le mando un mensaje para cerrarlo. como el programa se queda bloqueado pues no se puede ejecutar el código o yo no se como ejecutarlo si se puede ejecutar de alguna manera seria lo mejor. pense en los hook que detecte cuando se ejecuto el cuadro de dialogo y ejecute el codigo para cerrarle. Private Declare Function FindWindow _ Lib "user32" _ Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Private Declare Function GetClassName _ Lib "user32" _ Alias "GetClassNameA" ( _ ByVal hwnd As Long, _ ByVal lpClassName As String, _ ByVal nMaxCount As Long) As Long Private Declare Function GetParent _ Lib "user32" ( _ ByVal hwnd As Long) As Long Private 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 Private Declare Function GetWindowTextLength _ Lib "user32" _ Alias "GetWindowTextLengthA" ( _ ByVal hwnd As Long) As Long 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 SendMessage_Long Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef LParam As Long) As Long
'Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer 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
Const BM_CLICK = &HF5&
Private Const WM_KEYUP = &H101 Private Const WM_KEYDOWN = &H100 Private Const WM_SYSKEYDOWN = &H104 Private Const WM_CHAR = &H102 Private Const WM_CLOSE = &H10 Private Const WM_QUIT = &H12
Private Const WM_LBUTTONDOWN As Long = &H201 Private Const WM_LBUTTONUP As Long = &H202 Private Const VK_SPACE As Long = &H20 Private Const VK_ESCAPE As Long = &H1B
Private Sub Command2_Click() Dim Ret As Long, Handle As Long, hParent Dim Buffer As String Dim ClassName As String Dim Caption_Ventana As String Dim bwnd As Long, ChildRet As Long Dim strBuff As String, ButCap As String
Handle = FindWindow("#32770", vbNullString) If Handle <> 0 Then ' SendMessage Handle, WM_CLOSE, 0, 0 hParent = GetParent(Handle) ' MsgBox hParent 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) ChildRet = FindWindowEx(Handle, ByVal 0&, "Button", vbNullString) If ChildRet <> 0 Then strBuff = String(GetWindowTextLength(ChildRet) + 1, Chr$(0)) GetWindowText ChildRet, strBuff, Len(strBuff) ButCap = strBuff Do While ChildRet <> 0 '~~> Check if the caption has the word "Open" '~~> For "Save" or "Cancel", replace "Open" with '~~> "Save" or "Cancel" ' MsgBox ButCap If InStr(1, ButCap, "Aceptar") Then '~~> If this is the button we are looking for then exit OpenRet = ChildRet Exit Do End If '~~> Get the handle of the next child window ChildRet = FindWindowEx(Ret, ChildRet, "Button", vbNullString) '~~> Get the caption of the child window strBuff = String(GetWindowTextLength(ChildRet) + 1, Chr$(0)) GetWindowText ChildRet, strBuff, Len(strBuff) ButCap = strBuff Loop If OpenRet <> 0 Then ' MsgBox "The Handle of Open Button is : " & OpenRet WindowAPI_Click (OpenRet) Else ' MsgBox "The Handle of Open Button was not found" End If Else ' MsgBox "Child Window Not Found" End If End If Me.Cls Me.Print " Hwnd : " & Handle Me.Print " Hwnd Parent : " & hParent Me.Print " Nombre de clase : " & ClassName Me.Print " Caption de la ventana : " & Caption_Ventana End Sub Public Sub WindowAPI_Click(ByVal hwnd As Long) Dim retVal As Long retVal = SendMessage_Long(hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&) retVal = SendMessage_Long(hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&) retVal = SendMessage_Long(hwnd, WM_KEYUP, VK_SPACE, ByVal 0&) retVal = SendMessage_Long(hwnd, WM_LBUTTONUP, 0&, ByVal 0&) End Sub
esto ya es opcional cual es la manera mas optima de detectar los botones ya que no en todas las paginas tienen los mismos nombres ni formato y si esta en otro idioma no lo detecta un saludo
|
|
|
4
|
Programación / Programación Visual Basic / quitar mensaje al cerrar ventana webbroser
|
en: 27 Febrero 2014, 21:15 pm
|
Hola a todos. Tengo el siguiente problema en mi proyecto tengo un webbroser para coger ciertos datos de una pagina pero cuando voy a cambiar de pagina o la cierro salen cuadros de dialogo de publicidad tipo seguro que quieres salir de la pagina pulsa aceptar para salir. quedria que esos cuadros de dialogo ni ninguno saliese cuando lo cierre o cambie de ruta. probé con esto pero no me funciono Private Sub WebBrowser2_WindowClosing(ByVal IsChildWindow As Boolean, Cancel As Boolean) IsChildWindow = False End Sub enlace a una imagen: http://subefotos.com/ver/?86f0a3e61b314dbe88a39be26a3f182co.jpgun saludo a todos
|
|
|
5
|
Programación / Programación Visual Basic / Webbrowser quitar cuadro de dialogo descarga
|
en: 11 Noviembre 2013, 18:51 pm
|
Hola a todos Tengo un control Webbrowser el cual necesito que al descargar un archivo el tipico cuadro de dialogo guardar o ejecutar pues se guarde automaticamente en una carpeta. e mirado miles de ejemplos pero ninguno me funciona y e visto que hay algo para vb.net pero no lo tengo.
un saludo a todos
|
|
|
6
|
Programación / Programación Visual Basic / abrir y cerrar links en pestañas de diferentes exploradores web
|
en: 29 Octubre 2012, 20:01 pm
|
hola a todos. como podría abrir una url con algún explorador web. vi ya algunos códigos pero estos te abren todos en ventanas nuevas. y yo lo que quería es que si se abre un link y el explorador correspondiente esta abierto abrir una nueva pestaña en vez de una nueva ventana. se podrían cerrar mediante código las pestañas abiertas. podría funcionar con los exploradores chrome,opera,mozilla, internet explorer.
un saludo y gracias
|
|
|
8
|
Programación / Programación Visual Basic / control webbrowser come muchos recursos
|
en: 13 Octubre 2012, 01:02 am
|
hola a todos. hice algunos programas con el control webbrowser, pero mi problema era que muchas veces se suba demasiado en el administrador de tareas y como consentimiento daba error o se cerraba. hay alguna manera de vaciar lo por asi decirlo cuando cargue cierto numero de paginas o alguna forma de que no las guarde en memoria.
un saludo
|
|
|
9
|
Programación / Programación Visual Basic / ayuda con navegacion WebBrowser
|
en: 24 Marzo 2012, 17:29 pm
|
Hola todos tengo un WebBrowser y con un codigo cojo los link y los cargo en un listbox Private Sub ListarUrl() Dim i As Integer List2.Clear For i = 0 To WebBrowser1.Document.links.length - 1 añadirruta (WebBrowser1.Document.links.Item(i)) ' List2.AddItem WebBrowser1.Document.Links.Item(i) Next End Sub
1- quedria que con otro WebBrowser2 valla visitando las paginas una por una el solo. pero teniendo cuidado porque si no carga del todo el contenido flash de la pagina no vale. 2-como podria hacer para añadir link que valla cargando en alguna pagina en el listbox pero que no se repita ninguno. 3-como guardar los datos del listbox y cargarlos al abrir el formulario. seria una gran cantidad de link. la parte que mas me importa es el punto 1 un saludo y muchas gracias
|
|
|
|
|
|
|