Página 1 de 2

API en C++

Publicado: 16 Oct 2013, 16:18
por mikeeps2
hola todos , alguien sabe como trabajar con C++ , y usar el api para usarlo con autoit

gracias

Re: API en C++

Publicado: 16 Oct 2013, 17:11
por arkcrew
Buenas,

no se si será esto a lo que te refieres, pero puedes crear dlls en C++ y usarlas desde autoit con el dllcall.

Saludos!

Re: API en C++

Publicado: 16 Oct 2013, 19:47
por mikeeps2
bueno en realidad no se casi nada de autoit , y de C++ menos que menos , solo es que ando aprendiendo autoit , casi nada mas bien copy y paste jajja de los ejemplos ...

bueno , el caso es que encontre el API de mi systema de DVR se securidad de mi casa ,pero esta en C++ entonces queria hacer una aplicacion pequenita , solo que me muestre las 4 camaras , no se si me hago entender , como hago para mandarte lo que tengo

Re: API en C++

Publicado: 17 Oct 2013, 01:16
por Dany
pero seguro que tiene Bibliotecas de enlace dinámico? pasa alguna documentación...

:smt027

Re: API en C++

Publicado: 17 Oct 2013, 02:53
por mikeeps2
hola dany , mira esta es la informacionm que tengo

Re: API en C++

Publicado: 17 Oct 2013, 05:09
por Dany
Pues por lo que medio vi si es posible lo que quieres. pero de verdad con los pocos conocimientos de autoit que tienes no podrías. de verdad que hacer lo que quieres requiere que sepas al menos un 50% mas de lo que sabes. quizás mañana mire y haga algo. aunque si tener el hardware es un poco complicado :S :smt027

saludos

Re: API en C++

Publicado: 17 Oct 2013, 14:41
por mikeeps2
dany , mil gracias , si la verdad , yo no se ni papa de autoit , solo lo que ustedes me han ensenado , basicamente , lo que ando buscando hacer , es algun script pequeno , que solo salgan las 4 camaras , seria cuadro , dividido en 4 , o por separado no importa , yo las agrupo en mi programa luego , y si es posible cuando se pinche en cada cuadro de cada camara , que se haga grande en la pantalla completa .... , yo no necesito ningun boton de ajustes , o de setting del equipo , nada de eso , si necesitas el ip de las camaras , el puerto , el username y pass , me avisas


dany dentro de esa carpeta hay un folder llamado bin-en , abres el clientdemo y te abre un demo , si ves hay 4 cuadros a mano isquierda y a mano derecha todos los setting , pues a mi no me interesa nada de setting , solo las camaras

Re: API en C++

Publicado: 17 Oct 2013, 17:41
por Dany
el clientdemo te funciona? osea metes la ip y todo eso y te ves las camaras?

Re: API en C++

Publicado: 17 Oct 2013, 18:24
por mikeeps2
si funciona , si quieres te paso por privado los datos , pero lo unico malo de ese client demo es que a mano isquierda hay que seleccionar camara por camara en cada cuadro , pero cuando lo cierras y abres de nuevo , se va esa configuracion , hay que hacerlo de nuevo , yo pensaba usar ese mismo programita pero asi como esta que hay que configurarlo cada ves que lo abra es un rollo


ya te mande eso al privado

para entrarle los datos , cuando habras el cliendemo , a mano derecha esta la palabra test , ahi dale click derecho en add , luego en ese cuadro pones los datos que te mande

Re: API en C++

Publicado: 17 Oct 2013, 20:18
por Dany
Ok dale al rato lo pruebo que ando en el trabajo y el internet es una mierda :S 1.5 kb/s :S :smt022


:smt027
saludos

Re: API en C++

Publicado: 18 Oct 2013, 17:24
por mikeeps2
ok dany , que internet mas lenta , ni en cuba hay esa internet ya jajjaja bueno yo aqui en usa miami , tengo 100 mega

Re: API en C++

Publicado: 18 Oct 2013, 17:28
por Dany
Yo lo maximo que agarro son unos 120 kb/s de madrugada. En mi pueblo a juro llega el internet jajajaja

Ando mirando el clientdemo :smt024 esta bien largo el code. ojala se pueda hacer algo. :smt027

Re: API en C++

Publicado: 18 Oct 2013, 19:01
por mikeeps2
dany pero donde tu vives que tienes tan poca velocidad ..

ojala puedas dar alguna solucion con eso de las camaras

Re: API en C++

Publicado: 18 Oct 2013, 19:17
por Dany
Vivo en Venezuela en la parte andina.

Pues ta Difícil ando mirando y no he logrado nada :S :smt011


saludos

Re: API en C++

Publicado: 21 Oct 2013, 05:06
por mikeeps2
dany abristes el cliendemo , vistes las camaras ,una pregunta , en alguna parte del cliendemo configuracion se podra dejar abilitado para cuando se abra el programita se vean las camaras de una , porque el ulktimo caso , se podria llamar con autoit el programita clientdemo , enmarcar solo el cuadro que contiene las 4 camaras , pero en ese caso , deberia salirse de una las 4 camaras , no se si mediante comandos de send o mouseclick , no se ,

Re: API en C++

Publicado: 21 Oct 2013, 09:23
por Dany
Bueno lo que se me ocurre hacer es algo así.

Código: Seleccionar todo

#include <GuiTreeView.au3>

Local $IP,$Name,$ID,$nCamaras,$nCcanales,$Pass,$Usuario,$Puerto

;Datos
$IP=""
$Puerto=""
$Name="Test"
$nCamaras="4"
$nCcanales="4"
$ID="0"
$Pass=""
$Usuario=""

Local $Info="<INFO>" & @CRLF & _
"<ip>" & $IP & "<ip2>" & $IP & "</ip2>" & @CRLF & _
"<DEVICENAME>" & $Name & "</DEVICENAME>" & @CRLF & _
"<nTotalChannel>" & $nCamaras & "</nTotalChannel>" & @CRLF & _
"<username>"& $Usuario &"</username>" & @CRLF & _
"<port>"& $Puerto &"</port>" & @CRLF & _
"<pwd>" & $Pass & "</pwd>" & @CRLF & _
"<byChanNum>"& $nCcanales &"</byChanNum>" & @CRLF & _
"<lID>" & $ID & "</lID>" & @CRLF & _
"</ip>" & @CRLF & _
"</INFO>"

Local $hfile=FileOpen("UserInfo.xml",2)
FileWrite($hfile,$Info)
FileClose($hfile)


ShellExecute("ClientDemo.exe")
WinActivate("ClientDemo")
WinWaitActive("ClientDemo")
Local $hTreeView,$hItem,$Pos
$Pos=WinGetPos("ClientDemo")

;Camara Uno
ControlClick("ClientDemo","", "[CLASS:#32770; INSTANCE:6]")
ControlTreeView("ClientDemo","","[CLASS:SysTreeView32; INSTANCE:1]","Select","Test")
$hTreeView=ControlGetHandle("ClientDemo","","[CLASS:SysTreeView32; INSTANCE:1]")
$hItem=_GUICtrlTreeView_GetSelection($hTreeView)
_GUICtrlTreeView_ClickItem($hTreeView, $hItem,"left",false,2)
ControlTreeView("ClientDemo","","[CLASS:SysTreeView32; INSTANCE:1]","Select","Test|CAM 1")
$hItem=_GUICtrlTreeView_GetSelection($hTreeView)
_GUICtrlTreeView_ClickItem($hTreeView, $hItem,"left",false,2)

Sleep(100)
;Camara Dos
ControlClick("ClientDemo","", "[CLASS:#32770; INSTANCE:7]")
ControlTreeView("ClientDemo","","[CLASS:SysTreeView32; INSTANCE:1]","Select","Test|CAM 2")
$hTreeView=ControlGetHandle("ClientDemo","","[CLASS:SysTreeView32; INSTANCE:1]")
$hItem=_GUICtrlTreeView_GetSelection($hTreeView)
_GUICtrlTreeView_ClickItem($hTreeView, $hItem,"left",false,2)

Sleep(100)
;Camara Tres
ControlClick("ClientDemo","", "[CLASS:#32770; INSTANCE:8]")
ControlTreeView("ClientDemo","","[CLASS:SysTreeView32; INSTANCE:1]","Select","Test|CAM 3")
$hTreeView=ControlGetHandle("ClientDemo","","[CLASS:SysTreeView32; INSTANCE:1]")
$hItem=_GUICtrlTreeView_GetSelection($hTreeView)
_GUICtrlTreeView_ClickItem($hTreeView, $hItem,"left",false,2)

Sleep(100)
;Camara Cuatro
ControlClick("ClientDemo","", "[CLASS:#32770; INSTANCE:9]")
ControlTreeView("ClientDemo","","[CLASS:SysTreeView32; INSTANCE:1]","Select","Test|CAM 4")
$hTreeView=ControlGetHandle("ClientDemo","","[CLASS:SysTreeView32; INSTANCE:1]")
$hItem=_GUICtrlTreeView_GetSelection($hTreeView)
_GUICtrlTreeView_ClickItem($hTreeView, $hItem,"left",false,2)

WinMove("ClientDemo", "",Default , Default, $Pos[2]-240, $Pos[3]-60)

Creo que esa seria la mejor forma de automatizarlo.


Prueba y me avisas. Coloca el usuario password y IP respectivamente.

Colocas el script en el directorio donde esta clientdemo.exe


Saludos

Re: API en C++

Publicado: 21 Oct 2013, 14:32
por mikeeps2
conooooooooooo que bien trabaja eso , funciona bien , te la comistes , una cocita , sera posible ,agregarle alguna funcion que cuando pinche cada camara se ponga full cuadro , el cliendemo no lo hace , pero no se si se podra hacer la puncion que llamando a cada camara llene el cuadro , seria click en cada camara , se pone full cuadro esa camara , y si se click de nuevo el cuadro salgan las 4 camaras de nuevo

ahora voy a hacer las pruebas para imcoporarlo a mi programa , que es el lo llamara con un botton ,lo que no se si podre reducir el cuadro de las 4 camaras pa que salga en 800x510 mas o menos es el cuadro en el programa que el iria encentrado , dejame provar

Re: API en C++

Publicado: 21 Oct 2013, 15:21
por Dany
Creo que si se puede hacer lo de poner la cámara completa al pincharla?

pero al pinchar donde? en la imagen? o donde?


lo de cambiar el tamaño si esta un poco mas difícil. para cambiar el tamaño de la ventana si. pero el tamaño de los controles donde sale las imagenes creo que no se pueda.

Re: API en C++

Publicado: 21 Oct 2013, 22:18
por mikeeps2
lo de ampliar cada camara por separada seria la mejor option que haya , si se puede al pinchar cada camara mejor , osea , picha en cam1 y se abra toda la camara 1 full , luego para cerrarla y que vuelva a estar las 4 camaras , y asi sucesivamente ,o como sea mas facil


lo de cambiar el tamano total me referia , porque le puse al final asi

WinMove("ClientDemo", "", 0, 60, 780, 580) y me da el resultado que quiero pero las camaras de abajo salen solo la mitad , yo decia , que si cada cuadro reducirlo , para que todas s encentren , pero como estamos usando el tamano del cliedemo , sera difcil creo ......claro que con este comando se reduce a ese tamano el cuadro final , porque al principio el abre full todo el programa para ir settiando cada camara , se podra reducir desde el principio ?

aunque probe quitarle el frame al cuadro , para asi decir algo , pero no lo logre , yo siempre usaba este comando

$WS_POPUP

se lo puse pero no hiso nada , aver si asi ganaba algo de reducion

Re: API en C++

Publicado: 22 Oct 2013, 04:35
por Dany
La unica forma de hacer que los cuadritos sean mas pequeños es modificar ese condigo fuente en C++ y compilar ese proyecto de nuevo.

Saludos