Jump to content

Recommended Posts

Posted

I will remove COM from the next version of AutoIt.

I can clearly remember the similar situation in past when developers removed StringAddThousandsSep() from standard UDFs just because of too much bug fix requests.

I use this (latest one) function in several of my current projects and hopefully its simple workaround to copy its sources from latest Autoit where this function is available.

Anyway I think this is way to hell for Autoit if it will be cripled just because of bad mood of some developers.

I hope situation will not be so bad anyway and I hope Valik won't ban me now for this post.

  • Moderators
Posted

Valik,

If all I can expect for all the hard work trancexx has put into getting COM working right is a bunch of bitching

Please do not tar us all with the same brush - it is a very small (albeit vocal) minority who are doing that. The rest of us are extremely grateful for the work that has been done to get the COM implementation to work correctly - just as we are when any other unseen "gotcha"s are fixed. :D

If any such work to produce a more stable AutoIt results in a performance hit then I personally (although I am sure I speak for many others too) am quite prepared to put up with it. Although any Dev promises of possible future speed improvements are always welcome and make it easier to accept. :oops:

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Posted (edited)

From the code posted in ticket 2037 run on various versions of AutoIt:

AutoIt Version:3.3.6.1
Time:1539.31899360917 ms

AutoIt Version:3.3.7.20
Time:5075.37811937188 ms

AutoIt Version:3.3.7.21
Time:1545.31017534138 ms

3.3.7.21 soon. I hope you all feel stupid now for making such a big deal over this.

Edited by Valik
Forgot to link ticket.
Posted

Special Note: This is an official beta release but it is not digitally signed. Only Jon has the certificate used for digital signatures and the last time I checked I was not Jon.

3.3.7.21 (6th November, 2011 (Beta)

AutoIt:

- Fixed: Various documentation typos and grammatical errors.

- Fixed #1982: Crash in FileGetShortName() and FileGetLongName().

- Fixed #2046: DirGetSize("") was returning the size of the working directory root instead of -1 and setting @error.

- Fixed #2037: COM execution slowdown.

- Changed: Parentheses are required when invoking objects after all method names in order to have correct internal handling.

- Changed: Hex() default sizing for pointer types.

UDFs:

- Fixed #2004: Functions that accept Control ID/Handle were not correctly documented.

The following changes are script breaking changes:

AutoIt:

  • ObjName() has had a number of bug fixes and changes that may affect data returned. Built-in UDFs have been changed to accomodate this but custom scripts may need to be edited.
  • ObjEvent() AutoIt.Error objects no longer have Raise() or Clear() methods and the properties are read-only.
  • Int() and Hex() no longer set @error.
  • COM methods now require parenthesis so the language can internally detect properties versus methods easier.

Note: For all you whiny bitches, COM speed is almost as fast as 3.3.6.1. Thank all of you for the little faith you show in us.

Report issues here.

Download here.

Posted (edited)

Additional note for people with portable libras in their pockets (I have one too, so no sweat).

Take results of current 3.3.7.21 version of AutoIt as something you will be measuring against in future.

Speed comparisons to any version before this one wouldn't be correct and would not give correct results simply because you would be comparing apples and oranges. Rotten apples, that is.

That's all. God speed, live long and prosper and may the force be with you.

edit:

Oh yes, I forgot... please test this version thoroughly. It's very important that we spot any possible bug in time. I would be extremely grateful and you know you want that. Thanks.

Edited by trancexx
There was some letters missing, go figure

♡♡♡

.

eMyvnE

Posted

Thank you Valik and trancexx! I see my previous post made you angry and I'm the reason for the "ungrateful whiny bitches" term...

You were right that I did not read what you have written before. Somehow I've missed your post where you say you know what is causing these delays. I'm sorry.

And I'm not ungrateful. I have thanked you guys multiple times in each of my posts and I continue to do so. I appreciate all your hard work and did not meant to be disrespectful or ungrateful!

I have 11 months old son here (my first one) and the things are not peachy, but I try to support you guys whenever I can. As I mentioned before, AutoIt is currently my main source of income, so I wish you all live long and prosper and I hope you keep doing this extraordinary thing you are doing with AutoIt!

Best regards!

Posted (edited)

Thank you Valik and trancexx! I see my previous post made you angry and I'm the reason for the "ungrateful whiny bitches" term...

You were right that I did not read what you have written before. Somehow I've missed your post where you say you know what is causing these delays. I'm sorry.

And I'm not ungrateful. I have thanked you guys multiple times in each of my posts and I continue to do so. I appreciate all your hard work and did not meant to be disrespectful or ungrateful!

I have 11 months old son here (my first one) and the things are not peachy, but I try to support you guys whenever I can. As I mentioned before, AutoIt is currently my main source of income, so I wish you all live long and prosper and I hope you keep doing this extraordinary thing you are doing with AutoIt!

Best regards!

I know you meant it as an expression only, but still I will correct you with one thing. As far as I'm concerned there is no hard work involved, only pure joy and satisfaction.

Your son... say Dragana says hello :D kisses.

Edited by trancexx

♡♡♡

.

eMyvnE

Posted

@dv8,

When I said "a few percent" I _finally_ wasn't that far off the current mark. :D

This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.
Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe here
RegExp tutorial: enough to get started
PCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta.

SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.
SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.
An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.
SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)
A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!
SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)

Posted

Thank you Valik and trancexx! I see my previous post made you angry and I'm the reason for the "ungrateful whiny bitches" term...

You were right that I did not read what you have written before. Somehow I've missed your post where you say you know what is causing these delays. I'm sorry.

And I'm not ungrateful. I have thanked you guys multiple times in each of my posts and I continue to do so. I appreciate all your hard work and did not meant to be disrespectful or ungrateful!

I have 11 months old son here (my first one) and the things are not peachy, but I try to support you guys whenever I can. As I mentioned before, AutoIt is currently my main source of income, so I wish you all live long and prosper and I hope you keep doing this extraordinary thing you are doing with AutoIt!

Best regards!

You were not the only one who did not let the subject go. It wasn't directed entirely at you.
Posted

AutoIt Version:3.3.6.1
Time:1539.31899360917 ms
AutoIt Version:3.3.7.20
Time:5075.37811937188 ms
AutoIt Version:3.3.7.21
Time:1545.31017534138 ms

Truth to be told I felt a little awkward insisting on the complains. But now you've posted the proof yourself that something really WAS fucked up along the way fixing something else. Oh well, I guess it's always just a question of perspective who really does the whining.
Posted

Nothing was fucked up. Nothing was broken. This is a script-breaking change and a change with potential for huge regressions and it's being made at the 11th hour before an official release. I did not want to make it this close to a release. It was clear, though, that we had to fix it or there would be a lot of idiots bitching. If 3.3.8 is broken I will not hesitate to rub it in the communities face that they should listen to me and bitch a bit less.

Posted (edited)

Just for the records regarding COM speed:

A script creating 5 charts with Excel 2010 on Windows 7 64bit runs in

3.2 seconds with Autoit 3.3.6.1

7.3 seconds with Autoit 3.3.7.21

16.8 seconds with Autoit 3.3.7.20

No whining - I just wanted to let you know what I got.

Edited by water

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Posted (edited)

From the code posted in ticket 2037 run on various versions of AutoIt:

AutoIt Version:3.3.6.1
Time:1539.31899360917 ms

AutoIt Version:3.3.7.20
Time:5075.37811937188 ms

AutoIt Version:3.3.7.21
Time:1545.31017534138 ms

3.3.7.21 soon. I hope you all feel stupid now for making such a big deal over this.

I understand Valiks post that 3.3.7.21 should be nearly as fast as 3.3.6.1.

Edit:

Added the runtime for version 3.3.7.20 to my

Edited by water

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

  • 4 weeks later...
Posted (edited)

Let's see what struct type is, why it's added and how to use it.

Got a question related to the above mentioned change in dllcall(). From some testing it seems to me like a good way to improve the performance of the call. Now I've tried to adopt it in

I've changed the parameter

"ptr", DllStructGetPtr($_FFX_stFileFindInfo)

to

"struct*", $_FFX_stFileFindInfo

in the _FileFindEx.au3 include, but sadly the call seems to fail for me now. Does this happen due to the alignment of the structure?

Best Regards

Edited by KaFu
Posted

Looks like he mangled the structure, based on his comments. He needs to fix that back to the API's spec and with respect to nested structures in the AutoIt betas, ie the DllStructCreate keywords STRUCT/ENDSTRUCT.

Posted (edited)

Thanks for your feedback! Gives me a good point to start, I'll dive into it :D...

Edit:

Hmmm, that did not work out as planed.

#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Version=Beta
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****

ConsoleWrite(_FindFile_Test() & @TAB & @error & @CRLF)

Func _FindFile_Test()
    $tWIN32_FIND_DATA = DllStructCreate("dword;STRUCT;dword;dword;ENDSTRUCT;STRUCT;dword;dword;ENDSTRUCT;STRUCT;dword;dword;ENDSTRUCT;dword;dword;dword;dword;wchar[260];wchar[14]")
    ; http://msdn.microsoft.com/en-us/library/windows/desktop/aa365740(v=vs.85).aspx
    $aRet = DllCall("kernel32.dll", "handle", "FindFirstFileW", "wstr", @DesktopDir & "*.*", "struct*", $tWIN32_FIND_DATA)
    ; http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx
    If @error Then Return SetError(1, @error, -1)
    If $aRet[0] = -1 Then Return SetError(2, 0, -1) ; INVALID_HANDLE_VALUE = -1
    Return $aRet[0]
EndFunc   ;==>_FindFile_Test
Edited by KaFu
Posted

Can't get it to work. Either it's me or it's a bug :D, would be great if a Dev could take a look.

#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Version=Beta
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
ConsoleWrite(_FindFile_Test_Str_uint() & @TAB & @error & @CRLF)
ConsoleWrite(_FindFile_Test_Str_dword() & @TAB & @error & @CRLF)
ConsoleWrite(_FindFile_Test_Ptr_uint() & @TAB & @error & @CRLF)
ConsoleWrite(_FindFile_Test_Ptr_dword() & @TAB & @error & @CRLF)
Func _FindFile_Test_Str_uint()
 $tWIN32_FIND_DATA = DllStructCreate("uint;STRUCT;uint;uint;ENDSTRUCT;STRUCT;uint;uint;ENDSTRUCT;STRUCT;uint;uint;ENDSTRUCT;uint;uint;uint;uint;wchar[260];wchar[14]")
 $aRet = DllCall("kernel32.dll", "handle", "FindFirstFileW", "wstr", @DesktopDir & "*.*", "struct*", $tWIN32_FIND_DATA)
 If @error Then Return SetError(1, @error, -1)
 If $aRet[0] = -1 Then Return SetError(2, 0, -1) ; INVALID_HANDLE_VALUE = -1
 DllCall("kernel32.dll", "bool", "FindClose", "handle", $aRet[0])
 Return $aRet[0]
EndFunc   ;==>_FindFile_Test_Str_uint
Func _FindFile_Test_Str_dword()
 $tWIN32_FIND_DATA = DllStructCreate("dword;STRUCT;dword;dword;ENDSTRUCT;STRUCT;dword;dword;ENDSTRUCT;STRUCT;dword;dword;ENDSTRUCT;dword;dword;dword;dword;wchar[260];wchar[14]")
 $aRet = DllCall("kernel32.dll", "handle", "FindFirstFileW", "wstr", @DesktopDir & "*.*", "struct*", $tWIN32_FIND_DATA)
 If @error Then Return SetError(1, @error, -1)
 If $aRet[0] = -1 Then Return SetError(2, 0, -1) ; INVALID_HANDLE_VALUE = -1
 DllCall("kernel32.dll", "bool", "FindClose", "handle", $aRet[0])
 Return $aRet[0]
EndFunc   ;==>_FindFile_Test_Str_dword
Func _FindFile_Test_Ptr_uint()
 $tWIN32_FIND_DATA = DllStructCreate("uint;uint;uint;uint;uint;uint;uint;uint;uint;uint;uint;wchar[260];wchar[14]")
 $aRet = DllCall("kernel32.dll", "handle", "FindFirstFileW", "wstr", @DesktopDir & "*.*", "ptr", DllStructGetPtr($tWIN32_FIND_DATA))
 ; [url="http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx"]http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx[/url]
 If @error Then Return SetError(1, @error, -1)
 If $aRet[0] = -1 Then Return SetError(2, 0, -1) ; INVALID_HANDLE_VALUE = -1
 DllCall("kernel32.dll", "bool", "FindClose", "handle", $aRet[0])
 Return $aRet[0]
EndFunc   ;==>_FindFile_Test_Ptr_uint
Func _FindFile_Test_Ptr_dword()
 $tWIN32_FIND_DATA = DllStructCreate("dword;dword;dword;dword;dword;dword;dword;dword;dword;dword;dword;wchar[260];wchar[14]")
 $aRet = DllCall("kernel32.dll", "handle", "FindFirstFileW", "wstr", @DesktopDir & "*.*", "ptr", DllStructGetPtr($tWIN32_FIND_DATA))
 ; [url="http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx"]http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx[/url]
 If @error Then Return SetError(1, @error, -1)
 If $aRet[0] = -1 Then Return SetError(2, 0, -1) ; INVALID_HANDLE_VALUE = -1
 DllCall("kernel32.dll", "bool", "FindClose", "handle", $aRet[0])
 Return $aRet[0]
EndFunc   ;==>_FindFile_Test_Ptr_dword
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...