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

Beiträge von TheLuBu

  • Dezimaldatum von Excel umwandeln

    • TheLuBu
    • 24. Januar 2012 um 17:46

    Danke für die Hinweise, ist geändert ;)

  • Backup mittels robocopy und autoit ?

    • TheLuBu
    • 24. Januar 2012 um 14:41

    in Zeile 43 fehlt ein Leerzeichen hinter "robocopy"

    So müsste es klappen:

    [autoit]

    $RoboCopy = RunWait(@ComSpec & " /c "& "robocopy " & $aReadINI[$i][1] & " " & $OutPut & " /COPY:DT /MIR /XO /XF *.avi *.mp3 *.jpg *.wav *.wma /R:10 /W:10 /V", "" ,@SW_HIDE)

    [/autoit]
  • Beim erstellen eines random Programms ein Icon hinzufügen

    • TheLuBu
    • 24. Januar 2012 um 12:36

    Ich verstehe nicht, welches Icon du meinst.
    Das der erstellten Datei oder das der Autoit exe?

  • Dezimaldatum von Excel umwandeln

    • TheLuBu
    • 24. Januar 2012 um 12:20

    So, hier auch die passende Funktion, um das Exceldatum (Dezimal) in ein normales Ausgabeformat zu ändern

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION#
    ;===============================================================================
    ;
    ; Name...........: _ExcelDateToNormaldate
    ; Description ...: Wandelt ein Excel Datum (Dezimal) in das Datum um (YYYY/MM/DD[ HH:MM:SS]) um
    ; Syntax.........: _ExcelDateToNormaldate($i_date)
    ; Parameters ....: $i_date - Das Datum, wie es von Excel ausgegeben wird
    ; Requirements...: _ExcelTimeToNormalTime()
    ; ...: #include <Date.au3>
    ; Return values .: Success - Das Datum im Format YYYY/MM/DD
    ; - Wenn $i_date Float ist, dann wird auch die Uhrzeit zurückgegeben YYYY/MM/DD HH:MM:SS
    ; Failure - Returns 0 and Sets @Error:
    ; |0 - Kein Fehler
    ; |1 - $i_date ist keine gültige Zahl
    ; Author ........: TheLuBu ([email='LuBu@veytal.com'][/email])
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ;
    ;==========================================================================================
    Func _ExcelDateToNormaldate($i_date)
    $i_date = StringReplace($i_date, ",", ".")
    If Not IsNumber($i_date) Then Return SetError(1, 0, 0)
    If IsInt($i_date) Then
    Return _DateAdd("d", $i_date, "1899/12/30")
    ElseIf IsFloat($i_date) Then
    $date = _DateAdd("d", Int($i_date), "1899/12/30")
    $hour = _ExcelTimeToNormalTime($i_date - Int($i_date))
    Return $date & " " & $hour
    EndIf
    EndFunc ;==>_ExcelDateToNormaldate
    ; #FUNCTION#
    ;===============================================================================
    ;
    ; Name...........: _ExcelTimeToNormalTime
    ; Description ...: Wandelt eine Exceluhrzeit (Dezimal) in eine normale Uhrzeit (hh:mm:ss) um
    ; Syntax.........: _ExcelTimeToNormalTime($i_time)
    ; Parameters ....: $i_time - Die Uhrzeit, wie sie von Excel gespeichert wird
    ; Return values .: Success - Die normale Uhrzeit
    ; Failure - Returns 0 and Sets @Error:
    ; |0 - Kein Fehler
    ; |1 - $i_time ist keine gültige Zahl
    ; Author ........: TheLuBu ([email='LuBu@veytal.com'][/email])
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ;
    ;==========================================================================================
    Func _ExcelTimeToNormalTime($i_time)
    $i_time = StringReplace($i_time, ",", ".")
    If Not IsNumber($i_time) Then Return SetError (1,0,0)
    Return StringRight("0" & Int($i_time * 24), 2) & ":" & StringRight("0" & Int((($i_time * 24) - Int($i_time * 24)) * 60), 2) & ":" & StringRight("0" & Int(((($i_time * 24) - Int($i_time * 24)) * 60 - Int((($i_time * 24) - Int($i_time * 24)) * 60)) * 60), 2)
    EndFunc ;==>_ExcelTimeToNormalTime
    ; #FUNCTION#
    ;===============================================================================

    [/autoit]
  • Syntax einer For-Schleife

    • TheLuBu
    • 24. Januar 2012 um 10:50

    OK sagen wir, es ist unsauber geschrieben ;)

    Es werden Lokale Variablen im Haupstscript deklariert, das ist Blödsinn, da Lokale Variablen in Funktionen genutzt werden.
    Die Lokalen Variablen werden von AutoIt automatisch in Globale Variablen gewandelt weil sie im Hauptscript stehen, sonst könntest du sie nicht in der Funktion benutzen.

    [autoit]

    HotKeySet('{F10}','_OpenPDF')

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

    _Start()

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

    Func _Start()
    Local $sPfad = 'C:\PDF\', $sInfo = 'Ctrl oder Shift drücken um mehrere Dateien auszuwählen.'
    Local $string = FileOpenDialog($sInfo, $sPfad, "Datei (*.pdf)", 1+4)
    Local $aArray = StringSplit($string, '|', 2)
    Local $aBound = UBound($aArray)-1
    Local $Tip = ToolTip('Smash Hotkey F10',1,1,"Programm wird ausgeführt")

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

    While 1
    Sleep(100)
    WEnd
    EndFunc
    Func _OpenPDF()
    ConsoleWrite('Opening PDF >> '&$aArray[$aBound] &'<<'&@CRLF)
    ShellExecute($aArray[$aBound])
    If @error Then
    ConsoleWrite('ERROR Code >> '&@error & '<<'&@CRLF)
    Exit
    EndIf
    If $aBound = 0 Then Exit
    $aBound -= 1
    ConsoleWrite('PDF Opened'&@CRLF)
    EndFunc

    [/autoit]

    würde z.B. nicht klappen ;)

    $aArray und $aBound sind Globale Variablen, da sie in mehrern Funktionen genutzt werden (bei diesem Beispiel 2 Funktionen, bei dir das Haupstscript + die Funktion)

  • Backup mittels robocopy und autoit ?

    • TheLuBu
    • 24. Januar 2012 um 08:39

    was für einen Fehler kriegst du denn?

  • Syntax einer For-Schleife

    • TheLuBu
    • 23. Januar 2012 um 16:02

    @Protex
    Dein Script kann nicht laufen, weil du $array und $aBound lokal deklarierst, aber in einer Funktion nutzt ;)

  • Syntax einer For-Schleife

    • TheLuBu
    • 23. Januar 2012 um 15:45

    relativ weit unten bei dir im Script, füg das hier da ein wo $aBound -= 1 steht

    [autoit]

    $aBound -= 1
    If $aBound < 0 Then Exit

    [/autoit]
  • AutoItDrawObject ( Nachfolger von QuickDraw )

    • TheLuBu
    • 23. Januar 2012 um 15:31

    wenn die dll benötigt wird, kannst du sie ja mit includen,
    Bugfix hatte da mal was für geschrieben, ähnlich wie es mit der sqlite.dll ist

    Hier der Link

  • Textdatei umschreiben

    • TheLuBu
    • 23. Januar 2012 um 14:53

    Habe meinen Beitrag oben bearbeitet

  • Textdatei umschreiben

    • TheLuBu
    • 23. Januar 2012 um 14:38

    ist das so denn auch richtig, also diese Umwandlung?
    Nach welchem System wandelst du die um, bzw. was soll damit gemacht werden?

    Das hier würde auf deine Beispielzahl passen, aber ob es für alle gültig ist kann ich nicht sagen

    [autoit]

    Func AppendByte($val)
    $split = Stringsplit($val)
    Return "0x"&$split[3]&$split[4]&$split[1]&$split[2]
    EndFunc ;==>AppendByte

    [/autoit]
  • Tastenkombination

    • TheLuBu
    • 23. Januar 2012 um 13:11
    Spoiler anzeigen
    [autoit]

    $Timer = TimerInit()
    $timertoggle = False
    While 1
    If TimerDiff($Timer) >= 1200000 and $timertoggle = False Then
    $timertoggle = not $timertoggle
    Send("!^")
    $Timer = TimerInit()
    EndIf
    If TimerDiff($Timer) >= 300000 and $timertoggle = True Then
    $timertoggle = not $timertoggle
    Send("!^")
    $Timer = TimerInit()
    EndIf
    Sleep(10)
    WEnd

    [/autoit]


    Da es hier um Zeiten geht, reicht auch der kleine sleep ;)

  • .Ini vollständig in ein Array lesen

    • TheLuBu
    • 23. Januar 2012 um 11:48

    Hatte ich früher auch schonmal gebraucht und eine Funktion dafür geschrieben:

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION#
    ;==================================================================================================
    ; Function Name: _IniReadComplete($sPath [, $s_Delim="" ])
    ; Description: Eine Inidatei mit allen Sektionen in einem Array
    ; Parameter(s): $sPath Der Pfad zur Inidatei
    ; $s_Delim Trennzeichen zwischen Key und Value Standart = GUIDataSeparatorChar
    ; Return values .: Success - Array welches die gesamte Inidatei darstellt
    ; Failure - Returns 0 and Sets @Error:
    ; |1 - Die Inidatei konnte nicht gelesen werden
    ; Author(s): TheLuBu ([email='LuBu@veytal.com'][/email])
    ;==================================================================================================
    Func _IniReadComplete($s_Path, $s_Delim = "")
    If $s_Delim = "" Then $s_Delim = Opt("GUIDataSeparatorChar")
    Local $av_Sectionnames, $i_lastrow = 1, $as_initoread, $av_ret[1][2]
    $av_Sectionnames = IniReadSectionNames($s_Path)
    If @error Then Return SetError(1,0,0)
    ReDim $av_ret[1][$av_Sectionnames[0]]
    For $i = 1 To $av_Sectionnames[0]
    $av_ret[0][$i-1] = $av_Sectionnames[$i]&""
    $as_initoread = IniReadSection($s_Path, $av_Sectionnames[$i])
    For $k = 1 To $as_initoread[0][0]
    If $k = $i_lastrow Then
    $i_lastrow = $k + 1
    ReDim $av_ret[$i_lastrow][$av_Sectionnames[0]]
    EndIf
    $av_ret[$k][$i-1] = $as_initoread[$k][0] & $s_Delim & $as_initoread[$k][1]
    Next
    Next
    Return $av_ret
    EndFunc

    [/autoit]
  • Tastenkombination

    • TheLuBu
    • 23. Januar 2012 um 10:34
    Spoiler anzeigen
    [autoit]

    $Timer = TimerInit()
    $timertoggle = False
    While 1
    If TimerDiff($Timer) = 1200000 and $timertoggle = False Then
    $timertoggle = not $timertoggle
    Send("!^")
    $Timer = TimerInit()
    EndIf
    If TimerDiff($Timer) = 300000 and $timertoggle = True Then
    $timertoggle = not $timertoggle
    Send("!^")
    $Timer = TimerInit()
    EndIf
    WEnd

    [/autoit]
  • Backup mittels robocopy und autoit ?

    • TheLuBu
    • 20. Januar 2012 um 15:52

    Möglich wäre es, z.b Alle Pfade, die du sicher, willst in einer IniDatei zu speichern (anderes format ginge auch, aber für Ini-Dateien gibt es fertige Funktionen)

    Code
    [Pfade]
    Pfad1 = C:\Users\%username%\Desktop
    Pfad2 = C:\test
    Pfad3 = C:\test2
    PfadX = .....

    Das ganze dann mit

    [autoit]

    IniReadSection ( "filename", "section" )

    [/autoit]


    auslesen und in ner Schleife durchlaufen lassen

    [autoit]

    $avarray = IniReadSection("Beispielini.ini", "Pfade")
    For $i = 1 To $avarray[0][0]
    $rob = RunWait(@ComSpec & " /c "& "robocopy" & $avarray[$i][1] & " " & $Ziel & " /COPY:DT /MIR /XO /XF *.avi *.mp3 *.jpg *.wav *.wma /R:10 /W:10 /V", "" ,@SW_HIDE)
    Next
    If $rob = 1 Then

    [/autoit]
  • [GDI+] DrawStringEx positionieren

    • TheLuBu
    • 12. Januar 2012 um 10:20

    Hallo liebe Community,
    ich wollte mich jetzt mal an GDI+ ranwagen und habe angefangen, ein Spiel zu programmieren.
    Allerdings stehe ich jetzt schon vor einem Problem ;)

    Ich habe Zeichne einen String mit

    [autoit]

    _GDIPlus_GraphicsDrawStringEx($hBuffer, $text, $hFont, $aInfo[0], $hFormat, $hBrush)

    [/autoit]


    und ich dachte, das ich mit

    [autoit]

    $tLayout = _GDIPlus_RectFCreate(500, 500, 0, 0)

    [/autoit]

    Die position des Strings verändern kann, aber dem ist anscheinend nicht so ;)

    Ich habe das Script hochgeladen, da es zuviele Zeichen enthält ($bFont_Fluted_Germanica ist die Schriftart, die ich nutze)

    Wäre nett, wenn mir damit jemand helfen könnte ;)


    Ok ich habe es grade rausgefunden

    [autoit]

    $aInfo = _GDIPlus_GraphicsMeasureString($hGraphics, $text4context, $hFont, $tLayout, $hFormat)

    [/autoit]


    war bei mir leer, da ein Leerer String zum Überprüfen mitgegeben wurde. Nachdem ich da einen "imaginären" Content mit 30 Zeichen eingesetzt hatte, funktioniert jetzt auch die Positionierung

    Dateien

    GDIPlustest.au3 76,04 kB – 287 Downloads
  • UDF - TrueType Fonts im Script mitgeben und verwenden

    • TheLuBu
    • 11. Januar 2012 um 22:10

    Hi, ich arbeite grade an einem SPiel und würde da gerne auch eine andere Schriftart nutzen.

    Ich habe mir diese Schriftart runtergeladen
    http://www.dafont.com/germanica-family.font
    und mit deinem Script eingelesen (sowohl bei der Abfrage Ja und Nein).

    Wenn ich das Font dann in dein Beispielscript kopiere kommt bei Ja gar nichts, bei beiden Fenstern, und bei Nein nur im ersten Fenster Schrift, aber in normaler Arial Schrift. Woran kann das liegen?

  • Popup Menu Handle?

    • TheLuBu
    • 9. Januar 2012 um 11:25

    Die Buttons und das Contextmenu gehören zu einem anderen Programm, auf das ich via Autoit zugreifen will, es ist kein Autoit Programm und ich habe es nicht geschrieben ;)

  • Popup Menu Handle?

    • TheLuBu
    • 9. Januar 2012 um 11:05

    Ich pushe das hier nochmal, da ich leider immernoch nicht weiter gekommen bin

  • Popup Menu Handle?

    • TheLuBu
    • 7. Januar 2012 um 00:43

    Leider ist es nicht so einfach :)

    Die Controlid des buttons und auch das handle des Fensters, in dem der Button liegt, die habe ich.
    Das Handle zu dem Popup Menu jedoch nicht, und das lässt sich auch nicht mit dem Window Info auslesen.

    Ich habe also nicht die Möglichkeit, mit WinWaitActive o.Ä zu arbeiten, da ich keinen Titel text, classe oder Instanz habe bzw. Noch nicht rausgefunden habe, wie ich drankomme

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™