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

Beiträge von Schnitzel

  • Ordner öffnnen mit Fokus auf Datei

    • Schnitzel
    • 17. September 2014 um 13:12

    Hey Phil-IT
    wäre nett wenn du deine Themen immer als gelöst markierst sobald sie abgeschlossen sind.
    Einfach den ersten Beitrag editieren, Präfix gelöst wählen und absenden ;)

  • Desktopbereich sperren bei Windows 7

    • Schnitzel
    • 17. September 2014 um 12:05

    Ok und was genau funktioniert manchmal nicht?
    Hast du maximierte Fenster die den Bereich überlagern?

  • Überprüfen ob die Calc-Datei vollständig geladen wurde

    • Schnitzel
    • 17. September 2014 um 11:51

    Wie gesagt wurde Arraycreate entfernt. D.h. du musst dir selbst behelfen.
    Versuchs mal damit:

    [autoit]

    Local $oSave[1] = [_OOsetProp("FilterName", $filter)]

    [/autoit]
  • Script-gestartete Dosbox unterscheidet sich von manuell gestarteter Dosbox (Env.)

    • Schnitzel
    • 17. September 2014 um 11:47

    Ist nicht ganz so einfach zu finden ^^
    Ich denke mal du hast ein 64 bit system oder?
    query existiert nur als 32 bit befehl

    Füge mal am anfang deines Scriptes folgendes ein:

    [autoit]

    DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1)

    [/autoit]
  • Abbruch nach 33000 Sekunden

    • Schnitzel
    • 17. September 2014 um 11:40

    Du musst das handle angeben also
    FileClose ($op1)

  • Überprüfen ob die Calc-Datei vollständig geladen wurde

    • Schnitzel
    • 17. September 2014 um 11:18

    Kann man den Fortschrittsbalken nicht abfragen?

    _ArrayCreate vllt?
    Edit:
    Zumindest mit autoit versionen < 3.3.10.0
    Mit 3.3.10.0 wurde _ArrayCreate entfernt.

  • Abbruch nach 33000 Sekunden

    • Schnitzel
    • 17. September 2014 um 11:13

    Sehe ich bisschen anders. Sauber programmieren ist sprachunabhängig und die Anzahl an Handles ist jetzt nicht Autoit sondern eine Windows limitation
    Da wird man in anderen Sprachen genauso Probleme bekommen
    Aber ja ich verstehe was du meinst. Schnelle einfache Lösung und so ^^

  • Abbruch nach 33000 Sekunden

    • Schnitzel
    • 17. September 2014 um 10:52

    Schonmal daran gedacht die Dateien wieder zu schließen?

    [autoit]


    $op1 = FileOpen('GDIPlus_Img_StatusIST.jpg',16);aktuelles Bild
    $op2 = FileOpen('GDIPlus_Img_StatusRef.jpg',16);Referenzbild beim Start (INAKTIV)

    [/autoit]


    Auch filehandles sollte man nicht unendlich haben ...
    Edit:
    Interessanter link dazu:
    http://blogs.technet.com/b/markrussinov…29/3283844.aspx

    Zitat von Techmix

    Alternativ kannst du dein Programm ja auch alle X Stunden neustarten lassen, ich habe auch schon einige Programme geschrieben welche eine lange Laufzeit aufwiesen, und gerade bei automatisierungen bekam ich oft ein Speicherleck. Da reichen schon ein oder zwei kleine Fehler, die summieren sich aber entsprechend der Laufzeit. Ich hatte schon nach 4 Stunden Laufzeit Speicherververbrauch von mehreren GB - Nur weil ich vergaß etwas GDI zu releasen.


    Schlampig programmieren und das ganze durch einen unschönen workaround lösen? :S

  • Desktopbereich sperren bei Windows 7

    • Schnitzel
    • 17. September 2014 um 10:42

    Welches script verwendest du denn?

  • Herausfinden ob Datei Text beinhaltet

    • Schnitzel
    • 17. September 2014 um 10:25

    Naja es macht sinn wenn er Dateitypen hat wo er nicht weiß was dahinter steckt. Allerdings müssen die dann auch erstmal in der Registry gepflegt sein und selbst mit einer Kombination aus PerceivedType und Content Type wird er nicht alle finden.
    Die Magische Zahl ist da natürlich besser, braucht aber auch ein mapping.
    Einen Teil der Datei einlesen und überprüfen ob bestimmte Zeichen enthalten sind is dafür langsam (Und evtl fehleranfällig wenn man zuwenig einliest)

    Im Prinzip haben wir drei Lösungen. Er wird schon die richtige für sich aussuchen^^

  • Herausfinden ob Datei Text beinhaltet

    • Schnitzel
    • 16. September 2014 um 22:21

    Naja das ist halt wieder Windows Gedanke. Wenn ich eine mp3 in avi umbenenn hab ich dann nen Film? :P
    Aber im Prinzip hast du natürlich recht ;)

  • Herausfinden ob Datei Text beinhaltet

    • Schnitzel
    • 16. September 2014 um 20:23

    Als Windows user verlässt man sich doch normalerweise auf die Dateiendung oder :rolleyes:

    Also ich würde nicht die ganze Datei einlesen sondern nur die 100 Zeichen oder so. Das sollte dann doch aussagekräftig genug sein

  • Excel Zeile für Zeile befüllen

    • Schnitzel
    • 16. September 2014 um 15:24

    So wie du es dir vorstellst ginge es natürlich. Dazu brauchst du eine While Schleife + _Excel_RangeRead + If-Abfrage

    Du kannst aber auch die gesamte Excel in ein Array einlesen und nachsehen wie gros das Array ist:

    Spoiler anzeigen
    [autoit]

    #include <Excel.au3>

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

    $sPfad = StringLeft(@AutoItExe, StringInStr(@AutoItExe, '\', 0, -1)) & 'Examples\Helpfile\Extras\_Excel1.xls'

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

    $oAppl = _Excel_Open()
    $oWorkbook = _Excel_BookOpen($oAppl, $sPfad)
    $aExcel = _Excel_RangeRead($oWorkbook)
    $iResult = UBound($aExcel)
    MsgBox(0,"Die Exceldatei hat soviele Zeilen:", $iResult)
    _Excel_Close($oAppl)

    [/autoit]
  • Überprüfen ob die Calc-Datei vollständig geladen wurde

    • Schnitzel
    • 15. September 2014 um 10:10

    Woran erkennt man denn ob die Calc-Datei vollständig geladen wurde?

  • Winamp öffnen und taste übergeben

    • Schnitzel
    • 12. September 2014 um 14:10

    Google ist dein freund^^
    http://www.autoitscript.com/forum/topic/71…on-pure-autoit/
    Auf Seite 3 ist wohl noch ein gültiger downloadlink :)

  • Hilfe bei GUI Funktion aufrufen bzw Tastendruck senden

    • Schnitzel
    • 11. September 2014 um 16:12

    Also grundsätzlich darfst du nicht eine zweite Endlosschleife bauen (schon garnicht in einer Funktion) in der dann deine GuiEvents nicht abgefragt werden.
    Adlibregister kann eine lösung für dich sein. Und zwar müsstest du dazu deine _START() Funktion so umbauen dass sie auch funktioniert wenn du sie immer wieder aufrufst.
    (was auch immer die genau tut^^)
    D.h. statt einer Endlosschleife in der Start Funktion brauchst du eine Start-Funktion die immer wieder per Adlibregister aufgerufen wird.
    In der Startfunktion kannst du ja dann die gegebenheiten prüfen und darauf reagieren.
    Achte aber darauf dass die Start funktion möglichst schnell durchläuft. In jedem fall um einiges schneller als der Zeitwert den du bei Adlibregister angibst

  • Combobox auslesen?

    • Schnitzel
    • 11. September 2014 um 13:59

    Also grundsätzlich möglich ja aber mir fallen im Moment nur drei Wege ein sowas zu machen und alle haben so ihre Tücken.
    Weg 1: Das Script solange laufen lassen bis das Datum erreicht ist, dann die Email senden
    Weg 2: Ein externes Tool verwenden das sich um die Zeitsteuerung kümmert. Unter windows z.B. einen Scheduled Task erzeugen der dann die Email versendet
    Weg 3: Die Daten für die Email in einer Datei zwischenspeichern und bei jedem Start des Tools überprüfen ob noch alte Daten da sind die versendet werden müssen.

    Alle drei Wege haben so ihre Nachteile.
    1. Das Script muss ewig laufen -> bei absturz keine Email.
    2. Der Rechner auf dem der Scheduled Task liegt muss laufen
    3. Nur bei einem erneuten Scriptstart werden Emails versandt

    Soweit ich weiß bieten die SMTP server keine direkte Möglichkeit für eine verzögerte zustellung

  • Hilfe beim $variable [2] Syntax

    • Schnitzel
    • 10. September 2014 um 23:18

    Warum Deklarierst du überhaupt alles als Global am Anfang deines Scripts?
    Bei sowas bekommt man ja Kopfweh -.-
    Versuch selbst mal zu debuggen.
    Wenn du so ne meldung bekommst wie: Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    dann prüf in der darüberliegenden Zeile ob die Variable die du verwendest ein array ist: isarray(), _arraydisplay,...
    Und wieviele Elemente dein array hat: ubound()
    Schau dir am besten dazu das Debug und das Array tutorial aus meiner Signatur an
    dass damit was nicht stimmt:

    [autoit]

    GUICtrlSetData($PBMarquee[3], $ReadLine)

    [/autoit]


    Sollte dir nach der zeile schon bewusst sein:

    [autoit]

    Global $PBMarquee[3]

    [/autoit]


    Steht sogar in der Bemerkung zu Ubound ...

    Der Thread hier ist fast schon etwas verarsche.
    Du hantierst immer wieder mit anderen Variablen rum und das ist nur ein rumgestochere ohne Ansatz von Eigeninitiative. Für das Script das du da zusammengebastelt hast fehlt dir einfach viel zu viel Hintergrundwissen...

  • Hilfe beim $variable [2] Syntax

    • Schnitzel
    • 10. September 2014 um 20:33
    Zitat von SSlayer93

    Willste beleidigen oder Helfen?, geheimerei? hat rein gar nichts damit zu tun der Rest der Script sind nur andere Funktionenen die Rein gar nichts mit dem problem zu tun haben
    und 150% unabhängig von dem ganzen hier, deswegen habe ich mir die arbeit gespart damit ich und die Jenigen die helfen mögen das problem nicht aus den augen verlieren.


    Ich muss Andy zustimmen. Das was in deinen ersten Post steht hat eigentlich garnichts mit dem Problem zu tun bzw. dadurch wird es nicht ersichtlich.
    Konkret wurde es erst ab den Error. Und wenn man schon nen error bekommt dann ist debugging das A und O
    "Steht eigentlich alles oben" ist auch wieder am Problem vorbei, weil das oben nicht zu gebrauchen ist.
    Du deklarierst irgendwo eine Variable und bevor sie zum Array wird verwendest du sie schon als Array.

    Das du das Problem mit einer "normalen" Variable nicht hattest liegt nicht daran dass das Problem dort nicht auch auftrat. Es hatte nur nicht die Folgen dass das Script beendet wird.
    Schlampig geschrieben war es mit der "normalen" Variable genauso...

    Edit1:
    Wirf mal nen Blick in meine Signatur. Da ist unter Tutorials für den Einstieg in Autoit ein nützlicher Link um Fehler selbst zu finden.
    Der Ersteller des Threads weiß wovon er spricht und sollte ruhig respektiert werden

  • Combobox auslesen?

    • Schnitzel
    • 10. September 2014 um 19:16

    Wir haben hier zwei Probleme:
    Erstens überschreibst du in Zeile 31 deine $Combo1 Variable. Damit hast du die ID der Combobox nirgends mehr gespeichert und du kannst nicht (mehr so leicht) auf die Combobox zugreifen.
    Ersetze deine Zeile 31 durch das:

    [autoit]

    GUICtrlSetData(-1, "Praktikant|Praktikant2|Praktikant3|Praktikant4")

    [/autoit]


    Außerdem solltest du den Wert erst dann auslesen wenn er verändert wurde, oder wenn du auf den Button zum Email senden klickst.
    Wenn du den GuiGetMsgMode verwendest sieht das etwa so aus:

    [autoit]

    While 1
    Switch GUIGetMsg()
    case $Button1; wenn der Ausführen Button geklickt wurde dann:
    $wert = GUICtrlRead($Combo1, 1)
    MsgBox(0,"Sende die Email mit der info aus der Combobox", "Gewählter Account: " & $wert)
    EndSwitch
    WEnd

    [/autoit]

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™