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

Beiträge von BugFix

  • Problem mit Eval und Array's

    • BugFix
    • 23. Oktober 2009 um 14:13

    Es gibt nur die folgende Möglichkeit:

    [autoit]

    Local $array[2] = ['bla','blub']
    $tmp = Eval('array')

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

    For $i = 0 To UBound($tmp) -1
    ConsoleWrite($tmp[$i] & @CRLF)
    Next

    [/autoit]
  • StringRegExp Problem

    • BugFix
    • 23. Oktober 2009 um 14:04
    Zitat von nuts

    Gewonnen hat bei mir mit haudünnem Vorsprung die Lösung von Bugfix.


    :D Der hauchdünne Vorsprung entsteht dadurch, dass ich anweise, die 2.te Backreferenz nicht zu berücksichtigen (?:)

  • StringRegExp Problem

    • BugFix
    • 23. Oktober 2009 um 12:32

    Ändere mein Pattern auf:

    [autoit]

    $pattern = '(T\d+)(?:[^(^\r]*)(\([^)]*)'

    [/autoit]


    Dann sollte es passen.

    Edit: Hab noch eine Korrektur vorgenoommen, nun passt es aber.

  • StringRegExp Problem

    • BugFix
    • 23. Oktober 2009 um 11:53

    Hier eine Lösungsvariante:

    [autoit]

    Local $aTest[7] = [ _
    'N182 G74 Z-1 L1', _
    'N183 G74 x200 Y-1 L1', _
    'N184 G7', _
    'N185 G93 X0 Y0 Z0', _
    'N186 S1800 T3 M6 (HM - Schlichtfraeser D=20,0)', _
    'N187 G39 C3=1', _
    'N188 G74 Z-1 L1']

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

    $pattern = '(T\d+)(?:[^(]*)([^)]*)'

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

    For $i = 0 To UBound($aTest) -1
    $ret = StringRegExp($aTest[$i], $pattern, 3)
    If @error Then ContinueLoop
    ConsoleWrite('Werkzeug: ' & $ret[0] & ' ' & $ret[1] & ')' & @CRLF)
    Next

    [/autoit]
  • Warum ist Local Scriptvariable durch eine Func(ohne ByRef) änderbar?

    • BugFix
    • 22. Oktober 2009 um 23:20
    Zitat von nuts

    Wäre es nicht konsequenter die lokale Deklaration außerhalb von Funktionen nicht zuzulassen?
    Irgendwie kann man machen was man will, bei Dim ists ähnlich.


    Meiner Meinung nach wäre wirklich konsequent, wenn Dim gestrichen wird und Local auch Local bedeutet. Also immer nur im aktuellen Deklarationsraum wirksam. Das würde sämtliche Irritationen ausschließen.

  • Warum ist Local Scriptvariable durch eine Func(ohne ByRef) änderbar?

    • BugFix
    • 22. Oktober 2009 um 21:52

    Dieses Verhalten 'sollte' eigentlich nicht auftreten. :S

    Aber um dein Problem zu lösen, sollte es doch reichen, Variablen in einer Funktion auch immer dort als Local zu deklarieren, es sei denn du verwendest Globale Variablen. Dann treten keine ungewollten Wechselwirkungen auf.

  • Auto R.A.T. 0.12 Beta V4

    • BugFix
    • 22. Oktober 2009 um 21:31

    Kann sich mit dem Prüfen etwas hinziehen, man bekommt ja keinen freien Zugang zu diesem Rapidshare Gedöns.
    Mir völlig unklar, wie man freiwillig solch einen bescheidenen "Dienst" nutzen kann. Zum Hosten gibt es doch freie Anbieter, ohne aufdringliche Werbung und mit Zugang für jedermann. (Z.B. DataFileHost)

  • Auto R.A.T. 0.12 Beta V4

    • BugFix
    • 22. Oktober 2009 um 21:11

    Ich habe den Link erstmal rausgenommen. Werde mir das ganze nochmal in der Sandbox anschauen. Solange ist das Skript 'unter Verdacht'.
    Wenn ich ein Ergebnis habe, werde ich das hier bekanntgeben. (Sollte es tatsächlich Schadsoftware sein, ist klar, was folgt.)

  • Eigene DLL mit Autoit ansprechen - Pointer ?

    • BugFix
    • 22. Oktober 2009 um 20:51
    Zitat

    DLLIMPORT double moonpos( double* startdata, double hours_later, double* ret )
    {
    double Mpos0x = startdata[0];
    double Mpos0y = startdata[1];
    double Mpos0z = startdata[2];

    ret[0] = Mpos0x;
    ret[1] = Mpos0y;
    ret[2] = Mpos0z;
    return Mpos0x;
    }

    Alles anzeigen


    Du gibst ja tatsächlich nur die Startwerte zurück.

    Übrigens ist mir nicht klar, was du überhaupt berechnen willst. :S

  • Text von programminternem Fenster auslesen

    • BugFix
    • 22. Oktober 2009 um 20:33
    Zitat von TinkyWinky

    es war tatsächlich das große C, weshalb es nicht klappte. Mit kleinem c funktionierts. :D
    Also, so muss es korrekt lauten: Send("^c")

    :D
    Yep, das sieht die Hilfe ebenso:

    Zitat von Hilfe

    N.B. Some programs are very choosy about capital letters and CTRL keys, i.e. "^A" is different to "^a". The first says CTRL+SHIFT+A, the second is CTRL+a. If in doubt, use lowercase!

  • mehrfach #Include ´n wirkt nicht

    • BugFix
    • 20. Oktober 2009 um 23:23
    Zitat von Chrischn

    .. ich kann also nur Func´s includen ???


    Nein, du kannst natürlich (und sinnvollerweise sollst du dies auch) Konstanten dort deklarieren.
    Ich glaube ich verstehe, was du meinst: Im Include wird ein Array (Global) deklariert, welches du dann im aktuellen Skript bestückst.
    In einigen Fällen macht das auch Sinn, aber ohne dein Skript zu sehen, kann ich nicht sagen, wo der Fehler liegt. Global deklarieren im Include und Wertzuweisung im laufenden Skript ist kein Problem.

    Edit:

    Zitat

    dann ist´s aber komisch, dass es beim ersten Aufruf immer funktioniert...


    Ähm.. kann es sein, dass du die eingetragenen Werte bei einem neuen Aufruf des Skripts verwenden möchtest? DAS geht natürlich nicht! Das Array existiert nur so, wie es in deinem Include deklariert wird. Und bei jedem neuen Aufruf wird es mit diesem Status geladen.

  • mehrfach #Include ´n wirkt nicht

    • BugFix
    • 20. Oktober 2009 um 23:15
    Zitat von Chrischn

    Per #include werden aus einem 2ten Skript die Werte in selbiges Array reingeschrieben.


    Sorry, aber wie schribst du Werte per #Include? Ein Include dient dazu, Funktionen (Funktionssammlungen) dem aktuellen Skript zur Verfügung zu stellen.
    Übrigens: Alle Variablennamen müssen mit einem $ beginnen.

  • Text aus Zwischenablage zeichenweise lesen

    • BugFix
    • 20. Oktober 2009 um 23:01

    Ich habe deinen Text als Basis genommen. Wenn du das Skript ausführst, wird die selektierte Telefonnummer in die Console geschrieben.
    Wenn das nicht klappt, entspricht dein verwendeter Text nicht dem von dir gezeigten Muster.
    Übrigens kannst du Telefonnummern nicht anhand der Länge in Funk- oder Festnetznummern unterteilen. Da müsstest du schon die Vorwahl selektieren (Funk hat üblicherweise 015.., 016.., 017). Wobei da auch statt der führenden '0' stehen kann: '+49' oder '(0049)'. ;)

    Eines fällt mir noch ein: Es kann sein, dass in dem von dir gelesenen Text als Zeilenumbruch nur 'LineFeed' verwendet wird. Ersetze einfach mal das '\r' durch '\n' im RegExp-Pattern.

  • Text aus Zwischenablage zeichenweise lesen

    • BugFix
    • 20. Oktober 2009 um 22:40
    Spoiler anzeigen
    [autoit]

    $str = _
    'Beifahrerairbag, elektr. Schiebedach und Servolenkung, KontaktPrivat' & @CRLF & _
    '60486 Frankfurt am Main' & @CRLF & _
    'Deutschland' & @CRLF & _
    'Tel.: +49 (0)173 6957630' & @CRLF & _
    'Ausstattung Limousine' & @CRLF & _
    'Farbe: Schwarz' & @CRLF & _
    'Gebrauchtfahrzeug' & @CRLF & _
    'Benzin' & @CRLF

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

    $pattern = '(?:Tel.:\s*)(.*)(?:\r)'

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

    $ret = StringRegExp($str, $pattern, 1)
    If IsArray($ret) Then ConsoleWrite('Telefon: ' & $ret[0] & @CRLF)

    [/autoit]

    kurze Erklärung:
    $pattern = '(?:Tel.:\s*)(.*)(?:\r)'
    (?:Tel.:\s*)
    ?: = Inhalt dieser Klammern wird im Ergebnis nicht berücksichtigt
    Tel.: = Text nach dem gesucht wird
    \s* = Leerzeichen, keinmal od. beliebig oft

    (.*) = das gesuchte Ergebnis, jedes Zeichen beliebig oft

    (?:\r)
    ?: = Inhalt dieser Klammern wird im Ergebnis nicht berücksichtigt
    \r = (bis zum) CarriageReturn

  • Ad Abfragen Konto Vorhanden? Letzes LogonDatumUhrzeit?

    • BugFix
    • 20. Oktober 2009 um 20:47

    Hiermit kannst du prüfen ob ein Account besteht.
    Zu dem Logon Datum hab ich grad keine Idee, dazu ist mir die AD-Materie zu fremd.

    [autoit]

    $strUserName = "kenmyer" ; <== gesuchter User Account

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

    $objConnection = ObjCreate("ADODB.Connection")
    $objConnection.Open "Provider=ADsDSOObject;"

    $objCommand = ObjCreate("ADODB.Command")
    $objCommand.ActiveConnection = $objConnection

    $objCommand.CommandText = _
    ";(&(objectCategory=User)" & _
    "(samAccountName=" & $strUserName & "));samAccountName;subtree"

    $objRecordSet = $objCommand.Execute

    If $objRecordset.RecordCount = 0 Then
    ConsoleWrite( "sAMAccountName: " & $strUserName & " does not exist." & @CRLF)
    Else
    ConsoleWrite( $strUserName & " exists." & @CRLF)
    EndIf

    $objConnection.Close

    [/autoit]

    Edit
    Hab hier was gefunden für die Logonzeit.
    Kommandozeilenbefehl:

    Code
    dsquery * -Filter "(&(objectcategory=computer)(operatingsystem=*windows 2000*))" -attr lastlogon name

    Edit 2
    Aber lies dir uf jeden Fall mal das hier durch:
    http://blogs.technet.com/deds/archive/2…tive-logon.aspx

  • Title Tag aus (offline) html Dateien auslesen und in Textdatei sammeln

    • BugFix
    • 20. Oktober 2009 um 13:41

    Hi,
    alle Dateipfade in ein Array einlesen (_FileListToArray)
    in einer Schleife für alle html-files nacheinander:
    lies die html-Datei mit Fileread ein und lass den gesuchten Inhalt mit _StringBetween rausfiltern. (Funktion gibt Array zurück!)
    Eine Variable führen wo du dann
    "gefundener Titel"="Dateiname" & Zeilenumbruch
    anfügst.
    Wenn alle Dateien durch sind, die Variable in eine Ergebnisdatei schreiben (Filewrite)

  • GDI+ Text verändern

    • BugFix
    • 20. Oktober 2009 um 13:31
    Zitat von Magnus

    Kann man nur einen Text neu zeichnen?

    Stell dir das in etwa so vor:
    - Grafik-Handle ist eine Tafel
    - Pen-Handle ist die Kreide
    - Bitmap- oder Text-Handle ist das, was mit Kreide aufgemalt wird
    Du kannst mit der Kreide munter über die alten Inhalte malen. Aber du kannst nicht einen speziellen Kreidestrich entfernen, ohne dass davon der Rest betroffen wird.
    Wenn du zum Bsp. 3 Texte nacheinander 'malen' willst und Nr. 2 entfernen, mußt du halt die Tafel abwischen und Text 1 und 3 nochmal 'malen'.

  • c.a 80 Ordner mit verschiedenen Namen automatisch erstellen

    • BugFix
    • 20. Oktober 2009 um 13:19

    Naja, ist ja kein Aufwand ;)

    [autoit]

    Global $array[80]; Array muß dann natürlich Inhalte haben.
    For $i = 0 To UBound($array) -1
    DirCreate("C:\Users\Administrator\Desktop\Namen\" & $array[$i])
    Next

    [/autoit]
  • VBA

    • BugFix
    • 20. Oktober 2009 um 13:15
    Zitat von sc4ry

    bis mir leider aufgefallen ist, dass am ende die zeichencodierung nicht stimmte (die umlaute werden in Hieroglyphen angezigt).


    Dann schick mir mal so eine Datei (vor der Umwandlung), dann kann ich mal schauen, wo es hakt. Kannst ja evtl. datenschutzrelevante Inhalte aus-x-en.

  • VBA

    • BugFix
    • 20. Oktober 2009 um 11:11

    Bevor ich mich da weiter reinlese: Warum machst du das nicht komplett in AutoIt?
    Das schreit doch aufgrund seines Automatisierungsbedarfes geradezu nach AutoIt. :D

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™