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

Beiträge von Oscar

  • Ist Datum ein Feiertag ?

    • Oscar
    • 9. Dezember 2009 um 16:46

    Super! :thumbup:
    Jetzt bin ich zufrieden.

  • URL öffnen, aber etwas anders

    • Oscar
    • 9. Dezember 2009 um 15:38

    Wenn ein Programm innerhalb von einer Sekunde 10 Browserfenster öffnet, dann hätte ich sofort den Verdacht auf ein Virus/Scherzprogramm.
    Bist Du Dir wirklich sicher, dass Du sowas einem Anwender zumuten willst? ?(

    Edit: Oh mann, bin ich heut' wieder langsam. ;)
    Beschreib mal genauer, was Du vorhast...

  • URL öffnen, aber etwas anders

    • Oscar
    • 9. Dezember 2009 um 15:26

    Was gefällt Dir denn an ShellExecute nicht?
    Das ist doch die für den Benutzer angenehmste Weise, weil der Standard-Browser verwendet wird.

  • Ist Datum ein Feiertag ?

    • Oscar
    • 9. Dezember 2009 um 15:11

    Klasse Funktion!
    Aber es gibt noch einen Bug: Wenn ich das Datum als Zahl übergeben _IsHoliday(2009,1,1) wird der Feiertag nicht erkannt. Erst eine Stringübergabe mit führender Null: _IsHoliday(2009, '01', '01') ergibt das Gesuchte.

    Und wäre es nicht sinnvoll die Datumsübergabe im Format YYYY/MM/DD zu gestalten?
    Dann könnte man z.B. direkt mit der Rückgabe von _NowCalcDate arbeiten:

    [autoit]

    _IsHoliday(_NowCalcDate())

    [/autoit]


    oder mit _DateAdd:

    [autoit]

    _IsHoliday(_DateAdd('d', 20, _NowCalcDate()))

    [/autoit]
  • Konica Minolta Dimage A200

    • Oscar
    • 9. Dezember 2009 um 11:30

    Alina, runterskalieren ist doch gar kein Problem. Zum Beispiel mit IrfanView. Das Programm beherrscht sogar Batch-Konvertierung, sodass auch ganze Ordner mit Bildern bearbeitet werden können.

    Alternativ wäre auch ein runterskalieren mit AutoIt machbar (IrfanView kann das aber besser). Also wenn das der einzige Fehler ist, den die Kamera hat, dann sehe ich da kein Problem. :)

  • Koordinatensuche "zusammfassbar"?

    • Oscar
    • 9. Dezember 2009 um 07:59

    Ich habe mal ein eigenes Script erstellt:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    $hGui = GUICreate('Koordinatensuche', 320, 320)
    Global $aField[15][15]
    For $x = 0 To 14
    For $y = 0 To 14
    $aField[$x][$y] = GUICtrlCreateCheckbox('', 10 + $x * 20, 10 + $y * 20, 20, 20)
    Next
    Next
    GUISetState()
    _Search(7, 7, 3)
    MsgBox(0, 0, 'Fertig')
    Do
    Until GUIGetMsg() = -3

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

    Func _Search($x, $y, $iLoop)
    $sleep = 500
    For $i = 1 To $iLoop
    GUICtrlSetState($aField[$x - 1 * $i][$y], $GUI_CHECKED)
    Sleep($sleep)
    GUICtrlSetState($aField[$x + 1 * $i][$y], $GUI_CHECKED)
    Sleep($sleep)
    GUICtrlSetState($aField[$x][$y - 1 * $i], $GUI_CHECKED)
    Sleep($sleep)
    GUICtrlSetState($aField[$x][$y + 1 * $i], $GUI_CHECKED)
    Sleep($sleep)
    For $j = $x - 1 * $i To $x + 1 * $i
    If $j = $x Then ContinueLoop
    GUICtrlSetState($aField[$j][$y - 1 * $i], $GUI_CHECKED)
    Sleep($sleep)
    Next
    For $j = $x - 1 * $i To $x + 1 * $i
    If $j = $x Then ContinueLoop
    GUICtrlSetState($aField[$j][$y + 1 * $i], $GUI_CHECKED)
    Sleep($sleep)
    Next
    If $i = 1 Then ContinueLoop
    For $j = $y - 1 * ($i-1) To $y + 1 * ($i-1)
    If $j = $y Then ContinueLoop
    GUICtrlSetState($aField[$x - 1 * $i][$j], $GUI_CHECKED)
    Sleep($sleep)
    Next
    For $j = $y - 1 * ($i-1) To $y + 1 * ($i-1)
    If $j = $y Then ContinueLoop
    GUICtrlSetState($aField[$x + 1 * $i][$j], $GUI_CHECKED)
    Sleep($sleep)
    Next
    Next
    EndFunc

    [/autoit]


    Meinst Du sowas?

  • Obfuscator Fehler

    • Oscar
    • 9. Dezember 2009 um 06:54

    Mit diesem Parameter bekomme ich mehrere Fehlermeldungen beim compilieren:

    Code
    ERROR: _0__() called by a previous line with 0 arg(s). Min = 2. First previous line calling this Func is 4.

    Wenn ich diese ignoriere, dann ist die Exe-Datei nicht lauffähig ("Error: Duplicate function name.").

  • pixel zählen

    • Oscar
    • 9. Dezember 2009 um 04:42

    Es war ja klar... :(
    Forenregeln lesen!
    [Thread closed]

  • pixel zählen

    • Oscar
    • 8. Dezember 2009 um 04:00

    Eine Zeile (1920 Pixel) bei meinem 24 Zöller dauert ~37 sek. und das mit 'nem Phenom II X4 940 Processor (4x 3.0 GHz). :rofl:

    Aber andererseits finde ich das sogar gut. Das behindert die Botter. :D

  • 5 Klicks innerhalb von unter 1sek ausführen

    • Oscar
    • 7. Dezember 2009 um 19:10

    Andy, ich bin schneller (100 Klicks) ;)

    Spoiler anzeigen
    [autoit]


    Opt("MouseClickDelay", 0)
    Opt("MouseClickDownDelay", 0)
    $i=0
    $t=timerinit()
    while timerdiff($t)<1000
    $i+=1
    MouseClick ("left",631,550,1,0)
    wend
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $i = ' & $i & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console

    [/autoit]
  • Homepage-Fehler ausbessern

    • Oscar
    • 7. Dezember 2009 um 18:04

    Bei meiner Funktion kannst Du direkt das RegExp-Pattern übergeben:

    Spoiler anzeigen
    [autoit]


    $pfad = @DesktopDir & "\"
    $a = _RecursiveFileListToArray($pfad, '.+\.html', 1)
    For $i = 1 To $a[0]
    _removealt($a[$i])
    Next

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

    ;===============================================================================
    ; Function Name: _RecursiveFileListToArray($sPath[, $sPattern][, $iFlag][, $iFormat][, $iRecursion][, $sDelim])
    ; Description:: gibt Verzeichnisse (rekursiv) und/oder Dateien zurück, die einem RegExp-Pattern entsprechen
    ; Parameter(s): $sPath = Startverzeichnis
    ; $sPattern = ein beliebiges RexExp-Pattern für die Auswahl
    ; $iFlag = Auswahl
    ; 0 = Dateien & Verzeichnisse
    ; 1 = nur Dateien
    ; 2 = nur Verzeichnisse
    ; $iFormat = Rückgabeformat
    ; 0 = String
    ; 1 = Array mit [0] = Anzahl
    ; 2 = Nullbasiertes Array
    ; $iRecursion = Verzeichnisse rekursiv durchsuchen
    ; 0 = Nein
    ; 1 = Ja
    ; $sDelim = Trennzeichen für die String-Rückgabe
    ; Requirement(s): AutoIt 3.3.0.0
    ; Return Value(s): Array/String mit den gefundenen Dateien/Verzeichnissen
    ; Author(s): Oscar (http://www.autoit.de)
    ; Anregungen von: bernd670 (http://www.autoit.de)
    ;===============================================================================
    Func _RecursiveFileListToArray($sPath, $sPattern = '', $iFlag = 0, $iFormat = 1, $iRecursion = 1, $sDelim = @CRLF)
    Local $hSearch, $sFile, $sReturn = ''
    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    $hSearch = FileFindFirstFile($sPath & '*.*')
    If @error Or $hSearch = -1 Then Return SetError(1, 0, $sReturn)
    While True
    $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop
    If StringInStr(FileGetAttrib($sPath & $sFile), 'D') Then
    If StringRegExp($sPath & $sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 2) Then $sReturn &= $sPath & $sFile & '\' & $sDelim
    If $iRecursion Then $sReturn &= _RecursiveFileListToArray($sPath & $sFile & '\', $sPattern, $iFlag, 0)
    ContinueLoop
    EndIf
    If StringRegExp($sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 1) Then $sReturn &= $sPath & $sFile & $sDelim
    WEnd
    FileClose($hSearch)
    If $iFormat And $sReturn = '' Then Return StringSplit($sReturn, '', $iFormat)
    If $iFormat Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
    Return $sReturn
    EndFunc ;==>_RecursiveFileListToArray

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

    Func _removealt($sPath)
    $sFile = FileRead($sPath)
    $sFile = StringRegExpReplace($sFile, '(<a .*) alt=".*?"(.*?>)', '$1$2')
    $hFile = FileOpen($sPath, 2)
    If $hFile <> -1 Then
    FileWrite($hFile, $sFile)
    FileClose($hFile)
    EndIf
    EndFunc ;==>_removealt

    [/autoit]


    Bei Deiner Funktion " _removealt" habe ich die zwei RegExp mal zusammengefasst.

  • IsIP

    • Oscar
    • 7. Dezember 2009 um 17:54

    TCPNameToIP()

  • Homepage-Fehler ausbessern

    • Oscar
    • 6. Dezember 2009 um 13:06

    Es gibt mehrere Funktionen, die Dateien rekursiv einlesen können. Hier ist meine:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3> ; nur für die Beispiele erforderlich

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

    ; Beispiele
    $iTimer = TimerInit()
    $a = _RecursiveFileListToArray(@UserProfileDir, '', 1)
    ConsoleWrite(Round(TimerDiff($iTimer)/1000, 4) & ' sek.' & @CRLF)
    _ArrayDisplay($a)

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

    ;~ $timer = TimerInit()
    ;~ $aReturn = _RecursiveFileListToArray('C:', '\.exe\z', 1) ; Alle Dateien mit der Erweiterung ".exe" (auf C:)
    ;~ ConsoleWrite(@error & @CRLF)
    ;~ ConsoleWrite(Round(TimerDiff($timer)/1000, 3) & ' sek.' & @CRLF)
    ;~ _ArrayDisplay($aReturn, 'Alle Dateien mit der Erweiterung ".exe"')

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

    ;~ $timer = TimerInit()
    ;~ $aReturn = _RecursiveFileListToArray('C:', '\.au3\z', 1) ; Alle Dateien mit der Erweiterung ".au3" (auf C:)
    ;~ ConsoleWrite(@error & @CRLF)
    ;~ ConsoleWrite(Round(TimerDiff($timer)/1000, 3) & ' sek.' & @CRLF)
    ;~ _ArrayDisplay($aReturn, 'Alle Dateien mit der Erweiterung ".au3"')

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

    ;~ $timer = TimerInit()
    ;~ $aReturn = _RecursiveFileListToArray('C:', 'autoit.*\..+\z', 1) ; Alle Dateien in denen "autoit" im Dateinamen vorkommt (auf C:)
    ;~ ConsoleWrite(@error & @CRLF)
    ;~ ConsoleWrite(Round(TimerDiff($timer)/1000, 3) & ' sek.' & @CRLF)
    ;~ _ArrayDisplay($aReturn, 'Alle Dateien in denen "autoit" im Dateinamen vorkommt')

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

    ;===============================================================================
    ; Function Name: _RecursiveFileListToArray($sPath[, $sPattern][, $iFlag][, $iFormat][, $iRecursion][, $sDelim])
    ; Description:: gibt Verzeichnisse (rekursiv) und/oder Dateien zurück, die einem RegExp-Pattern entsprechen
    ; Parameter(s): $sPath = Startverzeichnis
    ; $sPattern = ein beliebiges RexExp-Pattern für die Auswahl
    ; $iFlag = Auswahl
    ; 0 = Dateien & Verzeichnisse
    ; 1 = nur Dateien
    ; 2 = nur Verzeichnisse
    ; $iFormat = Rückgabeformat
    ; 0 = String
    ; 1 = Array mit [0] = Anzahl
    ; 2 = Nullbasiertes Array
    ; $iRecursion = Verzeichnisse rekursiv durchsuchen
    ; 0 = Nein
    ; 1 = Ja
    ; $sDelim = Trennzeichen für die String-Rückgabe
    ; Requirement(s): AutoIt 3.3.0.0
    ; Return Value(s): Array/String mit den gefundenen Dateien/Verzeichnissen
    ; Author(s): Oscar (http://www.autoit.de)
    ; Anregungen von: bernd670 (http://www.autoit.de)
    ;===============================================================================
    Func _RecursiveFileListToArray($sPath, $sPattern = '', $iFlag = 0, $iFormat = 1, $iRecursion = 1, $sDelim = @CRLF)
    Local $hSearch, $sFile, $sReturn = ''
    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    $hSearch = FileFindFirstFile($sPath & '*.*')
    If @error Or $hSearch = -1 Then Return SetError(1, 0, $sReturn)
    While True
    $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop
    If StringInStr(FileGetAttrib($sPath & $sFile), 'D') Then
    If StringRegExp($sPath & $sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 2) Then $sReturn &= $sPath & $sFile & '\' & $sDelim
    If $iRecursion Then $sReturn &= _RecursiveFileListToArray($sPath & $sFile & '\', $sPattern, $iFlag, 0)
    ContinueLoop
    EndIf
    If StringRegExp($sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 1) Then $sReturn &= $sPath & $sFile & $sDelim
    WEnd
    FileClose($hSearch)
    If $iFormat And $sReturn = '' Then Return StringSplit($sReturn, '', $iFormat)
    If $iFormat Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
    Return $sReturn
    EndFunc

    [/autoit]
  • Homepage-Fehler ausbessern

    • Oscar
    • 6. Dezember 2009 um 12:30

    So auf die Schnelle:

    Spoiler anzeigen
    [autoit]


    $sPath = @ScriptDir & '\test.html'
    $sFile = FileRead($sPath)
    $sFile = StringRegExpReplace($sFile, '(<a .*)alt=".+?"(.*?>)', '$1$2')
    MsgBox(0,0,$sFile)
    $hFile = FileOpen($sPath, 2)
    If $hFile <> -1 Then
    FileWrite($hFile, $sFile)
    FileClose($hFile)
    EndIf

    [/autoit]
  • Datum vergleichen

    • Oscar
    • 6. Dezember 2009 um 12:16

    Ich hab' auch noch eine Lösung:

    Spoiler anzeigen
    [autoit]


    MsgBox(0, '', _CheckDate('05.12.2009'))

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

    Func _CheckDate($sDate)
    Local $sNow = @YEAR & @MON & @MDAY
    $sDate = StringRegExpReplace($sDate, '(\d{2})\.(\d{2})\.(\d{4})', '$3$2$1')
    Select
    Case $sDate > $sNow
    $iReturn = 1
    Case $sDate = $sNow
    $iReturn = 0
    Case $sDate < $sNow
    $iReturn = 2
    EndSelect
    Return $iReturn
    EndFunc

    [/autoit]
  • Eigener Internetbrowser

    • Oscar
    • 6. Dezember 2009 um 11:59

    @MatthiasG: Eine Rendering Engine in AutoIt? Mag vielleicht möglich sein, dass das möglich ist, aber das ist dann wohl so, als wenn Du mit einem Fahrrad an einem Formel 1 Rennen teilnehmen willst. :D

  • Fehler im Code ???

    • Oscar
    • 6. Dezember 2009 um 11:44

    Ich habe lediglich zwei WMI-Abfragen kombiniert. Habe ich so ähnlich schon in meinem Computer-Info verwendet. Hier jetzt aber als Funktion.

    Problem habe ich noch mit der Angabe des Computers ($strComputer). Wenn man also die Informationen von einem anderen Computer im Netzwerk haben will.
    Die Funktion bricht dann mit @error = 1 ab (das Objekt $objWMIService wird nicht erstellt). Vermutlich wegen fehlender Zugriffsrechte, aber wo kann man die angeben?

  • Fehler im Code ???

    • Oscar
    • 6. Dezember 2009 um 09:14

    Dieses Script funktioniert sowohl unter XP als auch unter Win7 64Bit:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    $iTimer = TimerInit()
    $aAdapter = _Win32NetworkAdapter()
    ConsoleWrite('Fehler: ' & @error & @CR & 'Zeit: ' & Int(TimerDiff($iTimer)) & ' ms' & @CR)
    _ArrayDisplay($aAdapter)

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

    Func _Win32NetworkAdapter($strComputer = 'Localhost')
    Local $aReturn[1][12] = [[ _
    'Hersteller:', 'Name:', 'Adapter-Typ:', 'Kennung:', _
    'MAC-Adresse:', 'Adresstyp:', 'DHCP-Server:', 'IP erhalten:', _
    'IP läuft ab:', 'IP-Adresse:', 'Subnetzmaske:', 'Standardgateway:']]
    Local $x = 0, $objWMIService, $colItems
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapter WHERE Netconnectionstatus = 2', 'WQL', 0x30)
    If Not IsObj($colItems) Then Return SetError(2, 0, 0)
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][12]
    $aReturn[$x][0] = $objItem.Manufacturer
    $aReturn[$x][1] = $objItem.Name
    $aReturn[$x][2] = $objItem.AdapterType
    $aReturn[$x][3] = $objItem.NetConnectionID
    $aReturn[$x][4] = $objItem.MACAddress
    $colItems2 = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration', 'WQL', 0x30)
    If IsObj($colItems2) Then
    For $objItem2 In $colItems2
    If $objItem.Caption = $objItem2.Caption Then
    If $objItem2.IPEnabled = -1 Then
    If $objItem2.DHCPEnabled = -1 Then
    $aReturn[$x][5] = 'von DHCP zugewiesen'
    $aReturn[$x][6] = $objItem2.DHCPServer
    $aReturn[$x][7] = _WMIDateStringToDate($objItem2.DHCPLeaseObtained)
    $aReturn[$x][8] = _WMIDateStringToDate($objItem2.DHCPLeaseExpires)
    Else
    $aReturn[$x][5] = 'Manuell konfiguriert'
    EndIf
    $aReturn[$x][9] = $objItem2.IPAddress(0)
    $aReturn[$x][10] = $objItem2.IPSubnet(0)
    $aReturn[$x][11] = $objItem2.DefaultIPGateway(0)
    EndIf
    EndIf
    Next
    EndIf
    Next
    Return $aReturn
    EndFunc ;==>_Win32NetworkAdapter

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

    Func _WMIDateStringToDate($dtmDate)
    Return (StringMid($dtmDate, 5, 2) & '/' & _
    StringMid($dtmDate, 7, 2) & '/' & StringLeft($dtmDate, 4) _
    & ' ' & StringMid($dtmDate, 9, 2) & ':' & StringMid($dtmDate, 11, 2) & ':' & StringMid($dtmDate, 13, 2))
    EndFunc ;==>_WMIDateStringToDate

    [/autoit]
  • Cover in MP3 Datei schreiben

    • Oscar
    • 4. Dezember 2009 um 22:48

    Die Coverbilder, die in MP3s eingebettet werden können (innerhalb des ID3-Tag), sind erst ab Version 2.4 der ID3-Tags spezifiziert:

    Zitat


    In der aktuellen Version 2.4 werden viele Zusatzinformationen spezifiziert, es gibt jedoch kaum eine Implementierung, die den vollen Funktionsumfang unterstützt. Eine Besonderheit sind zum Beispiel Cover-Bilder oder ganze Slideshows (zusammen auch als Album Art bekannt) die im ID3-Tag abgelegt werden können und durch das „PIC“-Flag identifiziert werden. Maximal sind 256 MByte große PNG- oder JPG-Bilder spezifiziert, im Normalfall werden aber zwischen 32x32 bis zu 320x320 große Bilder abgelegt, die zum Beispiel vom Windows Media Player oder iPod angezeigt werden können.


    Naja, über den Sinn 256 MByte große Bilder in eine MP3-Datei von ca. 4-5 MByte zu integrieren kann man streiten...
    Probleme dürfte es vermutlich mit einigen MP3-Playern geben, die einen derart umfangreichen ID3-Tag nicht erwarten. :S

  • Geburtstag von peethebee und funkey

    • Oscar
    • 4. Dezember 2009 um 04:16

    Guten Morgen ihr beiden!

    Alles Gute zu eurem Geburtstag und feiert schön.

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

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™