Hola,
Esto...disculpa mi ignorancia, pero, no me ha quedado muy claro para que sirve esto....
Esto...disculpa mi ignorancia, pero, no me ha quedado muy claro para que sirve esto....
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úConst SW_RESTORE = 9
Private Sub Command1_Click()
HWNDParent = 0
ShellExecute Me.hwnd, "", "chrome.exe", _
"http://www.elhacker.net", Environ("programfiles") & "\Google\Chrome\Application\", SW_SHOWMINIMIZED
Espera (1) 'Espera un segundo a que se cargue Chrome
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
'Refresca Chrome por si no se visualiza correctamente
ShowWindow HWNDParent, SW_RESTORE
'Ajusta la ventana de Chrome al Picture
Call SetWindowPos(HWNDParent, HWND_TOP, 0, 0, _
Picture1.ScaleWidth, _
Picture1.ScaleHeight, _
SWP_NOZORDER)
End Sub
Cita de: engel lex en 11 Febrero 2015, 20:39 PM
solo para aportar algo... se puede simplificar el código de okik para ahorrarnos la comparaciónDim A As Variant
A = 76.5
A = Int(A+0.5)
Label1.Caption = A
Cita de: rapbyone en 11 Febrero 2015, 19:40 PM
¿Estimados y para aproximar un decimal, por ejemplo si tengo "76,5" me muestre 77?
Dim A As Variant, B As Variant
A = 76.5
B = A - Int(A)
If B = 0.5 Then
A = A - 0.5 + 1
End If
Label1.Caption = A
Dim A As Variant, B As Variant
A = Text1.Text
B = FormatNumber(A / 2, 2) 'No redondea y muestra dos decimales
Text2.Text = B
Text3.Text = CInt(A / 2) 'Redondea
Text4.Text = CVar(A / 2) 'No redondea
Cita de: NsTeam en 11 Febrero 2015, 00:08 AM
Hola, acabo de probarlo y aún así. Te explico lo que sucede.
Tengo Chrome abierto, está en pantalla completa pero minimizado, y al iniciar el proyecto.exe y por primera vez le doy click al "command_button", sólo abre la página en una nueva pestaña de Chrome y me muestra Chrome pero no lo incrusta al picture.
Cuando le doy nuevamente click al "Command_button", abre la página en otra nueva pestaña , me muestra chrome y recién la incrusta al picture.
Y después ya normal, cada vez que le doy click, abre Chrome y lo incrusta al picture y así sucesivamente.
(incluso probé el parameto de Chrome para que lo abra en una nueva ventana --new-window, pero nada, ese no era el problema)
Aquí te dejo el video de lo que te explico.
[youtube=640,360]https://www.youtube.com/watch?v=i1MEd0T7JzA[/youtube]
Lo que creo es que quizá en el FormLoad el código no carga bien ya que solamente al comienzo es que no lo incrusta al picture, pero después sí.
---------------------------------------------------------------------
Do While HWNDParent = 0
HWNDParent = FindWindow("Chrome_WidgetWin_1", vbNullString) 'Obtiene el handle padre
DoEvents
Loop
'Nombres de clase (ClassName) de Chrome
'Chrome_WidgetWin_1 <---Padre
'Chrome_RenderWidgetHostHWND <---hijo
'//Funciones API para incrustar la aplicación en el picture
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&
'//////////////////////////////////////////////
'//'Variable para el handle padre de Chrome //
'//Debe ser variable pública para que al //
'//cerrar el form únicamente se cierre el //
'//chrome incrustado en el picture y no //
'//otra ventana externa de chrome /////
Dim HWNDParent As Long
'//////////////////////////////////////////////
Private Sub Command1_Click()
HWNDParent = 0
ShellExecute Me.hwnd, "", "chrome.exe", _
"www.elhacker.net", 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
Private Sub Espera(Segundos As Single)
Dim ComienzoSeg As Single
Dim FinSeg As Single
ComienzoSeg = Timer
FinSeg = ComienzoSeg + Segundos
Do While FinSeg > Timer
DoEvents
If ComienzoSeg > Timer Then
FinSeg = FinSeg - 24 * 60 * 60
End If
Loop
End Sub
Private Sub Cerrar_Chrome(hwnd As Long)
If HWNDParent <> 0 Then
Call SetParent(HWNDParent, 0) ' Libera el programa
Call SendMessage(HWNDParent, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&) 'Cierra el programa
HWNDParent = 0
End If
End Sub
Private Sub Form_Load()
Picture1.ScaleMode = 3 'pixels <-importante para mover _
y establecer correctamente las dimensiones de la ventana _
de chrome dentro del picture
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call Cerrar_Chrome(HWNDParent) 'Cierra Chrome
End
End Sub
Do While N& = 0
N& = SetParent(HWNDParent, Picture1.hwnd) 'Meter la apcliación en el picture
DoEvents
Loop
Private Sub Form_Unload(Cancel As Integer)
Call Cerrar_Chrome(HWNDParent) 'Cierra Chrome
End
End Sub