Sign in to follow this  
Followers 0

AutoItGUI => CmdLine => WebServer => CmdProgram

1 post in this topic

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  
Followers 0

  • Similar Content

    • 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