Sign in to follow this  
Followers 0
AutoIT Geek

Autoit source code

16 posts in this topic

Hi

im looking for the latest autoit ( release, ie, 3.1.1 ) c++ source code

ive searched the site and found refrence only to 3.1.0 in the archive and thats it B)

that source code is missing some stuff from that release and the betas.

anyone can point me to the release and the latest betas too ?

thanks

Share this post


Link to post
Share on other sites



Hi

im looking for the latest autoit ( release, ie, 3.1.1 ) c++ source code

ive searched the site and found refrence only to 3.1.0 in the archive and thats it B)

that source code is missing some stuff from that release and the betas.

anyone can point me to the release and the latest betas too ?

thanks

Try HERE


Get Beta versions Here Get latest SciTE editor Here AutoIt 1-2-3 by Valuater - A great starting point.

Time you enjoyed wasting is not wasted time ......T.S. Elliot
Suspense is worse than disappointment................Robert Burns
God help the man who won't help himself, because no-one else will...........My Grandmother

Share this post


Link to post
Share on other sites

Hi

im looking for the latest autoit ( release, ie, 3.1.1 ) c++ source code

ive searched the site and found refrence only to 3.1.0 in the archive and thats it B)

that source code is missing some stuff from that release and the betas.

anyone can point me to the release and the latest betas too ?

thanks

Only a part of Autoit code if avalable with general release only.

THe difference with 3.1.1 was so small that JON decide not to upload the 2 or 3 lines modification.

:o

Share this post


Link to post
Share on other sites

Been there, searched around, looked every link ...

nada

the only place ive found somthing is

http://www.autoitscript.com/autoit3/files/...-v3.1.0-src.exe

and that is v3.1.0

B)

That must mean that Jon has decided not to release the source for any of the others.


Get Beta versions Here Get latest SciTE editor Here AutoIt 1-2-3 by Valuater - A great starting point.

Time you enjoyed wasting is not wasted time ......T.S. Elliot
Suspense is worse than disappointment................Robert Burns
God help the man who won't help himself, because no-one else will...........My Grandmother

Share this post


Link to post
Share on other sites

ok, i c

so, where can i find the source of DLLCALL ?

im scripting some udf's and this thing is killing them one by one

no function pointers but it can recieve a function as an argument ???????

parameters are incorrect, i cant do NULL like this ( "str", "" ) have to ( "int", 0 )

if i do this -> $HWND = 0x12345678 and pass is to dllcall, i get -> 0x00000000 WHAT IS THAT ????

some "hwnd" i have to do "int"

only in beta 90 this is fixed ... somehow

bad calls, i get "no such function" as a return error ?

so, i just wanted to peek at the source and see i fi can correct some stuff

autoit is very promising but ... this bugs ... so help me god ... are annoying

Share this post


Link to post
Share on other sites

parameters are incorrect, i cant do NULL like this ( "str", "" ) have to ( "int", 0 )

Do you mean NULL as in a NULL pointer: char *pszChar = NULL;

or a NULL string (incorrect terminology): char *pszChar = "";

There is a difference. The first initializes pszChar to point to nothing; dereferencing this pointer is undefined behavior and will probably lead to a crash of some sort. The second initializes pszChar to a null-character terminated string which is empty. Dereferencing pszChar in this case is perfectly valid and the result is character 0 (C\C++ literal '\0').

if i do this -> $HWND = 0x12345678 and pass is to dllcall, i get -> 0x00000000 WHAT IS THAT ????

That's a logic flaw. You shouldn't ever initialize an HWND with a literal value. HWND's are not static. Ignorning the logic flaw, I highly doubt the behavior changed in 3.1.1.90. I suspect it changed back around 3.1.1.66 when I rewrote how HWND's are handled internally. I don't rule out there being some remaining bugs as a result.

so, i just wanted to peek at the source and see i fi can correct some stuff

You use the term "correct" as if this behavior is wrong. As best I can tell, you don't have (much of) a clue how to use DllCall() and are trying to blame all your problems on AutoIt when in fact, you are the root cause of the problem.

Incidentally, I don't imagine you're going to have much luck "fixing" non-existent bugs in DllCall() given that you don't demonstrate a basic understanding of the terminlogy in use and/or of the basic C++ and Windows types. I'm not too optimistic you'll understand the C++ and inline Assembly used in DllCall().

autoit is very promising but ... this bugs ... so help me god ... are annoying

Perhaps you should spend more time learning how to do things and less time bitching about how annoying they are. Especially spend less time bitching when you're just plain wrong.

Share this post


Link to post
Share on other sites

proof of concept

---------------------------------------------------------------------------------------------

Func GetWindowHandle( $WindowTitle )

;$Result = DllCall( "USER32.DLL", "hwnd", "FindWindow", "str", "", "str", $WindowTitle )

$Result = DllCall( "USER32.DLL", "hwnd", "FindWindow", "int", 0, "str", $WindowTitle )

Return $Result[ 0 ]

EndFunc

MsgBox( 0, "", GetWindowHandle( $WindowTitle ) )

-----------------------------------------------------------------------------------------------

open a window with a button control and live it open, now run this IN V3.1.1

#include <array.au3>

$ControlHandle = ControlGetHandle( "window name"", "Button name" )

$Result = DllCall( "USER32.DLL", "int", "GetDlgCtrlID", "hwnd", $ControlHandle )

_ArrayDisplay( $Result, "1" ) ;<- copy the hwnd that you got as a result

$HWND = ;<- put it here

$Result = DllCall( "USER32.DLL", "int", "GetDlgCtrlID", "hwnd", $HWND )

_ArrayDisplay( $Result, "2" )

------------------------------------------------------------------------------------------------------------------------

WHAT DO YOU GET ????????????? B):o:graduated: WHY ????????????? OPPPS ... A BUG

about me bitching ... i did NOT point fingers to you or others about bugs !!!

bugs are a fundamental issue with any S/W and i understand this very clearly

you do NOT know me or my abilities to do this or that and what i do or dont understand !!

i have found meny flaws in DLLCALL in v3.1.1 and since autoit is declerd as "open source" i want to look at the source and contribute my abilities to make it better !!

now, i dont know you or what you do but heres an advice, if one tells that there is a bug and you are the develpoer of the product ... GIVE IT A LOOK BEFORE YOU BITCH HIM BACK

Share this post


Link to post
Share on other sites

theres a function WinGetHandle that gets the windows handle for use with other functions thats already built into autoit


FootbaG

Share this post


Link to post
Share on other sites

theres a function WinGetHandle that gets the windows handle for use with other functions thats already built into autoit

i know, i looked out the entire function base and help file.

ive done some VERY VERY cool things with this stuff

then, i wonderd how all this is implamented and looked at the c++ source, did you look at it ?

ITS HUGE ... PLAIN HUGE , calls to functions upon calls to functions and parameters ...

there are meny things that can be implamented with winow API

and i thought, "hay, why not, lets see if i can do it little and fast with window API ???"

Share this post


Link to post
Share on other sites

Func GetWindowHandle($WindowTitle)
   ;$Result = DllCall( "USER32.DLL", "hwnd", "FindWindow", "str", "", "str", $WindowTitle )
    $Result = DllCall( "USER32.DLL", "hwnd", "FindWindow", "int", 0, "str", $WindowTitle)
    Return $Result[ 0 ]
EndFunc  ;==>GetWindowHandle


Run("Calc")
WinWait("Calc")
MsgBox(0, "", GetWindowHandle("Calculator"))
;open a window with a button control and live it open, now run this IN V3.1.1

#include <array.au3>
$ControlHandle = ControlGetHandle( "Calculator", "","Button74" )
$Result = DllCall( "USER32.DLL", "int", "GetDlgCtrlID", "hwnd", $ControlHandle)
ConsoleWrite('@@ Debug(1) : $Result[1] = ' & $Result[1] & @lf & '>Error code: ' & @error & @lf);### Debug Console
_ArrayDisplay($Result, "1");<- copy the hwnd that you got as a result 
$HWND = $Result[1]
$Result = DllCall( "USER32.DLL", "int", "GetDlgCtrlID", "hwnd", $HWND)
ConsoleWrite('@@ Debug(2) : $Result[1] = ' & $Result[1] & @lf & '>Error code: ' & @error & @lf);### Debug Console
_ArrayDisplay($Result, "2");<- copy the hwnd that you got as a result

These _ArrayDisplay() commands give the same output... so what is the issue you are trying to point out here ?


Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

1. First

$Result = DllCall( "USER32.DLL", "hwnd", "FindWindow", "str", "", "str", $WindowTitle ) NOT working

$Result = DllCall( "USER32.DLL", "hwnd", "FindWindow", "int", 0, "str", $WindowTitle) WORKING

2. Second

, for whatever reason, this line --> " $HWND = $Result[1] " does NOT get passed right

to DLLCALL

i tried to do it manually, and copied the $Result[ 1 ] value in this format $HWND = 0x12345678 ...

BADA BOOOM

outside the DLLCALL its OK, inside it ... 00000000 ????

now, heres another bug

$Result = DllCall( "USER32.DLL", "hwnd", "FindWindowEx", "hwnd", WinGetHandle( $WindowTitle ) , "hwnd", 0, "str", "", "str", $ControlText )

the way to fix it is this

$Result = DllCall( "USER32.DLL", "hwnd", "FindWindowEx", "hwnd", WinGetHandle( $WindowTitle ), "int", 0, "int", 0, "str", $ControlText )

"hwnd", 0 or "hwnd", 0x00000000 or "hwnd", 0x0 does NOT work --> "int", 0 WORKS

why ? god knows

Share this post


Link to post
Share on other sites

#14 ·  Posted (edited)

1. First

$Result = DllCall( "USER32.DLL", "hwnd", "FindWindow", "str", "", "str", $WindowTitle ) NOT working

$Result = DllCall( "USER32.DLL", "hwnd", "FindWindow", "int", 0, "str", $WindowTitle) WORKING

Correct, "" doesn't seem to be a correct classname and Null works obviously...see: http://msdn.microsoft.com/library/default..../findwindow.asp

HWND FindWindow(

LPCTSTR lpClassName, LPCTSTR lpWindowName );

Parameters

lpClassName [in] Pointer to a null-terminated string that specifies the class name or a class atom created by a previous call to the RegisterClass or RegisterClassEx function. The atom must be in the low-order word of lpClassName; the high-order word must be zero. If lpClassName points to a string, it specifies the window class name. The class name can be any name registered with RegisterClass or RegisterClassEx, or any of the predefined control-class names.

If lpClassName is NULL, it finds any window whose title matches the lpWindowName parameter.

lpWindowName [in] Pointer to a null-terminated string that specifies the window name (the window's title). If this parameter is NULL, all window names match.

why ? god knows

I am not even gonna try to look at the rest since I am kind of tired of your way of writting your post....

Edited by JdeB

Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

Maybe someone should better read B)

"Pointer to a null-terminated string" -> "ptr"

This is what I mean:

; This one
$pTitle = DllStructCreate("char[260]")
DllStructSetData($pTitle, 1, "C:\Windows")
$result = DllCall("user32.dll", "hwnd", "FindWindow", "ptr", 0, "ptr", DllStructGetPtr($pTitle))

; Or this one
$result = DllCall("user32.dll", "hwnd", "FindWindow", "ptr", 0, "str", "C:\Windows")

Msgbox(0, "", $result[0])

So long....

Holger

Share this post


Link to post
Share on other sites

You're proving my point exactly. In your first example, you are passing an empty string, not a NULL pointer. There is a huge difference and this does provide a difference in behavior. This is not a bug in AutoIt, it's a bug in your brain that you don't read my response when I told you this the first time in post #7. If you were even remotely qualified to "fix" DllCall() bugs, you would already know all about NULL pointers versus empty strings and you wouldn't be demonstrating your ignorance.

As for the rest of your "problem", it seems to be based on the assumption that we haven't advanced past 3.1.1 which we have. I suggest you try out code that isn't over a year old and tell us how many bugs there are in our software once you use something that was released recently.

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