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

Beiträge von gmmg

  • Screenshot Desktop Hintergrund

    • gmmg
    • 28. Januar 2015 um 10:20

    für Hardwareinformationen oder eigene Infos auf dem Hintergrundbild, gibt es die BGInfo.exe.

    https://technet.microsoft.com/de-de/sysinternals/bb897557.aspx

    ich denke mal, das ist das was du brachst! Wir benutzen das auch auf den Clients im Konzern.

    gruß gmmg

  • "Subscript used on non-accessible variable" beim AD UDF, zB: "_AD_GetObjectProperties"

    • gmmg
    • 27. Januar 2015 um 12:12

    @water
    muss ja irgendwas sein, wenn die abfragen bei uns allen funktioniert und bei ihm nicht :)

    gruß gmmg

  • "Subscript used on non-accessible variable" beim AD UDF, zB: "_AD_GetObjectProperties"

    • gmmg
    • 27. Januar 2015 um 11:27

    @freddyd

    dein Quelltext aus Post 40 funktioniert bei mir, wobei du mit der Anweisung "$aProperties = _AD_GetObjectProperties()" den Inhalt von $aProperties wieder überschreibst!
    Entweder ein _ArrayDisplay ($aProperties) zwischen die Zeilen, sodass du beide Ausgaben siehst oder eine von beiden einfach auskommentieren.

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Outfile=C:\temp\test.Exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <AD.au3>
    #include <DATE.au3>
    #include <Array.au3>

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

    _AD_ErrorNotify(2)

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

    _AD_Open("Domain\User","*PW*","","dc.domain.de:3268")

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

    ConsoleWrite(@error & @CRLF)

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

    $aProperties = _AD_GetObjectProperties(@UserName, "displayname,distinguishedName,pwdlastset")
    $aProperties = _AD_GetObjectProperties()

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

    ConsoleWrite(@error & @CRLF)

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

    _ArrayDisplay ($aProperties)

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

    ;$ddd = $aProperties[3][1]
    ;_DateTimeFormat($ddd,2)
    ;$zuletzt = _DateTimeFormat($ddd,2)&" "&" "&_DateTimeFormat($ddd,4)
    ;$aProperties = _AD_GetObjectProperties(@ComputerName & "$")
    ;$PCName = $aProperties[4][1]
    ;$PCBeschreibung = $aProperties[7][1]
    _AD_Close()

    [/autoit]

    funktioniert denn bei dir eine vbs abfrage auf das AD?
    als Beispiel diese

    [autoit]


    UserNameFromEmail "vorname.nachname@domain.de" 'hier deine firmenmailadresse eintragen

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

    Sub UserNameFromEmail(sEmail)
    Const ADS_SCOPE_SUBTREE = 2
    Const PageSize = 1000
    Dim sRootLDAP, oConnection, oCommand, oRecordSet

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

    sRootLDAP = "'LDAP://" & GetObject("LDAP://RootDSE").Get("defaultNamingContext") & "'"

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

    Set oConnection = CreateObject("ADODB.Connection")
    oConnection.Provider = "ADsDSOObject"
    oConnection.Open "Active Directory Provider"
    Set oCommand = CreateObject("ADODB.Command")
    Set oCommand.ActiveConnection = oConnection
    oCommand.CommandText = "Select sAMAccountName from " & sRootLDAP & " Where mail='" & sEmail & "'"
    oCommand.Properties("Page Size") = PageSize
    oCommand.Properties("Timeout") = 30
    oCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    oCommand.Properties("Cache Results") = True
    Set oRecordSet = oCommand.Execute
    oRecordSet.MoveFirst
    Do Until oRecordSet.EOF
    WScript.Echo "Username for """ & sEmail & """ is """ & oRecordSet.Fields(0) & """"
    oRecordSet.MoveNext
    Loop
    Set oRecordSet = Nothing
    Set oCommand = Nothing
    Set oConnection = Nothing
    End Sub

    [/autoit]

    Gruß gmmg

  • "Subscript used on non-accessible variable" beim AD UDF, zB: "_AD_GetObjectProperties"

    • gmmg
    • 20. Januar 2015 um 10:45

    noch eine idee!

    starte mal das _AD_Open mit der übergabe von user und passwort.

    [autoit]


    ; Open Connection to the Active Directory
    _AD_Open($ADMINUSER, $ADMINPASS)

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

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

    [/autoit]

    und ein zweites script - getUserGroups zum testen

    Spoiler anzeigen
    [autoit]


    #include <D:\Data\scripte\AD_1.4.1.0_Functions\AD.au3>

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

    ;MsgBox(0,"",@LogonServer & @LogonDNSDomain & @LogonDomain)

    [/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]

    ; Get a sorted array of group names (FQDN) that the user is immediately a member of
    Global $aUser = _AD_GetUserGroups(@username)
    If @error > 0 Then
    MsgBox(64, "Active Directory Functions - Example 1", "User '" & @UserName & "' has not been assigned to any group")
    Else
    _ArraySort($aUser, 0, 1)
    _ArrayDisplay($aUser, "Active Directory Functions - Example 1 - Group names user '" & @UserName & "' is immediately a member of")

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

    for $i = 1 to $aUser[0]

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

    ;MsgBox(0,"", $aMembers01)
    ConsoleWrite(_AD_FQDNToSamAccountName($aUser[$i]) & @CRLF)
    Next
    EndIf

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

    ; Close Connection to the Active Directory
    _AD_Close()

    [/autoit]

    gruß gmmg

  • "Subscript used on non-accessible variable" beim AD UDF, zB: "_AD_GetObjectProperties"

    • gmmg
    • 19. Januar 2015 um 16:23

    die meldungen in den ausgaben sind schon unterschiedlich!

    in der obersten steht noch > Skipping AU3check: Current version doesn't support the AutoIt3 v 3.3.9.5+ syntax.
    den fehler sieht man in der underen nicht mehr.

    probiere mal das folgendes Testscript! hier werden die user aus einer gruppe ausgelesen und entsprechende properties.

    Spoiler anzeigen
    [autoit]


    #include <D:\Data\scripte\AD_1.4.1.1_Functions\AD.au3>

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

    Global $aGroups[1], $aMembers[1], $aProperties[1][2]

    [/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]

    ; Get a sorted list of members for the first group the currently logged on user is a member of
    $aMembers = _AD_GetGroupMembers("AD_Gruppennamen_eingeben") ; hier den AD gruppennamen eintragen AD-Gruppenname
    If @error > 0 Then
    MsgBox(64, "Active Directory Functions - Example 1", "The group has no members")
    Else
    _ArraySort($aMembers, 0, 1)
    _ArrayDisplay($aMembers, "Active Directory Functions - Example 1 - List of members for group")
    EndIf

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

    For $i = 1 to $aMembers[0]

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

    $sFQDN = _AD_SamAccountNameToFQDN()

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

    $aMembers01 = _AD_FQDNToDisplayname($aMembers[$i])
    $sSamAccountName = _AD_FQDNToSamAccountName($aMembers[$i])
    ;MsgBox(0,"",$sSamAccountName)
    ;$login = $sSamAccountName
    $aProperties = _AD_GetObjectProperties($sSamAccountName)
    ;_ArrayDisplay($aProperties, "Active Directory Functions - Example 1 - Properties for user '" & @UserName & "'")
    ;MsgBox(0,"", $aProperties[41][1])

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

    For $x = 1 to $aProperties[0][0]
    If $aProperties[$x][0] = "mail" then $mail = $aProperties[$x][1];MsgBox(0,"",$aProperties[$x][1])
    If $aProperties[$x][0] = "objectSid" then $sid = $aProperties[$x][1]
    Next

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

    ;MsgBox(0,"", $aMembers01)
    ConsoleWrite($aMembers01 & ";"& $sSamAccountName & ";" & $mail & ";" & $sid & @CRLF)

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

    Next

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

    ; Close Connection to the Active Directory
    _AD_Close()

    [/autoit]

    gruß gmmg

  • "Subscript used on non-accessible variable" beim AD UDF, zB: "_AD_GetObjectProperties"

    • gmmg
    • 19. Januar 2015 um 12:14

    welche autoit version benutzt du?

    auch die 3.3.12.0?
    sehe nur grad in der in deiner Ausgabe (Post 17) "Starting AutoIt3Wrapper v.2.1.2.9"

    bei mir steht da folgendes "Starting AutoIt3Wrapper v.2.1.4.4" ....
    da scheint mir die version etwas zu alt zu sein :)

    gruß gmmg

  • "Subscript used on non-accessible variable" beim AD UDF, zB: "_AD_GetObjectProperties"

    • gmmg
    • 16. Januar 2015 um 14:59

    @water , @ freddyd

    bei mir funktioniert der Code in der Domäne!

    Spoiler anzeigen
    [autoit]


    #include <D:\Data\scripte\AD_1.4.1.1_Functions\AD.au3> ; da liegt bei mir die AD.au3
    #include <DATE.au3>
    #include <Array.au3>
    _AD_Open()
    $aProperties = _AD_GetObjectProperties(@UserName, "displayname,distinguishedName,pwdlastset")
    ConsoleWrite(@error & @CRLF)
    _ArrayDisplay ($aProperties)
    $ddd = $aProperties[3][1]
    _DateTimeFormat($ddd,2)
    $zuletzt = _DateTimeFormat($ddd,2)&" "&" "&_DateTimeFormat($ddd,4)
    $aProperties = _AD_GetObjectProperties(@ComputerName & "$")
    $PCName = $aProperties[4][1]
    $PCBeschreibung = $aProperties[7][1]
    msgbox(4144,"",$PCName&" "&$PCBeschreibung)
    _AD_Close()

    [/autoit]

    gruß gmmg

  • "Subscript used on non-accessible variable" beim AD UDF, zB: "_AD_GetObjectProperties"

    • gmmg
    • 15. Januar 2015 um 08:18

    die funktion wird ja in Zeile 5 und 10 mit jeweils der gleichen Variable aber verschiedenen anfragen aufgerufen!
    da wird ja zwangsläufig die obersdte abfrage überschrieben!

    gruß gmmg

  • "Subscript used on non-accessible variable" beim AD UDF, zB: "_AD_GetObjectProperties"

    • gmmg
    • 14. Januar 2015 um 13:26

    benutzt du die neueste Version Version 1.4.1.1 der AD UDF?

    da gibt es das Beispiel _AD_GetObjectProperties.au3! Funktioniert das denn?

    Gruß gmmg

  • Berechnung von Verkaufsgebühren

    • gmmg
    • 6. Januar 2015 um 11:33

    aus welchem system kommen denn die daten?
    ich würde das eher über eine Datenbank realisieren, auch mit Autoit (Access, MySQL, MSSQL u.a.) sind da möglich.

    die daten in jeweils eine tabelle schreiben und darüber eine abfrage laufen lassen!
    die gleichen daten würde ich dann in Tabelle A in Spalte X als gelöscht markieren.
    Hat den vorteil, dass man hier dann auch aus der DB eine Statisktik erstellen kann, was du ja mit den Dateien nicht kannst, wenn du Datensätze löschst.

    Nur mal als Ansatz ...

    gruß gmmg

  • Script als Dienst / Fehler 1053

    • gmmg
    • 17. Dezember 2014 um 15:43

    schon die sc.exe probiert?
    http://support.microsoft.com/kb/251192/de

    zum prüfen hättest auch ein autoit script schreiben können und das dann einfach per task ausführen :)

    [autoit]


    If ProcessExists("test.exe") Then

    Else
    Run("C:\test.exe")
    EndIf

    [/autoit]

    gruß gmmg

  • Problem beim senden von Tastenbefehlen

    • gmmg
    • 11. Dezember 2014 um 15:05

    es gibt da verschiedene Gründe!

    http://www.autoitscript.com/forum/topic/13…is-not-working/
    oder
    http://www.autoitscript.com/forum/topic/57…er-not-working/

    suche mal bei google nach DllCall() send enter
    ;Send Enter
    dllcall("keybd_event", int, 0x0D, int, 0x01C, int, 0, int, 0)

    eventuell ist da was dabei, was dir hilft ...

    gruß gmmg

  • Problem beim senden von Tastenbefehlen

    • gmmg
    • 11. Dezember 2014 um 14:18

    wahrscheinlich hat keiner deine entsprechende Hardware um das zu testen!
    Vielleicht hat der Button nach dem Send("{TAB}") noch nicht den Focus.
    eventuell auch mit den Befehlen MouseClick, Controlclick, ControlSend mal dein Glück versuchen ...

    gruß gmmg

  • Script als Dienst / Fehler 1053

    • gmmg
    • 9. Dezember 2014 um 15:39

    Ja, ich habe die Variablen mal so umbenannt, das auch ein dritter das gleich versteht!

    schau mal in den vorletzten Post (13) von mir, da stehen doch die neuen Varibalen definiert drin und sollten auch verständlich sein!

    gruß gmmg

  • Script als Dienst / Fehler 1053

    • gmmg
    • 9. Dezember 2014 um 14:52

    Habe aber noch nicht so ganz verstanden, was du machen willst!

    Du hast 2 verzeichnisse in denen PDF Dateien liegen, diese möchtest du auf 2 verschiedenen Druckern ausdrucken!
    PDF Dateien aus Verzeichnis 1 auf Drucker 1, PDF Dateien aus Verzeichnis 2 auf Drucker 2!

    Ist das so richtig?

    Hier das Script nochmal abgewandelt.

    Spoiler anzeigen
    [autoit]


    local $file

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

    ;Pfad zu PDF Viewer
    $program_path = "C:\Programme\SumatraPDF\"

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

    $path_defaultprinter = "c:\AutoIt\Program\"
    $defaultprinter = "P040"

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

    $printer1 = "P003"
    $printer2 = "P006"

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

    ; Pfad der auf neue Dateien überwacht werden soll
    ; Recht muss vorhanden sein
    $source_path = "T:\_PDF_Druck\"

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

    Local $iFileExists = FileExists("T:\") ; soll nur abfragen, ob laufwerk T: vorhanden ist!

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

    If $iFileExists Then
    MsgBox(0, "", "The file exists." & @CRLF & "FileExist returned: " & $iFileExists)
    Else
    MsgBox(0, "", "The file doesn't exist." & @CRLF & "FileExist returned: " & $iFileExists)
    EndIf

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

    $full_source_path1 = $source_path & $printer1
    $full_source_path2 = $source_path & $printer2

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

    ; Pfad, in den die Dateien nach dem Drucken verschoben werden sollen
    $dest = "T:\_PDF_Druck\save\"

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

    ; Dauer des Prüfintervalls in Millisekunden (10 Sek = 10000)
    $interval = 5000

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

    ;----Test---
    ;$pdffile = $full_source_path1 & "test.pdf"
    ;$printer = $printer1
    ;ConsoleWrite('"' & $program_path & '\SumatraPDF.exe" -print-to '& $printer &' -silent -exit-when-done "' & $pdffile & '"')
    ;-----------

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

    While 1

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

    Sleep($interval)

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

    ; Druckverzeichnisse für jeden Drucker erstellen falls es mal geloescht wird
    IF Not FileExists($full_source_path1) Then DirCreate($full_source_path1) ; wenn es nicht da ist, wird es erstellt! du hast es immer neu erstellt
    IF Not FileExists($full_source_path2) Then DirCreate($full_source_path2) ; wenn es nicht da ist, wird es erstellt! du hast es immer neu erstellt

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

    ; Durchsuchen der Verzeichnisse nach PDF Dateien
    FindFile($full_source_path1)
    ; Print File if Exists
    If $file <> -1 then Print($printer1,$full_source_path1 & $file)
    FileClose($file)

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

    FindFile($full_source_path2)
    ; Print File if Exists
    If $file <> -1 then Print($printer2,$full_source_path1 & $file)
    FileClose($file)

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

    WEnd

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

    Func FindFile($path)
    $file = FileFindFirstFile ($path & "*.pdf")
    Return $file
    EndFunc

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

    Func Print($printer,$pdffile)

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

    ;RunWait($pathtosetdefaultprinter & "SetDefaultPrinter.exe " & $printer, "", @SW_HIDE)

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

    While 1
    $pdffile = FileFindNextFile($pdffile)
    If @error then ExitLoop
    RunWait('"' & $program_path & '\SumatraPDF.exe" -print-to '& $printer &' -silent -exit-when-done "' & $pdffile & '"')
    ;FileDelete($printer & '\' & $pdffile)
    WEnd
    ;RunWait($pathtosetdefaultprinter & "SetDefaultPrinter.exe " & $standardprinter, "", @SW_HIDE)

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

    EndFunc

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

    Func Quit()
    Exit
    EndFunc

    [/autoit]

    einen Default Printer musst du nicht setzen, wenn du direkt auf einen entsprechenden Drucker druckst!

    Gruß gmmg

  • Script als Dienst / Fehler 1053

    • gmmg
    • 9. Dezember 2014 um 14:28

    in meinem script sind noch fehler und das ist auch nicht getestet!
    Zeile 13-19 prüft ob das laufwerk t: vorhanden ist.

    könntest das aber auch so machen oder wie geschrieben unc pfade benutzen, dann sparst du dir den laufwerksbuchstaben
    $path = "\\server\freigabe"

    die Befehlszeilenparameter von SumatraPDF.exe kenne ich nicht, am besten hier auch im cmd den Befehl erstellen und dann nach autoit umsetzen!
    eine consolewrite('"' & $program & '\SumatraPDF.exe" -print-to '& $printer &' -silent -exit-when-done "' & $printer & '\' & $pdffile & '"') sollte da auch helfen, damit kannst du dir die Ausgabe nochmal im scite ansehen..

    [autoit]


    $status = DriveStatus( "T:" )
    ;MsgBox(0,"test", $status,1)

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

    If $status = "INVALID" Then
    DriveMapAdd("T:", "\\server", 0,"$ADMINUSER,$ADMINPASS)
    MsgBox(0,"T:\Laufwerk", "Verbindung hergestellt",1)
    EndIf

    [/autoit]
    Spoiler anzeigen
    [autoit]


    ;Pfad zu PDF Viewer
    $program_path = "C:\Programme\SumatraPDF\"

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

    $pathtosetdefaultprinter = "c:\AutoIt\Program\"
    $standardprinter = "P040"
    $P1 = "P003"
    $P2 = "P006"

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

    ; Pfad der auf neue Dateien überwacht werden soll
    ; Recht muss vorhanden sein
    $source = "T:\_PDF_Druck\"

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

    Local $iFileExists = FileExists("T:\") ; soll nur abfragen, ob laufwerk T: vorhanden ist!

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

    If $iFileExists Then
    MsgBox(0, "", "The file exists." & @CRLF & "FileExist returned: " & $iFileExists)
    Else
    MsgBox(0, "", "The file doesn't exist." & @CRLF & "FileExist returned: " & $iFileExists)
    EndIf

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

    $sP1 = $source & $P1
    $sP2 = $source & $P2

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

    ; Pfad, in den die Dateien nach dem Drucken verschoben werden sollen
    $dest = "T:\_PDF_Druck\save"

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

    ; Dauer des Prüfintervalls in Millisekunden (10 Sek = 10000)
    $interval = 5000

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

    $pdffile = "test.pdf"
    $printer = $P1

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

    ConsoleWrite('"' & $program_path & 'SumatraPDF.exe" -print-to '& $printer &' -silent -exit-when-done "' & $printer & '\' & $pdffile & '"')

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

    While 1

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

    Sleep($interval)

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

    ; Druckverzeichnisse für jeden Drucker erstellen falls es mal geloescht wird
    IF Not FileExists($sP1) Then DirCreate($sP1) ; wenn es nicht da ist, wird es erstellt! du hast es immer neu erstellt
    IF Not FileExists($sP2) Then DirCreate($sP2) ; wenn es nicht da ist, wird es erstellt! du hast es immer neu erstellt

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

    ; Durchsuchen der Verzeichnisse nach PDF Dateien
    $file1 = FileFindFirstFile ($sP1 & "\*.pdf")
    If $file1 <> -1 then Print($sP1,$file1) ;ruft die funktion print auf und übergibt die zwei parameter Drucker und Datei
    FileClose($file1)

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

    $file2 = FileFindFirstFile ($sP2 & "\*.pdf")
    If $file2 <> -1 then Print($sP2,$file2) ;ruft die funktion print auf und übergibt die zwei parameter Drucker und Datei
    FileClose($file2)

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

    WEnd

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

    Func Print($printer,$printfile)

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

    RunWait($pathtosetdefaultprinter & "SetDefaultPrinter.exe " & $printer, "", @SW_HIDE)

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

    While 1
    $pdffile = FileFindNextFile($printfile)
    If @error then ExitLoop
    RunWait('"' & $program_path & '\SumatraPDF.exe" -print-to '& $printer &' -silent -exit-when-done "' & $printer & '\' & $pdffile & '"')
    FileDelete($printer & '\' & $pdffile)
    WEnd
    RunWait($pathtosetdefaultprinter & "SetDefaultPrinter.exe " & $standardprinter, "", @SW_HIDE)

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

    EndFunc

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

    Func Quit()
    Exit
    EndFunc

    [/autoit]

    hab in zeile 30-33 mal das consolewrite eingebaut! musst du bei dir entpsrechend anpassen!

    http://www.sumatrapdfreader.org/manual-de.html
    ...
    der Befehl -print-to $printer_name $file.pdf druckt die angegebene PDF auf dem angegebenen Drucker

    gruß gmmg

  • Script als Dienst / Fehler 1053

    • gmmg
    • 9. Dezember 2014 um 11:32

    hallo rose0805,

    habe die PrintFunktion wie folgt zusammengefasst!
    desweiteren mal prüfen ob das T: Laufwerk bzw. der pfad existiert.
    falls der dienst als system, ausgeführt wird, heißt das nicht, das der pfad auch da ist. eventuell unc pfade zur freigabe nutzen!

    Spoiler anzeigen
    [autoit]


    ;Pfad zu PDF Viewer
    $program = "C:\Programme\SumatraPDF"

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

    $pathtosetdefaultprinter = "c:\AutoIt\Program"
    $standardprinter = "P040"
    $P1 = "P003"
    $P2 = "P006"

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

    ; Pfad der auf neue Dateien überwacht werden soll
    ; Recht muss vorhanden sein
    $source = "T:\_PDF_Druck\"

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

    If $iFileExists = FileExists($source) Then
    MsgBox(0, "", "The file exists." & @CRLF & "FileExist returned: " & $iFileExists)
    Else
    MsgBox(0, "", "The file doesn't exist." & @CRLF & "FileExist returned: " & $iFileExists)
    EndIf

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

    $sP1 = $source & $P1
    $sP2 = $source & $P2

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

    ; Pfad, in den die Dateien nach dem Drucken verschoben werden sollen
    $dest = "T:\_PDF_Druck\save"

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

    ; Dauer des Prüfintervalls in Millisekunden (10 Sek = 10000)
    $interval = 5000

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

    While 1

    Sleep($interval)

    ; Druckverzeichnisse für jeden Drucker erstellen falls es mal geloescht wird
    IF Not FileExists($sP1) Then DirCreate($sP1) ; wenn es nicht da ist, wird es erstellt! du hast es immer neu erstellt
    IF Not FileExists($sP2) Then DirCreate($sP2) ; wenn es nicht da ist, wird es erstellt! du hast es immer neu erstellt

    ; Durchsuchen der Verzeichnisse nach PDF Dateien
    $file1 = FileFindFirstFile ($sP1 & "\*.pdf")
    If $file1 <> -1 then Print($sP1,$file1)
    FileClose($file1)

    $file2 = FileFindFirstFile ($sP2 & "\*.pdf")
    If $file2 <> -1 then Print($sP2,$file2)
    FileClose($file2)

    WEnd

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

    Func Print($printer,$printfile)

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

    RunWait($pathtosetdefaultprinter & "\SetDefaultPrinter.exe " & $printer, "", @SW_HIDE)

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

    While 1
    $pdffile = FileFindNextFile($printfile)
    If @error then ExitLoop
    RunWait('"' & $program & '\SumatraPDF.exe" -print-to '& $printer &' -silent -exit-when-done "' & $printer & '\' & $pdffile & '"')
    FileDelete($printer & '\' & $pdffile)
    WEnd
    RunWait($pathtosetdefaultprinter & "\SetDefaultPrinter.exe " & $standardprinter, "", @SW_HIDE)

    EndFunc

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

    Func Quit()
    Exit
    EndFunc

    [/autoit]

    gruß gmmg

  • _MSSQL_UpdateRecord mit mssql.au3

    • gmmg
    • 8. Dezember 2014 um 10:24

    bitte mal testen ob der Insert über die MS Console (SQL Server Managment Studio) funktioniert!

    benutze mal _SQL_Execute und baue die query entsprechend nach.

    gruß gmmg

  • Laufwerke nach AD Gruppe mappen

    • gmmg
    • 5. Dezember 2014 um 15:14

    Hallo Camulus,

    benutzt du zum auslesen die Active Directory UDF von Water?

    Ich würde die Abteilungen und Zugehörige Laufwerke in ein Array aufnehmen und dann den unten stehenden Quelltext umbauen.

    Ist nur ein Beispiel, würde natürlich gleich auf die AD.au3 von Water greifen

    [autoit]


    #include <Array.au3>
    #include <D:\Data\scripte\AD_1.4.1.1_Functions\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]

    Local $acc[3][3]
    ;---------------------------
    $acc[0][0] = "Abteilung_Alle"
    $acc[0][1] = "V:|W:" ;ingroup
    $acc[0][2] = "" ;not ingroup
    ;--------------------------
    $acc[1][0] = "Abteilung_QPP"
    $acc[1][1] = "Q:" ;ingroup
    $acc[1][2] = "R:|S:|T:" ;not ingroup
    ;---------------------------
    $acc[2][0] = "Abteilung_QPPzentrale"
    $acc[2][1] = "Q:" ;ingroup
    $acc[2][2] = "" ;not ingroup

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

    Local $acc_path[6][2]
    $acc_path [0][0] = "Q:"
    $acc_path [0][1] = "\\Server01\"
    ;--------------------------
    $acc_path [1][0] = "R:"
    $acc_path [1][1] = "\\Server02\"
    ;--------------------------
    $acc_path [2][0] = "S:"
    $acc_path [2][1] = "\\Server03\"
    ;--------------------------
    $acc_path [3][0] = "T:"
    $acc_path [3][1] = "\\Server04\"
    ;--------------------------
    $acc_path [4][0] = "V:"
    $acc_path [4][1] = "\\Server05\"
    ;--------------------------
    $acc_path [5][0] = "W:"
    $acc_path [5][1] = "\\Server06\"

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

    ;_ArrayDisplay($acc_path)

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

    For $x = 0 to UBound ($acc) -1
    ;MsgBox(0,"", $acc[$x][0] & @CRLF & $acc[$x][1] & @CRLF & $acc[$x][2])
    $drive_ingroup = StringSplit ($acc[$x][1],"|") ;select drive ingroup
    $drive_not_ingroup = StringSplit ($acc[$x][2],"|") ;select drive not ingroup

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

    If _AD_IsMemberOf($acc[$x][0],@username) = 1 then
    ;MsgBox(0, "AD",$acc[$x][0] & " in der Gruppe")
    For $d = 1 to UBound ($drive_ingroup) -1
    ;MsgBox(0,"ingroup",$drive_ingroup[$d])
    IF Not $drive_ingroup[$d] = "" Then
    For $i = 0 to UBound ($acc_path) -1
    IF $acc_path[$i][0] = $drive_ingroup[$d] Then
    Drive_Map($acc_path[$i][0],$acc_path[$i][1])
    ;MsgBox(0,"1ingroup",$acc_path[$i][0] & $acc_path[$i][1])
    ExitLoop
    EndIf
    Next
    EndIf
    Next
    Else
    ;MsgBox(0, "AD", $acc[$x][0] & " nicht in der Gruppe")
    For $d = 1 to UBound ($drive_not_ingroup)-1
    ;MsgBox(0,"not ingroup",$drive_not_ingroup[$d])
    IF Not $drive_not_ingroup[$d] = "" Then
    For $i = 0 to UBound ($acc_path)-1
    ;MsgBox(0,"1not ingroup",$drive_ingroup[$d] & " " & $acc_path[$i][0])
    IF $acc_path[$i][0] = $drive_not_ingroup[$d] Then
    Drive_Map($acc_path[$i][0],$acc_path[$i][1])
    ;MsgBox(0,"1not ingroup",$acc_path[$i][0] & $acc_path[$i][1])
    ExitLoop
    EndIf
    Next
    EndIf
    Next
    EndIf

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

    Next

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

    ; Close Connection to the Active Directory
    _AD_Close()

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

    Func Drive_Map($drive,$drivepath)

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

    DriveMapDel($drive)
    Sleep(1000)

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

    $drive_use = DriveStatus($drive)
    ;MsgBox(0,"test", $abc,1)

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

    If $drive_use = "INVALID" Then
    DriveMapAdd($drive, $drivepath, 0);"domain\" & $ADMINUSER,$ADMINPASS)
    ;MsgBox(0,"V:\Laufwerk", "Verbindung hergestellt",1)
    EndIf

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

    EndFunc

    [/autoit]


    Was noch nicht übergeben wird, ist der Laufwerkspfad! Der müsste dann noch im Array hinterlegt werden.

    gruß gmmg

  • Mit InPutBox URL vervollständigen???

    • gmmg
    • 1. Dezember 2014 um 12:12

    damit sollte Agethorster rstmal weiterkommen :)

    lg gmmg

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™