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

  • WebCam Aktivität prüfen und protokollieren.

    • BugFix
    • 4. August 2013 um 15:29
    Zitat von Commander21

    Das heißt es gibt keine Möglichkeit zu prüfen ob die Cam aktiv ist oder nicht?


    Zumindest ich hätte jetzt keinen verwertbaren Ansatz dazu.

  • WebCam Aktivität prüfen und protokollieren.

    • BugFix
    • 4. August 2013 um 14:41

    Meiner Erfahrung nach, hast du keine Chance das zuverlässig zu nutzen.
    Die einzelnen Anwendungen blocken auf irgendeine Art und Weise den Zugang zur Cam, selbst wenn sie nicht aktuell darauf zugreifen.
    Bsp., wie in meinem Thread zur WebCam-App beschrieben:
    https://autoit.de/index.php?page…7502#post287502

  • GDI auf Titelleiste

    • BugFix
    • 4. August 2013 um 10:23

    Ich werde nicht ganz schlau, was du eigentlich möchtest. Dein Bsp. macht für mich wenig Sinn, da du durch GDI-Malerei aus einem Sizebox-Window ein Popup-Window machst - dann nimm doch gleich den Style.
    Weiterhin solltest du dir vor Augen halten, dass GDI-Zeichnung in Fenstern immer einen Pferdefuß hat: Die Paint-Messages des Systems bewirken keine Neuzeichnung der GDI-Malerei, da musst du immer zusätzlich diese Messages abfragen und mit einem Repaint deiner zeichnungen reagieren.
    Insofern bevorzuge ich Child-Windows anstelle von GDI-Gepinsel. :P

    Was deine NCPAINT-Auswertung angeht, da reicht es imho nicht auf Paint zu reagieren, sondern du musst bereits bei PrePaint aktiv werden.

  • GUIRegisterMsg($WM_KEYDOWN, ...) funktioniert nicht. KEYUP geht.

    • BugFix
    • 4. August 2013 um 10:10
    Zitat von Friesel

    Man sollte also am Anfang der Funktion _KeyProc noch den Status des Programmfensters abfragen.


    Ja, aber bitte nicht nur Return, dann geht die Msg verloren. Wenn du den Hook auswertest, musst du ihn auf jeden Fall an das System weiterreichen, wenn die Msg nicht verfallen soll:

    [autoit]

    If Not WinActive($GUI) Then Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)

    [/autoit]
  • Array Deklaration als Parameter übergeben

    • BugFix
    • 2. August 2013 um 22:42
    Zitat von James

    BugFix Dafür gibt es doch extra @NumParams:


    Ich weiß - aber dann muss man Eval nutzen, was ich möglichst vermeide.

  • Array Deklaration als Parameter übergeben

    • BugFix
    • 1. August 2013 um 22:23
    Zitat von Trolleule1337

    Ich brauch eine Funktion, die n-Parameter aufnimmt, daraus ein Array bildet und es zurückgibt.
    Geht sowas?


    Mit undefiniert vielen Parametern geht das nicht. Wenn du aber weisst, dass z.B. nicht mehr als 10 Parameter jemals verwendet werden, kannst du sowas machen:

    [autoit]


    Function _bla($p1, $p2=Chr(0), $p3=Chr(0), $p4=Chr(0), $p5=Chr(0), $p6=Chr(0), $p7=Chr(0), $p8=Chr(0), $p9=Chr(0), $p10=Chr(0))
    Local $aParam[10] = [$p1, $p2, $p3, $p4, $p5, $p6, $p7, $p8, $p9, $p10]
    For $i = 1 To 9
    If $aParam[$i] = Chr(0) Then ExitLoop
    Next
    ReDim $aParam[$i]
    Return $aParam
    EndFunc

    [/autoit]
  • Ich brauche ein Autoradio - kann mir jemand helfen?

    • BugFix
    • 1. August 2013 um 13:09

    Mal meine Meinung zum Thema Autoradios:
    Ich bekack mich immer bald vor Lachen, wenn ich von Bekannten höre, dass sie sich nun ein HiFi-System ins Auto eingebaut haben. Meine erste Frage ist immer, ob sie denn nur noch beim Parken Radio hören wollen. Die Gesichter sind natürlich immer gleichermassen dumm. :D Meinen Hinweis, dass die Möglichkeit HiFi-Klang in einem Auto auch wirklich zu hören erst bei Autos der oberen Luxusklasse tatsächlich möglich ist, da diese über eine ausreichende Fahrgeräuschdämmung verfügen will man natürlich nicht wahrhaben.
    Ich empfehle zum Test immer, den Titel "Shine on you crazy diamond" von Pink Floyd. Wer beim Fahren in den ersten 30 s des Titels (bei normaler Lautstärke) auch nur einen einzigen Ton hört, hat ein leises Auto und kann sich auch solch HiFi-Kram zulegen. Alle anderen können sich das Geld sparen und sind mit jedem 50 EUR Radio bestens bedient. (Aus einem Kuhfladen wird eben auch dann keine Pizza, wenn man Salamischeiben drauf legt.)
    Was die Bedienung angeht: Sattelitenbedienung über Bedienelemente am Lenkrad ist zum Glück schon bei vielen Mittelklassewagen Standard und ermöglicht ein blindes Bedienen. Habe auch schon recht günstige Nachrüstsätze dafür gesehen.

  • Checkbox verknüpft abfragen

    • BugFix
    • 31. Juli 2013 um 18:30
    Zitat von James

    Dann stimmt aber in der Hilfe etwas nicht:


    Die Hilfe stimmt schon - es sind ja beides Status-Variablen. Aber die eine ist abfragbar über GuiCtrlRead und die andere über GuiCtrlGetState.

  • Checkbox verknüpft abfragen

    • BugFix
    • 31. Juli 2013 um 18:19

    Da hat Schnitzel völlig recht - habe ich auch total überlesen. Das sind zwei verschiedene Paar Schuh, die man nicht vermengen kann.

  • Checkbox verknüpft abfragen

    • BugFix
    • 31. Juli 2013 um 14:03

    James: So geht das nicht. Die Abfragewerte müssen verknüpft werden:

    [autoit]

    If BitAND(GUICtrlRead($bCheckbox08), BitOr($GUI_ENABLE, $GUI_CHECKED)) Then

    [/autoit]
  • bei CheckListBox Checkstatus auslesen oder setzen

    • BugFix
    • 29. Juli 2013 um 12:07

    Wie wär es, wenn du dir einfach mal in der Hilfe anschaust, wie die Funktion arbeitet? Du musst natürlich den Rückgabewert auffangen. :wacko:
    Wenn du das erste Child-Handle hast, suchst du mit demselben Befehl (aber andererem Flag) die Geschwister-Handle des Childs.

    [autoit]

    _WinAPI_GetWindow

    [/autoit]
  • bei CheckListBox Checkstatus auslesen oder setzen

    • BugFix
    • 29. Juli 2013 um 11:29
    Zitat von rynow

    und tatsächlich als $GW_CHILD erhalte ich eine "5"


    Da machst du was falsch: "5" ist der Wert der Konstante $GW_CHILD. ;)

  • bei CheckListBox Checkstatus auslesen oder setzen

    • BugFix
    • 29. Juli 2013 um 10:33
    Zitat von Mistil

    Dabei kommt ein Fenster, in dem Checkboxen als ein einziges Control zusammengefasst werden. Es gibt also nur ein Handle für die Liste aus Checkboxes und nicht für jede Checkbox einzeln.

    Im Allgemeinen, ist das Handle, das du bekommst, das des Parents. Die Checkboxen selbst sind Childs davon. Du kannst versuchen mit

    [autoit]

    _WinAPI_GetWindow($hWndParent, $GW_CHILD)

    [/autoit]

    die Handle der einzelnen Checkboxen abzufragen. Wenn das gelingt, kannst du sie auch bearbeiten.

  • RegEx für Dateinamen mit Jahresangaben

    • BugFix
    • 28. Juli 2013 um 10:40

    Bei der gewünschten Vielfalt erweist sich eine Lösung mit RegExp nicht als erste Wahl.
    Die folgende Variante ist wesentlich einfacher umzusetzen. Einzige Bedingung: Steht der Dateiname alleine, darf er nicht auf ")" oder "}" enden! Denn dieses sind die Marker für die Zusatzinfos Jahr und Info und werden im String von rechts abgefragt.

    Spoiler anzeigen
    [autoit]

    $s1 = 'Da~tei•ÄÖÜß[ bla ] 1 (2012) {Info}'
    $s2 = 'Da~tei•ÄÖÜß[ bla ] 1 {Info}'
    $s3 = 'Da~tei•ÄÖÜß[ bla ] 1 (2012)'
    $s4 = 'Da~tei•ÄÖÜß[ bla ] 1'

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

    $aRet = _SeperateFileName($s1)
    ConsoleWrite('NAME: ' & $aRet[0] & ', JAHR: ' & $aRet[1] & ', INFO: ' & $aRet[2] & @LF)
    $aRet = _SeperateFileName($s2)
    ConsoleWrite('NAME: ' & $aRet[0] & ', JAHR: ' & $aRet[1] & ', INFO: ' & $aRet[2] & @LF)
    $aRet = _SeperateFileName($s3)
    ConsoleWrite('NAME: ' & $aRet[0] & ', JAHR: ' & $aRet[1] & ', INFO: ' & $aRet[2] & @LF)
    $aRet = _SeperateFileName($s4)
    ConsoleWrite('NAME: ' & $aRet[0] & ', JAHR: ' & $aRet[1] & ', INFO: ' & $aRet[2] & @LF)

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

    Func _SeperateFileName($_sFile)
    Local $aOut[3] ; == [NAME, JAHR, INFO]
    Local $pos
    Switch StringRight($_sFile, 1)
    Case ')'
    $pos = StringInStr($_sFile, '(', 1, -1)
    $aOut[0] = StringTrimRight(StringLeft($_sFile, $pos -1), 1)
    $aOut[1] = StringMid($_sFile, $pos +1, 4)
    Case '}'
    $pos = StringInStr($_sFile, '{', 1, -1)
    $aOut[2] = StringMid($_sFile, $pos +1, StringLen($_sFile) -$pos -1)
    If StringMid($_sFile, $pos -2, 1) = ')' Then
    $pos = StringInStr($_sFile, '(', 1, -1)
    $aOut[0] = StringTrimRight(StringLeft($_sFile, $pos -1), 1)
    $aOut[1] = StringMid($_sFile, $pos +1, 4)
    Else
    $aOut[0] = StringTrimRight(StringLeft($_sFile, $pos -1), 1)
    EndIf
    Case Else
    $aOut[0] = $_sFile
    EndSwitch
    Return $aOut
    EndFunc

    [/autoit]
  • RegEx für Dateinamen mit Jahresangaben

    • BugFix
    • 27. Juli 2013 um 20:16
    Zitat von r0m

    Wie würde denn eine Lösung aussehen, wenn da nur deutsche Sonderzeichen zugelassen wären?


    Melde mich dazu nachher nochmal - jetzt muss ich erst mal den Hund begleiten ;)

  • RegEx für Dateinamen mit Jahresangaben

    • BugFix
    • 27. Juli 2013 um 20:00

    Das ist zwar nicht unmöglich - aber hier wäre es dann sinnvoller, die Dateinamen zu regeln.
    Mit Windows XP ist die Unsitte aufgekommen, nicht nur die Basisbuchstaben des engl. Alphabets zuzulassen, sonder auch Sonderzeichen und umlaute - Das isr echt KRANK!!
    Bei mir werden wder Umlaute noch sonstige "abnormen" Zeichen erlaubt. Dateinamen haben sauber zu bleiben und Leerzeichen nee, nee, die haben da auch nix verloren: Wozu gibt es Unterstriche.

  • RegEx für Dateinamen mit Jahresangaben

    • BugFix
    • 27. Juli 2013 um 19:42

    • Bevor wir jetzt weitermachen, gib bitte mal alle Zeichen an, die im Dateinamen vorkommen können (etwa auch Umlaute und ß ? ).
    • Ist das Jahr immer in runden und die Info immer in geschweiften Klammern?
    • werden alle Elemente immer durch genau ein Leerzeichen getrennt?

  • RegEx für Dateinamen mit Jahresangaben

    • BugFix
    • 27. Juli 2013 um 16:37

    Andere Variante:

    [autoit]

    $p = "(\w+)\s?((\(\d{4}\))?)\s?((\{\w+\})?)"

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

    $aSplit = StringSplit(StringRegExpReplace('Dateiname1 (2012) {Info}', $p, '$1 $2 $4'), ' ')
    ConsoleWrite('Name: ' & $aSplit[1] & @TAB & 'Jahr: ' & StringRegExpReplace($aSplit[2], '[\(\)]', '') & @TAB & 'Info: ' & StringRegExpReplace($aSplit[3], '[\{\}]', '') & @TAB & @LF)

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

    $aSplit = StringSplit(StringRegExpReplace('Dateiname2 {Info}', $p, '$1 $2 $4'), ' ')
    ConsoleWrite('Name: ' & $aSplit[1] & @TAB & 'Jahr: ' & StringRegExpReplace($aSplit[2], '[\(\)]', '') & @TAB & 'Info: ' & StringRegExpReplace($aSplit[3], '[\{\}]', '') & @TAB & @LF)

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

    $aSplit = StringSplit(StringRegExpReplace('Dateiname3 (2012)', $p, '$1 $2 $4'), ' ')
    ConsoleWrite('Name: ' & $aSplit[1] & @TAB & 'Jahr: ' & StringRegExpReplace($aSplit[2], '[\(\)]', '') & @TAB & 'Info: ' & StringRegExpReplace($aSplit[3], '[\{\}]', '') & @TAB & @LF)

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

    $aSplit = StringSplit(StringRegExpReplace('Dateiname4', $p, '$1 $2 $4'), ' ')
    ConsoleWrite('Name: ' & $aSplit[1] & @TAB & 'Jahr: ' & StringRegExpReplace($aSplit[2], '[\(\)]', '') & @TAB & 'Info: ' & StringRegExpReplace($aSplit[3], '[\{\}]', '') & @TAB & @LF)

    [/autoit]
  • GDI+ Textrendering (BB-Code)

    • BugFix
    • 26. Juli 2013 um 12:33
    Zitat von Xorianator

    ne andere Funktion von BugFix


    Diese nutzt zum Vermessen aber auch: _GDIPlus_GraphicsMeasureString ;)

  • Werbung in AutoIt-Programmen

    • BugFix
    • 26. Juli 2013 um 12:27

    @Acanis: Unabhängig von den rechtlichen Gegebenheiten (bin ich nicht aussagekräftig) kann ich nur meine persönliche Meinung zum Ausdruck bringen:
    Werbung ist Schei...!
    Ich nutze keine Programme/Tools, die mich mit Werbebanneren/Einblendungen etc. nerven. Wenn die Software so gut ist, dass sie einen Bonus verdient, zahle ich auch gern an den Ersteller.
    Einfach im "About" den kleinen Hinweis, bei Gefallen eine Unterstützung per Paypal (oder wie auch immer) leisten zu können.

    Ich vertrete eh den Standpunkt, dass Software Open-Source sein soll. Alles, was ich erstelle, biete ich auch offen an.

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™