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

  • Alternativen zum Array

    • BugFix
    • 5. Oktober 2012 um 22:50
    Zitat von _mk_

    Warum eigentlich nicht auch das RecordSet-Objekt (ADO) als Alternative zum Array nutzen?


    DAO bzw. jetzt das bessere ADO findet schon Verwendung, in der Rubrik Datenbanken hatte ich dazu bereits gepostet (kann aber sein, dass die Threads nicht mehr existieren, da gabs mal 'nen Crash).
    Als direkte Array-Alternative würde ich persönlich es aber nicht betrachten. Dazu ist es doch zu sehr auf Datenbanken zugeschnitten. ;)

  • Text parsen und Text-Position ermitteln

    • BugFix
    • 5. Oktober 2012 um 16:26
    Zitat von flex10

    Ihr könnt das Thema schließen.


    Das mußt du schon selbst tun.
    Im Startpost Präfix auf "gelöst" setzen.

    Btw.: Es ist immer problematisch Support für eine ganz spezielle Software zu erhalten. Denn das Problem lag ja hier weniger im AutoIt-Bereich.

  • iniread url auslesen?

    • BugFix
    • 4. Oktober 2012 um 19:56

    Lies bitte deine Frage nochmal und dann sage mir, ob du verstehst, was da steht. :huh:

    Ich verstehe nur: Bahnhof..

  • Struct via "Struct.Element" ansprechen - Beta 3.3.9.5

    • BugFix
    • 4. Oktober 2012 um 19:49
    Zitat von Taz77

    ich hoffe das ist besser


    Naaa...
    da bau ich mir den Operator doch einfach nach :D

    [autoit]

    $Years = 2
    ConsoleWrite(_IFOR('$Years > 1', 'Jahre', 'Jahr') & @CRLF)

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

    $Years = 1
    ConsoleWrite(_IFOR('$Years > 1', 'Jahre', 'Jahr') & @CRLF)

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

    Func _IFOR($Bedingung, $WahrWert, $FalschWert)
    If Execute($Bedingung) Then Return $WahrWert
    Return $FalschWert
    EndFunc

    [/autoit]

    Aber Sorry an eukalyptus, jetzt haben wir deinen Thread ge-highjackt. :whistling:
    Keine böse Absicht.

  • Struct via "Struct.Element" ansprechen - Beta 3.3.9.5

    • BugFix
    • 4. Oktober 2012 um 17:39

    Tja, da müssen wir mal abwarten und dann testen, welche Variante schneller ist.
    Wobei ich gefühlsmäßig keine gravierenden Differenzen erwarte.

  • Struct via "Struct.Element" ansprechen - Beta 3.3.9.5

    • BugFix
    • 4. Oktober 2012 um 17:01

    Taz77

    Dein Bsp. von 6 Zeilen Code war aber sehr schlecht gewählt. :D
    Denn effektiv codiert, ergibt das auch ohne ternären Operator nur 2 Zeilen. :P

    [autoit]

    Local $Var = 75, $Msg = "Value is negative."
    If $Var > 0 Then $Msg = "Value is positive."

    [/autoit]
  • Durchmesserzeichen per Tastendruck erstellen

    • BugFix
    • 4. Oktober 2012 um 16:11

    Also, ich hab jetzt spaßeshalber mal probiert in:
    - Notepad
    - Wordpad
    - Word
    - Excel
    - NP++
    - SciTE :D

    Es funktioniert überall: Send(Chr(216))

  • Durchmesserzeichen per Tastendruck erstellen

    • BugFix
    • 4. Oktober 2012 um 15:51
    Zitat von Natire

    Send("{ALT DOWN}0216{ALT UP}")


    Sag mal - liest du, was ich poste?
    Send(Chr(216))
    und nicht dein Tastengedöns... :S

  • Durchmesserzeichen per Tastendruck erstellen

    • BugFix
    • 4. Oktober 2012 um 13:14

    Du darfst dieses Hotkey NICHT verwenden! Es ist von Windows reserviert!
    Probier doch einfach mal "^{F8}", damit geht es 100%-ig.

  • Durchmesserzeichen per Tastendruck erstellen

    • BugFix
    • 4. Oktober 2012 um 12:31

    Hast du überhaupt probiert???

    Hier ein Bsp.-Skript.

    Alle von mir aufgezeigten Varianten funktionieren auch!

    [autoit]

    ; Ausgabe in Konsole
    ConsoleWrite(Chr(216) & @CRLF)

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

    ; Einfügen in eigenes Control
    $Gui = GUICreate('Test')
    $input = GUICtrlCreateInput('', 30,30,60,20)
    $btSetData = GUICtrlCreateButton('Einfügen', 100,30,60,20)
    GUISetState()
    While 1
    Switch GUIGetMsg()
    Case -3
    GUIDelete($Gui)
    ExitLoop
    Case $btSetData
    GUICtrlSetData($input, Chr(216))
    EndSwitch
    WEnd

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

    ; Senden an fremde Anwendung
    Send("#r")
    WinWaitActive("Ausführen")
    Send('Wordpad.exe{ENTER}')
    WinWaitActive('[CLASS:WordPadClass]')
    Send('Senden an fremde Anwendung: ')
    Send(Chr(216))

    [/autoit]
    Zitat

    Und warum funktioniert mein script nicht?


    Weil dein HotKey von den meisten Programmen vorbelegt ist.

  • Text parsen und Text-Position ermitteln

    • BugFix
    • 4. Oktober 2012 um 12:17

    Lassen sich die Radios evtl. per Tastatur anwählen?
    z.B. mit TAB in den inneren Bereich wechseln, dann mit ALT+N das Nein wählen? Oder per Pfeiltastatur auf das Radio gelangen und dann mit SPACE selektieren?
    Probiere mal rum. Lösungen mit Send() sind zwar nicht unbedingt das gelbe vom Ei, aber wenn nichts anderes funktioniert bleibt oft nur diese Krücke. :S

  • Text parsen und Text-Position ermitteln

    • BugFix
    • 4. Oktober 2012 um 11:19

    Versuche mit dem AutoIt-Window-Info Tool (in SciTE mit Strg+F6 öffnen) die ID / Class der Radio-Button auszulesen.
    Mit ControlCommand kannst du diese direkt ansteuern.

  • Durchmesserzeichen per Tastendruck erstellen

    • BugFix
    • 4. Oktober 2012 um 11:15

    Kommt drauf an, wie und wo du das Zeichen einfügen möchtest.

    [autoit]


    ; Ausgabe in Konsole
    ConsoleWrite(Chr(216) & @CRLF)

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

    ; Einfügen in eigenes Control
    GUICtrlSetData($ID_Ctrl, Chr(216))

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

    ; Senden an fremde Anwendung
    Send(Chr(216))

    [/autoit]
  • Update der Excel UDF die mit AutoIt ausgeliefert wird - 2014-03-22 - Fünfte Beta verfügbar

    • BugFix
    • 3. Oktober 2012 um 16:39
    Zitat von water

    Bei Excel 2010 geht die Spaltennumemr bis "XFD".


    Oh, sowas "Modernes" habe ich nicht. ;) Ich nutze nur Excel 2000, daher kenne ich den erweiterten Adressraum nicht.
    Da müßte dann noch eine Anpassung erfolgen.

  • Update der Excel UDF die mit AutoIt ausgeliefert wird - 2014-03-22 - Fünfte Beta verfügbar

    • BugFix
    • 3. Oktober 2012 um 14:02

    Die Umwandlung Spaltenadresse zu Nummer und umgekehrt hatte ich auch mal geschrieben, vllt. hast du Verwendung:

    [autoit]

    ; === Excel - Spaltenadresse zu Nummer
    Func __LetterToColNr($sLetter)
    ; by BugFix
    If Not StringRegExp($sLetter, '[a-zA-Z]{1,2}') Then Return SetError(1,0,-1)
    If StringLen($sLetter) = 1 Then Return Asc(StringUpper($sLetter)) -64
    Return (Asc(StringUpper(StringLeft($sLetter, 1)))-64)*26 + (Asc(StringUpper(StringRight($sLetter, 1)))-64)
    EndFunc

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

    ; === Excel - Spaltennummer zu Adresse
    Func __ColNrToLetter($iColNr)
    ; by BugFix
    If $iColNr <= 26 Then Return Chr($iColNr+64)
    $iColNr -= 26
    Local $1 = 65, $2 = 90, $tmp, $diff = 1
    $tmp = Mod($iColNr,26)
    If $tmp Then
    $2 = 64 +$tmp
    $diff = 0
    EndIf
    $1 += Int($iColNr/26) - $diff
    Return Chr($1) & Chr($2)
    EndFunc

    [/autoit]

    ..und _ExcelBookNew() hatte ich auch mal modifiziert um beim Erstellen die Anzahl der Tabellenblätter gleich festzulegen:

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: __ExcelBookNew
    ; Description ...: Creates new workbook and returns its object identifier.
    ; Syntax.........: $oExcel = _ExcelBookNew($fVisible = 1, $iSheetsStartup = 1)
    ; Parameters ....: $fVisible - Flag, whether to show or hide the workbook (0=not visible, 1=visible)
    ; $iSheetsStartup - Count of sheets at startup
    ; Return values .: Success - Returns new object identifier
    ; Failure - Returns 0 and Sets @Error:
    ; |1 - Unable to create the Excel COM object
    ; |2 - $fVisible parameter is not a number
    ; Author ........: SEO <locodarwin at yahoo dot com>
    ; Modified.......: litlmike, BugFix
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ; Example .......; Yes
    ; ===============================================================================================================================
    Func __ExcelBookNew($fVisible = 1, $iSheetsStartup = 1)
    ; Original in Excel.au3
    ; modified by BugFix
    Local $oExcel = ObjCreate("Excel.Application")
    If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
    If Not IsNumber($fVisible) Then Return SetError(2, 0, 0)
    If $fVisible > 1 Then $fVisible = 1
    If $fVisible < 0 Then $fVisible = 0
    If $iSheetsStartup < 1 Then $iSheetsStartup = 1
    With $oExcel
    .SheetsInNewWorkbook = $iSheetsStartup
    .Visible = $fVisible
    .WorkBooks.Add
    .ActiveWorkbook.Sheets(1).Select ()
    EndWith
    Return $oExcel
    EndFunc ;==>__ExcelBookNew

    [/autoit]
  • Array Index hoch- bzw. runterzählen

    • BugFix
    • 3. Oktober 2012 um 09:24

    Du solltest bei Arbeiten im Array, gerade wenn du auf Folge- oder VorherIndex zugreifst, immer prüfen ob dieser Index überhaupt existiert. Ansonsten schmiert bei falschem Wert dort dein Skript mit Array-Fehler ab.

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    Global $array[10] = [10,20,30,40,50,60,70,80,90,100]

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

    $GUI = GUICreate('Test', 400, 100)
    GUICtrlCreateLabel('Index Start', 10, 23, 70, 17)
    $inStart = GUICtrlCreateInput('', 85, 20, 30, 20, $ES_NUMBER)
    $btAdd = GUICtrlCreateButton('+', 135, 20, 20, 20)
    $btSub = GUICtrlCreateButton('-', 170, 20, 20, 20)
    GUICtrlCreateLabel('Wert an neuem Index', 215, 23, 110, 17)
    $inCalc = GUICtrlCreateInput('', 340, 20, 30, 20, $ES_READONLY)
    GUICtrlSetBkColor(-1, 0xFFFFFF)

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

    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $btAdd
    _SetIndexValue('+')
    Case $btSub
    _SetIndexValue('-')
    EndSwitch
    WEnd

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

    Func _SetIndexValue($sOp)
    Local $indexStart = GUICtrlRead($inStart), $index
    If $indexStart < 0 Or $indexStart >= UBound($array) Then $index = -1
    Switch $sOp
    Case '+'
    If $indexStart +1 < UBound($array) Then
    $index = $indexStart +1
    Else
    $index = -2
    EndIf
    Case '-'
    If $indexStart -1 >= 0 Then
    $index = $indexStart -1
    Else
    $index = -2
    EndIf
    EndSwitch
    If $index = -1 Then
    GUICtrlSetData($inStart, '!')
    ElseIf $index = -2 Then
    GUICtrlSetData($inCalc, '!')
    Else
    GUICtrlSetData($inCalc, $array[$index])
    EndIf
    EndFunc

    [/autoit]
  • Sinnvoll GuiCtrlCreateTab zu nutzen?

    • BugFix
    • 1. Oktober 2012 um 20:57

    - Posts des TE wiederhergestellt
    - CLOSED

  • Wert auslesen und zur Variable machen

    • BugFix
    • 1. Oktober 2012 um 19:43

    Verstehe nach wie vor nicht, wo dein Problem liegt.
    Was ist denn daran universal, wenn du in einer INI den Variablennamen festlegst? :rofl:

  • Wert auslesen und zur Variable machen

    • BugFix
    • 1. Oktober 2012 um 16:16

    Ich verstehe nicht, warum ihr hier Assign einsetzen wollt.
    Der Befehl ist so abartig, dass man ihn nur dann, wenn man nicht mehr weiter weiß, nutzen sollte. :D

    Du weißt ja in deinem Skript, wie die Variable, die du aus der INI lädst heißt. Dein Skript verwendet ja bereits intern den Namen.
    Warum also nicht so:

    Deine INI:

    Code
    [Sektion]
    Variable=C:\


    Einlesen:

    [autoit]

    Global $Variable = IniRead('INI-Datei', 'Sektion', 'Variable', 'default')

    [/autoit]
  • Bannhelfer für CMS gestützte Webseiten (Yoomla / Webspell)

    • BugFix
    • 1. Oktober 2012 um 12:24

    Ich habe gelöschte Beiträge wiederhergestellt und das Them geschlossen um nochmaliges Löschen zu unterbinden.

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™