Leaderboard
Popular Content
Showing content with the highest reputation on 11/14/2017 in all areas
-
Based on the Outlook UDF written by wooltown, we (wooltown and I) decided to extend the functionality of the Outlook UDF. As the OutlookEX UDF ("EX" like "extended") has a completely different approach compared to the Outlook UDF it's a complete rewrite. We would like to discuss the design of the UDF with the community. Every feedback, function request etc. is highly welcome. As soon as the discussion shows that we are on the right track we would like to release an alpha version for everyone to test. So please don't be shy and post what you think of this UDF or what functions you need! Every item in Outlook is uniquely identified by EntryID and StoreID. The default StoreID is your inbox Every item has properties to describe the item (subject, startdate ..) and methods to act upon the item (move, delete …) The search and action functions are now separated. As an example the user first searches for the items to be deleted and then calls the delete function If a method can be used for more than one item type (e.g. mail, calendar and notes) the function is called _OL_ItemXXX else the function is called _OL_CalendarXXX The number of properties you can get or pass to most functions is not limited by the number of parameters defined for the function. Properties can be passed as parameters (up to 10) or in an unlimited array as parameter 1 The UDF allows to access all kind of folders (see the following listing). Folders can be passed by name or as an object to a function A lot of testing is still needed as we have written and tested the functions using Outlook 2002 SP3 and Outlook 2010 "wrapper" or "shortcut" functions will be available to let you do all tasks in one go e.g. _OL_Wrapper_SendMail for all functions above. Documentation: The documentation for this UDF (aside from the docu in the UDF itself) will be placed in the AutoIt Wiki. So we can easily modify the docu without releasing a new version each time. There will be pages describing the UDF in general and pages for individual item types (like mail) with detailed information and a lot of tips & tricks. Tested with Outlook 2003 and 2010. Some users reported that it works with Outlook 2013 as well. Starting point: http://www.autoitscript.com/wiki/OutlookEX_UDF_-_General Download1 point
-
True Recursive _FileListToArray
Earthshine reacted to KaFu for a topic
Like you said, it's a software with an indexing service. SMF performs the search on request only. If you compare the programs, compare how long it takes SMF to search a location and how long it takes Everything to index the same . Then try to use Everything from an USB stick. Or analyze all duplicate files with Everything. Or show only pictures larger than 1000x1000 pixels, or movies shorter than 5 minutes... Also the program that run's a flawless indexing of file changes on Windows has to be invented yet, look up the topic in this forum. Windows itself merges change notifications for performance reasons!1 point -
Get installed applications
Earthshine reacted to JLogan3o13 for a topic
Was waiting for you to turn up with some PS-fu1 point -
Get installed applications
Earthshine reacted to iamtheky for a topic
While resurrecting stuff, hows this look as far completeness? (its got all my apps in powershell 5.1.17035.1000) #RequireAdmin run('cmd /k powershell "Get-Package *"')1 point -
Get installed applications
Earthshine reacted to JLogan3o13 for a topic
Not to derail the thread too much but there are applications for which this is not the case, especially when it comes to the uninstall string; it is up to the repackager to ensure that value is there and frankly some high profile commercial products suck when it comes to this detail. During my time repackaging software into MSIs for companies we would employ a mixture of WMI and registry for as close to complete results as one could expect.1 point -
1 point
-
1 point
-
[Solved] GDI+ Transparence problem by image overlapping
argumentum reacted to Sven-Seyfert for a topic
Hi Community, I'm new at the forum but familiar with AutoIt since few years. I got a problem when I drag a GDI+ loaded image on the GUI to a other position. When I drag the next image (of three) in the nearly position of the first dragged image, I got a overlapped effect which isn't transparence like I would want to have. The animated GIF should hopefully explain my problem further (like on GitHub). Why the GDI+ PNG images aren't transparence on the GUI? I don't want to use a buffer system for the illustration on the GUI or do I have to? Thanks for any suggestion - I'm grateful! Sven [Solved] Final solution: Thanks to the community, especially to @UEZ and @argumentum . CODE BEFORE AFTER1 point -
Without your code we are not able to see what is going wrong.1 point
-
Here's a function and example I wrote up to get the .NET version(s) installed (or uninstalled): ; ========================================================================================================================== ; Func _dotNetGetVersions($bOnlyInstalled=False) ; ; Function to return information on which .NET versions are/were installed. ; NOTES: No Service Pack information is retrieved, although that can be obtained using the methods ; in the MSDN link below. ; ; Also NOTE: As with anything I program (in full or part), keep the header WITH the function if used or shared. ; ; .NET Framework detection resource: ; MSDN KB318785: 'How to determine which versions and service pack levels of the Microsoft .NET Framework are installed': ; @ http://msdn.microsoft.com/en-us/kb/kbarticle.aspx?id=318785 ; ; $bOnlyInstalled = If True, it will not report on any versions that were uninstalled ; ; Returns: ; Success: An array of information, as follows: ; [0][0] = Total # found ; [x][0] = Numerical version (can be whole number or floating point [1, 1.1, 2, 3, 3.5, 4]) ; [x][1] = Full version name string - this can be used to probe further sub-version info (example: "v2.0.50727") ; [x][2] = 0 or 1 - indicates whether 'client' or normal installation is installed ; (From version 4+, there can be a client and/or a full install - though full seems to install client.) ; [x][3] = 0 or 1 - indicates whether 'full' install of the .NET component is installed (version 4+ only) ; Failure: '' and @error set: ; @error = -3 = .NET key could not be read, or .NET is not installed (the latter *most* likely) ; (@extended returns @error state from last Reg* call.) ; ; Author: Ascend4nt ; ========================================================================================================================== Func _dotNetGetVersions($bOnlyInstalled=False) Local $i=1,$iClientInstall,$iFullInstall,$iNum,$aVersions[100][4],$iTotal=0,$bVer4Found=0 Local $sKey="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP",$sSubKey ; Detect v1.0 (special key) RegRead("HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\v1.0","3705") ; If value was read (key exists), and is of type REG_SZ (1 as defined in <Constants.au3>), v1.0 is installed If @error=0 And @extended=1 Then $iTotal+=1 $aVersions[$iTotal][0]=1.0 $aVersions[$iTotal][1]='v1.0.3705' $aVersions[$iTotal][2]=1 $aVersions[$iTotal][3]=1 EndIf While 1 $iClientInstall=0 $iFullInstall=0 $sSubKey=RegEnumKey($sKey,$i) If @error Then ExitLoop $i+=1 ; 'v4.0' is a deprecated version. Since it comes after 'v4' (the newer version) while enumerating, ; a simple check if 'v4' has already been found is sufficient If $sSubKey='v4.0' And $bVer4Found Then ContinueLoop $iNum=Number(StringMid($sSubKey,2)) ; cuts off at any 2nd decimal points (obviously) ; Note - one of the SubKeys is 'CDF'. Number() will return 0 in this case [we can safely ignore that] If $iNum=0 Then ContinueLoop ;~ ConsoleWrite(".NET Framework SubKey #"&$i&": "&$sSubKey&", Number extracted (0 for non-versioned items):"&$iNum&@LF) If $iNum<4 Then $iClientInstall=RegRead($sKey&'\'&$sSubKey,'Install') If $iClientInstall Then $iFullInstall=1 ; older versions were all-or-nothing I believe ;~ If @error Then $iClientInstall=0 ; (@error from $iClientInstall) -> caught below Else ; Version 4 works with one or both of these keys. One can only hope new versions keep the same organization $iFullInstall=RegRead($sKey&'\'&$sSubKey&'\Full','Install') If @error Then $iFullInstall=0 $iClientInstall=RegRead($sKey&'\'&$sSubKey&'\Client','Install') ;~ If @error Then $iClientInstall=0 ; Caught below If $iNum<5 Then $bVer4Found=True EndIf If @error Then $iClientInstall=0 If $bOnlyInstalled And $iClientInstall=0 And $iFullInstall=0 Then ContinueLoop $iTotal+=1 $aVersions[$iTotal][0]=$iNum $aVersions[$iTotal][1]=$sSubKey $aVersions[$iTotal][2]=$iClientInstall $aVersions[$iTotal][3]=$iFullInstall WEnd If $iTotal=0 Then Return SetError(-3,@error,'') $aVersions[0][0]=$iTotal ReDim $aVersions[$iTotal+1][4] Return $aVersions EndFunc ; ------- TEST ---------- #include <Array.au3> $adotNetVersions=_dotNetGetVersions() $adotNetVersions[0][0]="Main Version #" $adotNetVersions[0][1]="Full version string" $adotNetVersions[0][2]="Client/General Install?" $adotNetVersions[0][3]="Full Install?" _ArrayDisplay($adotNetVersions,'.NET versions') *edit: $bVer4Found adjustment (for when/if v.5 comes out..), 2nd edit: $iFullInstall logic error *edit again - put in check for version 1.0 also (different registry key), made note about ServicePacks (not detected)1 point
-
cyanidemonkey Try this: Global Const $GENERIC_READ = 0x80000000 Global Const $GENERIC_WRITE = 0x40000000 Global Const $OPEN_EXISTING = 3 Global Const $FILE_ATTRIBUTE_NORMAL = 0x80 $file = "d:\Base\work.dat" If Not FileExists($file) Then Exit $hFile = DllCall("kernel32.dll", "hwnd", "CreateFile", _ "str", $file, _ "int", BitOR($GENERIC_READ, $GENERIC_WRITE), _ "int", 0, _ "ptr", 0, _ "int", $OPEN_EXISTING, _ "int", $FILE_ATTRIBUTE_NORMAL, _ "int", 0) If $hFile[0] = -1 Then MsgBox(48, "Warning", "File is open") Else DllCall("kernel32.dll", "int", "CloseHandle", "hwnd", $hFile[0]) EndIf1 point