Sign in to follow this  
Followers 0
hemichallenger

_ArrayDisplay display in a Edit

9 posts in this topic

This is a example from AD. How can you display this in a Edit and not a _ArrayDisplay?

 

; Example 2
; Display only selected properties for the current user
; *****************************************************************************
$aProperties = _AD_GetObjectProperties(@UserName, "displayname,distinguishedName")
_ArrayDisplay($aProperties, "Active Directory Functions - Example 2 - Properties for user '" & @UserName & "'")

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Use _ArrayToString() on $aProperties and then write to an edit control.

Edited by guinness

_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

This isn't working what am i missing?

    $aProperties = _AD_GetObjectProperties(StringSplit($strAccount, '', $STR_ENTIRESPLIT)[2], "displayname,telephoneNumber,description")
    GUICtrlSetData($Output, _ArrayToString($aProperties, @CRLF ,0,2))

This way work with no issues.

    $aProperties = _AD_GetObjectProperties(StringSplit($strAccount, '', $STR_ENTIRESPLIT)[2], "displayname,telephoneNumber,description")
    _ArrayDisplay($aProperties,$strComputer)

Share this post


Link to post
Share on other sites

Please post using the blue A symbol in the editor. What happens if you just use ...

_ArrayToString($aProperties, @CRLF)

_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

$aProperties = _AD_GetObjectProperties(StringSplit($strAccount, '\', $STR_ENTIRESPLIT)[2], "displayname,telephoneNumber,description")
GUICtrlSetData($Output, _ArrayToString($aProperties, @CRLF))

Nothing happens the edit box stays blank.

GUICtrlSetData($Output, "Username : "& StringSplit($strAccount, '\', $STR_ENTIRESPLIT)[2])

I put this in and the edit box displays this just fine to check if it was working.

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

Here a modified version of _ArrayDisplayConsole.au3:

#include <EditConstants.au3>
#include <WindowsConstants.au3>

Global $aArray[10][10]
For $i = 0 To 9
    For $j = 0 To 9
        $aArray[$i][$j] = $i & "-" & $j
    Next
Next

Global $hGUI = GUICreate("Test", 600, 400)
Global $iEdit = GUICtrlCreateEdit("", 0, 0, 600, 400, BitOR($ES_AUTOVSCROLL, $WS_VSCROLL, $WS_HSCROLL))
GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console")
GUICtrlSendMsg($iEdit, $EM_LIMITTEXT, -1, 0)
GUISetState()

_ArrayDisplayToControl($aArray, $iEdit, 5)

Do
Until GUIGetMsg() = -3

; #FUNCTION# ====================================================================================================================
; Name ..........: _ArrayDisplayToControl
; Description ...: Displays given 1D or 2D array in the console only
; Syntax ........: _ArrayDisplayToControl($avArray, $iCtrl[, $iColumnWidth = 12[, $iItemLimit = -1[, $bDisplayCRNo = True]]])
; Parameters ....: $avArray             - Array to display
;                  $iCtrl               - Control id of the control where the array content should be written to
;                  $iColumnWidth        - [optional] String length of each cell
;                  $iItemLimit          - [optional] Maximum number of lines (rows) to show
;                  $bDisplayCRNo        - [optional] Display column / row numbers
;                  $bDisplayCellBorders - [optional] Display border of array cell to see any white space
;                  $sBorderChar         - [optional] border character
; Return values .: Success - 1
;                  Failure - 0, sets @error:
;                  |         1 - $avArray is not an array
;                  |         2 - $avArray has too many dimensions (only up to 2D supported)
; Author ........: UEZ
; Version .......: 0.90 build 2014-06-17 beta
; Modified ......:
; Remarks .......: None
; Related .......: UBound, IsArray, StringFormat, StringLeft, StringLen, GUICtrlSetData
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _ArrayDisplayToControl($avArray, $iCtrl, $iColumnWidth = 48, $iItemLimit = -1, $bDisplayCRNo = True, $bDisplayCellBorders = False, $sBorderChar = "*")
    If Not IsArray($avArray) Then Return SetError(1, 0, 0)
    Local $iDimension = UBound($avArray, 0), $iUBound = UBound($avArray, 1) - 1, $iSubMax = UBound($avArray, 2) - 1
    If $iDimension > 2 Then Return SetError(2, 0, 0)
    If $iColumnWidth < 1 Then $iColumnWidth = 1
    Local $iH, $iW, $iLenUBound = StringLen($iUBound), $sText
    If $bDisplayCRNo And $iSubMax > -1 Then
        $sText &= StringFormat("%-" &  $iLenUBound + 1 & "s", " ")
        For $iW = 0 To $iSubMax
            $sText &= StringFormat("%-" & $iColumnWidth + 1 & "s", StringLeft($iW, $iColumnWidth))
        Next
        $sText &= @CRLF
    EndIf
    If $iItemLimit > 0 Then $iUBound = $iItemLimit - 1
    Switch $iDimension
        Case 1
            For $iH = 0 To $iUBound
                If $bDisplayCRNo Then $sText &= StringFormat("%-" & $iLenUBound + 1 & "s", StringLeft($iH, $iColumnWidth))
                If $bDisplayCellBorders Then
                    $sText &= StringFormat("%-" & $iColumnWidth + 1 & "s", $sBorderChar & StringLeft($avArray[$iH], $iColumnWidth) & $sBorderChar)
                Else
                    $sText &= StringFormat("%-" & $iColumnWidth + 1 & "s", StringLeft($avArray[$iH], $iColumnWidth))
                EndIf
                $sText &= @CRLF
            Next
        Case 2
            For $iH = 0 To $iUBound
                If $bDisplayCRNo Then $sText &= StringFormat("%-" &  $iLenUBound + 1 & "s", StringLeft($iH, $iColumnWidth))
                For $iW = 0 To $iSubMax
                    If $bDisplayCellBorders Then
                        $sText &= StringFormat("%-" & $iColumnWidth + 1 & "s", $sBorderChar & StringLeft($avArray[$iH][$iW], $iColumnWidth) & $sBorderChar)
                    Else
                        $sText &= StringFormat("%-" & $iColumnWidth + 1 & "s", StringLeft($avArray[$iH][$iW], $iColumnWidth))
                    EndIf
                Next
                $sText &= @CRLF
            Next
    EndSwitch
    $sText &= @CRLF
    GUICtrlSetData($iCtrl, $sText, 1)
    Return 1
EndFunc

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯

Share this post


Link to post
Share on other sites

GUICtrlSetData($Output, "Telephonenumber : "& $aProperties[1][1])

I figured it out. Thanks.

.

Share this post


Link to post
Share on other sites

Func _ADAccount()
    If $strAccount = Null Then
        MsgBox(16, "NULL", "No user currently logged on." )
    Else
    _AD_Open()
    $aProperties = _AD_GetObjectProperties(StringSplit($strAccount, '\', $STR_ENTIRESPLIT)[2], "telephoneNumber")
    GUICtrlSetData($Output, "Username : "& StringSplit($strAccount, '\', $STR_ENTIRESPLIT)[2] & @CRLF & _
    "Telephonenumber : "& $aProperties[1][1])
    _AD_Close()
    EndIf
EndFunc

This works fine if the account exist in AD. But if the account doesnt exist I get a error and crash. or errors from a few accounts that end with .tmp that causes it to crash. how can i exempt these type of account so i get a message reply they dont exist in AD?

Share this post


Link to post
Share on other sites

Func _ADAccount()
    If $strAccount = Null Then
     MsgBox(16, "NULL", "No user currently logged on." )
    ElseIf @error = 1 Then
     MsgBox(64, "Active Directory", "does not exist")
    Else
    _AD_Open()
    $aProperties = _AD_GetObjectProperties(StringSplit($strAccount, '\', $STR_ENTIRESPLIT)[2], "telephoneNumber")
    GUICtrlSetData($Output, "Username : "& StringSplit($strAccount, '\', $STR_ENTIRESPLIT)[2] & @CRLF & _
    "Telephonenumber : "& $aProperties[1][1])
    _AD_Close()
    EndIf
EndFunc

Think this is correct if the account doesn't exist. Filtering out account that end with .tmp I don't know how to.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0