funkey Posted August 13, 2010 Share Posted August 13, 2010 Here is my new little function called _DLLGetFunctionNames. It extracts the dll function names from dll files. It's not perfect, but it works good. I hope you like it. Greetings from Austria! expandcollapse popup#Include <Array.au3> $DLLFile = FileOpenDialog("Choose DLL file", @SystemDir, "DLL files (*.dll)", 3) if @error Then Exit $aNames = _DLLGetFunctionNames($DLLFile) If @error Then Exit ConsoleWrite($DLLFile & ": Fault " & @error & @CR) ;~ $sNames = _DLLGetFunctionNames($DLLFile, 1) ;~ ConsoleWrite($sNames & @CRLF) _ArrayDisplay($aNames, StringTrimLeft($DLLFile, StringInStr($DLLFile, "\", 0, -1))) Func _DLLGetFunctionNames($sFileName, $ParamResult = 0) ;funkey Aug, 12th, 2010 ;$ParamOutput: 0 --> Result is array ; 1 --> Result is string Local $hFile = FileOpen($sFileName, 0) If $hFile = -1 Then Return SetError(1) ; file error Local $sFile = FileRead($hFile) FileClose($hFile) Local $iStartPos, $iEndPos, $sFunctionNames, $aFunctionNames Local $DLLName = StringTrimLeft($sFileName, StringInStr($sFileName, "\", 0, -1)) For $i = 1 To 99 $iStartPos = StringInStr($sFile, $DLLName & Chr(0), 0, -$i) If $iStartPos = 0 Then Return SetError(2) ;search error $sFunctionNames = StringTrimLeft($sFile, $iStartPos - 2) $sFunctionNames = StringTrimLeft($sFunctionNames, StringInStr($sFunctionNames, "dll") + 3) $iEndPos = StringInStr($sFunctionNames, Chr(0) & Chr(0)) $sFunctionNames = StringLeft($sFunctionNames, $iEndPos - 1) If StringInStr($sFunctionNames, Chr(0) & Chr(0x90)) Then $sFunctionNames = StringLeft($sFunctionNames, StringInStr($sFunctionNames, Chr(0) & Chr(0x90)) - 1) $aFunctionNames = StringSplit($sFunctionNames, Chr(0), 2) If UBound($aFunctionNames) > 0 And StringStripWS($aFunctionNames[0], 8) <> "" Then ExitLoop Next Switch $ParamResult Case 0 Return $aFunctionNames Case 1 Return StringReplace($sFunctionNames, Chr(0), @CRLF) EndSwitch EndFunc jvds 1 Programming today is a race between software engineers striving tobuild bigger and better idiot-proof programs, and the Universetrying to produce bigger and better idiots.So far, the Universe is winning. Link to comment Share on other sites More sharing options...
Ascend4nt Posted August 13, 2010 Share Posted August 13, 2010 Interesting approach. If you want to get the list the right way though (and with more info), check out my UDF: File + Process Imports/Exports Information My contributions: Performance Counters in Windows - Measure CPU, Disk, Network etc Performance | Network Interface Info, Statistics, and Traffic | CPU Multi-Processor Usage w/o Performance Counters | Disk and Device Read/Write Statistics | Atom Table Functions | Process, Thread, & DLL Functions UDFs | Process CPU Usage Trackers | PE File Overlay Extraction | A3X Script Extract | File + Process Imports/Exports Information | Windows Desktop Dimmer Shade | Spotlight + Focus GUI - Highlight and Dim for Eyestrain Relief | CrossHairs (FullScreen) | Rubber-Band Boxes using GUI's (_GUIBox) | GUI Fun! | IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) | Magnifier (Vista+) Functions UDF | _DLLStructDisplay (Debug!) | _EnumChildWindows (controls etc) | _FileFindEx | _ClipGetHTML | _ClipPutHTML + ClipPutHyperlink | _FileGetShortcutEx | _FilePropertiesDialog | I/O Port Functions | File(s) Drag & Drop | _RunWithReducedPrivileges | _ShellExecuteWithReducedPrivileges | _WinAPI_GetSystemInfo | dotNETGetVersions | Drive(s) Power Status | _WinGetDesktopHandle | _StringParseParameters | Screensaver, Sleep, Desktop Lock Disable | Full-Screen Crash Recovery Wrappers/Modifications of others' contributions: _DOSWildcardsToPCRegEx (original code: RobSaunder's) | WinGetAltTabWinList (original: Authenticity) UDF's added support/programming to: _ExplorerWinGetSelectedItems | MIDIEx UDF (original code: eynstyne) (All personal code/wrappers centrally located at Ascend4nt's AutoIT Code) Link to comment Share on other sites More sharing options...
dmob Posted August 14, 2010 Share Posted August 14, 2010 Wow, great function. Will be useful. 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