Leaderboard
Popular Content
Showing content with the highest reputation on 01/26/2021 in all areas
-
What exactly is enes 2.0? What does au3info tell you for this Control? What have you tried ? Show the script that isn't working! Jos (A dentist must be jealous)3 points
-
Version 1.6.3.0
17,298 downloads
Extensive library to control and manipulate Microsoft Active Directory. Threads: Development - General Help & Support - Example Scripts - Wiki Previous downloads: 30467 Known Bugs: (last changed: 2020-10-05) None Things to come: (last changed: 2020-07-21) None BTW: If you like this UDF please click the "I like this" button. This tells me where to next put my development effort1 point -
Version 1.7.0.1
10,054 downloads
Extensive library to control and manipulate Microsoft Outlook. This UDF holds the functions to automate items (folders, mails, contacts ...) in the background. Can be seen like an API. There are other UDFs available to automate Outlook: OutlookEX_GUI: This UDF holds the functions to automate the Outlook GUI. OutlookTools: Allows to import/export contacts and events to VCF/ICS files and much more. Threads: Development - General Help & Support - Example Scripts - Wiki BTW: If you like this UDF please click the "I like this" button. This tells me where to next put my development effort KNOWN BUGS (last changed: 2020-02-09) None1 point -
Control Viewer - AutoIt Window Info Tool
argumentum reacted to pixelsearch for a topic
Hi argumentum Wow... you are fast, it takes me much (much) more time to script and test. Just a few comments on your precedent post, but there are still plenty of tests to be done I notice you added Windows styles & extended styles to Yashied's original list, probably because they are in the web page we worked on (this web page is in fact an exact copy of the help file page named "GUI Control Styles"). But see what happens now : Global Const $ExStyle[21][2] ; Yashied's Global Const $Style_GuiExtended[23][2] ; now 2 added styles are : [0x00000300, "$WS_EX_OVERLAPPEDWINDOW"] [0x00100000, "$GUI_WS_EX_PARENTDRAG"] * $WS_EX_OVERLAPPEDWINDOW : to be suppressed, it combines WS_EX_CLIENTEDGE (0x00000200) and WS_EX_WINDOWEDGE (0x00000100) * $GUI_WS_EX_PARENTDRAG : to be placed in a new array. It's an AutoIt special extended style that allows a label or pic control to be used as the title bar to drag the whole parent window. Leaving it in the $Style_GuiExtended array creates a duplicate with [0x00100000, 'WS_EX_NOINHERITLAYOUT'] I don't know who decided one day to suppress $WS_EX_NOINHERITLAYOUT from the help file and to replace it with $GUI_WS_EX_PARENTDRAG. Gladly I was lucky enough to find $WS_EX_NOINHERITLAYOUT on MSDN and it gave a great result in the script found in this link. Following your array names, this new array could be named $Style_LabelExtended (the same way you did with $Style_ListView and $Style_ListViewExtended) and could correspond to a Case "ExStatic" (the same way you did with Case "SysListView32" and Case "ExSysListView32") Also this new array should contain only 1 element [0x00100000, "$GUI_WS_EX_PARENTDRAG"] As Pic and Label controls both have the Static Class, then it should be ok (all this needs further tests). Two thoughts come to my mind : 1st thought: If a "link" existed between all array names and control class names, then it could avoid the numerous Case found in the _GetCtrlStyleString() function. Here is a script that shows this behavior : #include <Array.au3> Global Const $Style_Edit[3][2] = _ [[0x0080, "$ES_AUTOHSCROLL"], _ [0x0040, "$ES_AUTOVSCROLL"], _ [0x0001, "$ES_CENTER"]] ; Edit styles (cropped, just for test) Global Const $Style_SysTabControl32[2][2] = _ [[0x0001, "$TCS_SCROLLOPPOSITE"], _ [0x0002, "$TCS_BOTTOM"]] ; Tab styles (cropped, just for test) $sClass = "Edit" $Data = Eval("Style_" & $sClass) _ArrayDisplay($Data) $sClass = "SysTabControl32" $Data = Eval("Style_" & $sClass) _ArrayDisplay($Data) #cs It seems to work, then, instead of 16 Case (15 + 1 for "ExStatic") in the following function : Func _GetCtrlStyleString(ByRef $iStyle, ByRef $Text, $sClass) Switch $sClass ; $Input[16] Case "Button" $Data = $Style_Button Case "ComboBox" $Data = $Style_Combo Case "ListBox" $Data = $Style_ListBox Case "Edit" $Data = $Style_Edit Case "msctls_progress32" $Data = $Style_Progress Case ... EndSwitch It could be scripted with 1 line only : Func _GetCtrlStyleString(ByRef $iStyle, ByRef $Text, $sClass) $Data = Eval("Style_" & $sClass) #ce 2nd thought: maybe _GetCtrlStyleString() should be called only at the very end of Func _GetStyleString(), within the final test : If $iStyle Then ; Call _GetCtrlStyleString() only now, because style value is still <> 0 ; When it returns, if $iStyle is still <> 0 then apply the following original line. $Text = '0x' & Hex($iStyle, 8) & ', ' & $Text EndIf By the way, a first (quick) test on the styles of an Input control gives me bad results : 0x00000080, WS_CHILD, WS_GROUP, WS_TABSTOP, WS_VISIBLE ; Yashied's (ok) $ES_AUTOHSCROLL, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_VISIBLE, $WS_CHILD ; now This is probably because 6 styles were added to Yashied's list : Global Const $Style[31][2] ; Yashied's Global Const $Style_Gui[37][2] ; now [0x00010000, "$WS_MAXIMIZEBOX"] ; duplicates the already existing $WS_TABSTOP [0x00020000, "$WS_MINIMIZEBOX"] ; duplicates the already existing $WS_GROUP [0x00000000, "$WS_OVERLAPPED"] ; 0 value (should be ignored) [0x00CF0000, "$WS_OVERLAPPEDWINDOW"]; sums other styles (help file) [0x80880000, "$WS_POPUPWINDOW"] ; sums other styles (help file) [0x00040000, "$WS_THICKFRAME"] ; duplicates the already existing $WS_SIZEBOX Ok dinner time and the fridge is empty, how great ! By the way, in your precedent post, I like your "Edited: fixed an oops" , I'll sure use it when I Edit my posts1 point -
DLLCalls using VBScripts Out if the box it is not possible to do DllCalls from VBScripts. But thanks to the +20 year COM Library called DynaWrap this is still possible Anyhow the process of calling Win API functions need some basic knowledge and understanding on how to do this. More specifically the input Data Types parameters used and Calling Formats are key here, as well as the Return Data Types DynaWrap COM Library Keep in mind that this COM Library is a 32Bit only library. Which means that you need to register is using the SysWOW64 regsvr32 But to overcome this annoyance I created RegFree method so you can start using it as a portable COM Library DynaWrap Documentation I created a PDF documention on what I still could find on the internet on how to use the COM Library. Examples The second post will hold some VBScript Examples and an AutoIt Example Attached You will find the PDF and the ZIP File needed to run your code in a portable way. Thanks to the @Professor_Bernd to provide the VBScript code to get the VBScript scripting directory and the Shortcut to run the 32Bit SysWOW64 VBScript host Just drop the VBScript on the 32Bit Shortcut to get going. Source Code Anyhow here you can find the source code of the DynaWrap 32Bit Library. If someone has the C++ Tools to convert it to 64Bit Library that would give a new live to it... http://www.borncity.com/web/WSHBazaar1/WSHDynaCall.htm Interesting reading : https://www.drdobbs.com/windows/an-automation-object-for-dynamic-dll-cal/210200078 DynaCall.zip How to use DllCalls in VBScript using DynaWrap COM Object.pdf1 point
-
Welcome to the AutoIt forum. Unfortunately you appear to have missed the Forum rules on your way in. Please read them now - particularly the bit about not discussing game automation - and then you will understand why you will get no help and this thread will now be locked. See you soon with a legitimate question I hope. The Moderation team1 point
-
I need a simple conversion!!
FrancescoDiMuro reacted to Jos for a topic
mmm.. well then you don't need to waste time and space here and you go to rent-a-coder and pay for any help you want. *click*1 point -
IonGoG Wishlist has been updated to v0.0_b28, see first post. (v0.0_b28) BUGFIX for 4 digits instead of 3 for list entry numbers. NOTE - Somehow this had been overlooked for a long time. (v0.0_b27) Implemented even faster loading or sorting of list, sorted or not. (v0.0_b26) Implemented faster loading and sorting (IniReadSectionNames replacement), plus a bugfix for when a title starts with minus percent discount text.1 point
-
Control Viewer - AutoIt Window Info Tool
argumentum reacted to pixelsearch for a topic
Hi argumentum I took the Style list for all controls from this link : https://www.autoitscript.com/autoit3/docs/appendix/GUIStyles.htm Selected and copied (ctrl-a, ctrl-c) the whole Web page from the Browser, opened Excel, Pasted Special (as Text, not as HTML) forcing it to lose all Html format so all Excel rows would have the same small height, ending in something like this, where Style names and Styles numbers are automatically placed in 2 separate columns in Excel : ... Edit/Input Styles #include <EditConstants.au3> Default/forced $ES_AUTOHSCROLL 0x0080 $ES_AUTOVSCROLL 0x0040 $ES_CENTER 0x0001 $ES_LOWERCASE 0x0010 $ES_NOHIDESEL 0x0100 $ES_NUMBER 0x2000 $ES_OEMCONVERT 0x0400 $ES_MULTILINE 0x0004 $ES_PASSWORD 0x0020 $ES_READONLY 0x0800 $ES_RIGHT 0x0002 $ES_UPPERCASE 0x0008 $ES_WANTRETURN 0x1000 ... Please be my guest if you wanna do it May I suggest, in the beginning, to try only a certain type of control (for example this Edit/Input Styles) and if you find the result satisfying, then add a 2nd type of control etc... If it can help, it took me some time to understand why Yashied did a test based on (Not BitAND($Data[$i][0], 0xFFFF)) in his Func _GetStyleString() For $i = 0 To UBound($Data) - 1 If BitAND($iStyle, $Data[$i][0]) Then If (Not BitAND($Data[$i][0], 0xFFFF)) Or ($fDialog) Or ($fExStyle) Then $iStyle = BitAND($iStyle, BitNOT($Data[$i][0])) $Text &= $Data[$i][1] & ', ' EndIf EndIf Next If I understood correctly, this test is done to prevent the Dialog Styles to be applied to Controls. We can notice that all Dialog Styles have a value < 0xFFFF and are unfortunately placed in the same array as the Window styles, which all have a value > 0xFFFF (the 1st one being [0x00010000, 'WS_TABSTOP'] as found in Yashied's Style array) An example in the pic below : The style "0x00000080" should be ES_AUTOHSCROLL. But if you look at Yashied's array, you'll find this : Global Const $Style[31][2] = _ ... [0x00000080, 'DS_MODALFRAME'], _ ... So, without the test based on (Not BitAND($Data[$i][0], 0xFFFF)), then "DS_MODALFRAME" would have been wrongly added to the Input Styles names list. I think it could have been avoided if the Dialog Styles and the Window Styles had been placed in 2 different arrays instead of being mixed in a single Style array. Always in Func _GetStyleString(), another thing I didn't understand is why the 2 following lines don't always give the same result ? $iStyle = BitAND($iStyle, BitNOT($Data[$i][0])) ; Yashied's code (brings correct results) $iStyle = BitXOR($iStyle, $Data[$i][0]) ; personal test (brings sometimes wrong results) I have a little idea why, but I'll open a new thread for this because it's not directly related to this thread. Good luck argumentum1 point -
Detect changes in a directory without WinAPI - (Moved)
adg reacted to JLogan3o13 for a topic
Moved to the appropriate forum, as the Developer General Discussion forum very clearly states: Moderation Team1 point -
Control Viewer - AutoIt Window Info Tool
pixelsearch reacted to argumentum for a topic
I'll add the reworked code to the distribution and add some cosmetic tweak I was thinking of too. I never paid attention to that you point out, but it will be a welcomed patch/fix if you give me the list, I could do it myself, tho if you do it ... better Either way. Thanks for contributing. @Yashied really coded a nice tool1 point -
add new applications to Windows Firewall
sebastiian reacted to Bilgus for a topic
@Digdeep I found it more reliable to use netsh Func FirewallBlockOutbound($sName, $sPath) ;msgbox(0,$sName,"netsh advfirewall firewall add rule name = " & $sName & " dir = out action = block program = " & Chr(34)& $sPath & Chr(34)& " enable = yes") RunWait(@ComSpec & " /c " & "netsh advfirewall firewall delete rule name = " & Chr(34) & $sName & Chr(34) & " program = " & Chr(34) & $sPath & Chr(34) & " dir = out", "", @SW_HIDE) Run(@ComSpec & " /c " & "netsh advfirewall firewall add rule name = " & Chr(34) & $sName & Chr(34) & " dir = out action = block program = " & Chr(34) & $sPath & Chr(34) & " enable = yes", "", @SW_HIDE) ; don't forget " " before "/c" Sleep(100) EndFunc ;==>FirewallBlockOutbound Func FirewallAllowOutbound($sName, $sPath) ;msgbox(0,$sName,"netsh advfirewall firewall add rule name = " & $sName & " dir = out action = allow program = " & Chr(34)& $sPath & Chr(34)& " enable = yes") RunWait(@ComSpec & " /c " & "netsh advfirewall firewall delete rule name = " & Chr(34) & $sName & Chr(34) & " program = " & Chr(34) & $sPath & Chr(34) & " dir = out", "", @SW_HIDE) Run(@ComSpec & " /c " & "netsh advfirewall firewall add rule name = " & Chr(34) & $sName & Chr(34) & " dir = out action = allow program = " & Chr(34) & $sPath & Chr(34) & " enable = yes", "", @SW_HIDE) ; don't forget " " before "/c" Sleep(100) EndFunc ;==>FirewallAllowOutbound Func FirewallBlockInbound($sName, $sPath) ;msgbox(0,$sName,"netsh advfirewall firewall add rule name = " & $sName & " dir = in action = block program = " & Chr(34)& $sPath & Chr(34)& " enable = yes") RunWait(@ComSpec & " /c " & "netsh advfirewall firewall delete rule name = " & Chr(34) & $sName & Chr(34) & " program = " & Chr(34) & $sPath & Chr(34) & " dir = in", "", @SW_HIDE) Run(@ComSpec & " /c " & "netsh advfirewall firewall add rule name = " & Chr(34) & $sName & Chr(34) & " dir = in action = block program = " & Chr(34) & $sPath & Chr(34) & " enable = yes", "", @SW_HIDE) ; don't forget " " before "/c" Sleep(100) EndFunc ;==>FirewallBlockInbound Func FirewallAllowInbound($sName, $sPath) ;msgbox(0,$sName,"netsh advfirewall firewall add rule name = " & $sName & " dir = in action = allow program = " & Chr(34)& $sPath & Chr(34)& " enable = yes") RunWait(@ComSpec & " /c " & "netsh advfirewall firewall delete rule name = " & Chr(34) & $sName & Chr(34) & " program = " & Chr(34) & $sPath & Chr(34) & " dir = in", "", @SW_HIDE) Run(@ComSpec & " /c " & "netsh advfirewall firewall add rule name = " & Chr(34) & $sName & Chr(34) & " dir = in action = allow program = " & Chr(34) & $sPath & Chr(34) & " enable = yes", "", @SW_HIDE) ; don't forget " " before "/c" Sleep(100) EndFunc ;==>FirewallAllowInbound1 point -
Forum Rules
edenwheeler reacted to Jon for a topic
We want the forum to be a pleasant place for everyone to discuss AutoIt scripting, and we also want to protect the reputation of AutoIt. So we ask you to respect these simple rules while you are here: Forum Posting 1. Do not ask for help with AutoIt scripts, post links to, or start discussion topics on the following subjects: Malware of any form - trojan, virus, keylogger, spam tool, "joke/spoof" script, etc. Bypassing of security measures - log-in and security dialogs, CAPTCHAs, anti-bot agents, software activation, etc. Automation of software/sites contrary to their EULA (see Reporting bullet below). Launching, automation or script interaction with games or game servers, regardless of the game. Running or injecting any code (in any form) intended to alter the original functionality of another process. Decompilation of AutoIt scripts or details of decompiler software. This list is non-exhaustive - the Moderating team reserve the right to close any thread that they feel is contrary to the ethos of the forum. 2. Do not post material that could be considered pornographic, violent or explicit - or express personal opinions that would not be acceptable in a civilized society. Do not post any copyrighted material unless the copyright is owned by you or by this site. 3. To protect this community, any files posted by you are subject to checks to ensure that they do not contain malware. This includes, but is not limited to, decompilation and reverse engineering. 4. Do not flame or insult other members - and just report the thread to a Moderator (see below) if you are so attacked. 5. Do not PM other users asking for support - that is why the forum exists, so post there instead. 6. Do not create multiple accounts - if you inadvertently created multiple accounts then contact a Moderator to close the unwanted ones. 7. Do not repost the same question if the previous thread has been locked - particularly if you merely reword the question to get around one of the prohibitions listed above. 8. Do not delete your posts, nor completely remove their content, if doing so will interrupt the flow of the thread. 9. Do not post in a thread while the Moderating team are actively trying to determine whether it is legal. The Moderation team will do their best to act in fair and reasonable manner. Sanctions will only be applied as a last resort and any action taken will be explained in the relevant thread. If moderation action is taken, you will need to acknowledge this through a dialog or you will be unable to post further in the forum. Please note that this dialog is not an agreement that the warning was justified - it is only there so that members are aware that moderation action has been taken and that they may have certain restrictions applied to their account. If you feel that you have been unfairly moderated then contact the Moderator concerned - using a PM or the "Report" button is preferable to opening a new thread (although new members may have to do this). But do be aware that the Moderation team has the final word - the rules are set out by the site owner and you are only welcome here if you respect his wishes. Signatures and Avatars There is no formal policy for the use of signatures but if a moderator thinks it is too big and/or distracting then you may be asked to tone it down. No-one likes wading through signatures that are a page high. Similarly for avatars, expect distracting flashing and animated gifs to be removed. Reporting If you feel a post needs Moderator attention, please use the "Report" button next to the post date at the top. You can then enter details of why you have reported the post - but there is no need to include the content of the post as that is done automatically. The Moderating team will be alerted to the post and will deal with it as soon as they can. If you suspect a EULA violation, do not expect the Moderating team to do all the work - please provide some evidence in the report such as a copy of (or link to) the EULA in question, as well as the section you believe has been violated. Finally, please do not enter into an argument with the original poster - that is why we have Moderators. Spam Please do not react to spam in any way other than reporting it. Multiple reports are combined by the forum software, so there is no need to announce that you have reported the spam - in fact doing so only increases the work for the Moderator who deals with it. Interacting with this website Anyone found abusing the website is subject to harsh punishment without warning. A non-exhaustive list of potential abuses include: Automated forum registration or login. Automated posting or sending messages on the forum. Automated manipulation of polls, user reputation or other forum features. Automated creation or comments on issue tracker tickets. Automated creation or editing of wiki pages. Other abuses which are either examples of excessive bandwidth usage or automation of the site. Use common sense. If you do not have common sense, don't do anything. Do not automate the forum, wiki or issue tracker in any way at all. Scripts which automatically update AutoIt such as AutoUpdateIt are acceptable as long as they are not abused and do not generate excessive bandwidth usage.1 point