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

Beiträge von alpines

  • HILFE - Skript schreiben um Textumrüche etc. umzuwandeln

    • alpines
    • 18. August 2017 um 14:59

    So in etwa:

    AutoIt
    $s = FileRead("test.txt")
    
    
    $s_new = ""
    
    
    $a = StringSplit($s, @CRLF, 3)
    
    
    For $i = 0 To UBound($a) - 2 Step 2
    	$s_new &= StringReplace(StringTrimLeft($a[$i], StringLen("#EXTINF:-1,NL: ")), " ", ".") & " " & $a[$i + 1] & @CRLF
    Next
    
    
    $s_new = StringTrimRight($s_new, 4)
    
    
    FileWrite("test2.txt", $s_new)
    Alles anzeigen
  • HILFE - Skript schreiben um Textumrüche etc. umzuwandeln

    • alpines
    • 18. August 2017 um 14:25

    Schlampig aber was solls, du kannst das $s mit einem FileRead ersetzen:

    AutoIt
    $s = "#EXTINF:-1,NL: NOOS" & @CRLF & _
    "dmtn.tv:8080/live/username/1234567890/32069.ts" & @CRLF & _
    "#EXTINF:-1,NL: Nuenen" & @CRLF & _
    "dmtn.tv:8080/live/username/1234567890/32068.ts" & @CRLF & _
    "#EXTINF:-1,NL: Omroep Brabant" & @CRLF & _
    "dmtn.tv:8080/live/username/1234567890/32067.ts" & @CRLF & _
    "#EXTINF:-1,NL: RTV Dordrecht" & @CRLF & _
    "dmtn.tv:8080/live/username/1234567890/32066.ts" & @CRLF & _
    "#EXTINF:-1,NL: RTV Drenthe" & @CRLF & _
    "dmtn.tv:8080/live/username/1234567890/32065.ts" & @CRLF & _
    "#EXTINF:-1,NL: RTV Kanaal 30" & @CRLF & _
    "dmtn.tv:8080/live/username/1234567890/32064.ts" & @CRLF & _
    "#EXTINF:-1,NL: RTV OOST" & @CRLF & _
    "dmtn.tv:8080/live/username/1234567890/32063.ts"
    
    
    ;Durch FileRead ersetzen
    $s = $s
    
    
    $s_new = ""
    
    
    $a = StringSplit($s, @CRLF, 3)
    
    
    For $i = 0 To UBound($a) - 2 Step 2
    	$s_new &= StringTrimLeft($a[$i], StringLen("#EXTINF:-1,NL: ")) & " " & $a[$i + 1] & @CRLF
    Next
    
    
    $s_new = StringTrimRight($s_new, 4)
    
    
    FileWrite("new.txt", $s_new)
    Alles anzeigen
  • ISN AutoIt Studio

    • alpines
    • 18. August 2017 um 12:13
    Zitat von Yjuq

    Ich hatte vor 2~3 Jahren mal überlegt ob ich sie downloade, allerdings hatte ich die Befürchtung dass sich dein Projekt nicht so lange halten wird und ggf. zukünftige Updates wie BugFixex schlichtweg aus bleiben. Mir fallen bestimmt noch ne Menge Sachen auf, besonders wenn ich mir die Plugins mal genauer ansehe.

    Damals hatte sie auch noch Probleme. Er hat teilweise meinen Projektfortschritt einfach weggeschmissen :D
    Das ist bestimmt mittlerweile gefixt worden.

  • Hilfe zu IniReadSection

    • alpines
    • 17. August 2017 um 21:10
    Zitat von NO1 :-)

    MsgBox($MB_SYSTEMMODAL, "Test", $READ_Auftragsname)[1][1]

    Das hier wird dir sicherlich nichts vernünftiges zurückgeben, weil du die Arrayindizes auf die MsgBox beziehst.

    Zitat von Mikki

    Leider verstehe ich nicht ganz wie das mit dem Array hier funktioniert. Wenn ich das jetzt mal so eintrage bekomme ich leider eine Fehlermeldung.

    Vermutlich hast du die falsche IniDatei oder eine falsche Sektion ausgewählt.
    Denn diese Abfrage: If $sFileOpenDialog_Auftrag = True Then macht absolut keinen Sinn. In $sFileOpenDialog_Auftrag steht ein String.
    Wenn du prüfen willst ob ein gültiger Pfad ausgewählt wurde, dann prüfe lieber ob der Pfad ungleich "" ist. "" wäre dann der Abbruch des Dialogs.

  • USBDMX-Interface von DE mit Autoit ansteuern

    • alpines
    • 17. August 2017 um 13:39
    Zitat von Yjuq

    Aber hast ja recht, normalerweise sollte es so nicht sein. Aber ich bin nun mal ein wenig faul wenn ich ein wenig herumspiele mit AutoIt Code. Aber sollte es ein @error Code schmeißen dann gibt's kein Array und das Programm stürzt ab. Das reicht doch als Hinweis aus

    Nenenene, so machen wir das hier nicht! Stell dir mal vor jeder würde so denken und der Boardcomputer in einem Flugzeug oder in einem Tower stürzt ab!
    Error-Handling ist mies, ich weiß aber es gehört nun mal dazu. Zumindest so weit, dass das Programm weiterlaufen kann und man weiß was passiert ist.

  • USBDMX-Interface von DE mit Autoit ansteuern

    • alpines
    • 17. August 2017 um 13:22
    Zitat von Yjuq

    Return DllCall($hDLL, "dword", "OpenInterface", _
    "ptr", DllStructGetPtr($DMXOutArray), _
    "ptr", DllStructGetPtr($DMXInArray), _
    "byte", $Mode)[0]

    Uiuiuiui Kollege, das wollen wir uns mal abgewöhnen!

    Auf keinen Fall den Return vom DllCall als Array direkt ansprechen, das kann ganz schnell nach hinten losgehen.
    Rückgabewert oder @error erst prüfen und dann zugreifen!

  • USBDMX-Interface von DE mit Autoit ansteuern

    • alpines
    • 17. August 2017 um 12:09
    Zitat von Norbertttt

    Vielleicht schaut mal jemand darüber und bringt es zum Laufen.

    Das wird so schon nicht hinhauen, weil du beim Pointer immer den String "$DMXOut" und nicht die Variable übergibst.

  • USBDMX-Interface von DE mit Autoit ansteuern

    • alpines
    • 16. August 2017 um 16:46
    Zitat von Yjuq

    Du musst nur sichergehen dass du genug Speicher im Arbeitsspeicher definierst und diese mit sinnvollen Werten für die Funktionen an der richtigen Stelle befüllst. Wie die Struktur letztendlich aussieht (ob es nur ein byte Array ist) ist komplett irrelevant.

    Toll, das ist wie wenn ich sage: Wenn ich alle Einzelteile von einem Auto richtig platziere habe ich ein funktionierendes Auto.
    Aber meiner Meinung nach ist es sinnvoller die Teile sinnvoll zusammenzubauen indem man sie richtig beschriftet und dann übergibt.

    Ich schreibe ja auch nicht den Bytecode für meine Programme mittels eines Hex-Editors in eine neue Datei sondern programmiere und lass ihn compilen.
    Dafür sind diese TypeDefs und Strukturen ja auch da, damit es der Programmierer leichter hat.

  • USBDMX-Interface von DE mit Autoit ansteuern

    • alpines
    • 16. August 2017 um 16:01
    Zitat von NO1 :-)

    Yjug, was ist denn TSERIAL für ein Typ (Objektinstanz?). Kann man den Typ überhaupt mit AutoIt aufrufen?

    Du musst schauen um was es sich genau handelt. Ist es ein TypeDef, so kannst du einfach den originalen Typen nehmen.
    Bei Strukturen musst du die Struktur in AutoIt mit den DLL-Funktionen nachbauen und dann übergeben.

  • Zeitstempel setzten beim Öffen & schliessen eines Programmes

    • alpines
    • 16. August 2017 um 11:50
    Zitat von ru642

    Wie kann ich das einmalig ausgeben ?

    Ich hab dir die Logik doch im vorgegangenen Post beschrieben. Du musst irgendwie abspeichern ob dein Prozess schon läuft und die Zeit nur ersetzen wenn der Prozess läuft und er laut deiner Variable noch nicht gestartet ist. Sollte der Prozess bereits laufen und du hast das in der Variable abgespeichert, dann schreibst du natürlich nicht nochmal die Zeit rein.
    Wenn der Prozess nicht läuft und deine Variable beinhaltet, dass der Prozess läuft, dann speicherst du wieder die Uhrzeit und setzt die Variable 0.

  • Zeitstempel setzten beim Öffen & schliessen eines Programmes

    • alpines
    • 16. August 2017 um 10:42

    Deine $activeProcess = 1 Abfrage ist außerhalb der While-Schleife und wird niemals aufgerufen werden.
    Du musst viel mehr prüfen ob dein Prozess läuft und ob du ihn bereits als laufend in $activeProcess gespeichert hast.
    Wenn nicht, dann setzt du $activeProcess = 1 und speicherst die Zeit und sollte der Prozess nicht existieren aber $activeProcess = 1 sein, so wurde er terminiert und du kannst die Zeit wieder speichern, solltest aber noch $activeProcess auf 0 setzen und dann beginnt das ganze Spiel von vorne.

  • Versenden e-Mail fehlerhaft

    • alpines
    • 16. August 2017 um 10:11

    Entweder den Standardemailclienten ändern: https://support.microsoft.com/en-us/help/555566
    Oder du verwendest die _InetSmtpMailCom (googlen) aber da musst du deine Benutzerdaten im Skript mitgeben und direkt die SMTP/IMAP Adressen ansprechen.
    Die Adressen findest du meistens in der FAQ deines Mailanbieters.

  • windows eventlog Startdauer

    • alpines
    • 14. August 2017 um 11:26

    Funktionieren denn andere Anwendungen mit Adminrechten über die Domain? Ansonsten musst du dich mal nach der Rechteverteilung sehen.

  • windows eventlog Startdauer

    • alpines
    • 14. August 2017 um 10:40

    Stimmt denn die Domain soweit? In den Beispielen aus der Dokumentation wird @ComputerName verwendet. Heißt eure Domain wirklich 'lokal'?

  • windows eventlog Startdauer

    • alpines
    • 14. August 2017 um 10:32

    Wie sieht dein Versuch denn mit RunAs aus? Mit Run und RequireAdmin spuckt er mir 22014, zwei Daten, 4914, 17100 aus, weiß nicht ob das richtig ist.

  • Mehrspaltiges Array in einer Zeile schreiben

    • alpines
    • 13. August 2017 um 00:14

    Haken setzen nicht vergessen!

  • StringSplit in ein 2D Array?

    • alpines
    • 12. August 2017 um 22:50

    Schön, dass es klappt. Beim nächsten Mal den grünen Haken für 'gelöst' setzen nicht vergessen! (1. Beitrag bearbeiten)

  • StringSplit in ein 2D Array?

    • alpines
    • 12. August 2017 um 18:24

    Es wäre gut, wenn du uns beim nächsten Mal verrätst welchen Fehler dir der AutoIt-Interpreter ausspuckt, ansonsten können wir nur raten.

    Zitat von borsTiHD

    For $s = 1 to $ArraySpalte[0]
    $Array2D[$i][$s] = $ArraySpalte[$s]
    Next

    Ich schätze mal, dass dort dein Fehler liegt. Du willst in dein eigenes 2D-Array schreiben aber, da in dem Returnwert von StringSplit allerdings der Index 0 die Anzahl der Funde beinhaltet musst du bei deinem Array immer in $s - 1 speichern.
    Ansonsten läufst du Gefahr, out of Bounds zu geraten.

    Am besten gewöhnst du dir ab, StringSplit so zu verwenden, da es einfach ein miserabler Codingstil ist, im 0. Index die Größe zu speichern wenn es Funktionen wie UBound gibt.

    Verwende lieber den Flag 2 oder 3 (schaue in die Dokumentation wo der Unterschied liegt) und in der For-Schleife nimmst du als Grenze nicht $Array[0] sondern UBound($Array).

    Du solltest auch vorher prüfen, ob du mehr Funde als Spalten in deinem Array zur Verfügung hast.
    Wenn ja, dann musst du das Array mit ReDim erweitern.

  • C# / VB .NET DLLs erstellen und in AutoIt verwenden

    • alpines
    • 12. August 2017 um 16:39

    Da ich leider nicht sehr viel Zeit habe mir das Problem anzuschauen (werde es mir die Tage näher angucken) kann ich dir auf die schnelle nur einen Workaround anbieten.

    Arbeite bei deinen Parametern mit den grundlegenden Typen wie Integer, String, Byte, Double, Float, usw.
    Für den Parameter kannst du dir dann einfach eine Tabelle anlegen und der form1 den Wert 1 zuweisen.

    Dann rufst du die Funktion mit der 1 auf und es wird aus der Objekttabelle, Array, Liste oder wie auch immer du das realisieren möchtest, das passende Objekt genommen.

    Es sollte aber möglich sein Pointer auf Datenstrukturen zu übergeben (DLL-Pointerfunktionen), damit solltest du eigentlich einen Pointer auf das Formobjekt übergeben können.

    Dann rufst du deine Methode mit dem Pointer zur Funktion auf und kannst sie innerhalb der Methode in ein Klassenobjekt übergeben indem du den Pointer dereferenzierst (sofern das möglich ist).

  • Automatischer Neustart von bestimmten Funktionen

    • alpines
    • 10. August 2017 um 09:45
    Zitat von xXIVXx

    habe jetzt die includes dazu gepackt

    Das ist jetzt auch nicht mehr nötig, ich habe schon zwei Mal beschrieben wo dein Fehler ist und wie man es fixen kann. Warum setzt du das nicht erstmal um?

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™