I have a query please
It is about windows file explorer
If i design a tool in autoit language to delete files for example
and i added it in the context menu in File Explorer
If i right-click on any file And you choose the tool, it will be get the path of the selected file or folder
The problem here is
If i select a set of files or folders
it only detect the first one
The code that i used is
if $CMDLine = 0 then
msgBox(16, "error", "you don't selecte any files")
for $i = 1 to $CMDLine
msgBox(0, "files", $CMDLine[$i]
I'm trying to move unread mails from Inbox to a different folder using OutlookEx UDF.
But its not working for me. I'm not sure what mistake I do.
I get the error code 6 when the following is executed. From the UDF it is observed that "No or an invalid item has been specified".
Note : The UDF version is 220.127.116.11. AutoIt version (v18.104.22.168).
#include <OutlookEX.au3> Global $oOutlook = _OL_Open() If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error creating a connection to Outlook. @error = " & @error & ", @extended = " & @extended) Global $aOL_Item = _OL_ItemFind($oOutlook, "*\Inbox", $olMail, "[UnRead]=True", "", "", "Subject", "", 1) If $aOL_Item = 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemMove Example Script", "Could not find a task item in folder 'Outlook-UDF-Test\SourceFolder\Tasks'. @error = " & @error) _ArrayDisplay($aOL_Item, "OutlookEX UDF: _OL_ItemFind Example Script - Unread mails") _OL_ItemMove($oOutlook, $aOL_Item, Default, "*\Outlook-UDF-Test\TargetFolder\Mail") If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemMove Example Script", "Error moving specified task. @error = " & @error) Any help is deeply appreciated. Thanks in advance.
Thanks and regards,
Just a simple little (complex enough) program I whipped up, for a purpose ... but only too happy to share.
It can of course be modified to do more, but at the moment just compares file names with or without path ... Location versus Checklist.
There are of course other compare programs out there, most doing a lot more than mine (i.e. WinMerge or FileComparer). But I wanted something quick and simple with drag & drop, that uses up a smallish amount of screen real estate.
NOTE - The SAVE button is also a LOAD one, and displays 'Load' when the list is empty. So you can save and load specific lists. While in SAVE mode, the button can also be used with CTRL held down, to ADD another list to existing (displayed one) ... combining as they say ... though not saved until you SAVE. CLEAR button removes a selected entry, or if used with CTRL held down, queries about removing all listed entries.
Files Checklist v1.2.zip
Files Checklist v1.3.zip
Files Checklist v1.4.zip (Includes a BUGFIX.)
WARNING - While this program does not act on files or folders ADDED or CHECKED, you might act on the results, so I advise caution, and I also recommend using the new 'Relative' option in v1.3 or newer ... but you still need to understand what you are doing and what the results actually mean. Some basic examples in the next post.
Users might also be interested in another somewhat related program of mine.
I have a requirement to return both a string and an array from a function so as a result I put them both into an array and returned that. I can access them in their entirety after returning them but then I can't seem to access the array elements after this. Should I be able to or is there a prettier way?
#include <Array.au3> ;Memory info returned as a string and an array $memoryInfo = _getMemoryInfo() msgbox(0,"Memory Info",$memoryInfo) _ArrayDisplay($memoryInfo,"Memory as an Array") Local $newArray $memoryInfo = $newArray msgbox(0,"Test element",$newArray) _ArrayDisplay($newArray) Func _getMemoryInfo() Local $newArray Local $array = MemGetStats() $newArray = $array ;% of memory in use $newArray = Round($array/1024 * 0.001,2) ;Total physical RAM $newArray = Round($array/1024 * 0.001,2) ;Availaible physical RAM $newArray = Round($array/1024 * 0.001,2) ;Total pagefile $newArray = Round($array/1024 * 0.001,2) ;Available pagefile $newArray = Round($array/1024 * 0.001,2) ;Total virtual $newArray = Round($array/1024 * 0.001,2) ;Available virtual $memoryUsage = $newArray - $newarray $pagefileUsage = $newArray - $newarray ;Output/Return Local $returnArray $returnArray = "Memory: " & $memoryUsage & " GB/" & $newArray & " GB " & @CRLF & "Pagefile: " & $pagefileUsage & " GB/" & $newArray & " GB " $returnArray = $newArray return $returnArray EndFunc A bit messy but hopefully it's understandable what I'm trying to achieve.
I am fairly new to AutoIT and I am still trying to learn, I have been using _FileListToArray to list all the files with a particular extension in an array and then loop through it for operation ( For $i = 1 To UBound($FileArray) - 1).
So far this has been working fine. But I am not able to figure out a problem that I have; what if I have 50 files but I only want to loop through first 10 files and then next ten and so on? Or rather I should say, how I can I only feed max 10 files to the array at a time when I do _FileListToArray regardless of the total number of files in the folder?
Any insight/help will be much appreciated