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..
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..
uha..staun..da danke ich mal wieder im voraus für die lehrstunde..
wird nxt week probiert..was ne schwere geburt *G*
das ist die Funktion:
Func oOFolder_ItemAdd($oOL_Item)
Global $oOutlook = _OL_Open()
$tester = True
$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)
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
_OL_ItemMove($oOutlook, $oOL_Item, Default, $sSenderName & $aoutFolder[1] );"Gesendete Objekte");
If @error = 0 Then Return
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..
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..
nix, das Teil verschwindet im Nirvana, heul....
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)..
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.
oki, danke dir schon mal.
Wird gleich morgen ausprobiert *G*
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..
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"); <=====================***=======
..
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..
ups,
da wär ich im Leben niemals nicht draufgekommen, dort das @CRLF zu suchen, das dafür verantwortlich ist..thx..
Hi,
ich erstelle mir eine Liste der auf dem Server verfügbaren Drucker und speichere sie in einer .txt ab:
...
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Printer", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
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
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 ?!?
Func _schwierigkeit()
_schwierigkeit_eingabe()
EndFunc
Die Funktion selbst muss doch was zurückgeben..
Der _schwierigkeit() wird was zurückgegeben, sie selbst tut es aber nicht..
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..
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.
...
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))
...
Diese Listview wird durch Klick auf einen Button mit Werten aus dem AD gefüllt:
... $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
If @error > 0 Then
MsgBox(64, "AD-Functions", "No OUs could be found")
Else
_GUICtrlListView_DeleteAllItems($LVUsers)
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
Next
[/autoit] [autoit][/autoit] [autoit]EndIf
...
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??
Ich hab Win7 und geht ohne Probleme.
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:
For $i = 1 To Ubound($aaUser) - 1
$text = (_StringBetween($aaUser[$i], "CN=", ",OU="))
$testtext &= $text[0] ;& "|";@CRLF
GUICtrlCreateListViewItem($text[0] & "|" ,$memberOfG)
Next
wenn es nur in einem textfeld haben willst kannst ja mit
[autoit]GUICtrlSetData ( controlID, data [, default] )
[/autoit]setzen
_StringBeetween(aUser[$i], "CN=", ",OU="))
so habe ich mir die Gruppen geholt..
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"
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>
#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 ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Combo1
ComboChange()
EndSwitch
WEnd
Func ComboChange()
Local $aCombo = GUICtrlRead($Combo1)
Local $sAdr = (@ScriptDir & "\" & $aCombo & ".txt")
Local $h = FileOpen($sAdr, 0)
Local $aArray1 = _CSV2Array($h, ";", False, 2)
If IsArray($aArray1) Then
GUICtrlSetData($Label1, "Datum: " & $aArray1[0][0])
;_ArrayDisplay($aArray1)
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
EndIf
EndFunc
; #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)
If $cSeperator = Default Then $cSeperator = "auto"
If Not $cSeperator Then $cSeperator = Opt("GUIDataSeparatorChar")
; 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
; 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, "|", " "]
$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)
For $i = 0 To UBound($sC) - 1
If $iC[$i] > $iMax Then
$iMax = $iC[$i]
$cSeperator = $sC[$i]
EndIf
Next
EndIf
; 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]
; 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
Return $aRet
EndFunc ;==>_CSV2Array
Eine .txt-Datei hat immer folgendes Format (Länge variiert):
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.
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??
ging bei mir auch ohne probleme auf OHost-FTP
Nur die 5 angepasst..