Hallo Gemeinde,
ich möchte am Ende einer Funktion einen Hinweistext an ein EditCtrl übergeben und diesen danach markeiren, da das Edit als Inputfeld dienen soll um einen QR zu scannen.
GUICtrlSetState($idCode, $GUI_Enable)
GUICtrlSetData($idCode, "Now scan your HW and klick the Button 'Booking'")
GUICtrlSetFont($idCode, 16, 800, 0, "Bosch Office Sans")
GUICtrlSetState($idCode, $GUI_FOCUS)
$sMSG = GUICtrlSendMsg($idCode, $EM_SETSEL, $start_char, $end_char)
ToolTip($sMSG)
;_GUICtrlEdit_SetSel($idCode, 0, -1)
EndFunc ;==>ADLogin
Das Edit muss im Vorfeld der Funktion disabled sein, da sonst ein vorher auszulesender String dort hineingeschrieben werden würde. Deshalb der Enable-Befehl.
Weder der GuiCtrlSendMsg-Befehl markiert den Text noch _GuiCtrlEdit_SetSel. Lasse ich den Codeschnipsel an einer anderen Stelle im Programm laufen, würde der Text markiert werden.
Hat jemand eine Idee warum der Text zwar in das Edit geschrieben wird, es dann aber nicht markiert wird oderweiss jemand eine andere Möglichkeit wie ich den Hinweistext überschrieben bekomme?
Func ADLogin()
Func ADLogin()
#Region----------------------------------------------------------------------------------------
Die Func Macht einen AD-Login, überprüft verschiedene "AD-Werte"
#EndRegion---------------------------------------------------------------------------------
Sleep(2000)
Send("{Backspace}")
$sUserId = InputBox("Login", "AD-Loginname" & @CRLF & @CRLF & "e.g. de\xy123z", " ", " M")
If @error = 1 Then ; Wenn user den Abbrechen Button drückt...
ShellExecute(@ScriptName)
Exit
EndIf
$aTEMP = StringSplit($sUserId, "\")
$sName = $aTEMP[2]
While 1
If $aTEMP[0] <> 2 Then
$sMSG1 = MsgBox(17, "Active Directory Functions", "Wrong format for NETBIOS name." & @CRLF & "Has to be ""Domain\Userid""!" & @CRLF & @CRLF & "e.g. ""de\xy0815vw""")
If $sMSG1 = 7 Then
ShellExecute(@ScriptName) ; Programm wird neu gestartet damit die Leseroutine wieder aktiv ist.
Exit
EndIf
$sUserId = InputBox("Login", "AD-Loginname" & @CRLF & @CRLF & "e.g. de\xy123z", "", " M")
If @error = 1 Then ; Wenn user den Abbrechen Button drückt...
ShellExecute(@ScriptName)
Exit
EndIf
$aTEMP = StringSplit($sUserId, "\")
$sName = $aTEMP[2]
ExitLoop
Else
ExitLoop
EndIf
WEnd
While 1 ; Schleife zur Wiederholung der PWD-Abfrage
$sPwd1 = InputBox("Login", "AD-Password", "", "*", "", " M")
If @error = 1 Then
ShellExecute(@ScriptName)
Exit
EndIf
If $sPwd1 = "" Then
$sVar = MsgBox(17, "Active Directory Functions", "Password is missing!")
If $sVar = 7 Then
ShellExecute(@ScriptName)
Exit
EndIf
Else
$sPwd2 = InputBox("Verifying Password", " please verify AD-Password", "", "*", "", " M")
If @error = 1 Then
ShellExecute(@ScriptName)
Exit
EndIf
If $sPwd2 = "" Then
$sVar = MsgBox(17, "Active Directory Functions", "Password is missing!")
If $sVar = 7 Then
ShellExecute(@ScriptName)
Exit
EndIf
Else
If $sPwd1 <> $sPwd2 Then
$sVar = MsgBox(17, "Login-Alert!!!", "Passwords doesn't match")
$sPwd1 = ""
$sPwd2 = ""
If $sVar = 7 Then
ShellExecute(@ScriptName)
Exit
EndIf
Else
ExitLoop
EndIf
EndIf
EndIf
WEnd
_AD_Open()
Global $sFQDN = _AD_SamAccountNameToFQDN($sName) ; Umsetzen des AnmeldeNamens in den FQDN
_AD_Close()
If _AD_Open($sUserId, $sPwd1) Then
$sDispName = _AD_FQDNToDisplayname($sFQDN)
$aTEMP2 = StringSplit($sDispName, "(")
;_ArrayDisplay($aTEMP2)
$sDispName = StringStripWS($aTEMP2[1], 2)
$sDispName = StringReplace($sDispName, " ", ", ", 2) ; das Leerzeichen im String wird durch ein komma ersetzt: z.b. Mustermann Hans wird Mustermann, Hans
GUICtrlSetData($sDisplayname, $sDispName)
GUICtrlSetFont($sDisplayname, 18, 600, 0, "Bosch Office Sans")
$aTEMP3 = StringSplit($sDispName, " ") ;_Arraydisplay($aTEMP3) Aufspaltung des Displaynamens in index 1 = Nachname und Index 2 = Vorname
$sPwd1 = ""
$sPwd2 = ""
ElseIf @error <= 8 Then
MsgBox(16, "Active Directory Functions", "The logon was not succcessful!" & @CRLF & @CRLF & "@error: " & @error & ", @extended: " & @extended)
Else
MsgBox(16, "Active Directory Functions", "The logon was not succcessful!" & @CRLF & @CRLF & "@error: " & @error & ", @extended: " & @extended & _
@CRLF & @CRLF & "Extended error information will be displayed")
Global $aError = _AD_GetLastADSIError()
;_ArrayDisplay($aError)
EndIf
If _AD_IsObjectDisabled($sName) Then
GUICtrlSetData($sDisplayname, "User account '" & $sName & "' is disabled!!!" & @CRLF & "scanning HW not possible")
Return
EndIf
GUICtrlSetState($idCode, $GUI_Enable)
GUICtrlSetData($idCode, "Now scan your HW and klick the Button 'Booking'")
GUICtrlSetFont($idCode, 16, 800, 0, "Bosch Office Sans")
GUICtrlSetState($idCode, $GUI_FOCUS)
$sMSG = GUICtrlSendMsg($idCode, $EM_SETSEL, $start_char, $end_char) ;die Variablen start und end sind global
ToolTip($sMSG) gibt meistens o zurück. manchmal auch 1
;_GUICtrlEdit_SetSel($idCode, 0, -1)
EndFunc ;==>ADLogin