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

  • Dateinamen und Dateiendung voneinander trennen?

    • BugFix
    • 26. Juli 2008 um 17:40

    Hab noch eine Variante, ähnlich wie _PathSplit(), auf Objektbasis:

    Spoiler anzeigen
    [autoit]

    ;===============================================================================
    ; Function Name: _GetPathDetail($FILEPATH)
    ; Description: get's path/file details for a given filepath
    ; Parameter(s): $FILEPATH given file
    ; Return Value(s): $array with: Absolute Path Name
    ; Drive Name
    ; Parent Folder Name
    ; File Name
    ; Base Name
    ; Extension Name
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _GetPathDetail($FILEPATH)
    If Not FileExists($FILEPATH) Then Return SetError(1,0,1)
    Local $objFSO = ObjCreate("Scripting.FileSystemObject")
    Local $objFile = $objFSO.GetFile($FILEPATH)
    Local $aOut[6] = [$objFSO.GetAbsolutePathName($objFile), _
    $objFSO.GetDriveName($objFile), _
    $objFSO.GetParentFolderName($objFile), _
    $objFSO.GetFileName($objFile), _
    $objFSO.GetBaseName($objFile), _
    $objFSO.GetExtensionName($objFile)]
    Return $aOut
    EndFunc ;==>_GetPathDetail

    [/autoit]
  • Basis-Client für IRC-Chat

    • BugFix
    • 26. Juli 2008 um 14:13

    Kann man, das passiert hier:

    Spoiler anzeigen
    [autoit]

    Case 'PRIVMSG' ; Nachricht empfangen
    $USER = StringTrimLeft(StringLeft($sTemp[1], StringInStr($sTemp[1], '!')-1), 1)
    $text = ''
    $txtUSER = ''
    For $k = 4 To $sTemp[0]
    $text &= $sTemp[$k] & ' '
    Next
    $text = StringTrimLeft($text, 1)
    If StringInStr($text, 'ACTION', 1) Then ; Aktion von USER
    $text = StringTrimLeft($text, 8)
    $text = StringLeft($text, StringLen($text)-2)
    ConsoleWrite('***' & $USER & ' ' & $text & @CRLF)
    ElseIf StringInStr($text, 'DCC CHAT', 1) Then ; Direkt-Chatanfrage
    $text = 'DCC-Chatanfrage von ' & $USER
    ConsoleWrite($text & @CRLF)
    Else
    ConsoleWrite('<' & $USER & '> ' & $text & @CRLF) ; USER spricht
    EndIf

    [/autoit]

    Lass es einfach in einem Chat laufen, dann siehst du es, die Ausgaben erfolgen im Bsp. in die Console.

    Selbstverständlich kannst du deinen Nick identifizieren:

    [autoit]

    _IRCSendMessage($sock, 'IDENTIFY ' & 'Passwort', 'NickName')

    [/autoit]


    Zugang zu einem PW-geschützten Channel genau wie per Hand, einfach "/join #channel pw", also:

    [autoit]

    _IRCJoinChannel ($irc, $chan & ' Passwort')

    [/autoit]
  • ------ Welchen Internet Browser nutzt ihr - Umfrage

    • BugFix
    • 25. Juli 2008 um 23:50

    Ich bin überzeugter K-Meleon Nutzer 8)
    Dafür habe ich den Fuchs in die Wüste geschickt. :D

  • Hat jemand das Mainboard Asus P5Q

    • BugFix
    • 23. Juli 2008 um 21:28

    Ich weiß ja nicht, was du für Banking-Software verwendest. Ich verschlüssele nicht: Ich habe Starmoney und das läuft erstaunlicherweise portabel. Einmal installieren um die Installationsstruktur zu erstellen, kpl. Installationspfad auf den Stick und mit einem Kartenleser kann ich dann HBCI-Banking an jedem PC betreiben.
    Vielleicht geht das ja auch mit deiner Software.

  • Überprüfen ob Funktion aktiv ist und währenddessen Schleife pausieren

    • BugFix
    • 20. Juli 2008 um 23:15

    Während deine Funktion ausgeübt wird, läuft in deiner Schleife nichts weiter. Das ist von Haus aus so, da brauchst du keine extra Anweisung für.

  • HowTo: Skript doppelt öffnen mit Scite in zwei Instanzen

    • BugFix
    • 20. Juli 2008 um 22:44

    Hi,
    ich hab mal noch 'ne andere Variante erstellt. Hierbei wird automatisch gesplittet und beim Schließen eines Fensters, das verbliebene wieder zurück auf Vollbild geschaltet.
    Dazu muß halt nur das Skript ständig im Hintergrund laufen, aber bei der minimalen Prozessorlast kein Problem.
    Ihr könnt ja noch nen Hotkey zum Beenden einsetzen.
    Hier das Skript:

    Spoiler anzeigen
    [autoit]

    Global $List
    While True
    Do
    Sleep(500)
    $List = WinList('[CLASS:SciTEWindow]')
    Until $List[0][0] = 2
    WinMove($List[1][1], '', 0, 0, @DesktopWidth/2, @DesktopHeight)
    WinMove($List[2][1], '', @DesktopWidth/2, 0, @DesktopWidth/2, @DesktopHeight)
    Do
    Sleep(500)
    $List = WinList('[CLASS:SciTEWindow]')
    Until $List[0][0] = 1
    WinMove($List[1][1], '', 0, 0, @DesktopWidth, @DesktopHeight)
    WEnd

    [/autoit]


    Wie vorab beschrieben den Eintrag in "SciTEUser.properties" für den Aufruf der zweiten Instanz per Shortcut und die Optionszeile:
    check.if.already.open=0

  • Hilfe Virus eingefangen

    • BugFix
    • 20. Juli 2008 um 16:11

    Hast du mal S&D drüberlaufen lassen?
    Ich vermute, du hast nicht nur 'nen Virus, sondern ein paar "nette" andere Gäste.

  • Hotkey für Mausklick ?

    • BugFix
    • 20. Juli 2008 um 12:55

    "Sperr" doch die Maus ein. :D

    [autoit]

    _MouseTrap()

    [/autoit]


    Damit ist sie festgenagelt an Position 0, 0 ;)

  • HowTo: Skript doppelt öffnen mit Scite in zwei Instanzen

    • BugFix
    • 20. Juli 2008 um 08:04

    Kleiner Nachtrag:
    Ich habe noch ein wenig in der SciTE-Beschreibung nachgelesen. Die Eigenschaftsfestlegung für SciTE ist mehrstufig.
    D.h., mit den SciTEGlobal.properties wird das Grundverhalten festgelegt. Und ich vermute stark, dass bei einem Update diese Datei überschrieben wird.
    Benutzereinstellungen sind alle in der SciTEUser.properties vorzunehmen. Dieses Datei hat eine höhere Rangstufe als die Globale und überschreibt deren Werte, sofern angegeben.
    Also einfach alle Änderungen enblock hierdrin vor dem gesperrten Bereich eintragen und keine Änderungen in der SciTEGlobal.properties.

    Spoiler anzeigen
    Code
    # Window sizes and visibility
    position.left=0
    position.top=0
    position.width=512   halbe Breite
    position.height=768  Höhe
    position.tile=1
    check.if.already.open=0
    #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
    # START: DO NOT CHANGE ANYTHING AFTER THIS LINE     #-#-#-#-#
    # Created by SciTEConfig
    #------------------------------------------------------------
    Alles anzeigen
  • Maus drag (gedrückt halten + verschieben)

    • BugFix
    • 19. Juli 2008 um 23:44

    Gemeint ist der Mousebutton!! ('left' oder 'right')
    Wenn du die Hilfe zum Befehl liest, wird dir das klar.

  • Zeit in Inidatei als key

    • BugFix
    • 19. Juli 2008 um 15:12

    Sektion wäre dann: @Hour & ':' & @Min
    Aber das macht doch keinen Sinn, da an einem anderen Tag dieselbe Uhrzeit wieder vorkommen kann, ausserdem bekommst du so unendlich viele Sektionen.

    Falls du Logs schreiben willst: _FileWriteLog()

  • Autoit bestimmten Inhalt aus webseite auslesen und in variable speichern?

    • BugFix
    • 18. Juli 2008 um 21:12

    Schau dir mal die Funktionen der IE.au3 an.
    Ansonsten kann man zu deinem Problem kaum was sagen, ohne zu wissen von welcher Seite die Daten gelesen werden sollen.

  • [_ExpertSendSleep] Damit ist es möglich Send+Sleep zu vereinen (in einer Zeile zu schreiben)

    • BugFix
    • 18. Juli 2008 um 17:00
    Zitat von Valvepro

    naja.. dann konnte ich aber nur 1x send + 1x sleep in einer eile schreiben, mehr nicht :P


    Auch das geht einfach:

    [autoit]

    _send('text1|text2|text3', '1000|2000|5000')

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

    Func _send($text = 'text1|text2|text3', $time = '1000|2000|5000')
    If StringInStr($text, '|') Then
    Local $aText = StringSplit($text,'|'), $aTime = StringSplit($time,'|')
    For $i = 1 To UBound($aText) -1
    Send($aText[$i])
    Sleep($aTime[$i])
    Next
    Else
    Send($text)
    Sleep($time)
    EndIf
    EndFunc ;==>_send

    [/autoit]
  • neuen PC kaufen?

    • BugFix
    • 17. Juli 2008 um 16:15

    Entscheiden mußt du, lies dir mal Referenzen durch, z.B. Chip

  • Regex - Problem Backreferenz

    • BugFix
    • 17. Juli 2008 um 15:51

    Ich habe auch probiert statt Zeichengruppe: ['\x22] ==> ('|\x22) zu verwenden, mit demselben (negativen) Erfolg.

  • neuen PC kaufen?

    • BugFix
    • 17. Juli 2008 um 15:47

    Ein großer Nachteil bei Fertig-PC: du weißt nicht wirklich, was die dort verbaut haben.
    Da kann super die Rede von 2..3 GB RAM sein, das nützt dir nix, wenn der verbaute Chipsatz vom Board keine adäquate Taktfrequenz bietet.
    Graka ist in den meistem Fällen totaler Müll, irgendein bekanntes Modell als Namen mit folgenden Modifizierungskennungen, die niemand kennt. Du liest dann GForce und denkst: Toll - in Wirklichkeit ist das eine total schaumgebremste Komponente.
    Gerade wenn du am PC zocken willst, mußt du drauf achten, dass die verbauten Komponenten sich ergänzen, also dein 800 MHz RAM nicht von einem 200 MHz-Bus ausgebremst wird. ;)

  • Regex - Problem Backreferenz

    • BugFix
    • 17. Juli 2008 um 15:35

    Hi,
    folgendes Problem:
    Ich möchte einen String auf Vorkommen eines Wortes (z.B. Apfel) untersuchen.
    Bedingung:
    Ist das Wort selbst in einem quotierten String (mit ' oder ") soll kein Match erfolgen.
    Vor dem Match, aber auch vor dem quotierten String, können andere Zeichen stehen.
    Ansatz:
    Match für das Wort(insensitiv): "(?i)apfel"
    Nun Backreferenz wegen Quotierung: "(?<!['\x22])(?i)apfel" (\x22 ist der Hex-Wert für ASCII des ")
    Klappt,
    gefunden wird Apfel in: xyz 123 Apfel
    nicht gefunden in: 'Apfel xyz  ODER xyz 'Apfel   ==>ABER
    gefunden in: ' Apfel xyz  
    Also Bedingung:
    keine Qoutierung UND (optional) kein anderes Zeichen nach der Quotierung.
    Jetzt kommt eine Stolperfalle, ich will also auf Backreferenzen unterschiedlicher Länge prüfen.
    Das geht aber nur, wenn es Toplevel-Referenzen sind.
    OK, wenn ich das als ODER-Option gestalte ist das gewährleistet.
    Neues Pattern: "(?<!(['\x22](.+?)|['\x22]))(?i)apfel"
    Das klappt im RegExprogramm (RegexBuddy) super, aber in AutoIt gibt das keinen Match.

    [autoit]

    Global $s[4] = ["xyz 123 Apfel","'Apfel xyz"," Apfel xyz","xyz ' Apfel"]
    For $i = 0 To UBound($s) -1
    ConsoleWrite($s[$i] & ' = ' & @TAB & StringRegExp($s[$i], "(?<!(['\x22](.+?)|['\x22]))(?i)apfel") & @CRLF)
    Next

    [/autoit]


    Irgendeine Idee?

  • GUI-Vergrößerungseffekt

    • BugFix
    • 16. Juli 2008 um 19:15

    Also auf 'diesen Bildern' bemerke ich keinen Effekt.
    Aber wenn du deine GUI aufziehen möchtest, verwende WinMove().

  • Dateinamen und Dateiendung voneinander trennen?

    • BugFix
    • 16. Juli 2008 um 18:31

    Ja, aber _PathSplit splittet nur Pfade. Mit meinem kannst du alles, wo Trenner mehrfach vorkommen, an einem Punkt splitten (dazu hatte ich es auch mal gemacht). :P

  • Dateinamen und Dateiendung voneinander trennen?

    • BugFix
    • 16. Juli 2008 um 17:23

    Es können aber auch Punkte im Dateinamen vorkommen ;)
    Also am letzten Punkt trennen:

    Spoiler anzeigen
    [autoit]

    $filename = 'C:\abc\hjk.lll\t.e.s.t.txt'
    $ar = _StringSplitOnce($filename, '\', -1)
    $path = $ar[0]
    $ar = _StringSplitOnce($ar[1], '.', -1)
    MsgBox(0, '', 'Pfad: ' & $path & @LF & 'Dateiname: ' & $ar[0] & @LF & 'Endung: ' & $ar[1])
    ;===============================================================================
    ;
    ; Function Name: _StringSplitOnce($STRING, $DELIM [, $OCCURENCE=1])
    ; Description: Splits a string on given occurence of delimiter
    ; Parameter(s): $STRING String to split
    ; $DELIM Delimiter
    ; $OCCURENCE Occurence of Delimiter ('-' starts from the right side, Default=1)
    ; Requirement(s):
    ; Return Value(s): Succes Array[0]=left side / Array[1]=right side of splittet string
    ; Failure Set error
    ; @error = 1 No string given
    ; @error = 2 No delimiter given
    ; @error = 3 Delimiter not in string
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;
    ;===============================================================================
    Func _StringSplitOnce($STRING, $DELIM, $OCCURENCE=1)
    If $STRING = '' Then Return SetError(1)
    If $DELIM = '' Then Return SetError(2)
    Local $Out[2]
    Local $len = StringLen($STRING)
    Local $pos = StringInStr($STRING, $DELIM, 1, $OCCURENCE)
    If @error Then Return SetError(3)
    $Out[0] = StringLeft($STRING, $pos-1)
    $Out[1] = StringRight($STRING, $len-$pos)
    Return $Out
    EndFunc ;==>_StringSplitOnce

    [/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™