Jump to content

autoit_php - access autoit functions from php


Recommended Posts

here's some PHP code to access AutoIt functions from php: 
https://github.com/divinity76/autoit_php -
 

as of writing, only 5 functions are added: MouseMove and MouseClick and _ScreenCapture_Capture and WinWaitActive and Send,

it also has support for running in Cygwin (which is where i've developed it, but it *should*, in theory, run on normal php-cli for windows as well.), is there any community interest for this? 

 

example usage

<?php
require_once("autoit.class.php");
$au = new AutoIt();
$au->MouseMove(10, 10, 5);
$au->MouseClick("left");
echo "waiting up to 5 seconds for notepad window..";
if($au->WinWaitActive("[CLASS:Notepad]","",5)){
    echo "found notepad!\n";
    $au->Send("hello from autoit_php");
}else{
    echo "timed out while waiting for notepad.\n";
}
$imageBinary = $au->_ScreenCapture_Capture();
var_dump(strlen($imageBinary), imagecreatefromstring($imageBinary));
 



(i wanted to use some autoit functions from php-cli, and google wasn't of much help this time..)

Edited by HansHenrik
Link to post
Share on other sites
  • 1 year later...

i'm considering re-writing it using an stdin read + eval() -loop, 
the current "start a new instance of AutoIt for every command"-approach cannot (as far as i can think of..) support keeping handles around, like DllOpen() & co, but an eval-loop could do that

 

i know Eval() should usually be avoided, but.. can't think of a better way to do it either

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
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Exit
      I make plugins for WordPress and am dissatisfied with the built-in editor.
      I'm now looking for a way to format the PHP code like TIDY does in AU3-Editor.
      I've already tried some online tools but they are buggy or have too few formatting options.

      Buggy: http://www.phpformatter.com/
      Missing options: https://homepage-kosten.de/php_beautifier.php
      Here is the code to check if the beautifier is buggy:
      <?php /* Version: 2021.08.08#1 */ exit ( ' Version is: ' . chop ( substr ( file ( __FILE__ ) [ 2 ] , 9 , 13 ) ) ) ; /* Output from PHP Formatter: Format Error on line 5: parse error, unexpected '['([), expecting ')'! Output in Browser: Version is: 2021.08.08#1 */ ?> It would be great if you showed me a link to another beautifier that is not buggy and has options for compression.  
      e.g. do not put comments in a new line. 
      Or even better, a hint as to which PHP editor in WordPress meets these requirements.
      TIA Exit
    • By PeterVerbeek
      This topic give you access to an AutoIt functions library I maintain which is called PAL, Peter's AutoIt Library. The latest version 1.25 contains 212 functions divided into these topics:
      window, desktop and monitor GUI, mouse and color GUI controls including graphical buttons (jpg, png) logics and mathematics include constants string, xml string and file string dialogues and progress bars data lists: lists, stacks, shift registers and key maps (a.ka. dictionaries) miscellaneous: logging/debugging, process and system info Change log and files section  on the PAL website (SourceForge).
      A lot of these functions were created in the development of Peace, Peter's Equalizer APO Configuration Extension, which is a user interface for the system-wide audio driver called Equalizer APO.
    • By Rhidlor
      I was wondering if there was a library or something which provides the capability to Send() to inactive windows, and I know what you're thinking, I could just use ControlSend(); the reason I can't use that in this situation is because I need to hold down keys for specific prolonged periods of time. Also activating the window, Send()ing then de-activating the window isn't really an option here, I need the target window to always be in the background. I've looked around the forums for an adequate amount of time and didn't find anything useful, perhaps because the threads were all 10 years old, nevertheless, if anyone has any suggestions they would be greatly appreciated.
      Thanks!
    • By nss
      Hi all,
       
      I am making a program in which I use Bass audio library (with the wrapper for autoit that I found here on forums I think) because of its support for dx effects.
      My problem, though, is that when effects as reverb or echo/delay are added, the channel length is not extended as to fit the tail of the effect, so if the file was really short, you wouldn't even hear the reverb at all.
      I've tried setting the  buffer parameter even to 60k ms, updating the channel length to 60k ms, but nothing makes it so that the effects aren't being cut off.
      I've heard that I could add silence manually to wave files by adding the chr(0) characters, but haven't had any luck doing that, either.
      What I'm doing:
      initialize bass use streamCreateFile to load the wave file with the fx flag and length parameter set to 60000 set the config buffer to 60000 use channel set fx to add dx8 reverb use channel play to play the sound use bass update to update the length to 60000  
      I even tried having only silence in one wave file and tried joining two wave files together, but that didn't work either.
       
      Any help would be very much appreciated.
    • By Jefrey
      I've made this HTTP lib to simplify HTTP requests, mainly when dealing about POST data or file uploads.
      Three functions are available:
      string _HTTP_Get ( string $sURL ) string _HTTP_Post ( string $sURL , string $sPostData ) string _HTTP_Upload ( string $sURL , string $sFilePath , string $sFileField , string $sPostData = '' , string $sFilename = Default) Additionaly, two helper functions are also available:
      URLEncode($sStr) URLDecode($sStr) Full documentation: https://github.com/jesobreira/HTTP.au3/blob/master/README.md
      Fork me on Github: https://github.com/jesobreira/HTTP.au3
      Download lib + docs: https://github.com/jesobreira/HTTP.au3/archive/master.zip
×
×
  • Create New...