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

Beiträge von misterspeed

  • Sleep() Werte ändern ?

    • misterspeed
    • 15. August 2011 um 11:20

    Wofür braucht man kürzere Sleeps als 10ms? Kann mir da nicht wirklich einen Anwendungszweck vorstellen...

  • Unterschied zwischen Timer Funktionen?

    • misterspeed
    • 15. August 2011 um 10:55

    Kann mir jemand erklären ob und welchen Unterschied es zwischen diesen beiden Funktionen gibt? Die Hilfe schweigt sich jedenfalls darüber aus...

    [autoit]


    timerinit()
    _timer_init()
    ;bzw.
    timerdiff()
    _timer_diff()

    [/autoit]

    Davon abgesehen suche ich aber einen Timestamp dessen Wert auch noch nach einem System Neustart gültig ist ohne großartig selbst mit den Datums/Zeit Makros rumrechnen zu müssen.
    Ziel ist es einmalig beim ersten Programmstart einen Timestamp zu erzeugen, welcher in einer ini gespeichert wird.

    Die Differenz zu diesem Timestamp soll dann bei jedem Programmneustart bzw. auch mehrmals zur Laufzeit berechnet werden. Mit der Standardfunktion timerinit ergeben sich nach einem Systemneustart (oder 24h ???) negative Werte. Würde sich das Problem durch die Funktionen aus der timer UDF lösen lassen?

  • überlanges Array

    • misterspeed
    • 14. August 2011 um 20:17
    Zitat von Nasenbär

    Auch wenn Schleifen etc. keinen Aufwand bereiten, muss es doch nicht sein.

    Also bei einem Array mit 900 Einträgen halte ich eine Schleife für die einzig sinnvolle Möglichket. Wirst doch nicht allen ernstes 900 Einträge von hand befüllen wollen? Bei kleineren Arrays ist das ja noch ok, aber bei derart vielen Einträgen blickste doch nicht mehr durch, da helfen auch Zeilenumbrüche nicht wirklich.

  • GUICtrlCreateTab hinterher elemente in tabitem einfügen

    • misterspeed
    • 14. August 2011 um 18:58

    Die Frage ist doch, warum du die Elemente erst später erstellst. Wäre es nicht vielleicht auch möglich alle zu beginn zu erstellen und mit sichtbarkeit/unsichtbarkeit zu arbeiten?

    [autoit]


    guictrlsetstate()

    [/autoit]
  • Bildpfad von Guictrlcreatepic() auslesen

    • misterspeed
    • 14. August 2011 um 18:51

    Verstehe dein Probelm noch immer nicht. Du hast die Pfade in der ini und speicherst diese in ein Array. Also sind die auch noch alle zugänglich, sofern du nicht so ungeschickt bist und dir die Pfade permanent mit anderen überschreibst. Wenn das so ist musst du da eben ansetzen und deinen komplizierten Code mal entkomplizieren. Wie du das besser machen kannst kann man anhand deines Codeschnipsels aber nicht sagen, da solltest du vielleicht besser mal ein komplettes Script inklusive eine zip Datei mit einer Hand voll Testbildern hier zur Verfügung stellen. Deine Schleifen Konstruktion schaut jedenfalls ulkig aus. :P

  • bmp 2 jpg konvertieren

    • misterspeed
    • 14. August 2011 um 18:40
    Zitat von Techmix

    misterspeed:
    Fremdprogramme muß ich leider vermeiden, ich hatte ja auch mit Irfanview eine Funktion...

    Wo liegt nun der Unterschied zwischen einer fremden exe, dieser prospeed.dll (die wohl keine windows standard dll sein dürfte) oder einem fremden ASM Code den du vermutlich nicht verstehst?
    Imagemagick liefert soweit ich weiss auch DLL's aus, sehe da aber nun keinen nennenswerten Vorteil zur enthaltenen convert.exe.

    Imagemagick ist sogar opensource: http://www.imagemagick.org/script/install-source.php#windows
    Quellcode zur convert.exe ist ebenfalls enthalten ;)

  • bmp 2 jpg konvertieren

    • misterspeed
    • 14. August 2011 um 18:16

    Du könntest dafür auch ImageMagick verwenden (convert.exe sollte dir aus dem 100mb Paket langen...).

    Code
    convert.exe test.bmp test.jpg

    http://www.imagemagick.org/script/index.php

    Dauert nur einen Sekundenbruchteil, habs aber nicht gemessen...

  • Anzahl der Zeilen in einer Textdatei

    • misterspeed
    • 14. August 2011 um 18:06

    Oder alternativ für den Fall, dass du den Dateiinhalt ohnehin auslesen und ggf. verändern willst:

    [autoit]


    dim $array
    _filereadtoarray($pfad,$array)
    $zeilen = $array[0]
    msgbox(0,"zeilen",$zeilen)

    [/autoit]
  • Bildpfad von Guictrlcreatepic() auslesen

    • misterspeed
    • 14. August 2011 um 17:59

    Wüsste nicht wie man den Pfad im nachinein noch auslesen können sollte. Macht auch überhaupt keinen Sinn. Du hast die ganzen Bildpfade ja wohl schon bei der Controlerstellung verwendet, somit müssen die auch bekannt sein. Speicher dir die Pfade eben ab und verwende Variablen.

    [autoit]


    $bild1 = "c:\bild1.jpg"
    $bild2 = "c:\bild2.jpg"
    $bild3 = "c:\bild3.jpg"
    $bild4 = "c:\bild4.jpg"

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

    $idBild1 = guictrlcreatepic($bild1,....)
    $idBild2 = guictrlcreatepic($bild2,....)
    ; usw.

    [/autoit]

    Je nach Fall wäre ein 2D Array hier vielleicht sogar am sinnvollsten in dem du immer Bildpfad und zugehörige ID speicherst.

  • Automatisch Fotos von der Kamera auf Festplatte kopieren

    • misterspeed
    • 14. August 2011 um 17:38
    Zitat von Katrijn

    Mann kann aber nirgendwo sehen woher die Bilder aus die Kamera kommen, also es sind keine irgendwelche Pfad-angaben sichtbar. ?(

    Weil es eben keine Pfade gibt zur Digitalkamera. Die Kommunikation erfolgt hier nicht über die üblichen Wege, sondern über ein speziell entwickeltes Übertragungsprotokoll PTP bzw. MTP ( http://de.wikipedia.org/wiki/Media_Transfer_Protocol ).
    Es handelt sich dabei also um etwas wie das TCP Protokoll, da benötigst du anstelle von Dateipfaden ja auch IP Adressen und Ports. Wie MTP im einzelnen funktioniert kann ich dir nicht erklären, du kannst dir aber die 300 seitige Spezifikation bei msdn herunterladen:

    http://msdn.microsoft.com/de-de/library/ms867188.aspx

    Ums kurz zu machen:

    Ohne spezielle Software die dieses Protokoll beherscht ist ein Zugriff auf das Gerät schlichtweg nicht möglich. Da der Mediaplayer 10 aber offensichtlich damit klar kommt könnte man ggf. mit den COM Objekten des Mediaplayers einen Zugang erhalten. Möglicherweise gibt es auch Windows DLL's die man dafür nutzen kann. Autoit Standard Funktionen wie filecopy kommen jedenfalls nicht in Frage. Solange Canon kein eigenes Dateisystem benutzt hat sollte aber wohl wie bereits vorgeschlagen ein stinknormaler Kartenleser in der Lage sein die SD Karte auszulesen. Das halte ich nachwievor für die einfachste Möglichkeit. Alles andere wird wohl recht aufwendig werden.

  • überlanges Array

    • misterspeed
    • 14. August 2011 um 17:11

    Wo ist das Problem? Befüll das Array eben in einer Schleife oder einzeln für jedes Element (was bei 900 wohl nicht sehr sinnvoll wäre...):

    [autoit]


    global $array[900]
    for $i=0 to ubound($array)-1
    $array[$i]= $i & $i & $i & $i & $i & $i & $i & $i & $i & $i & $i & $i & $i & $i & $i & $i
    next

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

    ; oder eben so
    $array[0]="000000000000000"
    $array[1]="111111111111111"
    ;...

    [/autoit]
  • Automatisch Fotos von der Kamera auf Festplatte kopieren

    • misterspeed
    • 14. August 2011 um 15:49

    Scheint wohl wirklich keine Möglichkeit zu geben diese Canon Kameras auf den "Wechselmedien- oder Massenspeicher-Modus" umzustellen.
    Die einfachste Lösung wäre wohl einen seperaten Kartenleser zu verwenden und eben jedesmal die SD-Karte auszubauen.

  • kleines Problem beim Email senden

    • misterspeed
    • 13. August 2011 um 13:05
    Zitat von autoBert

    In deinem Skriptausschnitt kann ich 2 Fehler erkennen Web.de benutzt Port 587 und keine SSL-Verschlüsselung.

    Nö. Ich habe bei meiner Web.de Adresse auch den Port 25 für den Mail Ausgang (smtp) im Mail Client eingestellt, wird also auf jedenfall unterstützt. Auch SSL wird selbstverständlich unterstützt:

    http://hilfe.freemail.web.de/sicherheit/ssl/smtp/

  • kleines Problem beim Email senden

    • misterspeed
    • 13. August 2011 um 12:47

    Soll Autoit nun selbständig denken und sich überlegen wie man Anhand deiner Variablen irgendetwas anstellt?
    Du rufst keine einzige Funktion auf sondern deklarierst nur Variablen. Das ist so als ob du einen Brief schreiben würdest und das Blatt Papier dann auf deinem Tisch liegen lässt in der Hoffnung, dass es selbstständig in den Briefumschlag und in den Briefkasten wandert.

    Davon ab sollte doch die Variable $toAddress sicher eine email Adresse sein...

  • FileSaveDialog verschiedene dateitypen vorschlagen

    • misterspeed
    • 13. August 2011 um 11:38

    Wenn ich dich recht verstehe willst du, dass die Dateiendung selbsständig je nach Typ Auswahl an den Dateinamen angehängt wird. Das scheint mit der Standard Autoit Funktion aber nicht zugehen. Es sollte aber durchaus realisierbar sein, wenn man sich seinen SaveDialog mit der zugehörigen winAPI Funktion erstellt. Dort scheint es etwas mehr Möglichkeiten zur Konfiguration zu geben, habe jetzt aber keine Lust damit rumzuspielen.

    [autoit]


    _WinAPI_GetSaveFileName()
    ; unbedingt ansehen solltest du dir auch den damit verknüpften Hilfeeintrag zu den möglichen Flags, also
    $tagOPENFILENAME ; http://translation.autoit.de/onlinehilfe/libfunctions/$tagOPENFILENAME.htm

    [/autoit]

    Habs aber nur überflogen und kann dir nicht sicher sagen ob du das Verhalten damit realisiert bekommst.

  • Formatieren von Text welches aus einem Array übernommen wird

    • misterspeed
    • 13. August 2011 um 10:25

    Du könntest auch mal das Logfile auszugsweise posten. Sollte eigentlich auch in einer msgbox recht simpel darstellbar sein, solange es nicht zuviele Einträge sind. Zur Formatierung innerhalb einer msgbox kannst du die Makros @CRLF (Zeilenumbruch) und @TAB (Tabulator) nutzen.
    Dazu liest du das Logfile am besten per _filereadtoarray() ein und wandelst das ganze dann in einer Schleife in einen formatierten String duch einfügen der genannten Steuerzeichen.

    Beispiel für eine so formatierte msgbox:

    [autoit]


    $string = "zeile 1 spalte 1" & @TAB & "zeile 1 spalte 2" & @TAB & "zeile 1 spalte 3" & @CRLF & _
    "zeile 2 spalte 1" & @TAB & "zeile 2 spalte 2" & @TAB & "zeile 2 spalte 3" & @CRLF & _
    "zeile 3 spalte 1" & @TAB & "zeile 3 spalte 2" & @TAB & "zeile 3 spalte 3" & @CRLF
    msgbox(0,"",$string)

    [/autoit]

    Grunsätzlich stimme ich aber zu, dass eine msgbox schlecht für eine strukturierte Ausgabe geeignet ist. Besser wäre wohl eine GUI mit listview wenn du eine Tabellenform bevorzugst.

  • Allerletzte Frage

    • misterspeed
    • 13. August 2011 um 00:15
    Zitat von autoBert

    Ich denke du meinst mich Bert wäre allein ja noch in Ordnunng aber auto (kommt von AutoIt) alleine gefällt mir gar nicht!

    Und wie wärs mit flotter Käfer? :D

    Zu white und seiner offensichtlichen Faulheit sich auch nur mal eine Sekunde selbst mit einem Problem auseinanderzusetzen braucht man glaube ich nix weiter mehr sagen. Ich bezweifle aber, dass er sein Versprechen wahr machen wird.

  • Ordnerinhalte auflisten

    • misterspeed
    • 12. August 2011 um 22:39

    Nachid es wurden längst rekursive Alternativ Funktionen zu _filelisttoarray() gepostet. Es macht keinen Sinn dafür den "dir"-Befehl auszupacken und umständliche Umwege über Textdateien zu gehen erst recht nicht.

  • Problem ... FTP Server mal wieder

    • misterspeed
    • 12. August 2011 um 21:16

    Du solltest wirklich langsam mal anfangen selbst nach Lösungen zu suchen. Wenn du schon zu faul dazu bist poste wenigstens vernünftig formatierte/eingerückte Quellcodes.
    Eine GUI innerhalb einer GUI Schleife zu erstellen ist jedenfalls grober unfug, genauso wie es wenig sinnvoll ist für die zweite GUI identische Variablennamen zu verwenden.

    Erstelle alle GUI's am Scriptanfang und mache diese je nach Fall mit guisetstate() sichtbar oder unsichtbar.
    Wenn es danach immernoch nicht funktioniert poste nochmal dein brauchbares überarbeitetes Testscript.

    EDIT:

    Dein Fehler wegen dem Edit Feld liegt im übrigen an dieser Zeile

    [autoit]

    GUICtrlSetData($Edit1,$aFile)

    [/autoit]


    Du musst hier einen String verwenden, mit einem Array kann das Edit Control nichts anfangen.

    [autoit]


    dim $string
    for $i=0 to ubound($aFile)-1
    $string &= $aFile[$i] & @crlf
    next
    GUICtrlSetData($Edit1,$string)

    [/autoit]
  • Rechtsklick > z.B. Editieren mit Notepad++ mit meinem Textbearbeiter?

    • misterspeed
    • 12. August 2011 um 20:55

    Ich kann dir auch ein 1-zeiliges Script schreiben das du nicht verstehst und Schaden anrichtet. :P
    Für dein vorhaben würde es btw. wohl ein Einzeiler tun

    [autoit]


    regwrite()

    [/autoit]

    Ohne Änderungen an der Registry kannst du solche Einträge jedenfalls nicht erzeugen. Wenn du selbst bedenken diesbezüglich hast ist es wohl besser du lässt es bleiben oder benutzt fertige Programme die das für dich erledigen.

    Weiterführende Informationen zum Thema findest du auch hier:
    http://msdn.microsoft.com/en-us/library/aa969321.aspx

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™