Página 1 de 2
como ponerle direccion a unos botones
Publicado: 01 Jul 2013, 01:11
por mikeeps2
amigo tengo este script que es de trafico google mapa ,pero no se como darle funciones a los botones que hice en la parte de abajo , el script lleva un Google Map.html
yo encontre en el api los botones esos , bueno eso creo pero no se como agregarlos en el script , me pudieran ayudar
Código: Seleccionar todo
; *******************************************************
; SCRIPT PARA ABRIR GOOGLE TRAFFICO
;
;
; *******************************************************
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
_IEErrorHandlerRegister()
Local $oIE = _IECreateEmbedded()
GUICreate("CAMERA DVR", 810, 580, _
(@DesktopWidth - 840) / 2, (@DesktopHeight - 580) / 2, _
$WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
GUICtrlCreateObj($oIE, 0, 0, 820, 450)
Local $GUI_Button_Zoom_in = GUICtrlCreateButton("Zoom in", 10, 500, 100, 30)
Local $GUI_Button_Zoom_out = GUICtrlCreateButton("Zoom out", 120, 500, 100, 30)
Local $GUI_Button_Left = GUICtrlCreateButton("Left", 230, 500, 100, 30)
Local $GUI_Button_Right = GUICtrlCreateButton("Right", 340, 500, 100, 30)
Local $GUI_Button_Down = GUICtrlCreateButton("Down", 280, 540, 100, 30)
Local $GUI_Button_Up = GUICtrlCreateButton("Up", 280, 460, 100, 30)
GUISetState() ;Show GUI
_IENavigate($oIE, @ScriptDir & "\Google Map.html")
; Waiting for user to close the window
While 1
Local $msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $GUI_Button_Zoom_in
_IEAction($oIE, "Zoom in")
Case $msg = $GUI_Button_Zoom_out
_IEAction($oIE, "Zoom out")
Case $msg = $GUI_Button_Left
_IEAction($oIE, "Left")
Case $msg = $GUI_Button_Right
_IEAction($oIE, "Right")
Case $msg = $GUI_Button_Down
_IEAction($oIE, "Down")
Case $msg = $GUI_Button_Up
_IEAction($oIE, "Up")
EndSelect
WEnd
GUIDelete()
Exit
y este es el html
Código: Seleccionar todo
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps Embedded</title>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false""></script>
<script type="text/javascript">
var initialize = function() {
// Latitude and Longitude
var latlng = new google.maps.LatLng(25.8647,-80.3247);
// Just some option
var options = { zoom: 12,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// Map object
var map = new google.maps.Map(document.getElementById('map'), options);
var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
}
window.onload = initialize;
</script>
</head>
<body style="margin:0; padding:0;">
<div id="map" style="width:100%; height:100%"></div>
</body>
</html>
el tiene ya el zoom directo pero quisiera tener la option por lo botones , de moverlo el mapa y el zoom
muchas gracias
Re: como ponerle direccion a unos botones
Publicado: 16 Jul 2013, 01:10
por BasicOs
Hola se me ocurre que una vez que tienes como ventana activa (WinActivate) la ventana del mapa, puedes enviar send() con teclas rápidas que son estas que dices. por ejemplo al enviar las téclas + - se activa el zoom. En ultimo caso aunque no es perfecto puedes hacer un MouseClick() MouseMove() para hacer funciones con el ratón.
Cualquier cosa comenta como lo llevas.
Salu22:)
Re: como ponerle direccion a unos botones
Publicado: 18 Jul 2013, 06:54
por mikeeps2
hola gracias por sacarme ded la duda , busque y si la opcion de mouseclick , me funciono , lo hice asi
Case $msg = $GUI_Button_Zoom_in
_IEAction($oIE, "Zoom in")
MouseClick("primary", 140, 280, 1,0)
Case $msg = $GUI_Button_Zoom_out
_IEAction($oIE, "Zoom out")
MouseClick("primary", 140, 480, 1,0)
Case $msg = $GUI_Button_Left
_IEAction($oIE, "Left")
MouseClick("primary", 125, 170, 1,0)
Case $msg = $GUI_Button_Right
_IEAction($oIE, "Right")
MouseClick("primary", 160, 170, 1,0)
Case $msg = $GUI_Button_Down
_IEAction($oIE, "Down")
MouseClick("primary", 140, 190, 1,0)
Case $msg = $GUI_Button_Up
_IEAction($oIE, "Up")
MouseClick("primary", 140, 150, 1,0)
lo que queria provar la option que me dices de send - , send + para el zoom pero no me sale , lo que puse fue asi
Case $msg = $GUI_Button_Zoom_in
_IEAction($oIE, "Zoom in")
Send("{-}")
Case $msg = $GUI_Button_Zoom_out
_IEAction($oIE, "Zoom out")
Send("{+}")
pero no , no me salio , no se si faltaria algo o lo puse en el lugar equivocado
en el de mouseclick , me funciono , pero bueno tampoco se si le falta algo , o esta e el lugar adecuado
gracias por todo
otra cocita , en el script cuando ejecuto algun boton de estos , me sale esto
--> IE.au3 V2.4-0 Error from function _IEAction, $_IEStatus_InvalidValue (Invalid Action)
--> IE.au3 V2.4-0 Error from function _IEAction, $_IEStatus_InvalidValue (Invalid Action)
--> IE.au3 V2.4-0 Error from function _IEAction, $_IEStatus_InvalidValue (Invalid Action)
--> IE.au3 V2.4-0 Error from function _IEAction, $_IEStatus_InvalidValue (Invalid Action)
sera que falta algo o algo esta mal
Re: como ponerle direccion a unos botones
Publicado: 19 Jul 2013, 19:40
por BasicOs
Hola mientras te funcione bien ya está ok. Más adelante siempre puedes mejorar detalles.
Debería funcionar si el foco está dentro del mapa. Igual tienes que hacer un click antes del send +.
Tambien puedes usar el MouseWheel() para mover la rueda que también hace el zoom.
Si tienes el código final por fa publicalo para echarle un vistazo.
Salu22:)
Re: como ponerle direccion a unos botones
Publicado: 20 Jul 2013, 18:50
por mikeeps2
bueno hice las dos maneras a ver cual trabaje mejor , las pondre las dos
esta es con send key
Código: Seleccionar todo
; *******************************************************
; SCRIPT PARA ABRIR GOOGLE TRAFFICO
;
;
; *******************************************************
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
_IEErrorHandlerRegister()
Local $oIE = _IECreateEmbedded()
GUICreate("GOOGLE TRAFFIC", 810, 580, _
(@DesktopWidth - 1020) / 2, (@DesktopHeight - 665) / 2, _
$WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
GUICtrlCreateObj($oIE, 0, 0, 820, 450)
WinWait("GOOGLE TRAFFIC")
WinMove("GOOGLE TRAFFIC", "", 0, 60, 800, 600)
Local $GUI_Button_Zoom_in = GUICtrlCreateButton("Zoom in", 10, 500, 100, 30)
Local $GUI_Button_Zoom_out = GUICtrlCreateButton("Zoom out", 120, 500, 100, 30)
Local $GUI_Button_Left = GUICtrlCreateButton("Left", 230, 500, 100, 30)
Local $GUI_Button_Right = GUICtrlCreateButton("Right", 340, 500, 100, 30)
Local $GUI_Button_Down = GUICtrlCreateButton("Down", 280, 540, 100, 30)
Local $GUI_Button_Up = GUICtrlCreateButton("Up", 280, 460, 100, 30)
GUISetState() ;Show GUI
_IENavigate($oIE, @ScriptDir & "\google map.html")
; Waiting for user to close the window
While 1
Local $msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $GUI_Button_Zoom_in
_IEAction($oIE, "Zoom in")
;MouseClick("primary", 50, 240, 1,0)
Send("{-}")
Case $msg = $GUI_Button_Zoom_out
_IEAction($oIE, "Zoom out")
;MouseClick("primary", 50, 440, 1,0)
Send("{+}")
Case $msg = $GUI_Button_Left
_IEAction($oIE, "Left")
;MouseClick("primary", 35, 140, 1,0)
Send("{LEFT}")
Case $msg = $GUI_Button_Right
_IEAction($oIE, "Right")
;MouseClick("primary", 60, 140, 1,0)
Send("{RIGHT}")
Case $msg = $GUI_Button_Down
_IEAction($oIE, "Down")
;MouseClick("primary", 50, 150, 1,0)
Send("{DOWN}")
Case $msg = $GUI_Button_Up
_IEAction($oIE, "Up")
;MouseClick("primary", 50, 120, 1,0)
Send("{UP}")
EndSelect
WEnd
GUIDelete()
Exit
y esta en con mouseclick
Código: Seleccionar todo
; *******************************************************
; SCRIPT PARA ABRIR GOOGLE TRAFFICO
;
;
; *******************************************************
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
_IEErrorHandlerRegister()
Local $oIE = _IECreateEmbedded()
GUICreate("GOOGLE TRAFFIC", 810, 580, _
(@DesktopWidth - 1020) / 2, (@DesktopHeight - 665) / 2, _
$WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
GUICtrlCreateObj($oIE, 0, 0, 820, 450)
WinWait("GOOGLE TRAFFIC")
WinMove("GOOGLE TRAFFIC", "", 0, 60, 800, 600)
Local $GUI_Button_Zoom_in = GUICtrlCreateButton("Zoom in", 10, 500, 100, 30)
Local $GUI_Button_Zoom_out = GUICtrlCreateButton("Zoom out", 120, 500, 100, 30)
Local $GUI_Button_Left = GUICtrlCreateButton("Left", 230, 500, 100, 30)
Local $GUI_Button_Right = GUICtrlCreateButton("Right", 340, 500, 100, 30)
Local $GUI_Button_Down = GUICtrlCreateButton("Down", 280, 540, 100, 30)
Local $GUI_Button_Up = GUICtrlCreateButton("Up", 280, 460, 100, 30)
GUISetState() ;Show GUI
_IENavigate($oIE, @ScriptDir & "\google map.html")
; Waiting for user to close the window
While 1
Local $msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $GUI_Button_Zoom_in
_IEAction($oIE, "Zoom in")
MouseClick("primary", 50, 240, 1,0)
;Send("{-}")
Case $msg = $GUI_Button_Zoom_out
_IEAction($oIE, "Zoom out")
MouseClick("primary", 50, 440, 1,0)
;Send("{+}")
Case $msg = $GUI_Button_Left
_IEAction($oIE, "Left")
MouseClick("primary", 35, 140, 1,0)
;Send("{LEFT}")
Case $msg = $GUI_Button_Right
_IEAction($oIE, "Right")
MouseClick("primary", 60, 140, 1,0)
;Send("{RIGHT}")
Case $msg = $GUI_Button_Down
_IEAction($oIE, "Down")
MouseClick("primary", 50, 150, 1,0)
;Send("{DOWN}")
Case $msg = $GUI_Button_Up
_IEAction($oIE, "Up")
MouseClick("primary", 50, 120, 1,0)
;Send("{UP}")
EndSelect
WEnd
GUIDelete()
Exit
entonces las dos se cargarian con el mapa este , claro no es presisamente el que me gusta , porque el que me gusta no se como sacarcelo a google , no se si tu sepas como hacerlo , seria este el de la foto , pero solo donde esta encerrado el mapa , sin las barras de arrriba no se si se pueda hacer eso , porque ese traffico me da la info cuando hay algun acidente o alguna contryccion me sale el cartel cuando poncho encima del hecho
el problema con usar el wheel que dices es que yo usaria esto en otro lugar , pero es con puros botones , no tiene ni teclado , ni mouse , luego tengo que redigirir los botones de autoit para el programa que yo lo usaria , por eso no me conviene algo con el mouse , porque no lo usaria , y como la pantalla donde usaria estos programas es touch screen , todo tengo que hacerlo con los dedos
mira creo que encontre la que yo quiero usar , mira ver si te abre , aqui la prove y me abre , me dejas saber , sino aqui te lo mando , solo cuando lo unzip le pones ext html , luego , cuando lo abras , vas a mano isquierda abajo , donde dice view larger map , cuando abra , ese es el mapa que me gustaria usar
https://maps.google.com/?t=m&layer=t&ie ... urce=embed
Re: como ponerle direccion a unos botones
Publicado: 13 Oct 2013, 15:48
por mikeeps2
buenas a todos , una ves mas , molestandolos por aqui , ya logre adaptar este script a mi programa , pero me falta 3 cositas a ver si me pudieras ayudar a solucionar
1 - para mover el zoom , use los comandos Send("{-}") y Send("{+}") , me trabaja bien pero para que me funcione , tengo que primero ponchar en el mapa para que como active esos comandos , no se si se le podra areglar poniendole algun comando de click para que ya de una trabaje
2- estoy usando para cerrar el scrip el comando ProcessClose("GOOGLE TRAFFIC.exe") , pero me lo cierra bien pero se me queda el icono en la barra de windows , en la barra donde eeta el reloj , y si abro 5 veces el script , se quedan 5 icnonos ahi en esa barra , la manera de que se vayan esos iconos es pasando el mouse por ese lugar pero no quiero eso , me gustaria que se fuera ese icono cuando cierro el script , no se si le falte algo a ese comando , o necesitaria otro comando mas efectivo
3-dentro del html , hay para editar el zoom del mapa y la latitud y long , de la ubicacion , como se podria insertarle un txt.ini que sea indepoendiente para poder editar esos valores sin que entrar al html
aqui les dejo el script completo y el html
Código: Seleccionar todo
;
*******************************************************
; SCRIPT PARA ABRIR GOOGLE TRAFFICO
;
;
; *******************************************************
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
dim $cmd, $oIE
Global Const $StructDef_COPYDATA = "ptr;dword;ptr"
;Global Const $WM_COPYDATA = 0x4A
;Global Const $WM_CLOSE = 0x10
Global Const $STRUCTDEF_AU3MESSAGE = "char[255]"
;$rr = ObjCreate("RoadRunner.SDK")
_IEErrorHandlerRegister()
$oIE = _IECreateEmbedded()
GUICreate("GOOGLE TRAFFIC", 810, 510, (@DesktopWidth - 1020) / 2, (@DesktopHeight - 665) / 2, $WS_POPUP)
GUICtrlCreateObj($oIE, 0, 0, 820, 510)
WinWait("GOOGLE TRAFFIC")
WinMove("GOOGLE TRAFFIC", "", 0, 0, 800, 510)
; Register Windows Messages
GUIRegisterMsg($WM_COPYDATA, "_GUIRegisterMsgProc")
GUIRegisterMsg($WM_CLOSE, "_GUIRegisterMsgProc")
;Local $size = WinGetPos("[active]")
;MsgBox(0, "Active window stats (0,60,400,600):", $size[0] & " " & $size[1] & " " & $size[2] & " " & $size[3])
;Local $GUI_Button_Zoom_in = GUICtrlCreateButton("Zoom in", 10, 500, 100, 30)
;Local $GUI_Button_Zoom_out = GUICtrlCreateButton("Zoom out", 120, 500, 100, 30)
;Local $GUI_Button_Left = GUICtrlCreateButton("Left", 230, 500, 100, 30)
;Local $GUI_Button_Right = GUICtrlCreateButton("Right", 340, 500, 100, 30)
;Local $GUI_Button_Down = GUICtrlCreateButton("Down", 280, 540, 100, 30)
;Local $GUI_Button_Up = GUICtrlCreateButton("Up", 280, 460, 100, 30)
GUISetState() ;Show GUI
_IENavigate($oIE, @ScriptDir & "\google map.html")
; Waiting for user to close the window
While 1
$msg = GUIGetMsg()
;~ Select
;~ Case $msg = $GUI_EVENT_CLOSE
;~ ExitLoop
; Case $msg = $GUI_Button_ZoomIn
; _IEAction($oIE, "ZoomIn")
; MouseClick("primary", 50, 140, 1,0)
;Send("{-}")
;Case $msg = $GUI_Button_ZoomOut
; _IEAction($oIE, "ZoomOut")
; MouseClick("primary", 50, 440, 1,0)
;Send("{+}")
;~ Case $msg = $GUI_Button_Left
;~ _IEAction($oIE, "Left")
;~ MouseClick("primary", 35, 140, 1,0)
;~ send("{LEFT}")
;~ Case $msg = $GUI_Button_Right
;~ _IEAction($oIE, "Right")
;~ MouseClick("primary", 60, 140, 1,0)
;~ Send("{RIGHT}")
;~
;~ Case $msg = $GUI_Button_Down
;~ _IEAction($oIE, "Down")
;~ MouseClick("primary", 50, 150, 1,0)
;~ Send("{DOWN}")
;~ Case $msg = $GUI_Button_Up
;~ _IEAction($oIE, "Up")
;~ MouseClick("primary", 50, 120, 1,0)
;~ Send("{UP}")
;~ EndSelect
;If $cmd = "ZoomIn" Then;command called by RR with "SENDMSG;GOOGLE MAP;ZoomIn"
; $cmd = ""
; cmdZoomIn_Click()
; EndIf
; If $cmd = "ZoomOut" Then;command called by RR with "SENDMSG;GOOGLE MAP;ZoomOut"
; $cmd = ""
; cmdZoomOut_Click()
; EndIf
;~ If $cmd = "GOOGLE MAP" Then;command called by RR with "SENDMSG;GOOGLE MAP;CLOSE"
;~ $cmd = ""
;~ cmdCLOSE_Click()
;~ EndIf
If $cmd = "ZoomIn" Then;command called by RR with "SENDMSG;GOOGLE TRAFFIC;ZoomIn"
$cmd = ""
_IEAction($oIE, "ZoomIn")
; MouseClick("primary", 50, 140, 1,0)
Send("{-}")
EndIf
If $cmd = "ZoomOut" Then;command called by RR with "SENDMSG;GOOGLE TRAFFIC;ZoomOut"
$cmd = ""
_IEAction($oIE, "ZoomOut")
; MouseClick("primary", 50, 340, 1,0)
Send("{+}")
EndIf
If $cmd = "Close" Then;command called by RR with "SENDMSG;GOOGLE TRAFFIC;Close"
$cmd = ""
ProcessClose("GOOGLE TRAFFIC.exe")
EndIf
WEnd
GUIDelete()
; Message Handler
Func _GUIRegisterMsgProc($hWnd, $MsgID, $WParam, $LParam)
If $MsgID = $WM_COPYDATA Then
; We Recived a WM_COPYDATA Message
; $LParam = Poiter to a COPYDATA Struct
$vs_cds = DllStructCreate($StructDef_COPYDATA, $LParam)
; Member No. 3 of COPYDATA Struct (PVOID lpData;) = Pointer to Costum Struct
$vs_msg = DllStructCreate($STRUCTDEF_AU3MESSAGE, DllStructGetData($vs_cds, 3))
$SciTECmdLen = DllStructGetData($vs_cds, 2)
$cmd = StringLeft(DllStructGetData($vs_msg, 1), $SciTECmdLen)
; Display what we have recived
;MsgBox(0, "Test String", $cmd)
ElseIf $MsgID = $WM_CLOSE Then
; We Recived a WM_CLOSE Message
Exit
EndIf
EndFunc ;==>_GUIRegisterMsgProc
----------------------------------------------------------
html script
Código: Seleccionar todo
<title>Google Maps Embedded</title>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false""></script>
<script type="text/javascript">
var initialize = function() {
// Latitude and Longitude
var latlng = new google.maps.LatLng(25.8647,-80.3247);
// Just some option
var options = { zoom: 12,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// Map object
var map = new google.maps.Map(document.getElementById('map'), options);
var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
}
window.onload = initialize;
</script>
</head>
<body style="margin:0; padding:0;">
<div id="map" style="width:100%; height:100%"></div>
</body>
</html>
Re: como ponerle direccion a unos botones
Publicado: 13 Oct 2013, 18:36
por Dany
El código es un desastre :S
ahí te dejo retocado a ver si así te funciona.
Código: Seleccionar todo
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#Include <WinAPI.au3>
Global Const $HSHELL_WINDOWACTIVATED=4
_IEErrorHandlerRegister()
Local $width=810
Local $height=510
GUIRegisterMsg(_WinAPI_RegisterWindowMessage('SHELLHOOK'), '_ShellHookProc')
Local $oIE = _IECreateEmbedded()
$hForm =GUICreate("Embedded Web control Test", $width, $height, _
(@DesktopWidth - 1020) / 2, (@DesktopHeight - 665) / 2, _
$WS_POPUP)
_WinAPI_RegisterShellHookWindow($hForm)
GUICtrlCreateObj($oIE, 10, 40, 820, 510)
GUISetState() ;Show GUI
_IENavigate($oIE, @ScriptDir & "\Google Map.html")
clickfocus()
; Waiting for user to close the window
While 1
Local $msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd
GUIDelete()
Exit
Func _ShellHookProc($hWnd, $iMsg, $wParam, $lParam)
Switch $hWnd
Case $hForm
Switch $wParam
Case $HSHELL_WINDOWACTIVATED
if $hWnd=WinGetHandle($lParam) then
ConsoleWrite('Activated: ' & WinGetHandle($lParam) & @CR)
clickfocus()
endif
EndSwitch
EndSwitch
EndFunc ;==>_ShellHookProc
Func OnAutoItExit()
_WinAPI_DeregisterShellHookWindow($hForm)
EndFunc ;==>OnAutoItExit
Func clickfocus()
Local $pos = MouseGetPos()
MouseClick("left",$width/2,$height/2,1,0)
MouseMove($pos[0],$pos[1],0)
EndFunc
Func _WinAPI_RegisterShellHookWindow($hWnd)
Local $Ret = DllCall('user32.dll', 'int', 'RegisterShellHookWindow', 'hwnd', $hWnd)
If (@error) Or (Not $Ret[0]) Then
Return SetError(1, 0, 0)
EndIf
Return 1
EndFunc ;==>_WinAPI_RegisterShellHookWindow
;
Func _WinAPI_DeregisterShellHookWindow($hWnd)
Local $Ret = DllCall('user32.dll', 'int', 'DeregisterShellHookWindow', 'hwnd', $hWnd)
If (@error) Or (Not $Ret[0]) Then
Return SetError(1, 0, 0)
EndIf
Return 1
EndFunc ;==>_WinAPI_DeregisterShellHookWindow
saludos
Re: como ponerle direccion a unos botones
Publicado: 13 Oct 2013, 19:20
por mikeeps2
hay dany no me quites el animo , hay partes que yo la agregue , recuerda que yo este script lo abro con otro programa que tiene sus botones y llaman a este script , me lo quitastes , esos comandos de los botones tienen que quedarse sino como llamo al programa o como hago las funciones del zoom
EDITADO , no dany , perdona el cambio que me hicistes , me cambiastes todo , y ahora tengo que volverme a romper la cabeza como acoplarar las cosas ,
el que yo tengo me habian agregado todo esto para poder llamarlo desde el otro programa y haga las funciones de los botones
dim $cmd, $oIE
Global Const $StructDef_COPYDATA = "ptr;dword;ptr"
;Global Const $WM_COPYDATA = 0x4A
;Global Const $WM_CLOSE = 0x10
Global Const $STRUCTDEF_AU3MESSAGE = "char[255]"
$rr = ObjCreate("RoadRunner.SDK")
; Register Windows Messages
GUIRegisterMsg($WM_COPYDATA, "_GUIRegisterMsgProc")
GUIRegisterMsg($WM_CLOSE, "_GUIRegisterMsgProc")
luego viene la parte de los botones
If $cmd = "ZoomIn" Then;command called by RR with "SENDMSG;GOOGLE TRAFFIC;ZoomIn"
$cmd = ""
_IEAction($oIE, "ZoomIn")
; MouseClick("primary", 50, 140, 1,0)
Send("{-}")
EndIf
If $cmd = "ZoomOut" Then;command called by RR with "SENDMSG;GOOGLE TRAFFIC;ZoomOut"
$cmd = ""
_IEAction($oIE, "ZoomOut")
; MouseClick("primary", 50, 340, 1,0)
Send("{+}")
EndIf
If $cmd = "Close" Then;command called by RR with "SENDMSG;GOOGLE TRAFFIC;Close"
$cmd = ""
ProcessClose("GOOGLE TRAFFIC.exe")
y al final me hbaian agregado esto porqwue tambien lo necexitaba
; Message Handler
Func _GUIRegisterMsgProc($hWnd, $MsgID, $WParam, $LParam)
If $MsgID = $WM_COPYDATA Then
; We Recived a WM_COPYDATA Message
; $LParam = Poiter to a COPYDATA Struct
$vs_cds = DllStructCreate($StructDef_COPYDATA, $LParam)
; Member No. 3 of COPYDATA Struct (PVOID lpData;) = Pointer to Costum Struct
$vs_msg = DllStructCreate($STRUCTDEF_AU3MESSAGE, DllStructGetData($vs_cds, 3))
$SciTECmdLen = DllStructGetData($vs_cds, 2)
$cmd = StringLeft(DllStructGetData($vs_msg, 1), $SciTECmdLen)
; Display what we have recived
;MsgBox(0, "Test String", $cmd)
ElseIf $MsgID = $WM_CLOSE Then
; We Recived a WM_CLOSE Message
Exit
EndIf
y ahora como vuelvo a acotejar todo eso al que me hicistes
Re: como ponerle direccion a unos botones
Publicado: 13 Oct 2013, 19:26
por Dany
Lo probaste?
No es quitar animo es un consejo
Según dijiste envías comandos con + y -
debería funcionar si presionas esas teclas.
saludos
Re: como ponerle direccion a unos botones
Publicado: 13 Oct 2013, 21:08
por mikeeps2
lo prove pero no me funciona , como deveria , sigue siendo que hay que darle click con el mouse en alguna parte del mapa para que - y + haga su funcion de zoom , si te fijas en el script mio , tambien utilize la option mouseclick , esa me funciona perfecto , en ultimo caso utilizare esa option , lo otro que me queda duda es lo que prantie , que cuando le doy el boton close , con el comando ProcessClose("GOOGLE MAP.exe") , se me cierra pero me deja el icono en la parte de abajo de la barra de windows , o sea si abro la aplicacion 3 veces , se quedan 3 icnonos , asi la cantidad que lo abra , solo se va esos iconos de ahi cuando paso el mouse por esa area , y lo otro que no se si se podra es si se puede abrir un txt.ini separado que pueda yo editar el valor del zoom cuando abre el mapa , y la ubicacion por lat y longituded
recuerda que yo no uso teclado ni mouse en mi projecto , todo es con touch screen
Re: como ponerle direccion a unos botones
Publicado: 13 Oct 2013, 21:09
por Dany
En la aplicacion que lo usas no tiene cursor? mouse?
para cerrar podrías hacer algo mas así
Local $PID = ProcessExists("GOOGLE TRAFFIC.exe") ; Will return the PID or 0 if the process isn't found.
If $PID Then ProcessClose($PID)
Creo que seria mejor usar la UDF que hay para google Map. seria mas fácil.
aunque hay que hacerlo de cero otra vez.
Re: como ponerle direccion a unos botones
Publicado: 14 Oct 2013, 22:33
por mikeeps2
hola dany prove eso que me pusistes y me hace lo mismo , mira una foto pa que veas que te digo , mira a la derecha abajo , los iconos que se quedan , claro se van cuando paso el mouse por ahi , pero como yo no usare mouse , sera un problema esos iconos ahi , porque si abro 50 veces , tendria 50 veces el icono ahi
mi programa todo lo manejo por touch screen , no llevara ni mouse , ni teclado
Re: como ponerle direccion a unos botones
Publicado: 14 Oct 2013, 22:36
por Dany
Usa #notrayicon porque es que queda así en xp porque no se actualiza el tryicon.
saludos
Re: como ponerle direccion a unos botones
Publicado: 14 Oct 2013, 22:46
por mikeeps2
pero yo tengo otros script con autoit y uso el mismo comando para cerrarlos y no se me queda ahi el icon , solo me sucede con este script no se porque
Re: como ponerle direccion a unos botones
Publicado: 14 Oct 2013, 23:07
por mikeeps2
bueno puse eso que me dijistes arriba verdad , donde estan todos los # , y si ya no sale el icon ni al principio ni cuando cierro el script
Re: como ponerle direccion a unos botones
Publicado: 14 Oct 2013, 23:13
por Chefito
Mmmmmm.....para cerrar un script prueba con su orden: Exit
Re: como ponerle direccion a unos botones
Publicado: 14 Oct 2013, 23:27
por Dany
Chefito escribió:Mmmmmm.....para cerrar un script prueba con su orden: Exit
@chefito, si lo que pasa es que cierra uno proceso remoto.
podrías usar TerminateProcess pero no quiero complicarlo con APIs.
@mikeeps2 quisas estas dejando algun handle abierto por eso no ce cierra el trayicon con ese script.
saludos
Re: como ponerle direccion a unos botones
Publicado: 15 Oct 2013, 04:37
por mikeeps2
dany , que es eso de handle abierto , como miro eso , igual, con el comando que me dijistes que agregara , ya no sale el icon en la barra de windows , el cofigo final que estoy sando quedaria asi , claro , el mismo mio , no entendi el que tu me corregistes
Código: Seleccionar todo
; *******************************************************
; SCRIPT PARA ABRIR GOOGLE TRAFFICO
;
;
; *******************************************************
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#NoTrayIcon
dim $cmd, $oIE
Global Const $StructDef_COPYDATA = "ptr;dword;ptr"
;Global Const $WM_COPYDATA = 0x4A
;Global Const $WM_CLOSE = 0x10
Global Const $STRUCTDEF_AU3MESSAGE = "char[255]"
$rr = ObjCreate("RoadRunner.SDK")
_IEErrorHandlerRegister()
$oIE = _IECreateEmbedded()
GUICreate("GOOGLE TRAFFIC", 810, 510, (@DesktopWidth - 1020) / 2, (@DesktopHeight - 665) / 2, $WS_POPUP)
GUICtrlCreateObj($oIE, 0, 0, 820, 510)
WinWait("GOOGLE TRAFFIC")
WinMove("GOOGLE TRAFFIC", "", 0, 0, 800, 510)
; Register Windows Messages
GUIRegisterMsg($WM_COPYDATA, "_GUIRegisterMsgProc")
GUIRegisterMsg($WM_CLOSE, "_GUIRegisterMsgProc")
GUISetState() ;Show GUI
_IENavigate($oIE, @ScriptDir & "\google map.html")
; Waiting for user to close the window
While 1
$msg = GUIGetMsg()
If $cmd = "ZoomIn" Then;command called by RR with "SENDMSG;GOOGLE TRAFFIC;ZoomIn"
$cmd = ""
_IEAction($oIE, "ZoomIn")
MouseClick("primary", 50, 140, 1,0)
; Send("{-}")
EndIf
If $cmd = "ZoomOut" Then;command called by RR with "SENDMSG;GOOGLE TRAFFIC;ZoomOut"
$cmd = ""
_IEAction($oIE, "ZoomOut")
MouseClick("primary", 50, 340, 1,0)
; Send("{+}")
EndIf
If $cmd = "Close" Then;command called by RR with "SENDMSG;GOOGLE TRAFFIC;Close"
$cmd = ""
ProcessClose("GOOGLE TRAFFIC.exe")
Local $PID = ProcessExists("GOOGLE TRAFFIC.exe") ; Will return the PID or 0 if the process isn't found.
If $PID Then ProcessClose($PID)
EndIf
WEnd
GUIDelete()
; Message Handler
Func _GUIRegisterMsgProc($hWnd, $MsgID, $WParam, $LParam)
If $MsgID = $WM_COPYDATA Then
; We Recived a WM_COPYDATA Message
; $LParam = Poiter to a COPYDATA Struct
$vs_cds = DllStructCreate($StructDef_COPYDATA, $LParam)
; Member No. 3 of COPYDATA Struct (PVOID lpData;) = Pointer to Costum Struct
$vs_msg = DllStructCreate($STRUCTDEF_AU3MESSAGE, DllStructGetData($vs_cds, 3))
$SciTECmdLen = DllStructGetData($vs_cds, 2)
$cmd = StringLeft(DllStructGetData($vs_msg, 1), $SciTECmdLen)
; Display what we have recived
;MsgBox(0, "Test String", $cmd)
ElseIf $MsgID = $WM_CLOSE Then
; We Recived a WM_CLOSE Message
Exit
EndIf
EndFunc ;==>_GUIRegisterMsgProc
UNA PREGUNTA se me quedo una duda , ahora probando otra manera de zoom + y zoom - , cuando abro el mapa , y con el mouse doble click isquierdo el mapa hace zoom - y cuando hago mouse doble click derecho hace zoom + , tambien pudiera usar esa option ,como seria el commando para doble click isquiero y derecho ?
Re: como ponerle direccion a unos botones
Publicado: 15 Oct 2013, 05:00
por Dany
revisa en google que son handles.
aunque tu problema puede ser otros tendrías que ver si queda abierto el proceso.
Pues simplemente dos clicks hacen un doble click
saludos
Re: como ponerle direccion a unos botones
Publicado: 15 Oct 2013, 10:27
por Chefito
Si es una aplicación externa la que se quiere cerrar, y matando el proceso le da algún tipo de problema (yo he matado procesos y lo del icono me ha pasado
), si tiene ventana, prueba con winkill o winclose. A ver si así no te pasa lo del icono.
Saludos.