How can I call a DLL from a scripting language?
Question: I have a third-party product, a terminal emulator, which provides a DLL that
can be linked to a C program to basically automate the driving of this product
(send keystrokes, detect what's on the screen and so forth).

I want to drive it from a scripting language (I'm comfortable with Python and
slightly less so with Perl) so that we don't have to compile and send out
executables to our customers whenever there's a problem found.

We also want the customers to be able to write their own scripts using ours as
baselines and they won't entertain the idea of writing and compiling C code.

What's a good way of getting Python/Perl to interface to a Windows DLL. My
first thought was to write a server program and have a Python script
communicate with it via TCP but there's got to be an easier solution.


Answer: One way to call C libraries from Python is to use
[ctypes](https://docs.python.org/library/ctypes.html):

    
    
    >>> from ctypes import *
    >>> windll.user32.MessageBoxA(None, "Hello world", "ctypes", 0);
    

