Search the Community
Showing results for tags 'remote'.
-
I recently bought an IP Camera to monitor my house. There is a web access to view the video stream but not to record it. Here is the IP Camera in question, it should work with every other similar product. So I made a simple example which does the job. Here is the code : #include <GUIConstants.au3> #include <WindowsConstants.au3> #include <StaticConstants.au3> #include <WinAPI.au3> #include <GDIPlus.au3> #include <Memory.au3> #region Global Vars Global Const $sProgramTitle = "IP Camera stream + record" ;EDIT THE FOLLOWING LINE ONLY: Global Const $iIPAddress = "192.168.1.99", $iPort = 99, $shtauth = "yourauth==" Global Const $STM_SETIMAGE = 0x0172 Global $blRecording = False, $blGUIMinimized = False Global Const $sRecordDir = @ScriptDir & "\ip_camera_stream" Global $bRecvtmp = Binary(""), $bStream = $bRecvtmp Global $iImgLen = 0, $iStreamLen = 0, $iWritten = 0, $iEOH = 0, $iContLenPos = 0, $hImgFile = 0, $pBuffer = 0, $iImgCount = 0 Global Const $iContLengthLen = StringLen("Content-Length: ") Global $sStream = "", $sTrim2ContLen = "" Global $hBMP = 0, $hGraphics = 0, $hHBITMAP2 = 0, $hFamily = 0, $hFont = 0, $tLayout = "", $hFormat = 0, $hBrush = 0 #endregion Global Vars TCPStartup() Global $iSocket = TCPConnect($iIPAddress, $iPort) If @error Then MsgBox(16, $sProgramTitle, "Could not connect !") Exit -1 EndIf TCPSend($iSocket, _ "GET /videostream.cgi HTTP/1.1" & @CRLF & _ "Host: " & $iIPAddress & ":" & $iPort & @CRLF & _ "Connection: keep-alive" & @CRLF & _ "Authorization: Basic " & $shtauth & @CRLF & @CRLF) #region GUI Global $hGUI = 0, $pPic = 0, $hPic = 0, $btnRecord = 0 $hGUI = GUICreate($sProgramTitle, 640, 525) $pPic = GUICtrlCreatePic("", 0, 0, 640, 480, $SS_BITMAP) GUICtrlSetState($pPic, $GUI_DISABLE) $hPic = GUICtrlGetHandle($pPic) $btnRecord = GUICtrlCreateButton("Record", 10, 490, 80, 26) GUIRegisterMsg($WM_SYSCOMMAND, "WM_SYSCOMMAND") GUISetState(@SW_SHOW, $hGUI) #endregion GUI _GDIPlus_Startup() $hFamily = _GDIPlus_FontFamilyCreate("Arial") $hFont = _GDIPlus_FontCreate($hFamily, 17) $tLayout = _GDIPlus_RectFCreate(10, 10, 100, 40) $hFormat = _GDIPlus_StringFormatCreate() $hBrush = _GDIPlus_BrushCreateSolid(0xAFFF0000) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $btnRecord If $blRecording Then GUICtrlSetData($btnRecord, "Record") Else If Not FileExists($sRecordDir) Then DirCreate($sRecordDir) GUICtrlSetData($btnRecord, "Stop recording") EndIf $blRecording = Not $blRecording EndSwitch $bRecvtmp = TCPRecv($iSocket, 4096, 1) ;4kb If @error Then ExitLoop If Not BinaryLen($bRecvtmp) Then ContinueLoop $bStream &= $bRecvtmp If $iImgLen = 0 Then $sStream = BinaryToString($bStream) $iContLenPos = StringInStr($sStream, "Content-Length: ", 2) $iEOH = StringInStr($sStream, @CRLF & @CRLF, 2, 1, $iContLenPos) If $iEOH = 0 Or $iContLenPos = 0 Then ContinueLoop $sTrim2ContLen = StringTrimLeft($sStream, $iContLenPos + $iContLengthLen - 1) $iImgLen = Number(StringLeft($sTrim2ContLen, StringInStr($sTrim2ContLen, @CR, 2) - 1)) $bStream = BinaryMid($bStream, $iEOH + 4) EndIf If $iImgLen = 0 Then ContinueLoop $iStreamLen = BinaryLen($bStream) If $iStreamLen < $iImgLen Then ContinueLoop If Not $blGUIMinimized Then $hBMP = Load_BMP_From_Mem($bStream) If $blRecording Then $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBMP) _GDIPlus_GraphicsDrawStringEx($hGraphics, "[•REC]", $hFont, $tLayout, $hFormat, $hBrush) EndIf $hHBITMAP2 = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBMP) _WinAPI_DeleteObject(_SendMessage($hPic, $STM_SETIMAGE, 0, $hHBITMAP2)) _GDIPlus_ImageDispose($hBMP) If $blRecording Then _GDIPlus_GraphicsDispose($hGraphics) _WinAPI_DeleteObject($hHBITMAP2) EndIf If $blRecording Then $pBuffer = DllStructCreate("byte[" & $iImgLen & "]") If $iStreamLen > $iImgLen Then DllStructSetData($pBuffer, 1, BinaryMid($bStream, 1, $iImgLen)) $bStream = BinaryMid($bStream, $iImgLen) Else DllStructSetData($pBuffer, 1, $bStream) $bStream = Binary("") EndIf $hImgFile = _WinAPI_CreateFile($sRecordDir & "\snap_" & StringFormat("%.4d", $iImgCount) & ".jpg", 3, 4, 4) _WinAPI_WriteFile($hImgFile, DllStructGetPtr($pBuffer), $iImgLen, $iWritten) _WinAPI_CloseHandle($hImgFile) $iImgCount += 1 EndIf $iImgLen = 0 WEnd _GDIPlus_FontDispose($hFont) _GDIPlus_FontFamilyDispose($hFamily) _GDIPlus_StringFormatDispose($hFormat) _GDIPlus_BrushDispose($hBrush) _GDIPlus_Shutdown() TCPCloseSocket($iSocket) TCPShutdown() Func WM_SYSCOMMAND($hWnd, $iMsg, $wParam, $lParam) Local Const $SC_MINIMIZE = 0xF020, $SC_RESTORE = 0xF120 Switch BitAND($wParam, 0xFFF0) Case $SC_MINIMIZE, $SC_RESTORE $blGUIMinimized = Not $blGUIMinimized EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_SYSCOMMAND Func Load_BMP_From_Mem($bImage) ;_GDIPlus_BitmapCreateFromMemory2 ;Author: UEZ ;Modified: ProgAndy, Yashied, FireFox If Not IsBinary($bImage) Then Return 0 Local $memBitmap = Binary($bImage) Local $iLen = BinaryLen($memBitmap) Local $GMEM_MOVEABLE = 0x0002 Local $aResult = DllCall("kernel32.dll", "handle", "GlobalAlloc", "uint", $GMEM_MOVEABLE, "ulong_ptr", $iLen) Local $hData = $aResult[0] $aResult = DllCall("kernel32.dll", "ptr", "GlobalLock", "handle", $hData) If @error Then Return 0 Local $tMem = DllStructCreate("byte[" & $iLen & "]", $aResult[0]) DllStructSetData($tMem, 1, $memBitmap) DllCall("kernel32.dll", "bool", "GlobalUnlock", "handle", $hData) If @error Then Return 0 $aResult = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "handle", $hData, "int", True, "ptr*", 0) $hStream = $aResult[3] If @error Then Return 0 $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "int*", 0) If @error Then Return 0 DllCall('oleaut32.dll', 'long', 'DispCallFunc', 'ptr', $hStream, 'ulong_ptr', 8 * (1 + @AutoItX64), 'uint', 4, 'ushort', 23, 'uint', 0, 'ptr', 0, 'ptr', 0, 'str', '') Return $aResult[2] EndFunc ;==>Load_BMP_From_Mem _ Advanced example : Preview : Attachment : IP Camera.au3 IP Camera.au3 (Previous: 34 downloads) Enjoy, I'm watching U !
-
Meet Remmanaut, the autoit remote administration tool
faldo posted a topic in AutoIt Example Scripts
"The why" I've been working over 15 years in the IT industry and have realised that the best way of streamlining operations and support is by combining the concept of selling services (instead of hours) along with a tool built for managing those services. For the past 10 years i've been working with some of the leading providers of MSP-tools. The prize set on these comercial tools is quite high and there are usually few licence models to choose from. A smaller it-company will find the cost hard to motivate and in turn have dificulties converting its busines model in order to make more money, classic catch 22 "The how" During the years, i've gathered the pros and cons of these tools, dissected their core and realised there is no magic or rocket science going on. There is however a whole lot of scripting used and that's why i feel AutoIT would be a great foundation for a new project. So, i've decided to compile my years of experiance and create a tool for remote management and monitoring of machines over WAN. Instead of monetizing it and try to compete with the big companies i felt it more efficiant to make it open source and hope for community interest and development. "The what" The following features are under development, some arn't started, some are finished. Check the changelog for more info. Base components - Agent running as service - Central server with MySQL (hub engine) - Management client (AutoitGUI/WebGUI) Main features - Remote execution of shell commands as system or specific user - File transfer from/to agent - Live monitoring of system resources Consequential features (based on main features) - Hardware/software inventory - Software deployment/updating - Patch management - Antivirus management - OS deployment - Disaster recovery - Hardware/software/network monitoring - Wake on LAN - Reporting - Remote registry, event viewer, task manager - Scripting (obviously) Additional features (stand-alone modules) - Remote control - Servicedesk (based on ITIL) - AD-integration Security - Secure communication with SSL and rotating key for every session. - SHA256 encryption. Remmanaut network overview My knowledge of AutoIT is average but i'm novice when it comes to programing structure for collaboration, so if you're willing to help me out in making the project easy to share, i'd be very thankfull. Unfortunatly i'm no php-guru so i'll be concentrating on the AutoitGUI until the agent and hub engine reaches an adequate version. If you feel that this tool could benefit you in any way or just want to join the project for the fun of development, don't hesitate to post constructive feedback or hit me a PM. Code optimisation to do: Download:- 71 replies
-
Hi guys, I've written a script that will move my mouse to a location on the screen whenever my remote access software becomes active, the problem I have is that as soon as the remote access software becomes active it appears to capture the mouse and keyboard so nothing happens when I use MouseMove(). Is there any way around this? Thanks!
-
I have an aws cloud machine where I kept all the build process to create some set of zip files and uploading them to OneDrive. Once it is completed, I have another local machine in our environment which is a acting as a local share server also. Is there anyway to notify this machine(without public IP) to start downloading these files. I have written an AutoIT exe to download these files and copy them to respective locations.But don't know how to notify this from the remote machine. Any suggestion??
-
Hi guys, My post is more architecture related than the actual autoit script. Currently I have a java tool that makes a connection to a azure Windows VM using WINRM. Then I "grep" the session ID of RDP and using psexec I execute my autoit script on the session ID of the RDP (This assumes that I need to have already a RDP connection established). The script runs perfectly when I have a RDP session maximized/opened. If I minimize the RDP window some commands do not work, as for example the Send command. I do understand that it has to do with the window not being active, even though the script is executed remotely. https://www.autoitscript.com/wiki/FAQ#Why_doesn.27t_my_script_work_on_a_locked_workstation.3F My goal is to be able to run the autoit scripts with no limitations, like I was running in my local machine. One important thing, all the flow is being triggered from a linux machine with no GUI. So that is why, I am using a jar file to start the winrm connection. So to sum up: starting server: centos with no GUI remote server: azure win 10 goal: from starting server, launch autoit script that is on remote server Thanks Piotr
-
With ProcessList ( ["name"] ) we are able to get the running process list from the local machine. Is there anyway to get the list from Remote machine, more precisely to get to know the status whether a particular application is running or not on remote machine using AutoIT? We can implement through PSList.exe, but again we need to parse the text of it to read the output. Is there any direct UDF in AutoIT?
-
I am trying to spawn a cmd.exe shell on a remote machine using psexec then proceed to running commands on that machine and reading the output. I.e. running pwd. Unfortunately, the code I have now will just immediately exit cmd on the remote system I'm trying to use the current code #include <Constants.au3> $pid = Run('C:\Users\test\Desktop\psexec.exe \\192.168.1.123 -u test -p "P@$$word1" -h -s cmd',@SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD) StdinWrite($pid,"pwd") StdinWrite($pid,@CRLF) Local $data Sleep(2000) $data &= StdoutRead($pid) ConsoleWrite("Debug:" & $data & @LF) StdinWrite($pid,"cd ") StdinWrite($pid,"C:\users\test2") StdinWrite($pid,@CRLF) StdinWrite($pid) $data &= StdoutRead($pid) ConsoleWrite("Debug:" & $data & @LF) http://stackoverflow.com/questions/19206834/command-prompt-and-autoit-stdinwrite <- credits to this stack overflow post Unfortunately, on my end, my cmd just starts/stops with this prompt Connecting with PsExec service on 192.1.123...Starting cmd on 192.168.1.123... cmd exited on 192.168.1.123 with error code 0. Any ideas how I can keep my shell open over psexec and still interact with it using AutoIT? Any feed back would be amazing! Thanks!
-
When I run a program in remote vm virtualbix machine windows 7 64 bit with psexec from my current machine. It is working fine in system context. C:\Users\kirud01>"C:\Software\application packaging\PsTools\PsExec.exe" -s -i -d "\\erwin-pc" -c -f "C:\Build\delete.exe" But when I run the same in user context i.e., without -s parameter. The screen is getting freezed in the remote machine. Could you please help me on this. If possible any alternatives for PSEXEC in AutoIT code itself.
- 2 replies
-
- psexec
- remote execution
-
(and 2 more)
Tagged with:
-
#include <Excel.au3> #include <Array.au3> #include <String.au3> #include <IE.au3> local $oIE =_IECreate ("https://example.com/export") sleep(5000) WinWait("Internet Explorer") WinActivate("Internet Explorer") send("{TAB 2}") sleep(1000) send("{ENTER}") sleep(1000) WinWait("Save As") WinActivate("Save As") send("PatientsData.csv") sleep(1000) send("{TAB 3}") sleep(1000) send("{ENTER}") sleep(1000) WinWait("Confirm Save As") WinActivate("Confirm Save As") send("{TAB 1}") sleep(1000) send("{ENTER}") WinWait("Blank Page - Internet Explorer") WinActivate("Blank Page - Internet Explorer") sleep(1000) RunWait('taskkill /F /IM "iexplore.exe"') Exit I have written the above simple script, which open a link and save it to the disk. I execute it and every thing works fine. I scheduled it in windows task and it executed fine. However when I scheduled it and I logged out of the system it stops working. The scheduled start the task.exe. Open the internet explorer send f2 to open the save as dialogue and after that it fails to send the tab. Since partial script is execute therefore I think that the problem is not related to permissions. The script stops at second or third line.
-
Good morning, I'm hoping some of you kind people could help me get started on a simple client on a workstation which can report events and computer information back to a console on a server to display all the information. I support primary schools which are always a mess when I take them on so this would be hugely helpful. I'm still very new to AutoIT so if anyone could point me in the right direction or any examples they have would be great. I did have a quick look on the forum but the topics I found looked way more complex for my needs. Thanks
-
Remote Gmail UDF Working It uses the Google atom API to get the Summary of the mail, The Summary of the mail is enough to get a direct link or a single function with parameters Execute any Function (or Script) and get the Return Values in your E-mail Requirements Gmail (Email) Account A Remote Computer with Internet Access Representation Functions You can now use you Gmail account to use Autoit Functions in a remote computer Can execute a function through reading the email. Can Email back the return values of an executed function. The parameter can even be a variable present in the script [see Syntax] Execute a Script through Direct Link. Execute multiple scripts zipped together through Direct Link. Can Email back the PID of the running executables with the scripts. Attach any file and get it in your email. Able to send the multiple attachments zipped together. Writes all the return values in a Log file. No email is executed twice, the Message IDs are stored for this purpose. Future Updates Support single line nesting Get the attachment, to execute the script Syntax Syntax for Functions PXL<FuncName>: (<data type>)<first param part a>+(<data type>)<first param part b>|(<data type>)<secondparam>/PXL Colon[:] - Separation of Function Name with the Parameters Bar [ | ] - Separation of different parameters Plus [+] - To Concatenate Values PXL /PXL - The tags where the code is enclosed Brackets [ () ] - For specifying the type of the parameter DataTypes - Always Preceded by any parameter and are enclosed with brackets ; | (s) - String ; | (n) - Number ; | (f) - Floating Number ; | (i) - Integer ; | (b ) - Binary ; | (v) - Variable ; | (h) - Hex ; | (m) - macro ; | (w) - Handle ; | (p) - Pointer Syntax for Direct Links PXL<DirectLink>^<Type>/PXL PXL /PXL - The tags where the code is enclosed Caret [ ^ ] - To Separate the Link and the Type Type - Either Zip or au3 DirectLink WebServer Some of webservers providing Direct Links DropBox [Tested - Recommended] Herosh [Tested]* FileToLink FileDen * DirectLink from Herosh changes therefore Example 4 wont work after a while Credits CaptainClucks - Atom Feed Jos - SMTP Mailer wraithdu - Zip UDF Change Log v1.0 - First Release v1.1 - Added Script Execution with Zipping Functionality v1.2 - Fixed some Minor bugs v1.3 - Added RemoteGmail_Startup v1.4 - Fixed Compiling Issues v1.5 - Added flexibility for execution of scripts from any email. The UDF - Download The UDF is currently tested on x86 All Comments ,Queries , Feedback and Advice are welcomed... The UDF with the Examples have been compiled in the following Zip v1.5 RemoteGmail.7z Previous Downloads : 1119 Regards Phoenix XL
-
Greetings! So I found a device named "X10 RF Remote Receiver" along with the remote in an old PC and it was connected to the motherboard with a 4-pole connector, so I soldered a USB plug on it and plugged it into my laptop - and it worked! But since programs don't usually come with support for all kinds of HIDs, this needed a little bit of software inbetween the drivers and whatever I want to control. After a few hours, I ran into a .NET tool that translated the remote signals into keystrokes, tailored to a wide variety of programs. Except they wanted money for it. After the free trial expired, my remote was once again useless, except for arrow keys and the power button. But today I managed to get hold of the raw signals! TL;DR: If your PC has an X10 type remote (and many other models are said to be compatible, I just can't guarantee this will work) and you've been wanting to directly control a script with it, this code is for you! (I seriously hope this is something new) First, you need the ActiveHome PRO SDK. After you've installed it, you can listen for key press events in your AutoIt script: $x10 = ObjCreate("X10.ActiveHome") If @error Then MsgBox(0,"",@error) EndIf $x10event = ObjEvent($x10, "_x10event", "_DIActiveHomeEvents") If @error Then MsgBox(0,"",Hex(@error)) Exit EndIf Func _x10eventRecvAction($parameter1,$parameter2,$parameter3,$parameter4,$parameter5,$parameter6,$parameter7) ConsoleWrite($parameter1 & @CRLF & $parameter2 & @CRLF & $parameter3 & @CRLF & $parameter4 & @CRLF & $parameter5 & @CRLF & $parameter6 & @CRLF & $parameter7) EndFunc While 1 Sleep(10) WEnd Your computer might still interpret remote key presses as keystrokes. To disable that, open your Control Panel and locate the Remote Control menu: Press any key on the remote to see which channel it sends on, then tell it to accept commands only from a different channel. The script will still work fine and Windows will leave you alone! Edit: It even survives unplugging and re-plugging the receiver. In fact, it fires a DeviseStop/DeviceStart event! Translating key presses on the remote into useful things is left as an exercise for the reader.
-
AutoIt Remote Procedure Call (RPC) - (Version 1.0)
Dhilip89 posted a topic in AutoIt Example Scripts
What is this? This is designed for allow any AutoIt scripts (must include UDF provided) to call remote functions (host script written in AutoIt) and consume returned results. How to allow remote client to call functions? Edit the AppHost.au3, change the following: Const $DEFAULT_RPC_ACCESS = $RPC_ACCESS_LOCALHOST to Const $DEFAULT_RPC_ACCESS = $RPC_ACCESS_REMOTE - Screenshots: Download Links: (Version 1.0) : http://www.mediafire.com/download/vcc1lacvmts21xd/AutoIt_RPC.zip