Jump to content
Sign in to follow this  

AutoItGUI => CmdLine => WebServer => CmdProgram

Recommended Posts


Hello there!

I've written an extensive GUI in AutoIT. This GUI enables the user to call a cmdl-programm using the ShellExecuteWait() command, sending along parameters. The cmdl-program is written in C++ and processes images. It returns an errornumber to the GUI, and stores the processed images along with some text files on the harddrive.

The user uses a singel, representative image to test various parameters. Once he has decided which parameters are effective, he uses the GUI to send the command to c++ program which processes an entire imagefolder (1000+ images) with the same parameters. 


In a next step, I would like to run the GUI and the c++ program on different computers. The server (running the c++ program) is a designated machine with windows 10 as operating system, containing the images to be processed on its local drive. This computer has no other purpose than this task. The client runs the GUI, same OS.

  1. The server will be behind a firewall with an unknown IP.
  2. Data transfer needs to be as limited as possible.

Here are some requirements/ideas:

  1. The server is in a network with unreliable internet connection. In case the connection is lost, it needs to pick up communication once the connection is reestablished.
  2. Basic security measures to protect the server against unauthorized access from outside the network is required. Simple username & password should be fine.
  3. I have no access to the router settings on the server side. No portforwarding possible :-(
  4. The server compresses the resulting images and stores them in a separate folder. This way, the user can download the images with reduced filesize to do some quality check. However: on request, the original image(s) need to be downloadable.


I have very little experience with webservers, but I think that a webserver is what I need. If anybody could advise me on which technology/language to use, this would save me tremendous time. Here is what I figured /lokked into so far:

  • Inittially I used ssh (and sftp)...but figured that this will not work reliably since I do not have access to the firewalls settings on the serverside. 
  • I figure a web-server with a dyamic IP would probably be a good idea.
  • I read about TCP-server:
  • About NetFlare-server:

  • and about HTTP-server
  • A PHP-server might be a good choice (since reliable and well documented), but I read that it might be tricky to start a cmdl-program like this...???

Your input, comments and questions are much appreciated! Thank you.




Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • Miliardsto
      By Miliardsto
      Hello. Im trying to make my scripts safe - unnable to decompile. I search for obfuscators and other security methods but the search has come to nothing.
      Then one guy gave that idea below. If I rightly understood this idea lets we talk about example program with this secutiy method.
      Program have two parts, first is only login gui and the second part is the main program Second part (main program) is uploaded on ftp server lets say that on http://xxx/autoit/main_program.au3 So we have the first gui with login, we put correctly login and pass and this is the moment when code from http://xxx/autoit/main_program.au3 will be downloaded and executed Finally main program will be appear This is the similiar way like new games are protected by cracking.
      I have few questions in this moment about this:
      Is something like that even possible to do with the autoit? First part of program (login gui) must have somewhere given that link to download the rest of code - http://xxx/autoit/main_program.au3 to make it execute. As we know this first part of program is easy able to hack and retrieve this web url http://xxx/autoit/main_program.au3 where located is main part of program. Is the way to encrypt or secure it? If only code will be stored in .php we know it cannot be previewed. So it could for example get code from .php file instead of .au3 I know that methods works in other languages (I dont know exactly how) thats becouse I only speculates, maybe something may looks different in these solution? Other way would be compiling second part of code on web server (there are available web autoit servers) maybe this way is possible? Tell me anything U know about this ideas and if its even possible to achieve.
      Thanks for ur any response, advice or thoughts

    • Jefrey
      By Jefrey
      I made this to convert data to PHP's serialize() function return format.
      This is for those who, somewhy [?], can't use JSON, for example.
      Just two simple functions: Serialize() and Unserialize(). Data may be all accepted types in PHP (array, float, int, string), except objects.
      Examples (included in package):
      #include 'serialize.au3' Dim $otherArray[4] = ["hai", "halo", "apa", "kabar"] Dim $aArray[7] = ['test', 'lol', 'cool', 'amazing', 123, $otherArray, 2.50] $sSerialized = Serialize($aArray) MsgBox(0, "", $sSerialized) It will show:
      a:7:{i:0;s:4:"test";i:1;s:3:"lol";i:2;s:4:"cool";i:3;s:7:"amazing";i:4;i:123;i:5;a:4:{i:0;s:3:"hai";i:1;s:4:"halo";i:2;s:3:"apa";i:3;s:5:"kabar";}i:6;d:2.5;} Now, if we want to do the contrary, which is, converting from serialized string back to original data:
      #include 'serialize.au3' #include <Array.au3> ; Needed only to use _ArrayDisplay. Not required to use serialize. $aUnserialized = Unserialize('a:7:{i:0;s:4:"test";i:1;s:3:"lol";i:2;s:4:"cool";i:3;s:7:"amazing";i:4;i:123;i:5;a:4:{i:0;s:3:"hai";i:1;s:4:"halo";i:2;s:3:"apa";i:3;s:5:"kabar";}i:6;d:2.5;}') _ArrayDisplay($aUnserialized) _ArrayDisplay($aUnserialized[6]) As _ArrayDisplay doesn't support multidimensional array (and, in the previous example, we converted a multidimensional array to serialized data), we must use it twice. So we will see:

      Please notice the differences between AutoIt and PHP's approach of arrays. It is different. Be careful, mainly when getting arrays from PHP and putting into AutoIt. I really recommend using only integer array keys, or switching to JSON.
      License: CC BY 4.0
      Download: https://www.autoitscript.com/forum/files/file/348-unserialize-in-autoit-php-compatible/