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. Torni

Beiträge von Torni

  • Encrypt Password

    • Torni
    • 22. Juli 2012 um 14:20

    mach doch ganz einfach ein Eingabe-Feld in dem das Passwort eingegeben werden muss, das die TXT entschlüsselt,

    sprich das eingegebene ist der Schlüssel..somit steht das nicht im Code drin..

  • Outlook - Event abfangen, wenn ich eine Mail versendet habe

    • Torni
    • 20. Juli 2012 um 17:05

    uha..staun..da danke ich mal wieder im voraus für die lehrstunde..

    wird nxt week probiert..was ne schwere geburt *G*

  • Outlook - Event abfangen, wenn ich eine Mail versendet habe

    • Torni
    • 20. Juli 2012 um 16:43

    das ist die Funktion:

    Spoiler anzeigen
    [autoit]


    Func oOFolder_ItemAdd($oOL_Item)

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

    Global $oOutlook = _OL_Open()
    $tester = True

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

    $OL_Properties = _OL_ItemGet($oOutlook, $oOL_Item)
    ;_ArrayDisplay($OL_Properties)
    If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemGet Example Script", "Error accessing properties. @error = " & @error)

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

    Local $sSender = _ArraySearch($OL_Properties, "SentOnBehalfOfName") ; ~Row nach SoBoN durchsuchen in den Properties (77)
    Local $sSenderName = $OL_Properties[$sSender][1] ; Name des Absenders herausfiltern
    Global $aoutFolder = _OL_FolderAccess($oOutlook, $sSenderName, $olFolderSentMail);auf PF des SoBoN "zugreifen"
    ;_ArrayDisplay($aoutFolder); Kontrolle

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

    _OL_ItemMove($oOutlook, $oOL_Item, Default, $sSenderName & $aoutFolder[1] );"Gesendete Objekte");
    If @error = 0 Then Return

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

    EndFunc ;==>oOFolder_ItemAdd

    [/autoit]

    nicht mehr drin..
    habe kein OutlookClose drin, weil ich das über die $tester regle ob OL überhaupt an ist..tut ja aber hier nix zu..

  • Outlook - Event abfangen, wenn ich eine Mail versendet habe

    • Torni
    • 20. Juli 2012 um 12:42

    beide 0

    Nachtrag: nicht ins Nirvana sondern direkt in das Postfach rein verschoben und nicht in den Ordner wo es rein soll

    Also z.b.


    direkt unterhalb vom PF-Name hat er es hin verschoben..

  • Outlook - Event abfangen, wenn ich eine Mail versendet habe

    • Torni
    • 20. Juli 2012 um 12:35

    nix, das Teil verschwindet im Nirvana, heul....

  • Outlook - Event abfangen, wenn ich eine Mail versendet habe

    • Torni
    • 20. Juli 2012 um 12:06

    ja da steht aber doch nichts drin im 1. das ist leer ??

    das hier das element[0] = 5 ist hatte nichts mit meiner 5 oben zu tun, die Konstante ist zufälligerweise auch 5 für das SentMail, da hatte ich versucht das so zu übergeben (was ja logischerweise nicht gehen kann)..

  • Outlook - Event abfangen, wenn ich eine Mail versendet habe

    • Torni
    • 20. Juli 2012 um 09:56

    Ich übergebe an die Funktion:

    Global $aoutFolder = _OL_FolderAccess($oOutlook, $sSenderName, $olFolderSentMail)
    Wenn ich mir _OL_FolderAccess die RÜckgabewerte anschaue kommt folgendes:

    Die 5 ist ja die Konstante für das $olFolderSentMail, allerdings kann dieses im _OL_ItemMove nicht übergeben werden, der will einen Namen haben ?!?
    Übergebe ich ihm die Konstante, verschiebt er die aus dem gesendeten ins Nirvana !!! Die ist nirgendwo mehr zu sehen.

  • Outlook - Event abfangen, wenn ich eine Mail versendet habe

    • Torni
    • 19. Juli 2012 um 18:34

    oki, danke dir schon mal.
    Wird gleich morgen ausprobiert *G*

    [autoit]

    If StringLeft($sOL_Folder, 2) = "\\" Then ; Access a folder of another user

    [/autoit]

    p.s.: "\\firstname name" funktionierte aber so nicht mit den "\\".. Ohne diese anzugeben ging einwandfrei..

  • Outlook - Event abfangen, wenn ich eine Mail versendet habe

    • Torni
    • 19. Juli 2012 um 16:07

    Hiho,

    da hat sich mir grade ein neues Problem aufgetan:

    [autoit]


    ...
    Local $sSender = _ArraySearch($OL_Properties, "SentOnBehalfOfName") ; nach SoBoN durchsuchen in den Properties (77)
    Local $sSenderName = $OL_Properties[$sSender][1] ; Name des Absenders (im Auftrag von) herausfiltern
    _OL_ItemMove($oOutlook, $oOL_Item, Default, $sSenderName & "\" & "Gesendete Objekte"); <=====================***=======
    ..

    [/autoit]

    Da gibt es doch tatsächlich Postfächer die sind irgendwie anders konfiguriert. Da heissen die gesendeten Ordner:
    "Gesendete Elemente"
    "Gesendete Objekte"
    "Sent Items"

    Mit _OL_GetFolder bekomm ich die aber in jeweils anderer Reihenfolge angezeigt. $olFolderSentMail geht iwie auch nicht..

  • letzte leere Zeile löschen

    • Torni
    • 17. Juli 2012 um 19:06

    ups,

    da wär ich im Leben niemals nicht draufgekommen, dort das @CRLF zu suchen, das dafür verantwortlich ist..thx..

  • letzte leere Zeile löschen

    • Torni
    • 17. Juli 2012 um 18:30

    Hi,

    ich erstelle mir eine Liste der auf dem Server verfügbaren Drucker und speichere sie in einer .txt ab:

    Spoiler anzeigen
    [autoit]


    ...
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Printer", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

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

    If IsObj($colItems) then
    For $objItem In $colItems
    $Output = $Output & $objItem.Name & @CRLF
    Next
    FileWrite(@TempDir & "\Win32_Printer.TXT", $Output )
    Else
    Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_Printer" )
    Endif

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

    Jetzt ist jedesmal wenn die Datei erstellt wird, die letzte Zeile leer (ein @CRLF ?). Sieht man erst, wenn man die Datei mit nem Editor öffnet.
    Wie kann ich das umgehen, bzw. die letzte Zeile entfernen.

    Wenn ich mir die einzelnen Drucker in der For .. IN - Schleife in ein Array schreibe und dann das Array mittels _FileWriteFromArray ist auch wieder diese letzte leere Zeile vorhanden.
    Ebenso, wenn ich mittels _FileWriteToLine($sfile, _FileCountLines($sFile), "",1) die letzte Zeile "leere/überschreibe" ist sie vorhanden.
    Auch wenn ich per FileOpen mit Param = 2 die Datei erstelle (wird durch die 2 ja neu erstellt/gelöscht) ist diese "göttliche Geisterzeile" da.

    Da wird der Hund in der Pfanne verrückt, oder war ich das ?!?

  • Return | Es wird falsch Returnt | Kann den Denkfehler nicht finden

    • Torni
    • 17. Juli 2012 um 06:13
    [autoit]

    Func _schwierigkeit()
    _schwierigkeit_eingabe()
    EndFunc

    [/autoit]

    Die Funktion selbst muss doch was zurückgeben..
    Der _schwierigkeit() wird was zurückgegeben, sie selbst tut es aber nicht..

  • ListView im Tab erheblich langsamer??

    • Torni
    • 12. Juli 2012 um 16:13

    Hallo,

    danke.
    Verringert die Zeit erheblich jedoch seltsamerweise:

    Habe ich nur ein einzigen Tab auf der GUI geht das in ca. 1-2 Sekunden
    Habe ich mehrere Tabs (auf jeder sind Controls usw), dauert es wieder länger..
    Mache ich mehrere GUI-"Formulare" auf, geht das auch wieder sofort.

    also irgendwie bremst das TabCtrl doch aus..

  • ListView im Tab erheblich langsamer??

    • Torni
    • 11. Juli 2012 um 12:17

    Ich hab grade mal ein wenig rumprobiert und sah folgendes Problem:

    in meiner Gui hab ich mir ein Tab mit 3 Reitern erstellt. Im ersten Tab ist eine Listview drin.

    Spoiler anzeigen
    [autoit]

    ...
    Global $TabSheet1 = GUICtrlCreateTabItem("Server")
    Global $LVUsers = GUICtrlCreateListView("Login|Vollständiger Name|Beschreibung|Telefon|P-Laufwerk", 20, 43, $win_w - 40 , $win_h - 140, -1, BitOR($WS_EX_CLIENTEDGE,$LVS_EX_GRIDLINES,$LVS_EX_FULLROWSELECT))
    ...

    [/autoit]

    Diese Listview wird durch Klick auf einen Button mit Werten aus dem AD gefüllt:

    Spoiler anzeigen
    [autoit]


    ... $sADOU = "ou=" & GUICtrlRead($ServerCombo) & ",ou=yyy,dc=xxx,dc=zzz,dc=de"
    if _getCheckboxState($SperrBox) <> 1 Then
    $aObjects = _AD_GetObjectsInOU($sADOU, "(&(objectcategory=person)(objectclass=user)(cn=*))", 2, "sAMAccountName,displayname,description,telephoneNumber,homeDirectory", "sAMAccountName")
    Else
    $aObjects = _AD_GetObjectsInOU($sADOU, "(&(objectcategory=computer)(objectclass=computer)(name=*))", 2, "cn, description")
    EndIf

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

    If @error > 0 Then
    MsgBox(64, "AD-Functions", "No OUs could be found")
    Else
    _GUICtrlListView_DeleteAllItems($LVUsers)

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

    For $i=1 To UBound($aObjects)-1

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

    if _getCheckboxState($SperrBox) = 1 Then
    GUICtrlCreateListViewItem($aObjects[$i][0] & "|"& $aObjects[$i][1], $LVUsers)
    Else
    if StringLen($aObjects[$i][0]) <= 6 Then
    GUICtrlCreateListViewItem($aObjects[$i][0] & "|"& $aObjects[$i][1]& "|"& $aObjects[$i][2]& "|"& $aObjects[$i][3]& "|"& $aObjects[$i][4], $LVUsers)
    EndIf
    EndIf

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

    Next

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

    EndIf
    ...

    [/autoit]

    Das funktioniert so weit auch, AAAAber:

    Das Füllen der ListView im TAB dauert bei ca. 270 Einträgen etwa 10-12 Sekunden.
    Wenn ich die Listview ausserhalb eines Tabs mit gleichem Code füllen lasse, sind das nur max. 2 Sekunden.

    Wo ist da ein Problem??

  • upload von einer Datei über FTP

    • Torni
    • 6. Juli 2012 um 21:12

    Ich hab Win7 und geht ohne Probleme.

  • AD: Gruppen eines Benutzers in GUI darstellen

    • Torni
    • 5. Juli 2012 um 10:34

    Rückgabewert
    Erfolg: Ein 0-basierendes $Array[0] enthält den ersten gefundenen String.

    $test[0] hat dein wert..

    ich lasse mir die einzelnen rechte in einer listview anzeigen,weil ich von dort aus auh wieder einzelene löschen will:

    z.B bei mir:

    Spoiler anzeigen
    [autoit]


    For $i = 1 To Ubound($aaUser) - 1
    $text = (_StringBetween($aaUser[$i], "CN=", ",OU="))
    $testtext &= $text[0] ;& "|";@CRLF
    GUICtrlCreateListViewItem($text[0] & "|" ,$memberOfG)
    Next

    [/autoit]

    wenn es nur in einem textfeld haben willst kannst ja mit

    [autoit]

    GUICtrlSetData ( controlID, data [, default] )

    [/autoit]

    setzen

  • AD: Gruppen eines Benutzers in GUI darstellen

    • Torni
    • 5. Juli 2012 um 09:39

    _StringBeetween(aUser[$i], "CN=", ",OU="))

    so habe ich mir die Gruppen geholt..

  • INI-Datei sektionsweise aktualisieren

    • Torni
    • 4. Juli 2012 um 22:23

    Da gibt es noch nicht viel, außer daß bei Combochange die Datei ins Listview geladen wird.
    Mir geht es ja um das Speichern aller ListView-Inhalte in eine Datei - und neues Einlesen des entsprechenden "Datei-Blocks" wenn ComboChange.
    Hier habe ich eine komplette Logik-"Blockade"

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <array.au3>

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

    #Region ### START Koda GUI section ###
    $Form1 = GUICreate("Ranked", 424, 486, 192, 124)
    $Combo1 = GUICtrlCreateCombo("", 24, 448, 89, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData(-1, "SP|RU|AL|EF", "SP")
    $ListView1 = GUICtrlCreateListView("Name|Vorname|Ranking|TopOrder|Verified", 24, 8, 377, 433)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 120)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 80)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 60)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 60)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 55)
    $Button1 = GUICtrlCreateButton("Save", 136, 446, 73, 25)
    $Label1 = GUICtrlCreateLabel("Datum:", 232, 448, 126, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Combo1
    ComboChange()
    EndSwitch
    WEnd

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

    Func ComboChange()
    Local $aCombo = GUICtrlRead($Combo1)
    Local $sAdr = (@ScriptDir & "\" & $aCombo & ".txt")
    Local $h = FileOpen($sAdr, 0)
    Local $aArray1 = _CSV2Array($h, ";", False, 2)

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

    If IsArray($aArray1) Then
    GUICtrlSetData($Label1, "Datum: " & $aArray1[0][0])
    ;_ArrayDisplay($aArray1)

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

    For $i=1 To UBound($aArray1)-1
    GUICtrlCreateListViewItem($aArray1[$i][0] & "|"& $aArray1[$i][1]& "|"& $aArray1[$i][2]& "|"& $aArray1[$i][3]& "|"& $aArray1[$i][4], $ListView1)
    Next

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

    EndIf
    EndFunc

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

    ; #FUNCTION# ===================================================================
    ; Name ..........: _CSV2Array
    ; Description ...:
    ; AutoIt Version : V3.3.0.0
    ; Syntax ........: _CSV2Array($hFile[, $cSeperator = "auto"[, $bFilterString = True[, $iColumnMode = 0]]])
    ; Parameter(s): .: $hFile - Handle for the CSV file to Read
    ; $cSeperator - Optional: (Default = "auto") : Tries to find the separator char ;) or , or TAB or | or space)
    ; | Data-seperator-char
    ; | Empty-string = Opt("GUIDataSeparatorChar")
    ; $bFilterString - Optional: (Default = True) : Removes leading and trailing " or '
    ; $iColumnMode - Optional: (Default = 0) :
    ; | 0: Sets error if lines have different columns and @extended to the csv-line number
    ; | 1: returns lines with different columns numbers comparing to the first line, too
    ; | 2: removing all columns > column numbers in the first line
    ; Return Value ..: Success - 2-dim Array
    ; Failure - 0
    ; @ERROR - 1: error file read
    ; @ERROR - 2: different number of columns / @EXTENDED = CSV-line
    ; - 3: parameter error
    ; Author(s) .....: Thorsten Willert
    ; Date ..........: Mon Dec 07 18:54:35 CET 2009
    ; ==============================================================================
    Func _CSV2Array($hFile, $cSeperator = "auto", $bFilterString = True, $iColumnMode = 0)
    Local $s = FileRead($hFile)
    If @error Then Return SetError(1)

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

    If $cSeperator = Default Then $cSeperator = "auto"
    If Not $cSeperator Then $cSeperator = Opt("GUIDataSeparatorChar")

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

    ; searching the line-seperator and splitting the lines into an array
    Local $aLines
    If StringInStr($s, @CRLF) Then
    $aLines = StringSplit($s, @CRLF, 1)
    ElseIf StringInStr($s, @CR) Then
    $aLines = StringSplit($s, @CR)
    Else
    $aLines = StringSplit($s, @LF)
    EndIf

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

    ; searching the delimiter in the first line
    Local $aTMP
    If $cSeperator = "auto" Then
    Local $iMax = 0
    Local $iC[5] = [0, 0, 0, 0, 0]
    Local $sC[5] = [";", ",", @TAB, "|", " "]

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

    $aTMP = StringRegExp($aLines[1], ";", 3)
    If Not @error Then $iC[0] = UBound($aTMP)
    $aTMP = StringRegExp($aLines[1], ",", 3)
    If Not @error Then $iC[1] = UBound($aTMP)
    $aTMP = StringRegExp($aLines[1], "\t", 3)
    If Not @error Then $iC[2] = UBound($aTMP)
    $aTMP = StringRegExp($aLines[1], "\|", 3)
    If Not @error Then $iC[3] = UBound($aTMP)
    $aTMP = StringRegExp($aLines[1], "[ ]", 3)
    If Not @error Then $iC[4] = UBound($aTMP)

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

    For $i = 0 To UBound($sC) - 1
    If $iC[$i] > $iMax Then
    $iMax = $iC[$i]
    $cSeperator = $sC[$i]
    EndIf
    Next
    EndIf

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

    ; creating 2-dim array based on the number of data in the first line
    $aTMP = StringSplit($aLines[1], $cSeperator)
    Local $iCol = $aTMP[0]
    Local $aRet[$aLines[0]][$iCol]

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

    ; splitting and filling the lines
    For $i = 1 To $aLines[0]
    $aTMP = StringSplit($aLines[$i], $cSeperator)
    If @error Then ContinueLoop
    If $aTMP[0] > $iCol Then
    Switch $iColumnMode
    Case 0
    Return SetError(2, $i)
    Case 1
    ReDim $aRet[$aLines[0] - 1][$aTMP[0]]
    Case 2
    $aTMP[0] = $iCol
    Case Else
    Return SetError(3)
    EndSwitch
    EndIf
    For $j = 1 To $aTMP[0]
    $aTMP[$j] = StringStripWS($aTMP[$j], 3)
    If $bFilterString Then ; removing leading and trailing " or '
    $aTMP[$j] = StringRegExpReplace($aTMP[$j], '^("|'')(.*?)\1$', '$2')
    EndIf
    $aRet[$i - 1][$j - 1] = $aTMP[$j]
    Next ; /cols
    Next ; /lines

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

    Return $aRet
    EndFunc ;==>_CSV2Array

    [/autoit]

    Eine .txt-Datei hat immer folgendes Format (Länge variiert):

    Spoiler anzeigen


    29.06.2012;;;;
    Müller;Michel;12;14;yes
    Maier;Bernd;1;12;yes
    Becker;Peter;17;1;no

    sind jetzt willkürliche Daten, Alles noch am Anfang.

  • INI-Datei sektionsweise aktualisieren

    • Torni
    • 4. Juli 2012 um 19:12

    Hallo,

    irgendwie stehe ich grad ein wenig auf dem Schlauch - könnte an der Hitze liegen *G*

    Ich habe ein Listview mit einer Combobox.
    Je nach Combowert (feste Anzahl: 4 mit festen Werten/Kürzeln) soll die Listview mit den Werten aus einer entsprechenden Datei (ebenso Anzahl: 4) gefüllt werden (darin stehen jeweils 5 durch ";" getrennte Werte). Das ist kein großes Thema.
    Diese Listen sind unterschiedlich groß und der erste Wert in dieser Datei ist das Datum der Daten, um zu sehen von wann diese sind.

    Ich möchte nun diese 4 Listen/Dateien am liebsten in einer INI-Datei zusammenfassen, wobei aber die Daten entsprechend ein unterschiedliches Aktualisierungsdatum haben können und die evtl. Änderungen der ausgewählten Listview gespeichert werden können.
    Da diese aber immer nur ein Teil, der dann erhältlichen/zusammengefassten INI anzeigt, weiss ich nicht, wie ich die alte Sektion aus der zusammengefassten INI raus und in die neue rein soll (sofern ich auf den Speichern-Knopf drücke)

    Ist das überhaupt verständlich, was ich da geschrieben habe??

  • upload von einer Datei über FTP

    • Torni
    • 3. Juli 2012 um 16:30

    ging bei mir auch ohne probleme auf OHost-FTP

    Nur die 5 angepasst..

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™