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

Beiträge von ugt100

  • Laufwerksbuchstaben ermitteln und an ein DOS Batch übergeben ...

    • ugt100
    • 22. Dezember 2010 um 14:09

    Hallo zusammen,
    ich habe da mal wieder ein 'Problem' und hoffe jemand kann mir ggf. den ein oder anderen Tip geben.

    Also was mache ich:

    ich ermittle via Autoit den aktuellen Laufwerksbuchstaben der angehängten (USB Port) Festplatte, indem ich auf ein file prüfe.
    Das funktioniert soweit erst einmal.

    Dann muss/will ich diese Information an einen (DOS)Batch übergeben, der im Adminkontext gestartet werden muss.
    (dieses zugegebenermassen einfache batchfile kommt von DATEV und soll nicht 'angefasst werden' - daher die Sache mit dem Batch)
    D.h. ich starte das Ganze mit RunAsWait und muss dabei den aktuellen LW-Buchstaben übergeben - was mir nicht gelingt.


    Hat jemand einen Tipp für mich ?


    Spoiler anzeigen


    Check for connected external HDD
    $arcdeDrive = DriveGetDrive("ALL")
    For $i = 1 To $arcdeDrive[0]
    $strDriveType = DriveGetType($arcdeDrive[$i])
    If $strDriveType = "CDROM" Or $strDriveType = "NETWORK" Then ContinueLoop
    $cdeDrive = $arcdeDrive[$i]
    $cdeFile = $cdeDrive & "\Witch.id"
    If FileExists($cdeFile) Then ExitLoop
    $cdeDrive = ""
    $cdeFile = ""
    Next
    Local $sUserName = "XYZ"
    Local $sPassword = "123456789"

    ;Start backup routine
    $cdeDrive = $cdeDrive & "\"
    If $cdeFile <> "" Then
    TrayTip("Backup läuft", "Sicherung auf ext. Datenträger",10,1)
    MsgBox(64,"Datensicherung", "Start der Sicherung - Bitte warten ...",2)
    RunAsWait($sUserName, @Computername, $sPassword, 0, "c:\xyz\sicherung.bat" & $cdeDrive, @WorkingDir) <--- hier muss das LW übergeben werden
    TrayTip("clears any tray tip","",0)
    SplashTextOn("Datensicherung", "Die Daten wurden erfolgreich gesichert...", 350, 70, -1, -1, 32, "", 10)
    $cdeStatus = "OK"
    SplashOff()
    Else
    MsgBox(16,"Datensicherung", " Der ext. Datenträger konnte nicht gefunden werden." _
    & @CRLF & @CRLF & "Bitte das LW anschliessen + die Datensicherung erneut starten !!!")
    $cdeStatus = "NIOK"

    hier batch, wobei der Laufwerksbuchstabe z: durch den mit Autoit ermittelten Buchstaben ersetzt werden muss.
    @ECHO OFF
    ECHO "Datensicherung Laptop"
    ECHO."-------------------------------"
    net stop MSSQL$DATEV_CL_DE01
    robocopy C:\datev\daten z:\Datev_Datensicherung /MIR /R:2 /W:2 /LOG:BkpRobo.log /NS /NC /TEE /FFT
    robocopy C:\xyz\ z:\ /MIR /R:2 /W:2 /LOG+:BkpRobo.log /NS /NC /TEE
    ECHO."-----------------------------------------------------"
    ECHO "Ein ausführliches LOG ist zu finden unter uhnBkpRobo.log"
    net start MSSQL$DATEV_CL_DE01
    Exit


    schon eimal ein weihnachtliches Danke an alle

    Gruss
    ugt100

  • Auslesen CSV File - 'aufarbeiten' - einzelne Datensätze in verschiedenen (Web) Seiten sortiert anzeigen

    • ugt100
    • 15. Dezember 2010 um 16:29

    Hallo zusammen,

    ein grosses Danke an alle die so schnell und 'hochwertig' geantwortet haben.

    Ich denke mit den aufgezeigten Wegen / Varianten, kann ich was anfangen und werde die Kuh vom Eis bekommen.
    Sollte dies wieder Erwarten nicht gelingen, wäre ich so frei und würde mich nochmal ans Forum hier wenden.


    Gruss und Danke
    ugt100
    :thumbup: - :)

    (P.S. dem gesamten Forum gehört ein grosses Lob in Sachen Qualität und Reaktionszeiten)

  • Auslesen CSV File - 'aufarbeiten' - einzelne Datensätze in verschiedenen (Web) Seiten sortiert anzeigen

    • ugt100
    • 15. Dezember 2010 um 10:57

    Moin moin,
    ich komme irgendwie nicht so recht weiter - mir fehlt so der richtige Ansatz zur Lösung meines Problems.
    (Zur Zeit mache ich dies mehr od. weniger mannuell, wobei mir schon etwas länger die Idee vorschwebt einen Automatismus dafür zu erzeugen)

    Problembeschreibung:
    Ich bekomme täglich mehrmals csv Dateien (von verschiedenen Quellen aus HR). Diese sind vom Aufbau her (zum Glück) von meiner Seite genormt.
    Je nach Trigger/Schlüssel soll dieser Datensatz auf einer definierten Webpage angezeigt werden ....

    Also so sieht das jeweilige File prinzipiell aus.

    Trig - ProcNr - ProcName - DateStart - DateEnd - WebPage
    t1, 123, abc, 14.12.10, 15.12.10, intern
    t2, 456, abc, 14.12.10, 15.12.10, extern
    t3, 123, efg, 14.12.10, 15.12.10, intern
    t4, 789, xyz, 14.12.10, 15.12.10, intern
    t5, 123, lol, 14.12.10, 15.12.10, extern

    Jetzt sollten alle internen Prozesse (Merkmal = WebPage intern) auf die WebPage1 und die Externen auf Merkmal = WebPage2 (in sortierter Reihenfolge) übertragen werden.


    Meine Idee:
    das CSV in ein Array einlesen - nach intern/extern sortieren und dann solange alle Datensätze (=Zeilen) die mit z.B. intern aufgeführt sind in ein neues File schreiben (und dieses dann vom WebServer auslesen + darstellen lassen).

    Sortiertes Files sehen dann so aus ...
    Trig - ProcNr - ProcName - DateStart - DateEnd - WebPage
    t1, 123, abc, 14.12.10, 15.12.10, intern
    t3, 123, efg, 14.12.10, 15.12.10, intern
    t4, 789, xyz, 14.12.10, 15.12.10, intern


    Trig - ProcNr - ProcName - DateStart - DateEnd - WebPage
    t2, 456, abc, 14.12.10, 15.12.10, extern
    t5, 123, lol, 14.12.10, 15.12.10, extern

    Das Einlesen bzw. sortieren gelingt mir nicht ...


    Vielleicht kann ja jemand helfen oder hat einen Ansatz für mich

    DANKE

    Gruss
    ugt100

  • Script verbessern

    • ugt100
    • 18. November 2010 um 09:10

    Hallo i2c,

    ich kann nur sagen SUPER ... sas läuft wie SchmitzKatz .

    Danke

    Ich glaube da kann ich mir noche ne Scheibe von abschneiden.

    Gruss
    ugt100 :thumbup:

  • Script verbessern

    • ugt100
    • 17. November 2010 um 14:21

    Hallo autobert,

    danke für die schnelle Antwort bzw. den schnellen Tip.
    Ich habe mir das mal auf die Schnelle angesehen und denke damit klar zu kommen.
    So ähnlich habe ich mir das schon gedacht, bloss an der Umsetzung hapert(e) es.

    Werde mich dransetzen und berichten.

    DANKE

    Gruss
    ugt100 :thumbup:

  • Script verbessern

    • ugt100
    • 17. November 2010 um 13:40

    Hallo zusammen,

    ich habe mal wieder eine Frage an die Profis bzw. möchte versuchen mein Script zu verbessern.

    Kurz gesagt glaube ich das mein Script, das so wie es ist funktioniert, sicher noch`Verbesserungsportential besitzt.
    Soll heissen die ganzen 'Einzel'aufrufe kann man sicherlich über Arrays (glaube ich zumindest) verbessern, professioneller machen.
    Daher meine Frage / Bitte um Verbesserungsvorschläge (ich will ja auch besser werden)

    Bei dem Script handelt es sich um eine Art Softwareupdater, der auf vorhandene batch Dateien zugrefit
    (das dem so ist hat historische Gründe und soll auch so bleiben (Nutzerwunsch)


    Spoiler anzeigen


    #include <GUIConstants.au3>
    #include <Date.au3>

    Dim $lbswupd1, $lbswupd2, $lbswupd3, $lbswupd4, $lbswupd5, $lbswupd6, $lbswupd7 ;Label

    Dim $swupddate1, $swupddate2, $swupddate3, $swupddate4, $swupddate5, $swupddate6, $swupddate7 ;Date

    Dim $swupdbatch1, $swupdbatch2, $swupdbatch3, $swupdbatch4, $swupdbatch5, $swupdbatch6, $swupdbatch7 ;BatchPath
    Dim $swupd1, $swupd2, $swupd3, $swupd4, $swupd5, $swupd6, $swupd7 ;Batchfile
    Dim $batchAll1, $batchAll2, $batchAll3, $batchAll4, $batchAll5, $batchAll6, $batchAll7 ;BatchGesamt

    Dim $swupdpath1, $swupdpath2, $swupdpath3, $swupdpath4, $swupdpath5, $swupdpath6, $swupdpath7 ;UpdatePath
    Dim $swupdfile1, $swupdfile2, $swupdfile3, $swupdfile4, $swupdfile5, $swupdfile6, $swupdfile7 ;Updatefile
    Dim $swupdAll1, $swupdAll2, $swupdAll3, $swupdAll4, $swupdAll5, $swupdAll6, $swupdAll7 ;UpdateGesamt

    Dim $openproc1, $openproc2, $openproc3, $openproc4, $openproc5, $openproc6, $openproc7 ;OpenProcesses

    ;Label
    $lbswupd1 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd1", "NichtGefunden") ;CCleaner
    $lbswupd2 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd2", "NichtGefunden") ;Notepad++
    $lbswupd3 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd3", "NichtGefunden") ;VLC Player
    $lbswupd4 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd4", "NichtGefunden") ;PicPick
    $lbswupd5 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd5", "NichtGefunden") ;Teamviewer
    $lbswupd6 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd6", "NichtGefunden") ;FoxIt
    $lbswupd7 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd7", "NichtGefunden") ;N.N

    ;BatchPath
    $swupdbatch1 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch1", "NichtGefunden")
    $swupdbatch2 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch2", "NichtGefunden")
    $swupdbatch3 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch3", "NichtGefunden")
    $swupdbatch4 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch4", "NichtGefunden")
    $swupdbatch5 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch5", "NichtGefunden")
    $swupdbatch6 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch6", "NichtGefunden")
    $swupdbatch7 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch7", "NichtGefunden")

    ;Batchfile
    $swupd1 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd1", "NichtGefunden")
    $swupd2 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd2", "NichtGefunden")
    $swupd3 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd3", "NichtGefunden")
    $swupd4 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd4", "NichtGefunden")
    $swupd5 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd5", "NichtGefunden")
    $swupd6 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd6", "NichtGefunden")
    $swupd7 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd7", "NichtGefunden")

    ;BatchGesamt
    $batchAll1 = $swupdbatch1 & $swupd1
    $batchAll2 = $swupdbatch2 & $swupd2
    $batchAll3 = $swupdbatch3 & $swupd3
    $batchAll4 = $swupdbatch4 & $swupd4
    $batchAll5 = $swupdbatch5 & $swupd5
    $batchAll6 = $swupdbatch6 & $swupd6
    $batchAll7 = $swupdbatch7 & $swupd7

    ;UpdatePath
    $swupdpath1 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath1", "NichtGefunden")
    $swupdpath2 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath2", "NichtGefunden")
    $swupdpath3 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath3", "NichtGefunden")
    $swupdpath4 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath4", "NichtGefunden")
    $swupdpath5 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath5", "NichtGefunden")
    $swupdpath6 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath6", "NichtGefunden")
    $swupdpath7 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath7", "NichtGefunden")

    ;Updatefile
    $swupdfile1 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile1", "NichtGefunden")
    $swupdfile2 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile2", "NichtGefunden")
    $swupdfile3 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile3", "NichtGefunden")
    $swupdfile4 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile4", "NichtGefunden")
    $swupdfile5 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile5", "NichtGefunden")
    $swupdfile6 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile6", "NichtGefunden")
    $swupdfile7 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile7", "NichtGefunden")

    ;UpdateGesamt
    $swupdAll1 = $swupdpath1 & $swupdfile1
    $swupdAll2 = $swupdpath2 & $swupdfile2
    $swupdAll3 = $swupdpath3 & $swupdfile3
    $swupdAll4 = $swupdpath4 & $swupdfile4
    $swupdAll5 = $swupdpath5 & $swupdfile5
    $swupdAll6 = $swupdpath6 & $swupdfile6
    $swupdAll7 = $swupdpath7 & $swupdfile7

    ;Date
    $Date = StringLeft(_Now(), 10)

    ;GUI
    $Form1 = GUICreate("Software Updater", 220, 210, 500, 230)
    GUISetIcon(@ScriptDir & "\swupd.ico")
    $Group1 = GUICtrlCreateGroup("Choose for update ... Last Update", 8, 8, 200, 163)

    $Label1 = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate1", "NichtGefunden") & ")", 143, 28, 60, 20)
    GUICtrlSetFont(-1,7)
    $Label2 = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate2", "NichtGefunden") & ")", 143, 48, 60, 20)
    GUICtrlSetFont(-1,7)
    $Label3 = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate3", "NichtGefunden") & ")", 143, 68, 60, 20)
    GUICtrlSetFont(-1,7)
    $Label4 = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate4", "NichtGefunden") & ")", 143, 88, 60, 20)
    GUICtrlSetFont(-1,7)
    $Label5 = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate5", "NichtGefunden") & ")", 143, 108, 60, 20)
    GUICtrlSetFont(-1,7)
    $Label6 = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate6", "NichtGefunden") & ")", 143, 128, 60, 20)
    GUICtrlSetFont(-1,7)
    $Label7 = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate7", "NichtGefunden") & ")", 143, 148, 60, 20)
    GUICtrlSetFont(-1,7)

    $Checkbox1 = GUICtrlCreateCheckbox($lbswupd1, 16, 25, 75, 20)
    $Checkbox2 = GUICtrlCreateCheckbox($lbswupd2, 16, 45, 75, 17)
    $Checkbox3 = GUICtrlCreateCheckbox($lbswupd3, 16, 65, 75, 17)
    $Checkbox4 = GUICtrlCreateCheckbox($lbswupd4, 16, 85, 75, 17)
    $Checkbox5 = GUICtrlCreateCheckbox($lbswupd5, 16, 105, 75, 17)
    $Checkbox6 = GUICtrlCreateCheckbox($lbswupd6, 16, 125, 75, 17)
    $Checkbox7 = GUICtrlCreateCheckbox($lbswupd7, 16, 145, 75, 17)

    $Button1 = GUICtrlCreateButton("Update", 8, 176, 90, 25, 0)
    $Button2 = GUICtrlCreateButton("Close", 117, 176, 90, 25, 0)

    GUISetState()


    ;Check existing Update-File
    If Not FileExists($swupdAll1) Then
    GUICtrlSetState($Checkbox1, $GUI_DISABLE)
    GUICtrlSetState($Label1, $GUI_DISABLE)
    EndIf

    If Not FileExists($batchAll2) Then
    GUICtrlSetState($Checkbox2, $GUI_DISABLE)
    GUICtrlSetState($Label2, $GUI_DISABLE)
    EndIf

    If Not FileExists($batchAll3) Then
    GUICtrlSetState($Checkbox3, $GUI_DISABLE)
    GUICtrlSetState($Label3, $GUI_DISABLE)
    EndIf

    If Not FileExists($batchAll4) Then
    GUICtrlSetState($Checkbox4, $GUI_DISABLE)
    GUICtrlSetState($Label4, $GUI_DISABLE)
    EndIf

    If Not FileExists($batchAll5) Then
    GUICtrlSetState($Checkbox5, $GUI_DISABLE)
    GUICtrlSetState($Label5, $GUI_DISABLE)
    EndIf

    If Not FileExists($batchAll6) Then
    GUICtrlSetState($Checkbox6, $GUI_DISABLE)
    GUICtrlSetState($Label6, $GUI_DISABLE)
    EndIf

    If Not FileExists($batchAll7) Then
    GUICtrlSetState($Checkbox7, $GUI_DISABLE)
    GUICtrlSetState($Label7, $GUI_DISABLE)
    EndIf

    ;Check open Processes
    ;~ $openproc1 = ProcessExists("CCleaner.exe")
    ;~ $openproc2 = ProcessExists("VLC.exe")
    ;~ $openproc3 = ProcessExists("Notepad++.exe")
    ;~ $openproc4 = ProcessExists("picpick.exe")
    ;~ $openproc5 = ProcessExists("Teamviewer.exe") Or ProcessExists("Teamviewer_.exe")
    ;~ $openproc6 = ProcessExists("FoxIt Reader.exe")
    ;~ $openproc7 =

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $Checkbox1 And BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED
    $lbswupd = $lbswupd1
    Case $msg = $Checkbox2 And BitAND(GUICtrlRead($Checkbox2), $GUI_CHECKED) = $GUI_CHECKED
    $lbswupd = $lbswupd2
    Case $msg = $Checkbox3 And BitAND(GUICtrlRead($Checkbox3), $GUI_CHECKED) = $GUI_CHECKED
    $lbswupd = $lbswupd3
    Case $msg = $Checkbox4 And BitAND(GUICtrlRead($Checkbox4), $GUI_CHECKED) = $GUI_CHECKED
    $lbswupd = $lbswupd4
    Case $msg = $Checkbox5 And BitAND(GUICtrlRead($Checkbox5), $GUI_CHECKED) = $GUI_CHECKED
    $lbswupd = $lbswupd5
    Case $msg = $Checkbox6 And BitAND(GUICtrlRead($Checkbox6), $GUI_CHECKED) = $GUI_CHECKED
    $lbswupd = $lbswupd6
    Case $msg = $Checkbox7 And BitAND(GUICtrlRead($Checkbox7), $GUI_CHECKED) = $GUI_CHECKED
    $lbswupd = $lbswupd7
    Case $msg = $Button1
    TrayTip("Update läuft", "Das Update von " & $lbswupd & " läuft ...",10,0.5)

    If _getCheckboxState($Checkbox1) = 1 Then RunWait($batchAll1)
    If _getCheckboxState($Checkbox1) = 1 Then IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate1", $Date)
    If _getCheckboxState($Checkbox1) = 1 Then GUICtrlSetData($Label1,$Date)
    GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)

    If _getCheckboxState($Checkbox2) = 1 Then RunWait($batchAll2)
    If _getCheckboxState($Checkbox2) = 1 Then IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate2", $Date)
    If _getCheckboxState($Checkbox2) = 1 Then GUICtrlSetData($Label2,$Date)
    GUICtrlSetState($Checkbox2, $GUI_UNCHECKED)

    If _getCheckboxState($Checkbox3) = 1 Then RunWait($batchAll3)
    If _getCheckboxState($Checkbox3) = 1 Then IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate3", $Date)
    If _getCheckboxState($Checkbox3) = 1 Then GUICtrlSetData($Label3,$Date)
    GUICtrlSetState($Checkbox3, $GUI_UNCHECKED)

    If _getCheckboxState($Checkbox4) = 1 Then RunWait($batchAll4)
    If _getCheckboxState($Checkbox4) = 1 Then IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate4", $Date)
    If _getCheckboxState($Checkbox4) = 1 Then GUICtrlSetData($Label4,$Date)
    GUICtrlSetState($Checkbox4, $GUI_UNCHECKED)

    If _getCheckboxState($Checkbox5) = 1 Then RunWait($batchAll5)
    If _getCheckboxState($Checkbox5) = 1 Then GUICtrlSetData($Label5,$Date)
    If _getCheckboxState($Checkbox5) = 1 Then IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate5", $Date)
    GUICtrlSetState($Checkbox5, $GUI_UNCHECKED)

    If _getCheckboxState($Checkbox6) = 1 Then RunWait($batchAll6)
    If _getCheckboxState($Checkbox6) = 1 Then IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate6", $Date)
    If _getCheckboxState($Checkbox6) = 1 Then GUICtrlSetData($Label6,$Date)
    GUICtrlSetState($Checkbox6, $GUI_UNCHECKED)

    If _getCheckboxState($Checkbox7) = 1 Then RunWait($batchAll7)
    If _getCheckboxState($Checkbox7) = 1 Then IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate7", $Date)
    If _getCheckboxState($Checkbox7) = 1 Then GUICtrlSetData($Label7 ,$Date)
    GUICtrlSetState($Checkbox7, $GUI_UNCHECKED)

    TrayTip("","",0)
    Case $msg = $Button2
    Exit
    EndSelect
    WEnd


    Func _getCheckboxState($controlID)
    Return BitAND(GUICtrlRead($controlID),$GUI_CHECKED)
    EndFunc


    Mir geht es im Speziellen um die ganzen einzulesenden Werte, die man betimmt mittels Arrays straffen bzw. besser verarbeiten kann.
    Leider weiss ich nicht so genau wie das anzustellen ist.


    Please help .... :wacko:

    Danke schon mal

    Gruss

    ugt100

  • INetSmtpMailCom und der Versand von HTML Mails.

    • ugt100
    • 8. November 2010 um 15:46

    Hallo zusammen,

    vielleicht ist meine Frage ja zu blöde - aber da ich nichts finden konnte (trotz intensiver Suche) frage ich hier einmal vorsichtig an.

    Also ich habe ein Überwachungsscript, welches im Fehlerfall eine Mail an einen Verteiler sendet - das funktioniert auch gut mit INetSmtpMailCom.
    Jetzt würde ich dieses Mail (weils es inzwischen auch an den IT Vorstand versendet wird) 'hübsch' machen wollen und als HTML Mail versenden.
    (Anm.: Mit BLAT gelingt mir das schon, aber ich möchte mich innerhalb von AutoIT bewegen)

    Soweit ich die UDF verstehe, ist das grundsätzlich möglich ...
    (If SringInStr($as_Body,"<") And SringInStr($as_Body,">") Then $objEmail.HTMLBody = $as_Body).

    Nur was gebe ich jetzt der Variablen $as_Body denn nun genau mit ?
    nur den <Body .... /Body> Anteil oder den gesamten Html Code ?????

    Für jede Anregung / Hilfe bedanke ich mich schon einmal - :rock:

    Wie gesagt mir fehlt hier die zündende Idee


    Danke

    Gruss
    Chris

  • Die ersten X Zeilen (an oberster Stelle stehend) in einer Text Datei löschen

    • ugt100
    • 20. Juli 2010 um 15:35

    Hi 'Schrubber', hi 'SEuBo,
    danke für die schnellen Antworten !!! Wie immer einfach super das Forum !!!

    Ich habe die Lösungen jeweils getestet - alle funktionieren soweit.
    Allerdings habe ich es dann noch auf einem anderen Weg gelöst:

    anbei der 'entscheidende' Scriptteil:

    [autoit]


    $File = @ScriptDir & "\xyz.log"
    $File1 = @ScriptDir & "\123.log"

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

    $CountLines = _FileCountLines($File)
    If $CountLines > 60 Then
    $aVar1 = _FileReadToArray($File, $aRecords)
    _FileWriteFromArray($file1, $aRecords,6)
    FileMove($file1,$File,1)
    Endif

    [/autoit]


    Wobei ich jetzt nicht sagen kann, ob das temp. Erzeugen eines Files 'professionell' ist.
    Aber es funktioniert und da die Files letztlich nicht gross sind, gibt es kein Zeitproblem

    Danke an alle

    Gruss
    ugt100 :thumbup:

  • Die ersten X Zeilen (an oberster Stelle stehend) in einer Text Datei löschen

    • ugt100
    • 20. Juli 2010 um 11:53

    Hallo zusammen,

    irgendwie stehe ich auf dem Schlauch und komme trotz (intensiver) Recherche nicht so recht weiter.
    Daher meine Frage hier ....

    Problem:

    Ich habe eine Textdatei (ein automatisch generiertes LOG-File) welches alle 10 min um genau 5 Zeilen vergrössert wird.
    Diese Zeilen werden jeweils ans Ende des Files geschrieben und haben immer denselben Aufbau.

    Bsp.
    ********************
    autom. check
    Date: 20.07.2010
    Status: OK
    ********************

    Jetzt hätte ich gerne das nach Ablauf von 24 h (= 144 x 5 Zeilen = 6 Einträge / Std. x 24), die jeweils ältesten 5 Zeilen,
    also die, die am Anfang der Datei stehen, gelöscht werden.


    Ich habe es mit StringReplace probiert, was aber nicht zum gewünschten Erfolg geführt hat.
    Mit FileSetPos kann zwar an den Anfang des Files 'springen' - aber das mit dem Löchen funktioniert nicht so recht.

    Kann es hilfreich sein das File in ein Array einzulesen und dieses dann entsprechend ab Pos6 in ein File zu schreiben ?


    Danke schon einmal im voraus

    ugt100 8)

  • AD User member of und Gruppen Members

    • ugt100
    • 15. Juli 2010 um 14:01

    HI,

    versuchs mal mit diesen UDFs: Active Directory Functions: NEW: 2010-05-15 - Version 0.39


    Gruss
    ugt100

  • Schreiben in ein File funktioniert nicht, wenn die exe von tasksscheduler ausgeführt wird.

    • ugt100
    • 24. Juni 2010 um 16:35

    hi autobert,

    es kommt zu keinem fehler (in normalfall)- die sicherung funktioniert ohne probleme. nur das schreiben in die ini datei klappt nicht

    das mit den absoluten pfaden teste ich ...

    Gruss
    ugt100

  • Schreiben in ein File funktioniert nicht, wenn die exe von tasksscheduler ausgeführt wird.

    • ugt100
    • 24. Juni 2010 um 15:06

    hi all,

    ich habe dein ein für mich seltsames verhalten bei einem meiner scripte.

    ich sichere täglich die registry eines rechners, schreibe diese in ein verzeichnis das den aktuellen wochentag als name bekommt.
    ausnahme ist der jeweilige Donnerstag der in ein verzeichnis mit dem aktuellen datum bekommt (und archiviert wird). d.h. ich habe eine revolvierende sicherung mit einer jeweiligen Wochensicherung. ---- das funzt auch.

    den programmpfad, den sicherungspfad und die parameter übergebe ich mittels einer ini datei. ---- das funzt auch

    ein kurzes protokoll (erfolg oder fehlerfall) schreibe ich auch in diese ini datei zurück ---- das funzt auch wenn ich das compilierte script (exe) per doppelklick ausführe.

    :?: und jetzt zu dem problem: :?:
    wird das compilierte script aber über den win7 taskscheduler ausgeführt klappt das schreiben der protokoll einträge nicht.

    kann mir jemand vielleicht sagen, woran das liegt (btw. die ntfs rechte auf das verzeichnis und die datei (ini) sind full control everyone)


    liebe gruesse
    ugt100


    Spoiler anzeigen


    #include <Date.au3>
    #include <file.au3>

    Dim $cde_param, $cde_prgpath, $cde_sikpath, $cde_tagname, $cde_weekday, $cde_LastRun, $cde_Drive, $cde_filedate

    FileInstall("RegLocalSikSettings.ini", "RegLocalSikSettings.ini") ;INI-Datei editierbar

    If FileExists(".\RegLocalSikSettings.ini") Then ;If INI-Datei vorhanden, sonst Cancel
    $cde_prgpath = IniRead("RegLocalSikSettings.ini", "Settings", "cde_prgpath", "NichtGefunden") ;Auslesen INI-Datei
    $cde_sikpath = IniRead("RegLocalSikSettings.ini", "Settings", "cde_sikpath", "NichtGefunden")
    $cde_param = IniRead("RegLocalSikSettings.ini", "Settings", "cde_param", "NichtGefunden")
    $cde_Drive = StringMid($cde_sikpath, 2, 3)

    $cde_LastRun = " " & @MDAY & "-" & @MON & "-" & @YEAR & " " & @HOUR & ":" & @MIN ;Last Run Datum
    IniWrite("RegLocalSikSettings.ini", "History", "cde_LastRun", $cde_LastRun) ;in INI-Datei schreiben


    If FileExists($cde_prgpath) Then ;If Programm gefunden, sonst Cancel
    If DriveStatus($cde_Drive) = "READY" Then ;If Ziel vorhanden, sonst Cancel
    MsgBox(64,"Registry sichern", "Start der Sicherung - einen Augenblick bitte ...",2)

    $cde_weekday = _DateToDayOfWeekISO(@YEAR, @MON, @MDAY) ;Berechnung Wochentag
    If $cde_weekday = "1" Then ;tägl. Sicherung pro Wochentag
    $cde_tagname = "Montag" ;Zyklus = 1 Woche
    ElseIf $cde_weekday = "2" Then ;danach jeweiliges Überschreiben
    $cde_tagname = "Dienstag"
    ElseIf $cde_weekday = "3" Then
    $cde_tagname = "Mittwoch"
    ElseIf $cde_weekday = "4" Then
    $cde_tagname = "#date#" ;Ausnahme 1 wöchentl. Sik
    ;~ $cde_tagname = "Donnerstag" ;mit Tagesdatum
    ElseIf $cde_weekday = "5" Then
    ;~ $cde_tagname = "#date#"
    $cde_tagname = "Freitag"
    ElseIf $cde_weekday = "6" Then
    $cde_tagname = "Samstag"
    ElseIf $cde_weekday = "7" Then
    $cde_tagname = "Sonntag"
    EndIf

    $cde_sikpath1 = $cde_sikpath & $cde_tagname &'" ' ;Erzeugen Verzeichnis für SIK entweder

    If $cde_tagname = "#date#" Then ;Verz. 'wöchentliche SIK' (Datumsangabe)
    $cde_filedate = StringMid($cde_sikpath & "\" & StringRight(@YEAR,2) & "-" & @MON & "-" & @MDAY & "\" & @YEAR & "-" & @MON & "-" & @MDAY & ".txt", 2, 100)
    Else ;oder Verz. 'tägl. SIK' (Wochentagsangabe)
    $cde_filedate = StringMid($cde_sikpath & $cde_tagname & "\" & @YEAR & "-" & @MON & "-" & @MDAY & ".txt", 2, 100)
    EndIf

    ShellExecuteWait($cde_prgpath, $cde_sikpath1 & $cde_param) ;Aufruf ERUNT
    Sleep(1000)
    IniWrite("RegLocalSikSettings.ini", "History", "cde_Status", " OK") ;Status in INI-Datei schreiben (OK)
    IniWrite("RegLocalSikSettings.ini", "History", "cde_Error", "")

    FileOpen($cde_filedate, 10) ;LogFile erzeugen im SIK-Verz.
    FileWriteLine($cde_filedate, "Registry Sicherung vom: " & @MDAY & "-" & @MON & "-" & @YEAR & " " & @HOUR & ":" & @MIN & ":" & @SEC)
    FileClose($cde_filedate) ;Datum und Uhrzeit ins LogFile schreiben
    Else
    MsgBox(16,"LW nicht gefunden", ' Das Ziel-LW ( ' & StringUpper($cde_Drive) & ' ) wurde nicht gefunden.' & @CRLF & @CRLF & " Der Vorgang wird abgebrochen - es erfolgt keine Sicherung !")
    IniWrite("RegLocalSikSettings.ini", "History", "cde_Status", " Abbruch") ;Fehlerfall 'Ziel-LW' nicht gefunden
    IniWrite("RegLocalSikSettings.ini", "History", "cde_Error", " Ziel-LW nicht gefunden")
    EndIf
    Else
    MsgBox(16,"Programm nicht gefunden", ' Das Registry-Backup Programm (ERUNT) wurde nicht gefunden.' & @CRLF & @CRLF & " Der Vorgang wird abgebrochen - es erfolgt keine Sicherung !")
    IniWrite("RegLocalSikSettings.ini", "History", "cde_Status", " Abbruch") ;Fehlerfall 'Bkp-Prg' nicht gefunden
    IniWrite("RegLocalSikSettings.ini", "History", "cde_Error", " ERUNT nicht gefunden")
    EndIf
    Else
    MsgBox(16,"Datei nicht gefunden", ' Die Datei "RegLocalSikSettings.txt" wurde nicht gefunden.' & @CRLF & @CRLF & "Das Programm wird abgebrochen - es erfolgt keine Sicherung !")
    EndIf ;Fehlerfall 'ZINI-Datei' nicht gefunden

  • Liste von Accounts einlesen und 2 Objekteogenschaften gegen ein AD prüfen - Ergebnis in ein Textfile (csv) schreiben

    • ugt100
    • 10. Mai 2010 um 09:05

    Hallo und einen guten morgen an die Profis,

    Ich stehe (mal wieder) vor einem 'kleinen' (?) Problem und kommr nicht so recht weiter (zumal ein gewisser Zeitfruck vom meinem Boss gemacht wird)

    Problembeschreibung:

    Ich erzeuge über eine LADP-Abfrage eine Liste aller User einer Domäne, die Mitgleid einer bestimmten Gruppe sind - DAS KLAPPT SOWEIT

    Diese Liste stellt die Basis weiterer Abfragen - und da kommt es zu meinem Problem:
    Ich muss die gesamte Liste der User mittels einer Schleife (denke ich mal) in der Gestalt abarbeiten, dass ich zu jedem Account eine AD Abfrage mache (SAMAccount und MailAdresse)
    und das ermittelte Ergebnis wegschreibe - am besten in eine CSV Datei.

    Bsp.

    aus der LDAP Abfrage erhalte in etwa Folgendes:

    Max.Mustermann
    Sabine.Mustermann

    Danach muss die Abfrage gegen das AD erfolgen

    UPN, E-Mail, SAMAccount
    Max.Mustermann, Max.Mustermann@xyz.com, Max.Mustermann
    Sabine.Mustermann, Sabine.Mustermann@xyz.com, Sabine.Mustermann


    Hiermit hole ich die LDAP Abfage in ein Array zur Weiterverarbeitung:
    _FileReadToArray("ADUsrInfo.cfg", $aRecords)
    $var1 = _ArrayToString($aRecords, ",", 1, 125)


    Damit frage ich gegen das AD:
    _AD_Open($sAD_UserIdParam, $sAD_PasswordParam, $sAD_DNSDomainParam, $sAD_HostServerParam, $sAD_ConfigurationParam)
    $sFQDN_User = _AD_SamAccountNameToFQDN($xyzUsernames)
    ;~ MsgBox(0,"",$xyzUsernames)
    $aProperties = _AD_GetObjectProperties($sFQDN_User, $var1)
    If $aProperties <> "" Then
    _ArrayDisplay($aProperties, $xyzUsernames & " - Eigenschaften")


    Soweit - sogut ...
    Wie binde ich dies jetzt in einen Schleife ein
    und
    wie schreibe ich das Ergebnis in ein CSV-File (sodass die Ergebnisse zeilenweise untereinander stehen ?

    Für jeden Tipp wäre ich dankbar (schon allein wegen meines Bosses der Druck macht)


    DANKE

    Gruss
    UGT100 - ?(

  • AD Get OjectProperties - Anwenden auf einen Computer in einer anderen Domäne

    • ugt100
    • 25. März 2010 um 19:48

    Guten Abend an die AutoIT Gemeinde,

    trotz intensiiver Suche und Test komme ich mit meinem Problem nicht weiter und wende mich daher an die Wissenden hier ....


    Problembeschreibung:

    Abfrage von AD Objekt Eigenschaften in verschiedenen Domänen bzw. in einer Domäne mit SubDomains.


    Ich muss sowohl die Eigenschaften von User Objekten als auch von Computer Objekten auslesen und dann weiterverarbeiten ..
    Problem dabei ist das die User Objekte in einer Subdomäne liegen und die Computerobjekte in der übergeordneten Root Domäne.

    Mir gelingt es die User Objekte mittels einer expliziten Anmeldung eines Admin Accounts entsprechend mit _AD_GetOjectProperties auszulesen,
    anzuzeigen und weiter zu verarbeiten.

    Und genau das gelingt mir bei den Computerobjekten nicht (Anm. mit der DSA.msc und demselben Admin Account geht das)

    Beispiel:

    User:
    Hans.Wurst - liegt in der (Sub)Domain 123.internal.Firma.com - Auslesen mit _AD_GetOjectProperties unter dem Admin Account geht

    Computer
    X1234567 - liegt in der (Root)Domain internal.Firma.com - Auslesen mit _AD_GetOjectProperties unter dem Admin Account bringt kein Ergebnis


    Hat jemand vielleicht eine Idee dazu


    Danke schon einmal im voraus

    Gruss
    ugt100

  • (Standard)FensterGrösse des _ArrayDisplay Fenster beeinflussen

    • ugt100
    • 9. März 2010 um 20:25

    Hallo (Auto)Bert,

    cool - die Darstellung/Erklärung macht das Ganze einfach. War gerade dabei die einzelnen Schritte nachzuvollziehen.
    Mein Problem (zur Zeit) ist (noch), dass ich zwar sozusagen den PAP schreiben kann, aber die programmatische Umsetzung zu wünschen übrig lässt ....
    Zumal ich dies zum grossen Teil nicht 'in Arbeit' machen kann.


    Da ist so eine Hilfe schon echt sensationell .... :D


    Danke nochmals
    Gruss

    Chris (alias ugt100)

  • (Standard)FensterGrösse des _ArrayDisplay Fenster beeinflussen

    • ugt100
    • 9. März 2010 um 16:23

    Hallo (Auto)Bert,
    Hut ab **** 1 mit Sternchen usw **** .... einfach GUT !!!!

    Die Sache funktioniert super - genau was ich brauche.

    In einer ruhigen Minute werde ich mir das nochmal ganz genau ansehen, damit ich es auch vollständig nachvollziehen kann.
    So auf die Schnelle ist das (zumindest mir) nicht möglich.

    :thumbup::thumbup::thumbup: Nochmals VIELEN DANK :rock::rock::rock:

    Gruss
    Chris (alias ugt100)

    P.S. hast echt was gut (helfen kann ich ggf. in Sachen AD und E-Mailing)

  • (Standard)FensterGrösse des _ArrayDisplay Fenster beeinflussen

    • ugt100
    • 9. März 2010 um 10:47

    Hallo (Auot)Bert,

    hattest Du ggf. schon die Zeit und/oder Muse nochmals nach dem 'Problem' <max. Spaltenbreite (anzgezeigt) eines Arrays> zu schauen?


    Gruss
    Chris

  • (Standard)FensterGrösse des _ArrayDisplay Fenster beeinflussen

    • ugt100
    • 4. März 2010 um 13:28

    HI Autobert,
    danke für die UDF - funktioniert prima.

    Ich will ja nicht nerven, aber so ganz versteh ich Sache nicht.
    gehe ich Recht in der Annahme, dass

    $vTmp = StringLen($vTmp)
    If $vTmp > $iBuffer Then $iBuffer = $vTmp

    diese Zeilen die Breite der Anzeige bestimmen ?
    In meinem Fall ist es nämlich insofern blöd, das genau ein Wert des Arrays ein extrem langer String ist, und somit das Fenster extrem gross macht.
    Kann ich nicht eine max. Breite von zh.B. 120 setzen ?


    Beispiel:
    [0]|17|
    [1]|badPwdCount|0
    [2]|cn|xyz.abc
    [3]|displayName|ABC XYZ AG
    [4]|extensionAttribute2|xyzabc
    [5]|54bc9066752f96928481000295faa35fcdd9a00c1262970240
    [6]|homeMDB|CN=SG3-DB5 (VF-MBX40),CN=VF-MBX40 SG3,CN=InformationStore,CN=VF-MBX40,CN=Servers,CN=EITO-AG,CN=Administrative Groups,CN=xyz,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=internal,DC=xyz,DC=com[7]|mail|XYZ.ABC@xyz.com
    [8]|sIDHistory|S-1-5-21-1960978786-2180923076-951318821-68580
    [17]|userPrincipalName|Henning.Kunz@Vodafone.com


    Danke und Gruss
    Christoph

  • (Standard)FensterGrösse des _ArrayDisplay Fenster beeinflussen

    • ugt100
    • 2. März 2010 um 16:49

    Hall Xovox Kingdom,

    Danke für den Hinweis.

    Da ich aber noch bloody beginner bin, erschliesstes sich mir nicht wie ich die Breite (width) genau ändern kann.
    Wenn ich dies in der array.au3 mache gilt das dann nicht immer für alle Male wenn ich die array.au3 nutze ???

    Eigentlich brauch ich die Änderung nur auf Col1 bezogen in diesem speziellem Fall.....

    hier wäre es halt schön wenn man die gesamte SID sehen könnte ....


    Danke

    gruss
    Chris

  • (Standard)FensterGrösse des _ArrayDisplay Fenster beeinflussen

    • ugt100
    • 23. Februar 2010 um 15:20

    Halllo zusammen,

    ich nutze das Ausgabefenster des _ArrayDisplay als Ergebnisfenster in meinem Script.....
    (das ist in diesem Falle völlig ausreichend)

    Kann ich Einfluss nehmen auf die (Standard)Grösse des Fensters ???

    Habe keinerlei Info dazu finden können

    Danke

    Chris

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™