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

Beiträge von Paule

  • Windows eigenen Progress-Dialog öffnen

    • Paule
    • 14. Dezember 2010 um 20:57

    Danke @Großvater

    Spoiler anzeigen
    [autoit]


    #include "SHFileOperation.au3"

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

    $Func = $FO_COPY
    $From1 = "\\aspirehome\Save.TV-Aufnahmen\check\360_Geo_Reportage_Die_verrückten_Karren_des_Mister_Winfield_11-12-2010_1930_348937.mp4"
    $From2 = "\\aspirehome\Save.TV-Aufnahmen\check\Extreme_Rage_11-12-2010_2230_348937.mp4"

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

    $From1 = "f:\Acronis.iso"
    $From2 = "f:\kasperski.iso"

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

    $From = $From1 & "|" & $From2
    ;~ $From = "\\aspirehome\Save.TV-Aufnahmen\p*.mp4"
    $To = "E:\Acronis.iso" & "|f:\kasperski.iso"

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

    $Result = _SHFileOperation($Func, $From, $To, BitOR($FOF_RENAMEONCOLLISION, $FOF_MULTIDESTFILES))
    If @error Then
    MsgBox(0, "Error", @error & " - " & _SHFileOperation_GetErrorMessage(@extended))
    EndIf

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

    Jepp, jetzt funktioniert es.

    Gruß Paule

  • Windows eigenen Progress-Dialog öffnen

    • Paule
    • 13. Dezember 2010 um 21:52

    @grossvater

    habe dein Skript getestet mit dem Flag $FOF_MULTIDESTFILES

    Spoiler anzeigen
    [autoit]


    #include "SHFileOperation.au3"
    $Func = $FO_COPY
    $From = $From1 & "|" & $From2
    ;~ $From = "\\aspirehome\Save.TV-Aufnahmen\p*.mp4"
    $To = "E:\" & "|f:\"

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

    $Result = _SHFileOperation($Func, $From, $To, BitOR($FOF_RENAMEONCOLLISION, $FOF_MULTIDESTFILES))
    If @error Then
    MsgBox(0, "Error", @error & " - " & _SHFileOperation_GetErrorMessage(@extended))
    EndIf

    [/autoit]

    Dann bekomme ich eine Fehlermeldung:
    "Es ist bereits ein Ordner mit dem angebenen Namen vorhanden ......"

    Ich kann dann nur noch Wiederholen, Überspringen oder Abbrechen wählen.
    Betriebssystem Windows 7 64 Bit Ultimate.

    für was sind die Varibalen in der SHFileOperation.au3
    $iFrom, $iTo ?
    Die sind doch immer =0, so dass die IF Klausel überfüssig ist.

    If $iFrom > 2 And $iTo > 2 And $iFrom = $iTo Then
    $wFlags = BitOR($wFlags, $FOF_MULTIDESTFILES)
    EndIf

    Gruß Paule

  • Windows eigenen Progress-Dialog öffnen

    • Paule
    • 11. Dezember 2010 um 16:31

    funkey,

    Paule:
    Das hättest du bestimmt selber geschafft!

    Da überschätz Du meine Fähikeiten ;)

    Ich blicke immer noch nicht, wie ich damit eine Datei oder mehere kopiere.
    Hast Du ein Beispiel?

    Gruß Paule

  • Windows eigenen Progress-Dialog öffnen

    • Paule
    • 11. Dezember 2010 um 12:25

    @progandy

    die Funktion _CountUp() fehlt.
    Kannst Du sie nachliefern?

    Gruß Paule

  • Sicherung (*.BAK) von Autoit Scripten

    • Paule
    • 9. November 2010 um 19:18
    Zitat von BugFix

    In SciTE - Config kannst du es aktivieren/ deaktivieren. Der Pfad ist meines Wissens immer: ..Skriptfad\Backup\

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Leider bei mir nicht. Bei mir landen die .bak im @ScripDir-Verzeichnis Nur tidy legt die Backups in @ScripDir\Backup.

    Gruß Paule

  • [SciTE/Notepad++] Regexp Tester

    • Paule
    • 18. Oktober 2010 um 23:21

    i2c
    The Regex Coach?
    http://www.weitz.de/regex-coach/

    Gruß Paule

  • SSH Verbindung über AutoIt

    • Paule
    • 1. Oktober 2010 um 13:18

    Moin,
    Du hast ein Denkfehler drin.
    Du willst eine Console aufmachen und dann die Kommandos per send-Befehl ausführen lassen.

    Plink funtioniert aber so:
    $sPlinkCommand=plink.exe -batch -pw password username@url.de ./<linux commandos> <parameter>

    Im DOS Fenster kannst du Dir das Ergebnis anschauen.

    Ich habe es so gelöst:
    $sPlinkReturn = _getDOSOutput($sPlinkCommand)
    If $sPlinkReturn == "Mandant " & $Mandant & "erfolgreich aktualisiert" Then
    .....

    Func _getDOSOutput($sCommand)
    Local $sTmp = '', $Pid = Run('"' & @ComSpec & '" /c ' & $sCommand, @ScriptDir, @SW_HIDE, BitOr($STDERR_CHILD, $STDOUT_CHILD, $STDIN_CHILD))
    While 1
    If StdoutRead($Pid, True) Then $sTmp &= StdOutRead($pid)
    If StderrRead($Pid, True) Then $sTmp &= StderrRead($pid)
    If @error Then ExitLoop
    Sleep(10)
    WEnd
    Return $sTmp
    EndFunc ;==>_getDOSOutput

    Vielleicht hilft es Dir weiter,
    Paule

  • __cwt() ConsoleWriteTimerdiff

    • Paule
    • 25. September 2010 um 17:13

    Moin,

    zum debuggen habe ich mir eine kleine Funktion geschrieben.

    Spoiler anzeigen
    [autoit]


    #include <date.au3> ; _Now()
    #include <file.au3> ; _FileWriteLog()
    #include <debug.au3> ; _DebugSetup()
    ;----------------
    $iTimeAll = TimerInit()
    $iTimeSection = TimerInit()
    Global $giLoop = 0 ; Schleifenvariable für __cwt
    Global $giCWT = 1 ; Ausgabensteuerung
    ;----------------
    $sLog = StringTrimRight(@ScriptName, 4) & ".log"
    $sIni = StringTrimRight(@ScriptName, 4) & ".ini"
    $sDebugLog = StringTrimRight(@ScriptName, 4) & "_Debug.log"
    ;----------------
    __cwt(" ", "|0014|", "Wie lange dauert der Funktionsaufruf __test()", $giCWT)
    __test(2)
    __cwt(" ", "|0016|", "<-- Im Timerfeld stehen die Ausführungszeiten", $giCWT)
    __test(5)
    __cwt(" ", "|0018|", "<-- Im Timerfeld stehen die Ausführungszeiten", $giCWT)
    __cwt(" ", "|0019|", " -----------------------------------------", $giCWT)
    ConsoleWrite(@CRLF & @CRLF)
    __cwt(" ", "|0021|", "Ausgabe in der Scite Konsole schwarz")
    __cwt(" ", "|0022|", "15 durch freistehende Ziffer wird die Ausgabe in lila dagestellt. Mit Mausklick auf die Ziffer wird zur Zeile=Ziffer gesprungen")
    __cwt("!", "|0023|", "Ausgabe in der Scite Konsole rot")
    __cwt("+", "|0024|", "Ausgabe in der Scite Konsole grün")
    __cwt(">", "|0025|", "Ausgabe in der Scite Konsole blau")
    __cwt("-", "|0026|", "Ausgabe in der Scite Konsole orange")
    ConsoleWrite(@CRLF & @CRLF)
    __cwt("+d", "|0028|", "Ausgabe in der Scite Konsole grün und mit Datumsangabe")
    __cwt("+d", "|0029|", "Ausgabe in der Scite Konsole grün und mit Datumsangabe, Timerausgabe rechtsbündig", -1)
    __cwt(" ", "|0030|", "Ausgabe als TrayTip", 4)
    ConsoleWrite(@CRLF & @CRLF)
    For $i = 1 To 3
    $giLoop += 1
    __cwt(" ", "|0034|", "Ausgabe in der Scite Konsole schwarz, mit Schleifenvaribale $giLoop")
    Sleep(2000)
    Next

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

    Func __test($t)
    Sleep($t * 1000)
    EndFunc
    ;----------------
    Func __cwt($sNow=" ", $sLN="|0042|", $sString="", $iFlag=1)
    ;===============================================================================
    ; Function Name: __cwt($sNow, $sSLN, $sString, $iFlag)
    ; Description: Mit dieser Funktion kann die Ausgabe des zu übergebenen String gesteuert werden.
    ; Parameter(s): $sNow:
    ; 1. Zeichen optional
    ; 1. Zeichen = "!" <-- In rot wird die Ausgabe dagestellt
    ; 1. Zeichen = "+" <-- In grün wird die Ausgabe dagestellt
    ; 1. Zeichen = ">" <-- In blau wird die Ausgabe dagestellt
    ; 1. Zeichen = "-" <-- In rot wird die Ausgabe dagestellt
    ; 2. Zeichen optional
    ; 2. Zeichen = "d" <-- Das aktuelle Datum in der Form "25.09.2010 14:54:19" wird ausgegeben
    ;
    ; $sLN:
    ; Zeilennummerübergabe
    ; $sLN=@ScriptLineNumber funktioniert nicht wenn kompiliert
    ; $sString:
    ; - Der übergebene String
    ; - Ist im Sring eine freistehende Ziffer dann,
    ; frei stehende Ziffer=pink mit Sprung zur Zeile Ziffer, (Ziffer)=rot mit Sprung zur Zeile Ziffer
    ; mit Mausklick auf die Ziffer wird zur Zeile=Ziffer gesprungen
    ; $iFlag:
    ; wenn $iFlag negativ, dann $iTimerSection und $iTimerAll rechtsbündig
    ; 1 <-- Ausgabe auf die Konsole
    ; 2 <-- Ausgabe in die Log-Datei (Variable $sLog)
    ; 4 <-- Ausgabe als TrayTip
    ; 8 <-- Ausgabe durch die Variable _DebugOut bestimmt
    ; 16 <-- Ausgabe in das debug Fenster von Sysinternals
    ;
    ; Wenn Schleifenvaribale $giLoop > 0 dann wird sie hier ausgegeben
    ; Requirement(s): -
    ; Return Value(s): -
    ; Author(s): Paule (http://www.autoit.de)
    ;===============================================================================
    Local $i, $d, $l
    If $giLoop > 0 Then $i = @TAB & StringFormat("|%04s|", $giLoop)
    If StringLen($sNow) = 2 And StringMid($sNow, 2, 1) = "d" Then
    $d = StringLeft($sNow, 1) & _Now() & @TAB
    Else
    $d = StringLeft($sNow, 1)
    EndIf
    Local $sTime = StringFormat("(%-12s)", __TicksToTimeFormat(TimerDiff($iTimeSection)) & " " & __TicksToTimeFormat(TimerDiff($iTimeAll)))
    Local $left = $d & $sLN & $i & @TAB & $sTime & @TAB & $sString & @CRLF
    Local $right = $d & $sLN & $i & @TAB & $sString & @TAB & $sTime & @CRLF
    Local $msg = $left

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

    If $iFlag < 0 Then
    $iFlag = Abs($iFlag)
    $msg = $right
    EndIf

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

    If BitAND($iFlag, 1) = 1 Then ConsoleWrite($msg)
    If BitAND($iFlag, 2) = 2 Then _FileWriteLog($sLog, $msg)
    If BitAND($iFlag, 4) = 4 Then TrayTip("__cwt()", $msg, 2)
    If BitAND($iFlag, 8) = 8 Then _DebugOut(StringTrimRight($msg, 2))
    If BitAND($iFlag, 16) = 16 Then __dbg($msg)
    $iTimeSection = TimerInit()
    EndFunc
    ;----------------
    Func __TicksToTimeFormat($iTicks, $sFormat = '%hh:%mm:%ss:%ms')
    ;===============================================================================
    ; Function Name: _TicksToTimeFormat($iTicks, $sFormat = '%hh:%mm:%ss')
    ; Description:: Diese Funktion wandelt Millisekunden in ein anzugebenes Zeitformat um
    ; Parameter(s): $iTicks = Zeit in Millisekunden
    ; $sFormat:
    ; %ww für Wochen
    ; %dd für Tage
    ; %hh für Stunden
    ; %mm für Minuten
    ; %ss für Sekunden
    ; %ms für Millisekunden
    ; sonstige Zeichen, die dazwischen stehen, werden übernommen
    ; Requirement(s): -
    ; Return Value(s): Zeit im ausgewählten Format (String)
    ; Author(s): Oscar (http://www.autoit.de)
    ;===============================================================================
    Local $aTime[6], $sOut, $aTimeFormat[6] = ['ww', 'dd', 'hh', 'mm', 'ss', 'ms'], $aFormat
    $aTime[4] = Int($iTicks / 1000)
    $aTime[5] = $iTicks - $aTime[4] * 1000
    $aTime[0] = Int($aTime[4] / 604800)
    $aTime[4] = Mod($aTime[4], 604800)
    $aTime[1] = Int($aTime[4] / 86400)
    $aTime[4] = Mod($aTime[4], 86400)
    $aTime[2] = Int($aTime[4] / 3600)
    $aTime[4] = Mod($aTime[4], 3600)
    $aTime[3] = Int($aTime[4] / 60)
    $aTime[4] = Mod($aTime[4], 60)
    $aFormat = StringRegExp($sFormat, '%([^%]+)', 3)
    If Not IsArray($aFormat) Then Return SetError(1, 0, $iTicks)
    For $i = 0 To UBound($aFormat) - 1
    For $j = 0 To UBound($aTimeFormat) - 1
    If StringLeft($aFormat[$i], 2) = $aTimeFormat[$j] Then $sOut &= StringFormat('%0' & 2 + ($j=5) & 'i', $aTime[$j]) & StringMid($aFormat[$i], 3)
    Next
    Next
    Return $sOut
    EndFunc ;==>_TicksToTimeFormat
    ;----------------
    Func __dbg($msg)
    ;use debugview from sysinternals
    ;http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx Download
    ;http://msdn.microsoft.com/en-us/library/ms679303(VS.85).aspx Functions
    DllCall("kernel32.dll", "none", "OutputDebugString", "str", @ScriptName & " " & $msg)
    EndFunc ;==>dbg
    ;----------------

    [/autoit]

    Gruß Paule

  • _TicksToTimeFormat

    • Paule
    • 6. August 2010 um 21:58

    Oscar
    ein kleiner Schönheitsfehler. Wenn ich die Zeit mit Millisekunden angebe haben folgende Ausgabe:

    ConsoleWrite(_TicksToTimeFormat(2) & @CRLF)
    Ausgabe:
    00:00:00:02 <- eindeutiger wäre 00:00:00:002


    ConsoleWrite(_TicksToTimeFormat(10) & @CRLF)
    Ausgabe:
    00:00:00:10 <- eindeutiger wäre 00:00:00:010


    ConsoleWrite(_TicksToTimeFormat(123) & @CRLF)
    Ausgabe:
    00:00:00:123

    Gruß Paule

  • Login aus https:// unter Windows 7

    • Paule
    • 3. August 2010 um 22:54

    @progandy
    ich habe den Codesnipsel login isoliert und unter vista64 getestet. Unter XP prüfe ich es morgen.
    Ich denke das Zertifikat von save.tv ist nicht in Ordnung. Ich bekomme, wenn ich unter IE meine Files herunterlade, vom IE hinweise, dass die Seite nicht vertrauenswürdig sei. Der download mit dem FreeDownloadManager funktioniert trotzdem.

    Zur Aufteilung: Ich muss es vorher schliessen, weil bei den nachfolgenden Zugriffen es ab und zu keine Verbindung mehr gibt. Zu viele Verbindungen offen vermute ich.
    Hast Du eine Methode wie ich systematisch daran gehen kann?

  • Login aus https:// unter Windows 7

    • Paule
    • 3. August 2010 um 22:01

    Sprenger120
    wenn Du von Jura keine Ahnung hast dann spiele hier doch nicht den Obermacker.
    Ich bin eine volljährige, natürliche Person und habe einen Account bei save.tv.
    Ausserdem macht der empfohlende FreeDownloadManager von save.tv nicht anderes.
    Also vorher informieren, Hirn einschalten und dann posten.

    Die Problematik bleibt aber dieselbe. Auf https Seiten kann ich unter Windows 7 nicht zugreigfen, auch wenn es die AGBs erlauben.

  • Login aus https:// unter Windows 7

    • Paule
    • 3. August 2010 um 18:36

    Hallo,

    folgendes Script läuft unter XP 32Bit, Vista 32Bit und Vista 64Bit unter Windows 7 64Bit leider nicht.
    Hat jemand eine Lösung dafür?

    Spoiler anzeigen
    [autoit]


    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")

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

    __Login()
    Exit

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

    Func __Login()
    $objHTTP = ObjCreate ("winhttp.winhttprequest.5.1")
    $objHTTP.open ("POST", "https://www.save.tv/STV/M/Index.cfm?sk=PREMIUM", False)
    $objHTTP.SetRequestHeader ("Content-Type", "application/x-www-form-urlencoded")
    $objHTTP.Send("sUsername=username&" & "sPassword=password")
    $cookie = $objHTTP.GetResponseHeader("Set-Cookie")
    $objHTTP = 0
    EndFunc

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

    Func MyErrFunc()
    Msgbox(0, "AutoItCOM Test", "Ein COM-Fehler ist aufgetreten !" & @CRLF & @CRLF & _
    "err.description is: " & @TAB & $oMyError.description & @CRLF & _
    "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
    "err.number is: " & @TAB & hex($oMyError.number,8) & @CRLF & _
    "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
    "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
    "err.source is: " & @TAB & $oMyError.source & @CRLF & _
    "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
    "err.helpcontext is: " & @TAB & $oMyError.helpcontext _
    , 5 _
    )
    Local $err = $oMyError.number
    If $err = 0 Then $err = -1
    $g_eventerror = $err ; to check for after this function returns
    Endfunc

    [/autoit]

    Bekomme die Fehlermaledung:

    Der Vorgang wurde abgebrochen
    WinHttp.WinHttp.Request
    errno 80020009

    Ja, ich bekomme die Meldung auch mit gültigem Username und Password

    Gruß Paule

    Edit: Korrigiert sPassword statt Password

  • Scite #AutoIt3Wrapper_Run_Before=

    • Paule
    • 2. August 2010 um 08:38

    ich möchte bevor mein AutoIt Script übersetzt wird ein Programm aufrufen, das ebenfalls in AutoIt geschrieben ist:

    Hier das Programm das Aufgerufen werden:

    Spoiler anzeigen
    [autoit]


    Opt("WinTitleMatchMode", 2) ; 1=vom Anfang, 2=enthält, 3=genau, 4=fortgeschritten, -1 bis -4=Groß-\Klein ignorieren
    FileWriteLine("dummi.txt", "1 " & WinGetTitle("[Active]"))

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

    If WinExists(".au3") Then
    WinActivate(".au3")
    FileWriteLine("dummi.txt", "2 " & WinGetTitle("[Active]"))
    EndIf
    Sleep(1000)

    [/autoit]

    Hier das Script, dass das obige kompilierte Programm mit #AutoIt3Wrapper_Run_Before=%scitedir%\dummi starten soll.

    Spoiler anzeigen
    [autoit]


    #AutoIt3Wrapper_Run_Before=%scitedir%\dummi
    MsgBox(0, "Test", "ich bin hier", 5)

    [/autoit]

    Das dummi.exe ist im Scite Directory.
    Es wird nicht ausgegeben in dummi.txt

    Wo ist mein Denkfehler?

  • Kann man auch ein LUA Script ausführen bevor das AutoIt Script kompiliert wird?

    • Paule
    • 18. Juli 2010 um 14:18

    @Grennhorn,

    in Scite habe ich bereits alles angelegt. Ich kann das Scipt per Menu oder Hotkey aufrufen. Wie mache ich es aber das vor dem Kompilieren das LUA Script aufgerufen wird?

    Gruß Paule

  • Kann man auch ein LUA Script ausführen bevor das AutoIt Script kompiliert wird?

    • Paule
    • 18. Juli 2010 um 13:49

    Greenhorn,

    wenn ich F5 oder F7 in Scite drücke verlasse ich doch die Editor. Anschließend wird doch dann der externe Aufruf erfolgen. Dann weis doch mein LUA Scipt nichts mehr mit den Befehlen wie
    editor:match("\"|[0-9]*|",SCFIND_REGEXP,0)
    damit was anzufangen.

    Gruß Paule

  • Kann man auch ein LUA Script ausführen bevor das AutoIt Script kompiliert wird?

    • Paule
    • 17. Juli 2010 um 18:35

    Hallo,

    ich habe mir ein LUA Schript geschieben, dass automatisch die Zeilennummer in einen definierten String "|xx|" ersetzt.

    Das LUA Script habe ich geschrieben, da das Macro "@ScriptLineNumber" nicht funktioniert, wenn das Script kompiliert wird.

    Beispiel:
    Msgbox(0, @ScriptLineNumber & " Bin in der Scheife ", "texttexttext", 5)
    Nach dem Kompilieren erscheint nicht die Zeilenummer
    Msgbox(0, "|006| Bin in der Scheife", "texttexttext", 5)
    Das LUA Script ersetz "|006| durch die akuelle Zeilennummer.

    Hier das LUA Script

    Spoiler anzeigen


    function TraceLineNumber()
    for m in editor:match("\"|[0-9]*|",SCFIND_REGEXP,0) do
    local LineNumber = editor:LineFromPosition(m.pos)+1
    if LineNumber < 10 then
    LineNumber = "000"..LineNumber
    elseif LineNumber < 100 then
    LineNumber = "00"..LineNumber
    elseif LineNumber < 1000 then
    LineNumber = "0"..LineNumber
    end
    m:replace("\"|"..LineNumber.."|")
    end
    print("Ich habe fertig")
    end

    Gruß Paule

  • ListView und Filter, nur wie am besten?

    • Paule
    • 20. Juni 2010 um 14:24

    Hallo skyteddy,
    hilft Dir das vielleicht?

    http://www.autoitscript.com/forum/index.php?showtopic=73306&st=0&p=537169&hl=listview%20filter&fromsearch=1&#entry537169

    Gruß Paule

  • Wie erstelle ich aus Excel Sheets pdf-Dateien?

    • Paule
    • 18. Juni 2010 um 17:56

    hier mal meine Variante.
    Aufgabe:
    Aus der Warenwirtschaft sollen sämtliche Druckvorgänge als PDF Datei archiviert werden. Es gibt verschiedene Vorgänge, Mandanten und Formulare.
    Im Formular der einzelnen Vorgänge habe ich verschieden Felder mit weißer Schrift hinterlegt. Diese benutze ich um den Dateinamen zusammen zusetzten.
    Außerdem kann ich aus der extrahierten Text Datei Sonderfälle berücksichtigen und bearbeiten.
    Vielleicht hilft es dem einen oder anderen.

    Spoiler anzeigen
    [autoit]


    #cs
    GhostScript installieren
    http://www.ghostscript.com/

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

    Redmon Drucker installieren
    http://pages.cs.wisc.edu/~ghost/redmon/de/redmon.htm

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

    Redmon Einstellungen:

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

    Redirect this port to the program
    C:\Programme\FreePDF_XP\redrun.exe : wird von $Cmdline[1] ausgewertet

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

    Argument for this program are:
    d:\Programme\Archiv\prog\Archiv.exe %1 !Programmpfad darf nicht gemappt sein!

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

    Output:
    Program handles output

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

    Run:
    Hidden

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

    Kein Häckchen bei Run as User

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

    #ce

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

    $sRedrunFile = $Cmdline[1]

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

    $sGhostProg = "C:\Programme\gs\gs8.54\bin\gswin32c.exe " ; GhostScript
    $sGhostPara = "-q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dNOSAFER -dAutoRotatePages=/PageByPage -dPDFSETTINGS=/prepress -dCompatibilityLevel=1.4 "
    $sGhostPara &= '-sOutputFile=' & $sRedrunFile & '.pdf ' & $sRedrunFile

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

    ; Mache aus dem PDF eine Text Datei
    ; http://en.wikipedia.org/wiki/Pdftotext
    $sPdf2TxtProg = "c:\programme\pdf\pdftotext.exe "
    $sPdf2TxtPara = "-f 1 -raw " & $sRedrunFile & ".pdf " & $sRedrunFile & ".txt"

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

    RunWait(@ComSpec & ' /c ' & $sGhostProg & $sGhostPara, @ScriptDir, @SW_HIDE) ; erzeuge PDF-Datei e:\temp\redaxxxx.pdf
    Sleep(500)
    RunWait(@ComSpec & ' /c ' & $sPdf2TxtProg & $sPdf2TxtPara, @ScriptDir, @SW_HIDE) ; aus dieser PDF-Datei erzeuge TXT-Datei e:\temp\redaxxxx.txt
    Sleep(500)

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

    ; In der ersten Zeile stehen im Formular die Parameter wie Rechnungsnummer Datum Mandant und Formularnummer. Weiße Schrift auf weißen Grund
    $line = FileReadLine($sRedrunFile & ".txt") ; lese 1 Zeile ein aus e:\temp\redaxxxx.txt
    $aLine = StringSplit($line, " ") ; separiere 1.Zeile nach Leerzeichen ist Trenner

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

    ;
    ; weiterer Programm Code
    ;
    ;

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

    ; PDF mit Wasserzeichen wird erzeugt
    ; http://www.lagotzki.de/pdftk/index.html
    $sPdfTkProg = "C:\Programme\pdf\pdftk.exe "
    $sPdfTkPara = $sRedrunFile & ".pdf background wasser" & $sMandant & ".pdf dont_ask output " & $sNewPDF ; 'background wasser" & $sMandant' Briefpapier des Mandanten
    RunWait(@ComSpec & ' /c ' & $sPdfTkProg & $sPdfTkPara, @ScriptDir, @SW_HIDE)
    Sleep(500)

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

    Gruß Paule

  • Excel Inhalte kopieren

    • Paule
    • 6. Juni 2010 um 17:53
    Zitat von BugFix

    Du mußt beim Einfügen per Flag festlegen ob Formel oder Wert eingefügt wird. Du hast richtigerweise 'xlPasteValues' verwendet - aber als String! Hier mußt du natürlich den Wert der Konstanten einfügen ( $xlPasteValues = 0xFFFFEFBD ).
    Die Konstanten bekommst du, wenn du in Excel den VBA-Editor öffnest (Alt+F11) und dort den Objektkatalog öffnest (in der Rebar das Symbol, wie ein Pappkarton mit bunten Fetzen drüber ;) ). Dann einfach in das Suchfeld den Namen der Konstanten eingeben.
    In der Range-Auswahl hast du noch einen Fehler - du kopierst A1:A3. Das kannst du natürlich nicht in eine Zelle einfügen.
    So sollte es funktionieren:

    [autoit]


    Local Const $xlPasteValues = 0xFFFFEFBD
    $oExcel.ActiveSheet.Range("A1").Copy
    $oExcel.ActiveSheet.Range("B1").PasteSpecial($xlPasteValues)

    [/autoit]
    Alles anzeigen

    Danke BugFix. Der Zusammenhang, dass die Anweisung 'xlPasteValues' eine Variable ist, die man setzen muss habe ich nicht durchschaut.
    Die Kopieraktion ist aber richtig. Ich kopiere eine Bereich ab (nicht in) einer bestimmten Zelle. Man braucht nicht den Zielbereich angeben,

  • Excel Inhalte kopieren

    • Paule
    • 6. Juni 2010 um 12:21

    Ich möchte den Wert aus einer Zelle kopieren und nicht die Formel. In der Zelle "B1" soll der Inhalt der Zelle "A1" stehen und nicht die Summenformel.

    Hier ein Beispiel:

    Spoiler anzeigen
    [autoit]


    #include "Excel.au3"

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

    $oExcel = _ExcelBookNew(1) ;Create new book, make it visible

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

    ; Werte eintragen und Zellen farbig markieren
    For $i = 2 To 56
    _ExcelWriteCell($oExcel, "1234", $i-1)
    $oExcel.Cells($i, 1).Interior.ColorIndex = $i
    Next
    _ExcelWriteCell($oExcel, "=Summe(A2:A4)", 1)

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

    ; Fenster fixieren
    $oExcel.Activesheet.Range("A2").Select
    $oExcel.ActiveWindow.FreezePanes = True

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

    ; Bereich kopieren

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

    ;~ $oExcel.ActiveSheet.Range("A1").CurrentRegion.SpecialCells('xlCellTypeVisible').Copy
    $oExcel.ActiveSheet.Range("A1:A3").Copy
    $oExcel.ActiveSheet.Range("B1").PasteSpecial('xlPasteValues')
    $oExcel.CutCopyMode = False

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

    ; === letzte Zeile Danke BugFix
    ConsoleWrite('Anzahl Zeilen: ' & $oExcel.ActiveSheet.UsedRange.Rows.Count & @CRLF)
    ; === letzte Spalte
    ConsoleWrite('Anzahl Spalten: ' & $oExcel.ActiveSheet.UsedRange.Columns.Count & @CRLF)

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

    ;~ _ExcelBookSaveAs($oExcel, @ScriptDir & "\testTest.xls", "xls", 0, 1)
    MsgBox(0, "Z=" & $oExcel.ActiveSheet.UsedRange.Rows.Count & " S=" & $oExcel.ActiveSheet.UsedRange.Columns.Count, "ich habe fertig!")
    _ExcelBookClose($oExcel)

    [/autoit]

    Gruß Paule

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™