Leaderboard
Popular Content
Showing content with the highest reputation on 10/02/2020 in all areas
-
I don't need a vote your feeling on au3check is the best cheers Jpm2 points
-
The GDPR is always a law. It makes no difference who is affected (processor or data subject). Guidelines on how to implemwent the GDPR are released by the EDPB (European Data Protection Board) on this site. To get an overview of the GDPR I suggest wikipedia and a Google search for "GDPR in a nutshell"2 points
-
[BUGFIX VERSION] - 6 Apr 24 Fixed: UDF failed if header colours were initialised but not specifically set. New UDF in the zip below. -------------------------------------------------------------------------------------- Note: This is a new recoded and expanded version of my earlier UDF of the same name. If you move to this new version there might well be several script-breaking changes, particularly when setting which columns are to be editable. Please read the "Beginner's Guide" and look at the included example scripts to see where things have changed. -------------------------------------------------------------------------------------- This UDF allows you to do much more with ListView controls (either native or UDF created): Edit the content with plain text, combos or date-time pickers - and edit the headers too Move rows within the ListView Drag rows both within the ListView and to other ListViews in the same GUI (or not as required) Insert and delete columns and rows Sort columns by simply clicking the header Colour individual ListView items and headers Only select a single cell rather then the entire row Save and load entire ListViews For the advanced user: If you use certain Windows message handlers (In particular WM_NOTIFY) in your script, please read the function headers for the equivalent handlers within the UDF. Here is the UDF, with 6 examples and the guide, in zip format: GUIListViewEx.zip Credit to: martin (basic drag code), Array.au3 authors (array functions), KaFu and ProgAndy (font function), LarsJ (colouring code) Happy to take compliments or criticism - preferably the former! M231 point
-
Version 3.4
1,395 downloads
The CodeScannerCrypterBundle (ca. 2.9 MB unzipped) contains the following UDFs and utilities: CodeScanner: analyse AutoIt script structure and content, identify potential issues, generate MCF data files CodeCrypter: front-end GUI for the MCF library, for script encryption (without storing the decryption key(s) in the script!) MetaCodeFile UDF (MCF library): for analysis and user-defined alterations of AutoIt script structure and content MCFinclude.au3: #include this UDF in any AutoIt script that you wish CodeCrypter to process CryptoNG, by TheXman; encryption UDF using Bcrypt dll calls (32/64-bit; various algorithms) StoreCCprofile.au3/readCSdatadump.au3/helloworld.au3: auxiliary utilities and example script HowToCodeCrypt.pdf: a simple guide in five steps CodeCrypterFAQ.pdf: questions and answers, partly based upon exchanges in the CodeCrypter thread. MetaCodeTutorial.pdf: the MCF engine explained; useful for encryption, GUI translation, code translation, and much more... Please follow the links for additional information.1 point -
I do not use specyfic encryption in UDF. This following function is in Example Func _Example_Crypter($dBinaryData, $bDataAlreadyEncrypted) You can wrap your own encryption function and use them with using _GDPR_Encrypt_* and _GDPR_DeCrypt_* functions. The only one real function is _GDPR_Anonymize_String() and as for now all other functions are WRAPPERS. So the GPDR.au3 UDF is very flexible. The concept was to give an easy way to do GDRP stuff with function which will are named/called "GDPR" In such way you can easily find where "you use compliance measures with GDPR" Currently in SciTE i just strat typing _GDPR_ and I have menu to choose correct function, reading the code is also easier.1 point
-
@jpm, I found a way to make it properly terminate lexing and finishing which means it will list any error/warning encountered till the point it hit the max open files and thus setting the return code as it would do before for the processed scriptlines. File is uploaded. Jos1 point
-
Getting tooltip text from a Chromium based browser
ZeroToHero reacted to Nine for a topic
Tested it with UIA spy and it actually is finding the tooltip. So you have a solution to get it IMO.1 point -
Ok, I spend some time to check and what actually was happening is that the Max OpenFile for windows was passed which would make it hard crash. Also the last commit was still hardcrashing. So I have added a compile declare to the project to set this max open files to a value and then using the last commit's logic, check whether we surpass that nd lso set the max openfiles to the defined number. In case we do get to the limit, I added an Exit(0), meaning au3check will exit with rc=0 and a warning stating: !Reached Max Include Files (495) limit. Stop the process ending with rc=0 >Exit code: 0 Time: 0.2867 This will ensure the Run/Compile will continue. The beta version is available here, so give it a spin. The max is now set to 1000 files.1 point
-
Getting tooltip text from a Chromium based browser
ZeroToHero reacted to Nine for a topic
Yes that is what I also found. The class only appears under Win7 AND under IE. But I believe you could use UIAutomation to read those tooltips, although I did not test it. Before investing too much time into it, just use UIA spy to see if it can identify the tooltip.1 point -
I personally would go with the task scheduler instead of having an ongoing process running all the time just to check if it is time (or not) on the right day. Just create a small script that would display whatever you want, compile it, enter task scheduler and inscribe the right parameters. Voilà !1 point
-
Word Frequency Counter
abberration reacted to mikell for a topic
@abberration The regex is for fun and not a difficult one, the important thing inside is the use of \b (word boundary) so "the" is not matched in "they" The @extended feature of StringReplace and SRER is pretty useful indeed to get a number of replacements/occurences BTW depending on which characters "words" may contain, your solution can be better - or the regex needs modifications1 point -
If ProcessExists - Wildcard question
Starlord30 reacted to Musashi for a topic
Not necessarily the perfect solution, but it should work . Global $g_sSearchProcess = "Notepad" ; leading part or full name of the process (without .exe) While True If _ProcessPartialMatch($g_sSearchProcess) Then ConsoleWrite("+ >>>> Process exists -> WAIT 3 sec." & @CRLF) ; *** only during test Sleep(3000) Else ConsoleWrite("! >>>> Process not found -> Start Program" & @CRLF) ; *** only during test If @OSArch = "x86" Then Run("notepad.exe") ExitLoop Else Run("notepad.exe") ExitLoop EndIf EndIf WEnd Func _ProcessPartialMatch($sPartialName) Local $aProcessList, $bProcessFound = False $aProcessList = ProcessList() For $i = 1 To $aProcessList[0][0] If StringRegExp($aProcessList[$i][0], "(?i)^\Q" & $sPartialName & "\E(.*)\.exe$") Then $bProcessFound = True ExitLoop EndIf Next Return $bProcessFound EndFunc ;==>_ProcessPartialMatch @Starlord30 EDIT -> I have extended the regular expression a bit : Old : "(?i)^" & $sPartialName & "(.*)\.exe$" New : "(?i)^\Q" & $sPartialName & "\E(.*)\.exe$" The background is, that the process name may contain characters that need to be escaped, e.g. the dot in Process01.test.exe (Thanks to @mikell , who pointed this out to me in another thread )1 point -
The GDPR applies to companies processing (collecting, storing, computing, transmitting ...) of personal data. It is unimportant whether you process the data digitally or analogue. So the GDPR is about data not about software. Details can be found here. Or you post your questions in this thread1 point
-
If ProcessExists - Wildcard question
Starlord30 reacted to TheXman for a topic
Your code above should loop. However, before it starts looping, it sleeps for 2 minutes and 45 secs. Also, inside the loop, you are only sleeping for 25 milliseconds if the process is found. That's a rather "tight" loop. Lastly, you can shortcut your While statement to be just "While 1" for an endless loop. You don't need $Forever. As long as the "While" condition is true, the while will continue to loop. The logic in that loop needs to be examined more closely. If it does not find the process, it will start notepad over and over in a tight loop. VERY BAD!1 point -
CodeScanner will give you detailed lists of all functions, variables, and macros used in a script.1 point
-
It is possible with Chrome You just have to elevate Chrome browser to force accessibility #include "UIAWrappers.au3" If Not ProcessExists("chrome.exe") Then $pid = ShellExecute("chrome.exe", "h--e.de") Sleep(500) EndIf $oLogin = _UIA_getFirstObjectOfElement($UIA_oDesktop, "name:=Login - Google Chrome", $treescope_subtree) If Not IsObj($oLogin) Then Exit MsgBox(16 + 262144, Default, "No Login Page found. Press OK to exit.", 0) $oPassword = _UIA_getFirstObjectOfElement($oLogin, "title:=Enter your Id", $treescope_subtree) If Not IsObj($oPassword) Then $pid = ShellExecute("chrome.exe", " about:blank ") Sleep(100) $oBlamk = _UIA_getFirstObjectOfElement($UIA_oDesktop, "name:=about:blank - Google Chrome", $treescope_subtree) Switch @OSLang Case "0407" ; German - Germany $oAddressBar = _UIA_getFirstObjectOfElement($oBlamk, "title:=Adress- und Suchleiste", $treescope_subtree) Case "0409" ; English - United States $oAddressBar = _UIA_getFirstObjectOfElement($oBlamk, "title:=Address and search bar", $treescope_subtree) Case "0413" ; Dutch - Netherlands $oAddressBar = _UIA_getFirstObjectOfElement($oBlamk, "title:=Adres- en zoekbalk", $treescope_subtree) Case "040c" ; French - France $oAddressBar = _UIA_getFirstObjectOfElement($oBlamk, "title:=Barre d'adresse et de recherche", $treescope_subtree) Case "040A" ; Spanish - Spain $oAddressBar = _UIA_getFirstObjectOfElement($oBlamk, "title:=Barra de direcciones y de búsqueda", $treescope_subtree) Case "0410" ; Italian - Italy $oAddressBar = _UIA_getFirstObjectOfElement($oBlamk, "title:=Barra degli indirizzi e di ricerca", $treescope_subtree) Case Else Exit MsgBox(16 + 262144, Default, "Address bar title not found due to unsupported language. Press OK to exit", 0) EndSwitch Sleep(100) _UIA_action($oAddressBar, "setfocus") ;~ chrome://accessibility "--force-renderer-accessibility" _UIA_action($oAddressBar, "setvalue using keys", "chrome://accessibility{ENTER}") $oAccess = _UIA_getFirstObjectOfElement($UIA_oDesktop, "name:=Accessibility Internals - Google Chrome", $treescope_subtree) _UIA_action($oAccess, "setvalue using keys", "{TAB}{Space}{up}{down}{TAB}{TAB}{Space}^w") $oLogin = _UIA_getFirstObjectOfElement($UIA_oDesktop, "name:=Login - Google Chrome", $treescope_subtree) _UIA_action($oLogin, "setfocus") $oPassword = _UIA_getFirstObjectOfElement($oLogin, "title:=Enter your Id", $treescope_subtree) EndIf Sleep(100) _UIA_action($oPassword, "setfocus") _UIA_action($oPassword, "sendkeys", "autoit") Sleep(1000) MsgBox(64 + 262144, Default, "AutoIt index page loaded successful. Press OK to exit and run the script again. It will run faster since the accessability enviroment is already loadad. Don't close the LOGIN window.", 0) _UIA_action($oLogin, "sendkeys", "!{left}") Exit ; End of Script Drop me a note if you need it in another language.1 point
-
Like I said before, this isn't my area of expertise. I take another look at this. That's odd. Can you post some code to demonstrate what you are seeing? What you do get with the following? #include <wd_core.au3> Local Enum $eFireFox = 0, _ $eChrome Local Const $_TestType = $eChrome Local $sDesiredCapabilities Local $sText Local $sSession $_WD_DEBUG = $_WD_DEBUG_Info Switch $_TestType Case $eFireFox SetupGecko() Case $eChrome SetupChrome() EndSwitch _WD_Startup() $sText = 'ćłą' $sSession = _WD_CreateSession($sDesiredCapabilities) _WD_Navigate($sSession, "https://google.com") $iElement = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@name='q']") _WD_ElementAction($sSession, $iElement , 'value', $sText) $sValue = _WD_ElementAction($sSession, $iElement, 'property', 'value') MsgBox(0, 'test', $sValue) _WD_Window($sSession,'close') _WD_DeleteSession($sSession) _WD_Shutdown() Func SetupGecko() _WD_Option('Driver', 'geckodriver.exe') _WD_Option('DriverParams', '--log trace') _WD_Option('Port', 4444) $sDesiredCapabilities = '{"desiredCapabilities":{"javascriptEnabled":true,"nativeEvents":true,"acceptInsecureCerts":true}}' EndFunc Func SetupChrome() _WD_Option('Driver', 'chromedriver.exe') _WD_Option('Port', 9515) _WD_Option('DriverParams', '--log-path="' & @ScriptDir & '\chrome.log"') $sDesiredCapabilities = '{"capabilities": {"alwaysMatch": {"chromeOptions": {"w3c": true }}}}' EndFunc1 point
-
Also when I want to type the '\' character it needs to be doubled so I need to enter '\\'. So you have to change to: Local $sSplitValue = "[" & StringTrimRight(StringRegExpReplace($sOption, '\\\\|\\u[[:alnum:]]{4}|.', '"$0",'), 1) & "]"1 point
-
I found out how to do this. You have to change in wd_core: Local $sSplitValue = "[" & StringTrimRight(StringRegExpReplace($sOption, '.', '"$0",'), 1) & "]" to Local $sSplitValue = "[" & StringTrimRight(StringRegExpReplace($sOption, '\\u[[:alnum:]]{4}|.', '"$0",'), 1) & "]" so the character codes wouldn't be splitted. Also maybe would be better to change non ASCII characters to codes internally in the UDF.1 point