hpwNLAutoItDll released

Machine-specific discussion
Unix, Linux, OS X, OS/2, Windows, ..?
Locked
HPW
Posts: 1390
Joined: Thu Sep 26, 2002 9:15 am
Location: Germany
Contact:

hpwNLAutoItDll released

Post by HPW »

Just upload a import module for AutoIt on newLISP.

Download:
http://www.hpwsoft.de/anmeldung/html1/n ... LISP3.html


Imported functions:

AUTOIT_Sleep
AUTOIT_BlockInput
AUTOIT_ClipGet
AUTOIT_ClipPut
AUTOIT_DetectHiddenText
AUTOIT_IfWinActive
AUTOIT_IfWinExist
AUTOIT_IniRead
AUTOIT_IniWrite
AUTOIT_IniDelete
AUTOIT_LeftClick
AUTOIT_LeftClickDrag
AUTOIT_MouseMove
AUTOIT_MouseGetPosX
AUTOIT_MouseGetPosY
AUTOIT_RightClick
AUTOIT_RightClickDrag
AUTOIT_SetCapslockState
AUTOIT_SetStoreCapslockMode
AUTOIT_Send
AUTOIT_SetKeyDelay
AUTOIT_SetTitleMatchMode
AUTOIT_SetWinDelay
AUTOIT_Shutdown
AUTOIT_WinWait
AUTOIT_WinWaitActive
AUTOIT_WinWaitNotActive
AUTOIT_WinWaitClose
AUTOIT_WinHide
AUTOIT_WinRestore
AUTOIT_WinMinimize
AUTOIT_WinMaximize
AUTOIT_WinMinimizeAll
AUTOIT_WinActivate
AUTOIT_WinClose
AUTOIT_WinMove
AUTOIT_WinSetTitle
AUTOIT_WinGetActiveTitle
AUTOIT_WinShow
AUTOIT_WinMinimizeAllUndo

Edit: Link and headline
Last edited by HPW on Sat Feb 07, 2009 6:28 am, edited 3 times in total.
Hans-Peter

nigelbrown
Posts: 429
Joined: Tue Nov 11, 2003 2:11 am
Location: Brisbane, Australia

Post by nigelbrown »

Thanks,
I've found auto-it very helpful automating some windows things in the past.
Nigel

nigelbrown
Posts: 429
Joined: Tue Nov 11, 2003 2:11 am
Location: Brisbane, Australia

Post by nigelbrown »

Hi Hans-Peter,
I was looking at hpwAutoIt.lsp and thinking on
(define (allocate n)
(join(map(fn(x)" ")(sequence 1 n))))
for allocating space. For another approach other than the list operations
one could use pack viz
(define (allocate n)
(pack (string "s" n) " "))
which gives one space followed by n-1 nulls in a string buffer.
This buffer seems to work for the AUTOIT_ClipGet function.
I've not looked at newlisp source code to see how efficient pack
would be for this use.
Nigel

nigelbrown
Posts: 429
Joined: Tue Nov 11, 2003 2:11 am
Location: Brisbane, Australia

Post by nigelbrown »

I remembered the timing function (time which shows relative times:

> (define (allocate n) (join(map(fn(x)" ")(sequence 1 n))))
(lambda (n) (join (map (lambda (x) " ") (sequence 1 n))))
> (time (allocate 50000))
110
> (define (allocate n) (pack (string "s" n) " "))
(lambda (n) (pack (string "s" n) " "))
> (time (allocate 50000))
0
>


Nigel

HPW
Posts: 1390
Joined: Thu Sep 26, 2002 9:15 am
Location: Germany
Contact:

Post by HPW »

Nigel,

Thanks for the suggestion.
Always very welcome. Allocate was an quick suggestion from another thread here from Lutz, but he has stated that it is not the best performance code.

So your version is definatly welcomed.
I will put it in.
Hans-Peter

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

For timing I do:

(time (dotimes (x 1000000) (allocate 50))) => 4516 ; 4.5 micro seconds each

The overhead for (dotimes ...) is small:

(time (dotimes (x 1000000))) => 78 ; 78 nano seconds each

Lutz

lyl
Posts: 44
Joined: Sun Mar 25, 2018 5:00 am

Re: hpwNLAutoItDll released

Post by lyl »

when :

Code: Select all

(load "hpwAutoIt.lsp")
error message given:ERR: problem loading library in function import : "AutoItDLL.dll"
Why?

Ps:
newlisp v10.7.4, win7
AutoItDLL.dll, hpwAutoIt.lsp, newlisp.exe are in the same folder.

HPW
Posts: 1390
Joined: Thu Sep 26, 2002 9:15 am
Location: Germany
Contact:

Re: hpwNLAutoItDll released

Post by HPW »

Hello,
Just tried it again:
newLISP v.10.7.4 32-bit on Windows IPv4/6 libffi, options: newlisp -h

> (load "hpwAutoIt.lsp")
AUTOIT_WinMinimizeAllUndo@1000161F
>
Do you have a 32bit newlisp installed?
(The thread and the dll is from 2004)

Regards
Hans-Peter

Locked