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

Beiträge von Andy

  • Öffnen mit ...

    • Andy
    • 9. Februar 2012 um 18:02

    Hi,

    [autoit]

    FileOpen()

    [/autoit]

    öffnet jegliche Dateien, mit FileSetPos() lassen sich innerhalb der Datei beliebige Änderungen vornehmen.
    Aber um eine *.au3-Datei (einfaches Textfile) zu ändern, würde ich den Quelltext einfach per Fileread() einlesen, mit den Stringfunktionen bearbeiten und wieder abspeichern.

  • Geschwindigkeit

    • Andy
    • 8. Februar 2012 um 21:11

    Hi,
    hab mal CheaterDieters Script bissl aufgemotzt, läuft bei mir ca. 30-40x schneller als das "Orginal"

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <File.au3>

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

    $text = FileRead ("wörter.txt")
    $loesung=""
    GUICreate("", 338, 369)
    GUICtrlCreateLabel("Zu prüfendes Wort:", 8, 8, 310, 17)
    $_Wort = GUICtrlCreateInput("", 16, 32, 225, 21)
    $_Loesungen = GUICtrlCreateEdit("", 8, 104, 321, 225)
    GUICtrlSetData(-1, "Ergebnise:" & @CRLF)
    $_Status = GUICtrlCreateLabel(":", 8, 344,999,13)
    $_Suche = GUICtrlCreateButton("Suche", 8, 72)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $_Suche
    $Wort = GUICtrlRead ($_Wort)
    $wortendung = StringRight ($Wort,3)&@CRLF
    $pos=1
    $time = TimerInit ()
    while $pos<>0
    $pos=StringInStr($text,$wortendung,1,1,$pos+3);position letzte 3 buchstaben finden
    $pos0=StringInStr($text,@crlf,1,-1,$pos);position wortanfang finden
    $loesung&=stringmid($text,$pos0,$pos-$pos0+3)
    wend
    GUICtrlSetData ($_Status,"Die Suche wurde nach " & Round (TimerDiff ($time) / 1000,2) & " Sekunden abgeschlossen.")
    GUICtrlSetData ($_Loesungen,$loesung)
    EndSwitch
    WEnd

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

    ;Orginal
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $_Suche
    $Wort = GUICtrlRead ($_Wort)
    $wortendung = StringRight ($Wort,3)
    $time = TimerInit ()
    $text = StringSplit (FileRead ("wörter.txt"),@CR)
    For $i = 1 To $text[0] Step 1
    If StringRight ($text[$i],3) = $wortendung Then
    GUICtrlSetData ($_Loesungen,GUICtrlRead ($_Loesungen) & @CRLF & $text[$i])
    EndIf
    Next

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

    GUICtrlSetData ($_Status,"Die Suche wurde nach " & Round (TimerDiff ($time) / 1000,2) & " Sekunden abgeschlossen.")
    EndSwitch
    WEnd

    [/autoit]

    /EDIT/ wesentlich schneller, wenn casesensitiv gesucht wird...

  • Geschwindigkeit

    • Andy
    • 7. Februar 2012 um 20:35
    Zitat

    Naja, so einfach ist das nicht.

    doch, wetten? 8)

    Zitat

    .. Ich brauche einerseits die Wörter, die die Überprüfung bestanden haben und dann muss ich dieses Wort nochmal auf verschiedene Dinge nochmal überpüfen (z.B. Aufreten von Vokalen...)


    Dann stell doch einfach mal dein Script ein, damit man KONKRET helfen kann...

  • Geschwindigkeit

    • Andy
    • 7. Februar 2012 um 19:54

    Hi,
    kann sein, dass ich das Problem nicht ganz begriffen habe...
    Die Wörter in der Datei sind doch durch CRLF getrennt.
    Datei öffnen
    $dateiinhalt=fileread("wörter.txt"),
    per stringinstr($dateiinhalt,$gleichewortendung&@CRLF) suchen?

  • Schnitzel hat Geburtstag !

    • Andy
    • 6. Februar 2012 um 19:56

    Glücklichen Herzwunsch und alles Gute!
    Normalerweise ziehe ich ja ein Kotelett einem Schnitzel vor, aber bei DIR mache ich natürlich eine Ausnahme :thumbup:

  • Andy hat Geburtstag

    • Andy
    • 5. Februar 2012 um 19:35

    Vielen Dank für die herzlichen Glückwünsche!
    Ich hatte mich übers Wochenende in "wärmere" Gefilde verzogen, statt -19° nur -4°. :D

    Oh oh, schon wieder ein Jahr älter....aber es macht jeden Tag aufs neue Spass, mit euch allen hier zu tun zu haben!
    Vielen Dank dafür :thumbup:

  • Random alles andere als Random?

    • Andy
    • 29. Januar 2012 um 13:29

    Hi,
    timerinit() im srandom führt bei mir zu folgenden Ergebnissen:

    Code
    I am working (1682)! 1    1
    I am working (5029)! 2    1
    I am working (4265)! 3    1
    I am working (7976)! 1    2
    I am working (8549)! 2    2
    I am working (5391)! 3    2
    I am working (4668)! 1    3
    I am working (4552)! 2    3
    I am working (9021)! 3    3
    I am working (6637)! 1    4
    I am working (7936)! 2    4
    I am working (6465)! 3    4
    I am working (4631)! 1    5
    I am working (5338)! 2    5
    I am working (6650)! 3    5
    I am working (8038)! 1    6
    I am working (8671)! 2    6
    I am working (4645)! 3    6
    I am working (9615)! 1    7
    I am working (7551)! 2    7
    I am working (5907)! 3    7
    I am working (3805)! 1    8
    I am working (1609)! 2    8
    I am working (4980)! 3    8
    I am working (8078)! 3    9
    Alles anzeigen
  • DeskStream 2 Release Candidate 1.8

    • Andy
    • 29. Januar 2012 um 09:59

    Bitte beschreibe nochmal genau, was du machen möchtest bzw. wie DeskStream bei dir arbeitet bzw. in der Kombination mit deinem Programm nicht arbeitet.
    -Deskstream auf lokalem Rechner (s.Post 130)
    -Deskstream im Netz
    -Deskstream in Verbindung mit deinem Programm

  • Random alles andere als Random?

    • Andy
    • 29. Januar 2012 um 09:48

    Hi,
    ja, sehr seltsam, ich bin bisher auch immer davon ausgegangen, daß die random()-Funktion aufgrund der Beschreibung in der Hilfe auch "unterschiedliche" Zahlen berechnet. Ein Parameter sollte definitiv der Counter für den Timer sein, der zählt die Takte seit dem Start des Rechners bzw Reset, ist offensichtlich nicht so... :thumbdown:

    Zitat von Hilfe zu Random()

    Übersetzte Kommentare basierend auf der Originalquelle

    Diese Funktion nutzt den"Mersenne Twister " Zufallszahlengenerator, MT19937, geschrieben von Takuji Nishimura, Makoto Matsumoto, Shawn Cokus, Matthe Bellew und Isaku Wada.

    Der "Mersenne Twister" ist ein Algorithmus für das Generieren von Zufallszahlen. Er wurde in Anbetracht der Mängel verschiedener anderer Generatoren entwickelt. Der Zyklus, 2<sup>19937-1, und der Verlauf der Gleichverteilung, 623 Dimensionen, sind hier weitaus größer. Ausserdem ist der Generator schnell. Er vermeidet Multiplikation und Division, und er profitiert von Cachespeichern und Pipelines. Weitere Informationen auf der Webseite der Entwickler unter http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html


    jedenfalls funktioniert nun

    [autoit]

    SRandom(timerinit())
    $ergebnis = random(1000,9999,1)

    [/autoit]
  • Random alles andere als Random?

    • Andy
    • 28. Januar 2012 um 18:29

    Hi,
    Interessant, aber wenn ich

    [autoit]

    SRandom($threadident)
    $ergebnis += $i* $ergebnis + random(1000,9999,1)

    [/autoit]

    einfüge, werden verschiedene "Randoms" erzeugt.

    /EDIT/ wohl doch nicht, oder ich hab nen Denkfehler^^

    [autoit]

    SRandom($threadident)
    $ergebnis = random(1000,9999,1)

    [/autoit]


    I am working (4924)! 2
    I am working (5493)! 3
    I am working (3922)! 1
    I am working (3922)! 1
    I am working (4924)! 2
    I am working (5493)! 3
    I am working (4924)! 2
    I am working (5493)! 3
    I am working (3922)! 1
    I am working (5493)! 3
    I am working (3922)! 1
    I am working (4924)! 2
    I am working (4924)! 2
    I am working (5493)! 3
    I am working (3922)! 1
    I am working (5493)! 3
    I am working (3922)! 1
    I am working (4924)! 2
    I am working (4924)! 2
    I am working (5493)! 3
    I am working (3922)! 1
    I am working (5493)! 3
    I am working (3922)! 1
    I am working (4924)! 2
    I am working (3922)! 1
    I am working (4924)! 2
    I am working (5493)! 3
    I am working (4924)! 2

  • DeskStream 2 Release Candidate 1.8

    • Andy
    • 28. Januar 2012 um 18:06

    Hi,
    hat zwar nicht direkt mit DeskStream zu tun, aber was solls^^

    Ich hab das in deinem Script verwendete Media-Center nicht, aber jedes andere Windows-Fenster geht ja auch^^
    Habe dein Programm gestartet. Am Anfang ist bei mir auch ein schwarzes Fenster, bei dem von links nach rechts senkrechte weiße Streifen durchlaufen, ich tippe auf den vergrößerten Rand des Fensters.
    Wenn ich einige der Tasten und auch die linke Maustaste aktiviere, erscheint plötzlich der vergrößerte Fensterinhalt in deiner GUI.

    Das Fenster des Mediaplayer wird definitiv Fullscreen von DeskStream gecaptured und übers Netz übertragen, getestet bei XP32, Vista und Win7/64.
    Das Betriebssystem von Client und Server waren dabei unerheblichl, d.h. jeder Server auf einem der BS hat mit jedem Client auf einem der anderen BS einwandfrei funktioniert.

    Wenn ein Fensterinhalt allerdings in einem extra Framebuffer "an Windows vorbei" (über spezielle Treiber wie z.B. bei bestimmten Spielen oder TV-Programmen ) dargestellt wird, dann erhält man einen schwarzen Screen bzw einen schwarzen Fensterinhalt.

  • Probleme mit neuem INet-Anschluss bei der Telekom

    • Andy
    • 28. Januar 2012 um 17:14

    Hi,
    ich verstehe das Problem nicht.
    Auch wir sind vor kurzem erst umgezogen und haben im neuen Haus eine DSL-Leitung der Telekom beantragt (allerdings Umzug und kein Neuvertrag). Die Vormieterin hatte ebenfalls bei der Telekom einen Vertrag, der mit Sicherheit noch nicht 24 Monate gelaufen, d.h. "voll" war. Wir haben einfach unsere neue Adresse bei der Telekom angegeben, durch Angabe des Namens der Vormieterin konnte der Anschluß zugeordnet werden und es musste kein Techniker kommen. Splitter, Router und das andere Zeugs kamen alles pünktlich innerhalb 2 Tagen von der Telekom. Die Leitung wurde am versprochenen Tag geschaltet, fertig.

    Was der Vormieter für Verträge mit einem Anbieter hat, das kann dir doch völlig egal sein. Du bestellst Telefon (analog oder ISDN) am neuen Wohnort und damit hat es sich. Der Techniker schaltet ggf. im Haus die richtige Leitung auf, macht einen Probelauf der Geräte und verschwindet wieder wenn alles reibungslos funktioniert. Wie gesagt, wenn Telefonnummer oder Namen des Vormieters bekannt ist, muss der Techniker nicht mal anrücken.

    Was da ein Vertrag mit einer 3. Person (dem Vormieter) zu tun hat, erschließt sich mir nicht ganz ^^

    Zitat

    Das Problem ist jetzt nur, das der Telekom klarzumachen

    DAS allerdings verstehe ich, es hat mehrere Anläufe/Telefonate wg falscher Verträge usw gekostet den Telekommern klarzumachen, dass ich NICHT einen neuen Vertrag wollte^^. Letztendlich bin ich in einem T-Kom-Laden angerückt und habe das mit der dortigen Geschäftsleitung in einem kurzen, aber intensiven Gespräch unter 4 Augen geklärt 8o In meinem Beisein wurden dort nochmal meine sämtliche Daten neu eingegeben und die richtigen Parameter gesetzt. Eine Woche später war ISDN+DSL vorhanden...

  • DeskStream 2 Release Candidate 1.8

    • Andy
    • 26. Januar 2012 um 21:26

    Btw, man kann die Scripte natürlich auch auf dem lokalen Rechner testen.
    Den Server kompilieren und die SERVER.EXE starten und als IP die 127.0.0.1 (das ist localhost) vergeben
    Den Client kann man dann aus Scite mit F5 starten, auch 127.0.0.1 vergeben, fertig.

  • DeskStream 2 Release Candidate 1.8

    • Andy
    • 26. Januar 2012 um 21:15
    Zitat

    eine idee an was das liegt?
    ich nutze die aktuelle version von autoit (3.8.8.0) und win7 x64

    daran wirds liegen...
    Kommentiere die Zeile einfach aus im Script, die Konstante wird in einer include deklariert.

  • Dateien und Ordner/Dateien rekursive auflisten

    • Andy
    • 23. Januar 2012 um 22:32
    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>

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

    $pfad=@windowsdir
    $dateien = _RecursiveFileListToArray($pfad, '', 1)
    _arraydisplay($dateien)

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

    Local $hFile = FileOpen("Dateien.txt", 2) ; 2 = erase
    _FileWriteFromArray($hFile, $dateien, 1)
    FileClose($hFile)
    run("notepad.exe "&@scriptdir&"\Dateien.txt")

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

    ;===============================================================================
    ; Description:: gibt Verzeichnisse und/oder Dateien (rekursiv) 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
    ; $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, $sDelim = @CRLF)
    Local $hSearch, $sFile, $sReturn = ''
    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    $hSearch = FileFindFirstFile($sPath & '*.*')
    If @error Or $hSearch = -1 Then Return SetError(0, 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
    $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 Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
    Return $sReturn
    EndFunc

    [/autoit]
  • Dateien und Ordner/Dateien rekursive auflisten

    • Andy
    • 23. Januar 2012 um 21:37
    Zitat von Julien

    Tut mir leid, aber das Script von Andy funktioniert nicht


    WAS funktioniert nicht?
    Bei mir wird nach ca 5-6 Sekunden ein Arraydisplay-Fenster geöffnet mit ca. 36000 Dateien, sortiert nach Namen + Ordnern, XP32

  • Dateien und Ordner/Dateien rekursive auflisten

    • Andy
    • 23. Januar 2012 um 21:24

    so?

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>

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

    $pfad=@windowsdir
    $dateien = _RecursiveFileListToArray($pfad, '', 1)
    _arraydisplay($dateien)

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

    ;===============================================================================
    ; Description:: gibt Verzeichnisse und/oder Dateien (rekursiv) 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
    ; $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, $sDelim = @CRLF)
    Local $hSearch, $sFile, $sReturn = ''
    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    $hSearch = FileFindFirstFile($sPath & '*.*')
    If @error Or $hSearch = -1 Then Return SetError(0, 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
    $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 Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
    Return $sReturn
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • Dateien und Ordner/Dateien rekursive auflisten

    • Andy
    • 23. Januar 2012 um 21:06

    Klick mich, ich bin ein Link
    Forensuche FTW :D

  • Steganographie....Verstecken statt Verschlüsseln

    • Andy
    • 23. Januar 2012 um 19:53
    Zitat

    Versteh ich das nun richtig... wir haben, mit 2 Bit stücken, pro pixel 3 Teile die wir verstecken können, und wir brauchen 4 pro Buchstabe ? das wäre also bei einem 16mp Bild von einer Kamera 16millionen*3/4 = 12 Millionen Zeichen die man verstecken könnte ? Da passt ja einiges rein also wäre auf ein 100x100 Avatar =10'000pixel 7500 Zeichen.


    pro "Pixel" (d.h.4 Byte ARGB) ist bei 2 Bit pro Byte ein Buchstabe zu "verstecken", wenn man den Alphakanal weglässt, kommt man auf 3/4 der Bits also 75% Buchstaben/Summe aller Pixel
    Wie bereits angesprochen, könnte man in jedem 27. Byte ein Bit verstecken, bei einem 1024x728x32-Bild bekäme man immer noch 1024x728x32Bit/27/8Bit pro Buchstabe =116500 Buchstaben

    Bzgl. Komprimierung von Bildern bzw. Daten hat man das Problem IMMER, daß Verluste vorhanden sind. Aber wer soll mich daran hindern, in die bereits komprimierten Daten etwas "hereinzusteganografieren". Ist bestimmt aufwändig, aber machbar.
    Gleiches gilt für Facebook usw., der "Umwandlungsalgorithmus" ist ja bekannt, im Endeffekt steht da nachher ein Bild, welches aus x*y Pixeln bestimmter Farbe besteht. Wenn ich den Algorithmus kenne, dann muss ich den nur mit den richtigen Daten füttern, um nachher aus dem "Facebookbild" (fixe Größe vorrausgesetzt) meine Daten zu "entsteganografieren"

  • Happy Birthday Oscar

    • Andy
    • 18. Januar 2012 um 20:16

    Alles Gute und die besten Wünsche, Oscar!

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™