Autor
|
Tema: Utilizar función ShowInTaskbar con firefox (Leído 4,005 veces)
|
daniel.r.23
Desconectado
Mensajes: 58
|
Bueno la idea es tratar de ocultar el icono de firefox de la barra de tareas. Si fuera un form que estuviese ejecutando usaría el siguiente cód: Me.ShowInTaskbar = False
Pero o me doy cuanta como usarlo cuando tengo que obtener una ventana, en mi caso una del navegador Firefox. Espero que me pudan dar una mano!! gracias
|
|
|
En línea
|
|
|
|
engel lex
|
qué estás haciendo con firefox XD parece que fueras a hacer un virus que use firefox como motor XD
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
daniel.r.23
Desconectado
Mensajes: 58
|
no de momento no ando en esas cosas!! jaja Es por una propuesta de un amigo con la PTC Neobux, desde ahí estoy mejorando un autoclick muy casero... funciona a través de firefox, controlado por ruby y con una mínima interfaz en vb.net. Lo que estoy tratando de hacer con esto que al usuario no le moleste la ventana o ventanas que se abran del navegador, sin suerte alguna!!
|
|
|
En línea
|
|
|
|
LeandroA
|
Hola dos ayudas rapida, por lo que vi en algunos temas anteriores, yo no lo aria con firefox y lo haria con el webbrowser (si el de iexplorer) pero bueno es tu elecion. para quitar una ventana del la barra de tarea se utiliza la constante WS_EX_APPWINDOW de el api SetWindowRgn un ejemplo en vb6 Option Explicit Private Declare Function ShowWindow Lib "user32.dll" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Const WS_EX_APPWINDOW As Long = &H40000 Private Const GWL_EXSTYLE As Long = -20 Private Sub Command1_Click() Dim hwndFireFox As Long hwndFireFox = Me.hWnd '<--aca ira el de firefox ShowWindow hwndFireFox, 0 SetWindowLong hwndFireFox, GWL_EXSTYLE, GetWindowLong(hwndFireFox, GWL_EXSTYLE) And Not WS_EX_APPWINDOW ShowWindow hwndFireFox, 1 End Sub
y despues si showwindow hace que no te funcione proba recortando la región de la ventana a 0, el navegador puede controlar si esta visible o no, pero no controla si su región esta nula. Private Declare Function SetWindowRgn Lib "user32.dll" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Private Declare Function CreateRectRgn Lib "gdi32.dll" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Private Sub Command1_Click() Dim hwndFireFox As Long hwndFireFox = Me.hWnd 'ocultar la ventana recortandola a 0 SetWindowRgn hwndFireFox, CreateRectRgn(0, 0, 0, 0), True End Sub
|
|
|
En línea
|
|
|
|
daniel.r.23
Desconectado
Mensajes: 58
|
Gracias por responder, voy a probar la primera solución, la segunda que me planteas no por que programa esta constantemente activando el navegador por lo que nunca lo va a ocultar, en cambio lo que hice fue cambiarle la posición. Por eso lo único que me restaría hacer para que el usuario no vea nada es quitar el icono de la ventana de la barra de tareas. Lo pruebo y te comento!
|
|
|
En línea
|
|
|
|
daniel.r.23
Desconectado
Mensajes: 58
|
buenas, te cuento que me sale un error en está linea: SetWindowLong hwndFireFox, GWL_EXSTYLE, GetWindowLong(hwndFireFox, GWL_EXSTYLE) And Not WS_EX_APPWINDOW
que dice: "Una llamada a la función PInvoke 'Neo!Neo.Form1::GetWindowLong' impidió la correspondencia de la pila. Es posible que la razón sea que la firma PInvoke administrada no coincida con la firma de destino no administrada. Compruebe que la convención y los parámetros de llamada de la firma PInvoke coinciden con la firma no administrada de destino." algo que observo en mi código pero que al modificarlo sigo con el mismo problema es como tengo definidas algunas de las funciones: Private Declare Function ShowWindow Lib "user32.dll" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Const WS_EX_APPWINDOW As Long = &H40000 Private Const GWL_EXSTYLE As Long = -20 <DllImport("user32.dll", EntryPoint:="FindWindowExW")> _ Private Shared Function FindWindowExW(ByVal hwndParent As System.IntPtr, ByVal hwndChildAfter As System.IntPtr, <InAttribute(), MarshalAs(UnmanagedType.LPTStr)> ByVal lpszClass As String, <InAttribute(), MarshalAs(UnmanagedType.LPTStr)> ByVal lpszWindow As String) As System.IntPtr End Function
Private Sub BackgroundWorker1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork Dim Width As Integer = My.Computer.Screen.Bounds.Width Dim Height As Integer = My.Computer.Screen.Bounds.Height While Not visible_ Dim hWnd As IntPtr = FindWindowExW(IntPtr.Zero, IntPtr.Zero, "MozillaWindowClass", Nothing) While Not hWnd.Equals(IntPtr.Zero) Dim title As New System.Text.StringBuilder(256) GetWindowTextW(hWnd, title, 256) 'If title.ToString.Contains("NeoBux") Then MoveWindow(hWnd, Width, Height, Width, Height, True) 'End If hWnd = FindWindowExW(IntPtr.Zero, hWnd, "MozillaWindowClass", Nothing) SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) And Not WS_EX_APPWINDOW)
End While End While visible_ = False End Sub
tanto SetWindowLong como GetWindowLong toman un dato de tipo Long mientras que yo como lo tengo definido le paso un IntPtr
|
|
« Última modificación: 3 Noviembre 2014, 10:45 am por daniel.r.23 »
|
En línea
|
|
|
|
LeandroA
|
hola no manejo .net pero a simple vista te dira que remplazes "Long" por "System.IntPtr", es importante para que los cambios se resalten tenes que poner la ventana hide luego aplicar el camibio a Not WS_EX_APPWINDOW y luego ponerla visible. ShowWindow hwndFireFox, 0 SetWindowLong hwndFireFox, GWL_EXSTYLE, GetWindowLong(hwndFireFox, GWL_EXSTYLE) And Not WS_EX_APPWINDOW ShowWindow hwndFireFox, 1
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
como utilizar la funcion onchange en 2 cajas de texto
Dudas Generales
|
sedil10
|
1
|
8,377
|
1 Julio 2011, 07:01 am
por engel lex
|
|
|
[DUDA] añadir espacios al utilizar la función strcat
« 1 2 3 »
Programación C/C++
|
Dryken
|
25
|
15,713
|
11 Agosto 2012, 16:28 pm
por rir3760
|
|
|
Cual es mejor utilizar or por que WINAPI o CALLBACK en una funcion
Programación C/C++
|
sanenr
|
1
|
1,596
|
28 Abril 2014, 02:42 am
por Eternal Idol
|
|
|
Función ShowInTaskbar en VB.NET
.NET (C#, VB.NET, ASP)
|
Wickown
|
2
|
2,623
|
5 Enero 2015, 03:24 am
por Wickown
|
|
|
Firefox copiará una función de seguridad de Tor Browser
Noticias
|
wolfbcn
|
0
|
972
|
6 Marzo 2019, 21:40 pm
por wolfbcn
|
|