Kip Posted June 4, 2008 Share Posted June 4, 2008 (edited) All the functions from User32, Kernel32, Shell32, GDIPlus, GDI32, WinInet, WinMM, AdvAPI32 and ComCtl32.All functions are in a list which can be searched very easily.Just click on an item to view the function info at MSDN in the embedded IE control.[note that it's just a list with functions, I didn't rewrite them]I know that there are much more dlls, but these are the most common used.API_Lib.zip Edited June 5, 2008 by Kip MailSpons: Fake SMTP server for safe email testing Dutch postcode & address API. Link to comment Share on other sites More sharing options...
PartyPooper Posted June 4, 2008 Share Posted June 4, 2008 Looks interesting. Do you have a version that uses FireFox instead of IE? I, like many, have totally disabled IE which means any AutoIt scripts solely relying on IE (rather than default browser) fail miserably. Link to comment Share on other sites More sharing options...
Kip Posted June 4, 2008 Author Share Posted June 4, 2008 But not everybody has Firefox, if so: could you create an embedded firefox udf? MailSpons: Fake SMTP server for safe email testing Dutch postcode & address API. Link to comment Share on other sites More sharing options...
PartyPooper Posted June 4, 2008 Share Posted June 4, 2008 True, but "default" browser covers them all including IE, FF, Opera, Netscape and a host of others. Link to comment Share on other sites More sharing options...
ProgAndy Posted June 4, 2008 Share Posted June 4, 2008 (edited) You could do sth like this:install Mozilla ActiveX BrowserControl from http://www.iol.ie/~locka/mozilla/mozilla.htm$IE = ObjCreate("Mozilla.Browser.1") If @error Then msgbox(0,"API Lib","Using IE, no Mozilla COM-Control found!") $IE = _IECreateEmbedded() EndIfAnd Change the _IENavigate to_IENavigate ($IE, $URLedited,0)because Mozilla doesn't support the LoadWait-Method.//Edit: Then it uses Mozilla-Engine, but NOT Firefox/Mozilla/... the ActiveX is separate from them. Edited June 4, 2008 by ProgAndy *GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted June 4, 2008 Moderators Share Posted June 4, 2008 (edited) @Kip, I spend the majority of the day on MSDN... so this is very useful, thank you.... Edit: Removed first comment Edited June 4, 2008 by SmOke_N Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
Michel Claveau Posted June 4, 2008 Share Posted June 4, 2008 Hi! Thanks, @Kip. PartyPooper: @Kip use ActiveX functionnality of IE. On this way, FF is too poor. You can't use FF in place of IE, because many possibilities are not implemented in FF. If "portability" is synonymous with loss of functionalities, I prefer use IE, and drop FF. Link to comment Share on other sites More sharing options...
Kip Posted June 4, 2008 Author Share Posted June 4, 2008 (edited) @Kip, I spend the majority of the day on MSDNGet a life [That's a joke] so this is very useful, thank you....You're welcome [That's not a joke] Edited June 4, 2008 by Kip MailSpons: Fake SMTP server for safe email testing Dutch postcode & address API. Link to comment Share on other sites More sharing options...
Monamo Posted June 4, 2008 Share Posted June 4, 2008 (edited) Very cool idea - especially considering all the times I have to look this stuff up.Feel free to disregard the following, but I made some modifications in the following example:Isolate displayed selections to one or more specific .DLL entriesSelect All/Deselect All (see previous item)Changed the page navigation to use the "Return immediately" parameter (I was having to wait for a page load to finish before I could close the app)Window sizing adjustment(s) to a fixed set of percentages of screen dimensions for width/heightCODE#NoTrayIcon#include <WindowsConstants.au3>#include <GUIConstantsEx.au3>#include <StaticConstants.au3>#include <ButtonConstants.au3>#include <WinAPI.au3>#include <Misc.au3>#include <IE.au3>$iGUIWidth = Int(@DesktopWidth * .9)$iGUIHeight = Int(@DesktopHeight * (2 / 3))Global $IEGlobal $ActiveItems = ""Global $Create = 0Global $User32Items = StringReplace(StringReplace(StringReplace(FileRead("User32.txt"), ":", " * "), @CRLF, "|"), ".dll", "")Global $Kernel32Items = StringReplace(StringReplace(StringReplace(FileRead("Kernel32.txt"), ":", " * "), @CRLF, "|"), ".dll", "")Global $Shell32Items = StringReplace(StringReplace(StringReplace(FileRead("Shell32.txt"), ":", " * "), @CRLF, "|"), ".dll", "")Global $GDIPlusItems = StringReplace(StringReplace(StringReplace(FileRead("GDIPlus.txt"), ":", " * "), @CRLF, "|"), ".dll", "")Global $WinInetItems = StringReplace(StringReplace(StringReplace(FileRead("WinInet.txt"), ":", " * "), @CRLF, "|"), ".dll", "")Global $WinMMItems = StringReplace(StringReplace(StringReplace(FileRead("WinMM.txt"), ":", " * "), @CRLF, "|"), ".dll", "")Global $AdvAPI32Items = StringReplace(StringReplace(StringReplace(FileRead("AdvAPI32.txt"), ":", " * "), @CRLF, "|"), ".dll", "")Global $ComCtl32Items = StringReplace(StringReplace(StringReplace(FileRead("ComCtl32.txt"), ":", " * "), @CRLF, "|"), ".dll", "")#Region Create GUI$GUI = GUICreate("API Functions Lib", $iGUIWidth, $iGUIHeight, 5, 5);, $WS_SIZEBOX) ;, $WS_MAXIMIZEBOX + $WS_MAXIMIZE + $WS_MINIMIZEBOX + $WS_SIZEBOX)$iTopIndex = 5$bodyInputBase = GUICtrlCreateLabel("", 5, $iTopIndex, 260, $iGUIHeight - 10, $SS_SUNKEN)GUICtrlSetState($bodyInputBase, $GUI_DISABLE)$bodyBrowserBase = GUICtrlCreateLabel("", 270, $iTopIndex, $iGUIWidth - 275, $iGUIHeight - 10, $SS_SUNKEN)GUICtrlSetState($bodyBrowserBase, $GUI_DISABLE)$IE = _IECreateEmbedded()GUICtrlCreateObj($IE, 275, $iTopIndex + 5, $iGUIWidth - 285, $iGUIHeight - 20)$iTopIndex = $iTopIndex + 5$labelSearch = GUICtrlCreateLabel("Search in:", 8, $iTopIndex, 52, 17)$iTopIndex = $iTopIndex + 15$dCombosStart = GUICtrlCreateDummy()$comboUser32 = GUICtrlCreateCheckbox(_SpaceSelections("User32", "(User Interface)"), 30, $iTopIndex, 200, 17)$comboKernel32 = GUICtrlCreateCheckbox(_SpaceSelections("Kernel32", "(System)"), 30, $iTopIndex + 15, 200, 17)$comboShell32 = GUICtrlCreateCheckbox(_SpaceSelections("Shell32", "(Shell)"), 30, $iTopIndex + 30, 200, 17)$comboGDIPlus = GUICtrlCreateCheckbox(_SpaceSelections("GDIPlus", "(Graphics)"), 30, $iTopIndex + 45, 200, 17)$comboWinInet = GUICtrlCreateCheckbox(_SpaceSelections("WinInet", "(Network)"), 30, $iTopIndex + 60, 200, 17)$comboWinMM = GUICtrlCreateCheckbox(_SpaceSelections("WinMM", "(Multimedia)"), 30, $iTopIndex + 75, 200, 17)$comboAdvAPI32 = GUICtrlCreateCheckbox(_SpaceSelections("AdvAPI32", "(Reg, Security)"), 30, $iTopIndex + 90, 200, 17)$comboComCtl32 = GUICtrlCreateCheckbox(_SpaceSelections("ComCtl32", "(UI Controls)"), 30, $iTopIndex + 105, 200, 17)$dCombosEnd = GUICtrlCreateDummy()_SetFont($dCombosStart, $dCombosEnd)$dButtonsStart = GUICtrlCreateDummy()$buttonselectAll = GUICtrlCreateButton("Select All", 25, $iTopIndex + 125, 100, 15)$buttonDeselectAll = GUICtrlCreateButton("Deselect All", 135, $iTopIndex + 125, 100, 15)$buttonGenerateList = GUICtrlCreateButton("Generate List", 25, $iTopIndex + 145, 210, 20, $BS_FLAT)$dButtonsEnd = GUICtrlCreateDummy()_SetFont($dButtonsStart, $dButtonsEnd)$iTopIndex = $iTopIndex + 170Global $inputSearch = GUICtrlCreateInput("", 10, $iTopIndex, 250, 21)$iTopIndex = $iTopIndex + 25Global $listAPIFunctions = GUICtrlCreateList("", 10, $iTopIndex, 250, $iGUIHeight - ($iTopIndex + 15))_SetFont($listAPIFunctions)$labelStatus = GUICtrlCreateLabel("", 10, $iGUIHeight - 22, 250, 15)_SetFont($labelStatus)#EndRegion Create GUIGUISetState(@SW_SHOW)Global $PreviousSearch = ""Global $PreviousSelected = ""State("Loading functions...")GUICtrlSetData($listAPIFunctions, $ActiveItems)State("")While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $buttonselectAll _SelectAll(1) Case $buttonDeselectAll _SelectAll(0) Case $buttonGenerateList $ActiveItems = "" GUICtrlSetData($inputSearch,"") GUICtrlSetData($listAPIFunctions, $ActiveItems) _GenerateList() EndSwitch $Read = GUICtrlRead($inputSearch) $ReadList = GUICtrlRead($listAPIFunctions) If $ReadList And $ReadList <> $PreviousSelected Then $URLdefault = "http://search.msdn.microsoft.com/?query=%SEARCH%&locale=en-us&ac=3" $Function = StringSplit($ReadList, " * ", 1) $FunctionStr = $Function[$Function[0]] If StringInStr(StringRight($FunctionStr, 1), "W", 1) Or StringInStr(StringRight($FunctionStr, 1), "A", 1) Then $FunctionStr = StringTrimRight($FunctionStr, 1) EndIf GUICtrlSetData($labelStatus,$FunctionStr) $URLedited = StringReplace($URLdefault, "%SEARCH%", $FunctionStr) _IENavigate($IE, $URLedited,0) $PreviousSelected = $ReadList EndIf If $Read And $Read <> $PreviousSearch Then State("Searching...") GUICtrlSetData($listAPIFunctions, "") $Split = StringSplit($ActiveItems, "|") For $i = 1 To $Split[0] If StringInStr($Split[$i], $Read) Then $Prev = GUICtrlRead($listAPIFunctions) GUICtrlSetData($listAPIFunctions, $Prev & $Split[$i] & "|") EndIf Next $PreviousSearch = $Read State() ElseIf Not $Read And $PreviousSearch Then State("Adjusting...") GUICtrlSetData($listAPIFunctions, $ActiveItems) $PreviousSearch = "" State() EndIf WEnd#Region Functions ListFunc _GenerateList() If GUICtrlRead($comboAdvAPI32) = $GUI_CHECKED Then $ActiveItems &= $AdvAPI32Items & "|" EndIf If GUICtrlRead($comboComCtl32) = $GUI_CHECKED Then $ActiveItems &= $ComCtl32Items & "|" EndIf If GUICtrlRead($comboGDIPlus) = $GUI_CHECKED Then $ActiveItems &= $GDIPlusItems & "|" EndIf If GUICtrlRead($comboKernel32) = $GUI_CHECKED Then $ActiveItems &= $Kernel32Items & "|" EndIf If GUICtrlRead($comboShell32) = $GUI_CHECKED Then $ActiveItems &= $Shell32Items & "|" EndIf If GUICtrlRead($comboUser32) = $GUI_CHECKED Then $ActiveItems &= $User32Items & "|" EndIf If GUICtrlRead($comboWinInet) = $GUI_CHECKED Then $ActiveItems &= $WinInetItems & "|" EndIf If GUICtrlRead($comboWinMM) = $GUI_CHECKED Then $ActiveItems &= $WinMMItems & "|" EndIf GUICtrlSetData($listAPIFunctions,$ActiveItems)EndFuncFunc _SelectAll($iState) If $iState = 1 Then For $iCtrl = $dCombosStart To $dCombosEnd GUICtrlSetState($iCtrl, $GUI_CHECKED) Next Else For $iCtrl = $dCombosStart To $dCombosEnd GUICtrlSetState($iCtrl, $GUI_UNCHECKED) Next EndIfEndFuncFunc _SetFont($dStart, $dEnd = $dStart) For $iCtrl = $dStart To $dEnd GUICtrlSetFont($iCtrl, 8.5, 400, Default, "Courier New") NextEndFuncFunc _SpaceSelections($str1, $str2) $sSpacer = " " $iTargetLength = 26 $iTotalLength = StringLen($str1) + StringLen($str2) If $iTotalLength < $iTargetLength Then $iBuffer = $iTargetLength - $iTotalLength Do $sSpacer &= " " Until StringLen($sSpacer) = $iBuffer EndIf Return $str1 & $sSpacer & $str2EndFuncFunc State($Text = "Done!") GUICtrlSetData($labelStatus, $Text)EndFunc#EndRegion Functions ListEdit: Updated includes for 3.2.12.0 (I was still working on a 3.2.10.0 build on my core machine) Edited June 4, 2008 by Monamo - MoChr(77)& Chr(97)& Chr(100)& Chr(101)& Chr(32)& Chr(121)& Chr(97)& Chr(32)& Chr(108)& Chr(111)& Chr(111)& Chr(107)-------I've told you 100,000 times not to exaggerate!-------Don't make me hit you with my cigarette hand...-------My scripts:Random Episode Selector, Keyboard MouseMover, CopyPath v2.1, SmartRename for XP,Window Tracer[sup]New![/sup] Link to comment Share on other sites More sharing options...
ptrex Posted June 4, 2008 Share Posted June 4, 2008 @Kip Simple and effective !! regards ptrex Contributions :Firewall Log Analyzer for XP - Creating COM objects without a need of DLL's - UPnP support in AU3Crystal Reports Viewer - PDFCreator in AutoIT - Duplicate File FinderSQLite3 Database functionality - USB Monitoring - Reading Excel using SQLRun Au3 as a Windows Service - File Monitor - Embedded Flash PlayerDynamic Functions - Control Panel Applets - Digital Signing Code - Excel Grid In AutoIT - Constants for Special Folders in WindowsRead data from Any Windows Edit Control - SOAP and Web Services in AutoIT - Barcode Printing Using PS - AU3 on LightTD WebserverMS LogParser SQL Engine in AutoIT - ImageMagick Image Processing - Converter @ Dec - Hex - Bin -Email Address Encoder - MSI Editor - SNMP - MIB ProtocolFinancial Functions UDF - Set ACL Permissions - Syntax HighLighter for AU3ADOR.RecordSet approach - Real OCR - HTTP Disk - PDF Reader Personal Worldclock - MS Indexing Engine - Printing ControlsGuiListView - Navigation (break the 4000 Limit barrier) - Registration Free COM DLL Distribution - Update - WinRM SMART Analysis - COM Object Browser - Excel PivotTable Object - VLC Media Player - Windows LogOnOff Gui -Extract Data from Outlook to Word & Excel - Analyze Event ID 4226 - DotNet Compiler Wrapper - Powershell_COM - New Link to comment Share on other sites More sharing options...
Kip Posted June 4, 2008 Author Share Posted June 4, 2008 I'm trying to add Tab pages, so you can have multiple msdn pages open. MailSpons: Fake SMTP server for safe email testing Dutch postcode & address API. Link to comment Share on other sites More sharing options...
Zedna Posted June 4, 2008 Share Posted June 4, 2008 Good idea kip Idea for little improvement: Make new checkbox "Search substring" When it's checked you will search also for substring and not only begining of API function names. Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
ProgAndy Posted June 4, 2008 Share Posted June 4, 2008 If the Tabcount doesn't change, it's easy: $iTopIndex = 5 $bodyInputBase = GUICtrlCreateLabel("", 5, $iTopIndex, 260, $iGUIHeight - 10, $SS_SUNKEN) GUICtrlSetState($bodyInputBase, $GUI_DISABLE) ;$bodyBrowserBase = GUICtrlCreateLabel("", 270, $iTopIndex, $iGUIWidth - 275, $iGUIHeight - 10, $SS_SUNKEN) ;GUICtrlSetState($bodyBrowserBase, $GUI_DISABLE) Dim $IE[5],$tabitem[5] $tabs = GUICtrlCreateTab(270, $iTopIndex, $iGUIWidth - 275, $iGUIHeight - 10) $tabitem[0] = GUICtrlCreateTabItem("MSDN 1") $IE[0] = _IECreateEmbedded() GUICtrlCreateObj($IE[0], 275, $iTopIndex + 25, $iGUIWidth - 285, $iGUIHeight - 40) $tabitem[1] = GUICtrlCreateTabItem("MSDN 2") $IE[1] = _IECreateEmbedded() GUICtrlCreateObj($IE[1], 275, $iTopIndex + 25, $iGUIWidth - 285, $iGUIHeight - 40) $tabitem[2] = GUICtrlCreateTabItem("MSDN 3") $IE[2] = _IECreateEmbedded() GUICtrlCreateObj($IE[2], 275, $iTopIndex + 25, $iGUIWidth - 285, $iGUIHeight - 40) $tabitem[3] = GUICtrlCreateTabItem("MSDN 4") $IE[3] = _IECreateEmbedded() GUICtrlCreateObj($IE[3], 275, $iTopIndex + 25, $iGUIWidth - 285, $iGUIHeight - 40) $tabitem[4] = GUICtrlCreateTabItem("MSDN 4") $IE[4] = _IECreateEmbedded() GUICtrlCreateObj($IE[4], 275, $iTopIndex + 25, $iGUIWidth - 285, $iGUIHeight - 40) GUICtrlCreateTabItem("") $iTopIndex = $iTopIndex + 5 $labelSearch = GUICtrlCreateLabel("Search in:", 8, $iTopIndex, 52, 17) and GUICtrlSetData($labelStatus,$FunctionStr) $URLedited = StringReplace($URLdefault, "%SEARCH%", $FunctionStr) $ieTab=GUICtrlRead($tabs) _IENavigate($IE[$ieTab], $URLedited,0) GUICtrlSetData($tabitem[$ieTab],$FunctionStr) $PreviousSelected = $ReadList *GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes Link to comment Share on other sites More sharing options...
Kip Posted June 4, 2008 Author Share Posted June 4, 2008 When it's checked you will search also for substring and not only begining of API function names.It already searches with StringInStr MailSpons: Fake SMTP server for safe email testing Dutch postcode & address API. Link to comment Share on other sites More sharing options...
Zedna Posted June 4, 2008 Share Posted June 4, 2008 It already searches with StringInStr Oh sorry then. I didn't tested it I just looked at your screenshot. Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
PartyPooper Posted June 4, 2008 Share Posted June 4, 2008 Hi!Thanks, @Kip.PartyPooper: @Kip use ActiveX functionnality of IE. On this way, FF is too poor. You can't use FF in place of IE, because many possibilities are not implemented in FF. If "portability" is synonymous with loss of functionalities, I prefer use IE, and drop FF.Ah ok no probs, thanks for the explanation. Can't believe ppl still use ActiveX, I thought most ppl had it disabled due to its world renown insecurities and only activated it for the Windows Update website as recommended by most security type software and TV shows. Each to their own I guess. Link to comment Share on other sites More sharing options...
Kip Posted June 5, 2008 Author Share Posted June 5, 2008 I added tabs And GDI32 functions (+526 functions ) MailSpons: Fake SMTP server for safe email testing Dutch postcode & address API. Link to comment Share on other sites More sharing options...
MrCreatoR Posted June 5, 2008 Share Posted June 5, 2008 Very Good.An idea: download all the pages that was viewed into local directory (when user select a page in the list), so the next time they will load directly from disk without waiting until the page is loaded, and once in a while (or at every view) check the page on the internet, and if it's updated, redownload it again. Spoiler Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1 AutoIt Russian Community My Work... Spoiler Projects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize ProgramUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF Examples: ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating ) * === My topics === * ================================================== ================================================== AutoIt is simple, subtle, elegant. © AutoIt Team Link to comment Share on other sites More sharing options...
jvanegmond Posted June 5, 2008 Share Posted June 5, 2008 Very nice! I'm going to take this to work tomorrow, and try it out. github.com/jvanegmond Link to comment Share on other sites More sharing options...
jvanegmond Posted June 5, 2008 Share Posted June 5, 2008 Looks interesting. Do you have a version that uses FireFox instead of IE? I, like many, have totally disabled IE which means any AutoIt scripts solely relying on IE (rather than default browser) fail miserably.In Windows, you can remove Internet Explorer from your computer, but it still leaves the ActiveX object that many applications use. If you want to completely disable it, you'll have to dig into your Windows installer.Not sure what you ment by saying "totally disabled IE", just thought I'd straighten out that Internet Explorer and the IE object are two different things. github.com/jvanegmond Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now