Leaderboard
Popular Content
Showing content with the highest reputation on 11/25/2020 in all areas
-
EasyCodeIt - cross-platform AutoIt implementation
Exit and 2 others reacted to JockoDundee for a topic
IP Lawyer on Cross-Examination: So to be clear, Mr. TheDcoder, you claim that your award winning “EasyCodeIt” product is your own work, fashioned in the style of the BASIC family of languages perhaps, but distinctive nonetheless? TheDcoder: Yes. IP Lawyer: In that case, I’m sure you wouldn’t mind explaining a few of your design decisions. Can you tell the court after you straightforwardly created functions such as MouseMove(), MouseClick() and MouseGetPos() , what did you call the function to determine when the mouse has been clicked? TheDcoder: If you’re referring to _IsPressed(“01”), I can explain; you see the underscore means UDF, and if you know hex then... IP Lawyer: A likely story. Why don’t you explain why in the thirty plus Array functions, you have no _ArrayCompare() routine? TheDcoder: Actually, I was just working on that... IP Lawyer: Sure you were, pal. Ok, answer me this: Why did you make the WinSetState function work like this WinSetState($Hwnd, “”, @SW_SHOW) while reversing the arguments in the case of GuiSetState(@SW_SHOW, $Hwnd)? TheDcoder: I like to mix it up? IP Lawyer: Final question, what is the purpose of Dim? TheDcoder: Nothing says BASIC like Dim! Judge: Case dismissed!3 points -
Dll caching...
JockoDundee and one other reacted to Melba23 for a topic
Hi, The thread and post mentioned by Nine: M232 points -
If I see the time available I will do some tests and if successful I will update here.2 points
-
EasyCodeIt A cross-platform implementation of AutoIt Introduction: EasyCodeIt is an attempt at implementing a programming language which is backward compatible with a sub-set of AutoIt which would work across multiple platforms with many aspects being agnostic to the platform-specific differences. Currently the primarily targeted platforms are Linux and Windows, more platforms may be supported in the future as per popular demand. For example it should be easy enough to port to Unix-like platforms such as BSD and Mac with the help of maintainers who are familiar with them. The main motivation behind the creation of this project is the lack of a proper easy-to-use scripting language in Linux, while there are numerous scripting languages which natively support it, none of them are as user-friendly and easy to use as AutoIt. (The "Easy" in "EasyCodeIt" reflects this) There was a previous thread in which the project was originally started, but it got too big and the discussion is too cluttered and hard to follow for any new readers, here is the thread for those who are interested in reading it: Progress: Frontend ✅ Tokenizer 🚧 Parser (work in progress) ✅ Expressions 👷♂️ Statements (current priority) Backend ⏰ Interpreter (scheduled) I am currently working on expression parsing and syntax tree building. -- This section will be updated in the future with new progress. To stay notified 🔔 follow this thread to get update notifications (by using the "Follow" button on the top-right corner of this page) and 👁️ watch the GitHub repository to get any new activity on your feed. Code: The code is available on GitHub, please 🌟 star the project if you like it and would like to show your support, it motivates me a lot! (Also don't forget to 👍 Like this post ) Chat: I created a room in Matrix (an open-source federated chat system) for EasyCodeIt, you can join it to chat with me and others who are in the room, it might be a good way to get the latest status updates from me You can preview the room without joining, and you don't need to be connected to it 24/7 like IRC. It works a bit like Slack for those who are familiar with it. Forum: I have created a dedicated forum to post more frequent updates, possibly in their own threads to better organize the discussion. Please sign-up and follow the blog section to get updates. By the way, you can also post pretty much anything there, both technical and non-technical stuff, it is intended to be a hangout for techies but not only for them. So casual discussions, funny cat videos etc. are allowed!1 point
-
Dll caching...
JockoDundee reacted to Nine for a topic
Not sure we should call it significant. I tested both with $hDLL (coming from DllOpen) and the usual "user32.dll" and it shows that with the handle it is close to 25% faster after 5000 calls. Not bad if you look only at the percentage. But the fact is that it's only 13ms faster. Divided by 5000 it is a gain of 0.0026ms per call (not really significant IMO). On the other hand, it doesn't hurt to specify it. Recently we tested DllCall using an handle and without. There was only few ms between both. Maybe @pixelsearch can confirm cause I can't seem to find the thread. There was a nice explanation from M23 too. Anyway, the conclusion was that there is not much of an advantage to open DLL especially if it is a largely used DLL.1 point -
@satter Thanks for explaining. Unfortunately, I'm not currently aware of a way to bypass this issue.1 point
-
You can find a File/Windows Explorer implementation based on IExplorerBrowser in this post. It's the Toolbar example in the 7z-file. The code is from March 2015 and is Windows 7 code. I think the code can run as it is on Windows 10. You can see several of these virtual folders in the treeview on the left side of the image. The 7z-file below contains treeview code based on INameSpaceTreeControl. The code is from the last day of July 2016 and is probably made on a rainy day during the summer holidays. It's an absolute minimum implementation. I think the code can run as it is on Windows 10. This is an image of the GUI: In addition to problems accessing some of the folders, the huge disks used now can become a problem. These disks can contain a very large number of folders and files. Sooner or later you'll run into performance issues when in pure AutoIt code you have to fill in a treeview and a listview with all these folders and files. Again, the solution is to use code implemented in Microsoft DLL-files such as these COM interfaces. If you can limit the number of folders and files e.g. on the basis of a search or the like, it's certainly possible to implement a GUI in pure AutoIt code. But you can still easily run into a number of problems. Getting the right icons is not always easy. Implementing a proper right-click menu to set file properties is not entirely trivial. Especially not if you have multiple selections enabled in the listview. Again, the solution is to implement the functionality through Microsoft code in a DLL-file. LeftPane.7z1 point
-
Adding Custom GIF in a Listview
Siwa reacted to pixelsearch for a topic
Hi Siwa Did you try Nine's great script found in this link, which easily displays animated gif's ? In case the animation can't be included directly in a listview cell, then the child window solution we discussed in this link could help (tested successfully just now, with the animated "9.gif" found in Nine's zip file. "9.gif" hides a part of the listview header, it's animated and it moves in sync with the main gui as it's a child window) Some changes should probably be done to display it over the listview cell (after retrieving the cell coords). Hope this helps and good luck1 point -
@Chimp, Yes in theory it should be possible...1 point
-
Is there a way to use this stuff by making use of the following other stuff? or am I just raving? sorry if I'm just delirious ...1 point
-
I have worked on this awhile back, so here an alternative to your solution : #include <Constants.au3> #include <File.au3> Opt("MustDeclareVars", 1) Local $oShellApplication = ObjCreate("Shell.Application") Local $oShellFolder = $oShellApplication.NameSpace(0x11) Local $oShellFolderItems = $oShellFolder.Items() For $oFolder in $oShellFolderItems ConsoleWrite ($oFolder.name & @CRLF) If $oFolder.name = "Moto G Play" Then ExitLoop Next Local $oRoot = $oFolder.GetFolder Local $oRootItems = $oRoot.Items() For $oSource in $oRootItems ConsoleWrite ($oSource.name & @CRLF) If $oSource.name = "Carte SD" Then ExitLoop Next $oRoot = $oSource.GetFolder $oRootItems = $oRoot.Items() For $oSource in $oRootItems ConsoleWrite ($oSource.name & @CRLF) If $oSource.name = "DCIM" Then ExitLoop Next $oRoot = $oSource.GetFolder $oRootItems = $oRoot.Items() For $oSource in $oRootItems ConsoleWrite ($oSource.name & @CRLF) If $oSource.name = "Camera" Then ExitLoop Next $oRoot = $oSource.GetFolder $oRootItems = $oRoot.Items() For $oSource in $oRootItems ConsoleWrite ($oSource.name & "/" & $oSource.IsFolder & "/" & $oRoot.GetDetailsOf ($oSource,2) & @CRLF) Next1 point
-
Moved to the appropriate forum, as the Developer General Discussion forum very clearly states: Moderation Team1 point