1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Mahagon

Beiträge von Mahagon

  • ad.au3 - Fehler -2147352567 beim erstellen eines Benutzers

    • Mahagon
    • 14. Januar 2016 um 12:42

    Hm es scheint wohl irgendwo am User gelegen zu haben.
    Habe das Profil neu erstellt ... funktioniert.

    Frag mich was es war... aber egal... Hauptsache es klappt nun

    Danke für eure Hilfe

  • ad.au3 - Fehler -2147352567 beim erstellen eines Benutzers

    • Mahagon
    • 13. Januar 2016 um 14:42

    Ich führ das mit dem selben Benutzer aus
    AD_Open braucht keine parameter, alles andere geht damit auch (Anzeigenamen ändern etc)
    Habe dem Benutzer testweise auch schon domäneadmin verpasst und die compilierte exe als admin ausgeführt
    selbes Ergebnis.

    Lese und schreibrechte habe ich natürlich
    Kann ja in der ad verwaltung manuell user einrichten

  • ad.au3 - Fehler -2147352567 beim erstellen eines Benutzers

    • Mahagon
    • 13. Januar 2016 um 11:11

    Hallo zusammen,

    ich sitze momentan vor dem Problem das sich Benutzer mit der ad.au3 nicht erstellen lassen, wenn ich nicht mit "Administrator" angemeldet bin
    Bin aber Domänen Admin und kann über die Active Directory-Benutzer und Computerverwaltung Benutzer erstellen, daher sollte es generell nicht an den Rechten liegen

    Das Problem hatte wohl schon wer anders, jedoch ist der Thread nicht wirklich weitergeführt worden https://autoit.de/index.php/Thread/45619


    Beispielskript:

    AutoIt
    #include "ad.au3"
    
    
    $sAnzeigename = "Max Muster"
    $sBenutzername = "max.muster"
    $sKennwort = "s9u3f$sn!SFA"
    
    
    $FQDNSplit = StringRegExp(@LogonDNSDomain, "([^.]+)", 3)
    Global $FQDN_DN = ""
    For $i = 0 To UBound($FQDNSplit) - 1
    	$FQDN_DN &= ",DC=" & $FQDNSplit[$i]
    Next
    
    
    
    
    
    
    _AD_Open()
    
    
    _AD_ErrorNotify(2)
    
    
    $iValue = _AD_CreateUser("OU=WTS-Benutzer" & $FQDN_DN, $sBenutzername, $sAnzeigename)
    If $iValue = 1 Then
    	$iValue = _AD_SetPassword($sBenutzername, $sKennwort)
    	If $iValue = 1 Then
    		MsgBox(64, "Benutzer erstellen", "Der Benutzer '" & $sBenutzername & "' ist erfolgreich erstellt worden")
    	ElseIf @error = 1 Then
    		MsgBox(64, "Passwort setzen", "Benutzer '" & $sBenutzername & "' existiert nicht")
    	Else
    		MsgBox(64, "Passwort setzen", "Return code '" & @error & "' from Active Directory")
    	EndIf
    ElseIf @error = 1 Then
    	MsgBox(64, "Benutzer erstellen", "Der Benutzer '" & $sBenutzername & "' existiert bereits")
    ElseIf @error = 2 Then
    	MsgBox(64, "Benutzer erstellen", "Die Organisationseinheit '" & "OU=WTS-Benutzer" & $FQDN_DN & "' existiert nicht")
    ElseIf @error = 3 Then
    	MsgBox(64, "Benutzer erstellen", "Der Wert für den Anzeigenamen (Nachname Vorname) fehlt")
    ElseIf @error = 4 Then
    	MsgBox(64, "Benutzer erstellen", "Value for $sAD_User is missing")
    Else
    	MsgBox(64, "Benutzer erstellen", "Return code '" & @error & "' from Active Directory")
    EndIf
    
    
    _AD_Close()
    Alles anzeigen


    Der ErrorNotify gibt folgendes Zurück

    Code
    AD UDF version = 1.4.3
    @AutoItVersion = 3.3.14.2
    @AutoItX64 = 1
    @Compiled = 0
    @OSArch = X64
    @OSVersion = WIN_2012R2
    Scriptline = 2242
    NumberHex = 80020009
    Number = -2147352567
    WinDescription = Ausnahmefehler aufgetreten.
    Description = Zugriff verweigert
    Source = Active Directory
    Alles anzeigen


    Ich führe das ganze unter 2012 R2 aus.

    dsadd user CN=max.muster,OU=WTS-Benutzer,DC=Domain,DC=local -samid john -pwd AFGI2dassf12
    funktioniert z.B. auch ohne Probleme

    Hoffe jemand hat da nen Tipp für mich

    Gruß Daniel

  • Autoit.exe ruft Autoit.exe

    • Mahagon
    • 6. Januar 2015 um 16:20

    Du könntest die 2. Exe einfach mit Parametern aufrufen

    https://www.autoitscript.com/autoit3/docs/intro/running.htm



    wenn das 2. Programm dauerhaft (warum auch immer) laufen muss würde ich z.B. TCP nehmen:

    https://www.autoitscript.com/autoit3/docs/functions/TCPSend.htm

  • XML auslesen und bearbeiten

    • Mahagon
    • 2. Januar 2015 um 15:08

    Für XML Bearbeitung nutze ich diese UDF: http://www.autoitscript.com/forum/topic/19…om-wrapper-com/

    Damit kannst du wunderbar auslesen, editieren, speichern etc.

    -> Downloadlink scheint tot zu sein

    hier ein Alternativlink: https://raw.githubusercontent.com/Silvernine0S/FolderMenu3EX/master/Include/_XMLDomWrapper_.au3

  • Tooltip verschieben

    • Mahagon
    • 15. Mai 2014 um 09:12

    Hm hab es jetzt über MouseGetPos() gelöst.
    Hatte eher gehofft man könne es quasi verschieben :D
    Aber danke für deienn Vorschlag

  • Tooltip verschieben

    • Mahagon
    • 14. Mai 2014 um 15:51

    Hi,

    ich habe nur nen kleines Problem, hoffe es gibt da ne schicke Lösung für :D

    Und zwar lasse ich mir im Moment ein paar infos über nen Tooltip anzeigen

    [autoit]

    ToolTip("This is a tooltip", 0, 0)

    [/autoit]

    Jedoch habe ich das Problem, dass ich das dingen nicht verschieben kann, wenn es im weg ist.

    Hat da jemand ne idee?
    Tooltip selbst scheint es ja leider nicht zu können
    Balloon Tip ebenso :(

  • autoIt install of a MSI with no reboot

    • Mahagon
    • 14. März 2014 um 08:36

    Hast du es mal mit /qn oder /quiet anstelle von /qb versucht?

  • Problem mit _AD_IsMemberOf

    • Mahagon
    • 12. März 2014 um 09:15
    [autoit]

    If $iResult = Null And $bRecursive = True Then

    [/autoit]

    Hat leider nicht geklappt.
    habe mal ne MSGBox eingebaut
    Local $iResult = $oGroup.IsMember("LDAP://" & $sAD_HostServer & "/" & $sObject)
    Liefert wohl False zurück, das ist ja quasi 0.

    [Blockierte Grafik: http://i.imgur.com/CkAyRvA.png]

    ABER :D

    Spoiler anzeigen
    [autoit]

    Func _AD_IsMemberOf($sGroup, $sObject = @UserName, $bIncludePrimaryGroup = False, $bRecursive = False, $iDepth = 10)

    [/autoit] [autoit][/autoit] [autoit]

    If _AD_ObjectExists($sGroup) = 0 Then Return SetError(1, 0, 0)
    If _AD_ObjectExists($sObject) = 0 Then Return SetError(2, 0, 0)
    If StringMid($sObject, 3, 1) <> "=" Then $sObject = _AD_SamAccountNameToFQDN($sObject) ; sAMAccountName provided
    If StringMid($sGroup, 3, 1) <> "=" Then $sGroup = _AD_SamAccountNameToFQDN($sGroup) ; sAMAccountName provided
    Local $oGroup = __AD_ObjGet("LDAP://" & $sAD_HostServer & "/" & $sGroup)
    Local $iResult = $oGroup.IsMember("LDAP://" & $sAD_HostServer & "/" & $sObject)
    If $iResult = 0 And $bRecursive = True Then
    For $oMember In $oGroup.Members
    If StringLower($oMember.Class) = 'group' Then
    If $iDepth > 0 Then
    If _AD_IsMemberOf($oMember.distinguishedName, $sObject, $bIncludePrimaryGroup, True, $iDepth - 1) Then Return 1
    EndIf
    Else
    If StringLower($oMember.distinguishedName) = $sObject Then Return 1
    EndIf
    Next
    EndIf
    ; Check Primary Group if $sObject isn't a member of the specified group and the flag is set
    If $iResult = 0 And $bIncludePrimaryGroup Then $iResult = (_AD_GetUserPrimaryGroup($sObject) = $sGroup)
    ; Abs is necessary to make it work for AutoIt versions < 3.3.2.0 with bug #1068
    Return Abs($iResult)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_AD_IsMemberOf

    [/autoit]

    Das hat funktioniert.

    Problem war quasi, dass sich die Primäre Gruppe des Users in der Gruppe die ich ausgelesen habe befand, habe also

    [autoit]

    If _AD_IsMemberOf($oMember.distinguishedName, $sObject, False, True, $iDepth - 1) Then Return 1

    [/autoit]


    abgeändert ->

    [autoit]

    If _AD_IsMemberOf($oMember.distinguishedName, $sObject, $bIncludePrimaryGroup, True, $iDepth - 1) Then Return 1

    [/autoit]


    :)

  • Problem mit _AD_IsMemberOf

    • Mahagon
    • 11. März 2014 um 16:34

    1.4.1.0 und autoit die 3.3.10.2

    Habe ne AD unter 2012 R2 und 2008 R2 getestet

  • Problem mit _AD_IsMemberOf

    • Mahagon
    • 11. März 2014 um 15:40

    Habe ein Problem mit der Funktion _AD_IsMemberOf aus der AD.au3 UDF.

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _AD_IsMemberOf
    ; Description ...: Returns 1 if the object (user, group, computer) is a member of the specified group or any contained group.
    ; Syntax.........: _AD_IsMemberOf($sGroup[, $sObject = @Username[, $bIncludePrimaryGroup = False[, $bRecursive = False[, $iDepth = 10]]]])
    ; Parameters ....: $sGroup - Group to be checked for membership. Can be specified as sAMAccountName or Fully Qualified Domain Name (FQDN)
    ; $sObject - Optional: Object type (user, group, computer) to check for membership of $sGroup. Can be specified as sAMAccountName or Fully Qualified Domain Name (FQDN) (default = @UserName)
    ; $bIncludePrimaryGroup - Optional: Additionally checks the primary group for object membership (default = False)
    ; $bRecursive - Optional: Recursively check all groups of $sGroup up to the depth defined by $iDepth (default = False)
    ; $iDepth - Optional: Maximum depth of recursion (default = 10)
    ; Return values .: Success - 1, Specified object (user, group, computer) is a member of the specified group
    ; Failure - 0, @error set
    ; |0 - $sObject is not a member of $sGroup
    ; |1 - $sGroup does not exist
    ; |2 - $sObject does not exist
    ; Author ........: Jonathan Clelland
    ; Modified.......: water
    ; Remarks .......: Determines if the object is an immediate member of the group. This function does not verify membership in any nested groups.
    ; Related .......: _AD_GetUserGroups, _AD_GetUserPrimaryGroup, _AD_RecursiveGetMemberOf
    ; Link ..........:
    ; Example .......: Yes
    ; ===============================================================================================================================
    Func _AD_IsMemberOf($sGroup, $sObject = @UserName, $bIncludePrimaryGroup = False, $bRecursive = False, $iDepth = 10)

    [/autoit] [autoit][/autoit] [autoit]

    If _AD_ObjectExists($sGroup) = 0 Then Return SetError(1, 0, 0)
    If _AD_ObjectExists($sObject) = 0 Then Return SetError(2, 0, 0)
    If StringMid($sObject, 3, 1) <> "=" Then $sObject = _AD_SamAccountNameToFQDN($sObject) ; sAMAccountName provided
    If StringMid($sGroup, 3, 1) <> "=" Then $sGroup = _AD_SamAccountNameToFQDN($sGroup) ; sAMAccountName provided
    Local $oGroup = __AD_ObjGet("LDAP://" & $sAD_HostServer & "/" & $sGroup)
    Local $iResult = $oGroup.IsMember("LDAP://" & $sAD_HostServer & "/" & $sObject)
    If $iResult = 0 And $bRecursive = True Then
    For $oMember In $oGroup.Members
    If StringLower($oMember.Class) = 'group' Then
    If $iDepth > 0 Then
    If _AD_IsMemberOf($oMember.distinguishedName, $sObject, False, True, $iDepth - 1) Then Return 1
    EndIf
    Else
    If StringLower($oMember.distinguishedName) = $sObject Then Return 1
    EndIf
    Next
    EndIf
    ; Check Primary Group if $sObject isn't a member of the specified group and the flag is set
    If $iResult = 0 And $bIncludePrimaryGroup Then $iResult = (_AD_GetUserPrimaryGroup($sObject) = $sGroup)
    ; Abs is necessary to make it work for AutoIt versions < 3.3.2.0 with bug #1068
    Return Abs($iResult)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_AD_IsMemberOf

    [/autoit]


    Und zwar habe ich den Fall, dass sich ein user in einer globalen Gruppe "GRUPPE1" befindet und diese Mitglied einer anderen globalen Gruppe "GRUPPE2" ist.

    Nun möchte ich feststellen, ob der User sich in Gruppe2 befindet. Jedoch gibt mir _AD_IsMemberOf nur eine 1 zurück, wenn der user direkt in der GRUPPE2 steckt.

    [autoit]

    _AD_IsMemberOf("GRUPPE2","Username", True, True)

    [/autoit]

    Mit FQDN habe ich es auch schon getestet, gleiches ergebnis.

    Hoffe ihr könnt mich aus meiner missligen Lage befreien :D

    Danke soweit

  • autoIt install of a MSI with no reboot

    • Mahagon
    • 11. März 2014 um 15:33

    da würde ich eher nen alt+n senden, damit da nichts zwischen funkt ^^

  • msTsAllowLogin auslesen

    • Mahagon
    • 10. März 2014 um 13:51
    Spoiler anzeigen
    [autoit]

    #include "AD.au3"
    Local Const $wbemFlagReturnImmediately = 0x10
    Local Const $wbemFlagForwardOnly = 0x20

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $oMyError = ObjEvent("AutoIt.Error", "ComError")

    [/autoit] [autoit][/autoit] [autoit]

    _WinWMI_UserAccount_Name()

    [/autoit] [autoit][/autoit] [autoit]

    $oMyError = ObjEvent("AutoIt.Error", "")
    ;COM Error function
    Func ComError()
    If IsObj($oMyError) Then
    $HexNumber = Hex($oMyError.number, 8)
    SetError($HexNumber)
    Else
    SetError(1)
    EndIf
    Return 0
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _WinWMI_UserAccount_Name($Computer = '127.0.0.1')

    [/autoit] [autoit][/autoit] [autoit]

    _AD_Open()
    $WMIConnect = ObjGet('winmgmts:{impersonationLevel=impersonate}!\\' & $Computer & '\root\CIMV2')
    If Not IsObj($WMIConnect) Then Return SetError(-1, @error, 0)
    $ObjList = $WMIConnect.ExecQuery('select Name,FullName,Disabled,Lockout from win32_useraccount', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If Not IsObj($ObjList) Then Return SetError(-2, @error, 0)
    $sReturn = "INSERT INTO tbl_name (name,fullname,disabled,locked) Values"
    For $ObjItem In $ObjList
    $AD_DistinguishedName=_AD_GetObjectAttribute($ObjItem.Name, "DistinguishedName")
    $objRootDSE = ObjGet("LDAP://RootDSE")
    $strUserDN = $AD_DistinguishedName
    $UserObj = ObjGet("LDAP://" & $strUserDN)
    $sReturn &= "('"&$ObjItem.Name & "', '" & $ObjItem.FullName & "', '" & $ObjItem.Disabled & "', '" & $ObjItem.Lockout&"', '"&$UserObj.AllowLogon&"'),"
    Next
    If StringRight($sReturn,1) == "," Then $sReturn = StringTrimRight($sReturn,1)

    [/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite($sReturn & @LF)
    _AD_Close()
    $UserObj = ""

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_WinWMI_UserAccount_Name

    [/autoit]

    Mit Ldap scheint es zu klappen

    Aber Danke :)

  • msTsAllowLogin auslesen

    • Mahagon
    • 10. März 2014 um 11:51

    Moin,


    ich möchte gerne auslesen, ob sich ein Bestimmter User am Teriminalserver anmelden kann (siehe Bild)

    [Blockierte Grafik: http://i.imgur.com/EL24vSI.png]

    Habe es schon mit der AD UDF von water versucht:

    [autoit]

    #include "AD.au3"

    [/autoit][autoit][/autoit][autoit]

    ; Open Connection to the Active Directory
    _AD_Open()
    If @error Then Exit MsgBox(16, "Active Directory Example Skript", "Function _AD_Open encountered a problem. @error = " & @error & ", @extended = " & @extended)

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"",_AD_GetObjectAttribute(@UserName, "msTsAllowLogin"))

    [/autoit]

    Der scheint aber leider das TsAllowLogin nicht lesen zu können (CN z.B. geht aber)
    http://msdn.microsoft.com/en-us/library/cc220551.aspx

    Bei der WMI bin ich leider noch nicht fündig geworden. Regestry ebenso nicht


    Wichitg zu wissen: es geht hier um die einzelnen User nicht um die generelle Anmeldung per WTS.
    Jemand ne idee?

    Bin dankbar für jeden Tipp ^^

  • WMI Abfrage Autoit:3.3.10.2

    • Mahagon
    • 17. Januar 2014 um 12:19

    Ach wie blöde
    in ner 6.bak steht der Backslash sogar noch drin.


    Danke ... manchmal sieht man den Wald vor lauter Bäumen nicht

    Bin wohl irgendwie mal auf entfernen oder so gekommen

  • WMI Abfrage Autoit:3.3.10.2

    • Mahagon
    • 17. Januar 2014 um 10:00

    Habe mit der aktuellen Autoitversion das Problem, dass ich nicht mehr auf die WMI zugreifen kann.
    Mit der "alten" 3.3.8.1 lief das Skript noch.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $a = _WinWMI_LogonSession()
    If @error Then
    MsgBox(0, "Fehler", "Fehlercode: " & @error)
    Else
    _ArrayDisplay($a)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _WinWMI_LogonSession(Const $sComputer = "127.0.0.1")
    Local $iC = 0
    Local $oWMI = ObjGet("winmgmts:{impersonationLevel=impersonate}!" & $sComputer & "\root\CIMV2")
    If @error Then Return SetError(1, 0, -1)
    Local $oList = $oWMI.ExecQuery("SELECT * from Win32_LogonSession", "WQL", 0)
    If Not IsObj($oList) Then Return SetError(2, 0, -1)

    [/autoit] [autoit][/autoit] [autoit]

    Local $aR[$oList.Count][9]

    [/autoit] [autoit][/autoit] [autoit]

    For $i In $oList
    $aR[$iC][0] = $i.AuthenticationPackage
    $aR[$iC][1] = $i.Caption
    $aR[$iC][2] = $i.Description
    $aR[$iC][3] = $i.InstallDate
    $aR[$iC][4] = $i.LogonId
    $aR[$iC][5] = $i.LogonType
    $aR[$iC][6] = $i.Name
    $aR[$iC][7] = $i.StartTime
    $aR[$iC][8] = $i.Status
    $iC += 1
    Next
    Return $aR
    EndFunc

    [/autoit]


    Hat jemand schon eine Ähnliche Erfahrung gemacht?
    ObjGet scheint das Problem zu sein.

  • Script bleibt Zeitweise hängen

    • Mahagon
    • 9. November 2012 um 14:57

    Ich habe mich mal nach einiger Zeit wieder mit Autoit beschäftigt und schon hänge ich wieder am ersten Problem :D.
    Und zwar bastel ich mir im Moment ein kleines Tool, um häufig verwendete Texte zu schreiben und um Abkürzungen zu verwenden ( Beispiel MfG -> Mit freundlichen Grüßen ).
    Leider muss ich es öfters neu starten. Vor allem, wenn ich mal eine Stunde nicht am PC war und der Bildschirm gesperrt wird.
    Aber der Fehler will sich mir nicht offenbaren.

    Nun hoffe ich das ihr vielleicht eine Idee habt woran es liegen könnte.
    Bin für jeden Tip Dankbar :)

    Spoiler anzeigen
    [autoit]

    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIT3Wrapper_UseUpx=n
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include "HotString.au3"
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Local $sIniFile = @ScriptDir & "\config.ini"
    Local $bConvertermenu = False
    Local $sVersion = "01.00.03"
    Local $bConfigsave = False, $iConfigPID = ""
    Opt("SendKeyDelay", IniRead($sIniFile, "Delay", "SendKeyDelay", "5"))
    Opt("SendKeyDownDelay", IniRead($sIniFile, "Delay", "SendKeyDownDelay", "5"))
    Opt("TrayAutoPause", 0)
    Opt("TrayMenuMode", 1 + 2 + 8)
    FileInstall(".\config.ini", ".\config.ini")
    ReadControlSendFunctions()
    ReadSendFunctions()
    ReadCopyPasteFunctions()
    #region Tray Menue
    $trayConfig = TrayCreateItem("Konfiguration öffnen", -1, -1, 1)
    $trayConverter = TrayCreateItem("Absätze umwandeln", -1, -1, 1)
    TrayCreateItem("")
    $trayHelp = TrayCreateItem("Hilfe", -1, -1, 1)
    $trayChangelog = TrayCreateItem("Letzte Änderungen", -1, -1, 1)
    TrayCreateItem("")
    $trayExit = TrayCreateItem("Beenden", -1, -1, 1)
    While True
    If $bConfigsave = True Then
    If Not ProcessExists($iConfigPID) Then
    Local $_hotString_hotkeys[1]
    Local $_hotString_hotfuncs[1]
    Local $_hotString_hottext[1]
    ReadControlSendFunctions()
    ReadSendFunctions()
    ReadCopyPasteFunctions()
    Opt("SendKeyDelay", IniRead($sIniFile, "Delay", "SendKeyDelay", "5"))
    Opt("SendKeyDownDelay", IniRead($sIniFile, "Delay", "SendKeyDownDelay", "5"))
    $bConfigsave = False
    EndIf
    EndIf
    Local $tray = TrayGetMsg()
    Switch $tray
    Case $trayExit
    Exit 0
    Case $trayConfig
    $iConfigPID = Run("notepad.exe " & $sIniFile)
    TrayTip("Achtung!", "Änderungen werden erst übernommen, nachdem die Konfiguration gespeichert und geschlossen worden ist!", 10)
    $bConfigsave = True
    Case $trayConverter
    MsgBox(0, "Converter", "Mit Bestätigung dieses Dialogs wird der Text aus der Zwischenablage angepasst und wieder in Ihre Zwischenablage eingefügt.")
    ClipPut(StringReplace(StringReplace(ClipGet(), @CR, ""), @LF, "§br"))
    Case $trayHelp
    ShellExecute("http://****")
    Case $trayChangelog
    ShellExecute("http://****")
    EndSwitch
    WEnd
    Func ReplacerArray()
    Local $aReplArrayFunc[11][2] = [["§year", @YEAR],["§mon", @MON],["§mday", @MDAY],["§hour", @HOUR],["§min", @MIN],["§sec", @SEC],["§scriptdir", @ScriptDir],["§br", @LF],["§tab", "{TAB}"],["§winuser", @UserName],["§clip", ClipGet()]]
    Return $aReplArrayFunc
    EndFunc ;==>ReplacerArray
    Func ReplacerArrayClip()
    Local $aReplArrayFunc[11][2] = [["§year", @YEAR],["§mon", @MON],["§mday", @MDAY],["§hour", @HOUR],["§min", @MIN],["§sec", @SEC],["§scriptdir", @ScriptDir],["§br", @CRLF],["§tab", "{TAB}"],["§winuser", @UserName],["§clip", ClipGet()]]
    Return $aReplArrayFunc
    EndFunc ;==>ReplacerArray
    Func ControlSendText($iSendKeyLenght, $sSendText)
    $cut = ""
    Local $aReplArray = ReplacerArray()
    For $i = 1 To $iSendKeyLenght
    $cut &= "{BS}"
    Next
    For $iCSr = 0 To UBound($aReplArray) - 1
    $sSendText = StringReplace($sSendText, $aReplArray[$iCSr][0], $aReplArray[$iCSr][1])
    Next
    BlockInput(1)
    ControlSend("", "", "", $cut & $sSendText)
    BlockInput(0)
    EndFunc ;==>ControlSendText
    Func SendText($iSendKeyLenght, $sSendText)
    $cut = ""
    Local $aReplArray = ReplacerArray()
    For $i = 1 To $iSendKeyLenght
    $cut &= "{BS}"
    Next
    For $iCSr = 0 To UBound($aReplArray) - 1
    $sSendText = StringReplace($sSendText, $aReplArray[$iCSr][0], $aReplArray[$iCSr][1])
    Next
    BlockInput(1)
    Send($cut & $sSendText)
    BlockInput(0)
    EndFunc ;==>SendText
    Func CopyPasteText($iSendKeyLenght, $sSendText)
    $cut = ""
    Local $aReplArray = ReplacerArrayClip()
    For $i = 1 To $iSendKeyLenght
    $cut &= "{BS}"
    Next
    For $iCSr = 0 To UBound($aReplArray) - 1
    $sSendText = StringReplace($sSendText, $aReplArray[$iCSr][0], $aReplArray[$iCSr][1])
    Next
    BlockInput(1)
    $tempClip = ClipGet()
    ClipPut($sSendText)
    Send($cut)
    Send("^v")
    BlockInput(0)
    ClipPut($tempClip)
    EndFunc ;==>CopyPasteText
    Func ReadCopyPasteFunctions()
    Local $aCopyPaste = IniReadSection($sIniFile, "CopyPaste")
    If Not IsArray($aCopyPaste) Then Return
    For $iCS = 1 To $aCopyPaste[0][0]
    HotStringset($aCopyPaste[$iCS][0], "CopyPasteText", $aCopyPaste[$iCS][1])
    Next
    EndFunc ;==>ReadCopyPasteFunctions
    Func ReadControlSendFunctions()
    Local $aSendSection = IniReadSection($sIniFile, "ControlSend")
    If Not IsArray($aSendSection) Then Return
    For $iCS = 1 To $aSendSection[0][0]
    HotStringset($aSendSection[$iCS][0], "ControlSendText", $aSendSection[$iCS][1])
    Next
    EndFunc ;==>ReadControlSendFunctions
    Func ReadSendFunctions()
    Local $aControlSendSection = IniReadSection($sIniFile, "Send")
    If Not IsArray($aControlSendSection) Then Return
    For $iCS = 1 To $aControlSendSection[0][0]
    HotStringset($aControlSendSection[$iCS][0], "SendText", $aControlSendSection[$iCS][1])
    Next
    EndFunc ;==>ReadSendFunctions
    Func _GetDateTime($iDateFormat = 0)
    If $iDateFormat = 0 Then
    Return @MDAY & "." & @MON & "." & @YEAR
    ElseIf $iDateFormat = 1 Then
    Return @YEAR & "/" & @MON & "/" & @MDAY
    ElseIf $iDateFormat = 2 Then
    Return @YEAR & @MON & @MDAY
    ElseIf $iDateFormat = 3 Then
    Return @HOUR & ":" & @MIN
    Else
    Return @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN
    EndIf
    EndFunc ;==>_GetDateTime

    [/autoit]

    Dateien

    HotString.au3 3,57 kB – 558 Downloads config.ini 587 Byte – 538 Downloads
  • Abkürzungen in gewünschten Text umwandeln

    • Mahagon
    • 24. September 2012 um 15:24

    Oh das schaut gut aus! Danke :D

  • Abkürzungen in gewünschten Text umwandeln

    • Mahagon
    • 24. September 2012 um 14:19

    Ich würde mir gerne ein Programm basteln, welches mich z.B. beim schreiben von Mails (aber auch bei anderen Dingen) unterstützt.
    Gedacht habe ich mir folgendes. Nach der Eingabe einer vordefinierten Zeichenkette soll ein vordefinierter Text erscheinen.

    Beispiel: mfg -> Mit freundlichem Gruß

    [autoit]

    #include <Misc.au3>

    [/autoit][autoit][/autoit][autoit]

    Local $hDLL = DllOpen("user32.dll")
    While 1
    If _IsPressed("57", $hDLL) Then
    Send("{BS}Wort" & @CRLF)
    EndIf
    Sleep(50)
    WEnd
    DllClose($hDLL)

    [/autoit]


    Habe irgendwie keine Ahnung wie ichs anstelle. Hab Autoit bisher nur zur Automatisierung oder zum Auslesen von Daten genutzt ^^

    Hoffe ihr könnt mir helfen

    Gruß Daniel

  • Einfache Wenn Funktion

    • Mahagon
    • 30. Juli 2012 um 12:48

    Schau dir mal die Hilfe zu mouseclick an: http://translation.autoit.de/onlinehilfe/fu…/MouseClick.htm ;)

    Hier der Code, wie er aussehen sollte:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    While True
    if _IsPressed(01) then mousemove(500,500)
    WEnd

    [/autoit]

    EDIT: zu lahm :O

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™