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

  • interaktion bei CUI möglich?

    • BugFix
    • 15. April 2011 um 12:26

    Farbig gehts so: (Zeile 42 im Bsp.) Eigene Konsole

  • interaktion bei CUI möglich?

    • BugFix
    • 15. April 2011 um 11:38

    Dafür solltest du nicht die Standardkonsole verwenden, sondern eine eigene Konsole erstellen (Bsp. dazu haben progandy und ich schon gepostet).
    Hat auch den Vorteil, dass du z.B. Textpassagen farblich gestalten kannst.

  • Datei über Internet zu anderem PC senden

    • BugFix
    • 15. April 2011 um 10:50

    Ich verweise wieder mal auf TeamViewer - absolut idiotensicher und von jedem Laien auf Anhieb bedienbar. ;)

  • interaktion bei CUI möglich?

    • BugFix
    • 15. April 2011 um 10:42

    Einfach eine Inputbox für User-Interaktion verwenden:

    Spoiler anzeigen
    [autoit]

    Switch InputBox('Anwendungswahl', 'Gib "A" oder "B" ein', 'A')
    Case 'A'
    _A()
    Case 'B'
    _B()
    Case Else
    Exit ConsoleWrite('Fehlerhafte Auswahl' & @CRLF)
    EndSwitch

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

    Func _A()
    ConsoleWrite('A gewählt' & @CRLF)
    EndFunc

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

    Func _B()
    ConsoleWrite('B gewählt' & @CRLF)
    EndFunc

    [/autoit]
  • Hardeware emulation

    • BugFix
    • 13. April 2011 um 08:53

    chip: Laß es bitte, eine Diskussion in einem Juraforum hat keinen anderen Stellenwert als die hier geführte. Auch dort werden nur Meinungen ausgetauscht. Niemand hat bisher auf ein rechtsgültiges Gesetz/Urteil verweisen können, wo eine eindeutige Sachlage erkennbar ist.
    In diesem Sinne: BTT

  • Dropbox Problem

    • BugFix
    • 12. April 2011 um 21:49

    Noch ein Verweis auf ein fertiges Produkt: Teamviewer
    Absolut kinderleicht zu händeln (hat sogar meine Mom mit ihren 72 Jahren geschafft) und bietet dir einen eigenen Dateiexplorer zum Transfer.

  • Hardeware emulation

    • BugFix
    • 12. April 2011 um 21:15
    Zitat von chip

    Musst da nicht selber lachen?


    Nein, muß ich nicht. Auch ich bin kein Jurist. Dinge, die (auch wenn 'geringfügigerer' Natur) klar liegen, werden dann auch ebenso klar behandelt.
    Wenn ich aber Zweifel habe gilt: Im Zweifel für...
    Ich habe keine Probleme damit, meinen Standpunkt zu revidieren. Doch hätte ich dazu gern fundierte Argumente. Und die von dir eingebrachten sind mir da noch nicht ausreichend.
    Bring mir irgendein Urteil, in dessen Text klar formuliert ist: Das Erstellen von Emulatoren ist gesetzwidrig. Dann bin ich der erste, der hier ein Schloß vorhängt. ;)

  • Hardeware emulation

    • BugFix
    • 12. April 2011 um 21:04

    chip
    Mir ist bisher keine Rechtslage bekannt, die Emulatoren untersagt. Deine geposteten Links unterstützen deine Aussage nicht.
    Probleme entstehen m.M. rechtlich dann, wenn zur Nachbildung (Emulation) der Hardwarefunktionen in irgendeiner Form z.B. die ROM-Inhalte einer Spielkonsole ausgelesen und verwertet werden.
    Insofern wäre im hier anstehenden Fall zu klären, wie die "Dokumentationen" entstanden sind. Sofern jedoch keine klaren Rechtsverstöße erkennbar sind, gilt auf jeden Fall die Unschuldsvermutung.
    Ergo: Thread bleibt erst mal offen.

  • [Geklärt danke Name22 :P]Musik Ich komme einfach nicht auf den Name das Songs [Helft mir Musikpros :P]

    • BugFix
    • 12. April 2011 um 19:10

    Und wenn du es selbst spielen möchtest: Hier die Noten.

  • Addieren auf Textbox

    • BugFix
    • 12. April 2011 um 19:05

    Du mußt die Inhalte deiner Inputs auch auslesen: GuiCtrlRead()

  • Edit to Array?

    • BugFix
    • 12. April 2011 um 12:45
    Zitat von ctec

    Dummerweise habe ich mit @LF dann immernoch ein Steuerzeichen am Ende *grübel*

    mit CHR(13) habe ich das Steuerzeichen davor . . .

    mit @CRLF habe ich jedes zweites Element im Array leer *grübel weiter*


    Ich nehme mal an, du hast das Split-Flag nicht gesetzt ("flag = 1, es wird der gesamte Trennzeichenstring als Trennmarkierung genutzt"). Denn @CRLF sind 2 Zeichen! ;)

  • StringRegExp Problem ...

    • BugFix
    • 10. April 2011 um 22:10

    1. Du mußt natürlich den Inhalt der Datei erstmal einlesen (z.B. wenn lokal mit FileRead)
    2. Dein Pattern paßt nicht. Nach "<td>Level:</td>" kommt ein Zeilenumbruch und die Folgezeile beginnt entweder mit etlichen Leerzeichen oder mit Tabs. Auch müssen Metazeichen maskiert werden. ;)
    Also probier mal noch ein wenig selbst.

  • prüfen ob ein wort in der variable ist

    • BugFix
    • 10. April 2011 um 21:58

    Schau dir StringInStr() an. ;)

  • Nullstellenberechnung

    • BugFix
    • 10. April 2011 um 19:59

    Die Funktion selber soll dir auch nicht helfen :D - aber dort habe ich auch das +/- Problem lösen müssen. ;)

  • Hex Strings schneller bearbeiten

    • BugFix
    • 10. April 2011 um 17:46

    TimBlo: Leider mal wieder ein absolutes Negativbeispiel der Fragekultur.
    Du erzählst, was leider nicht geht, ohne uns zu zeigen mit welchem Code du versuchst an das Problem heranzugehen.
    Ein typischer Fall von: Wasch mich - aber mach mich nicht naß. :wacko:

  • Nullstellenberechnung

    • BugFix
    • 10. April 2011 um 17:38

    Das hatte ich mal für einfache Binome erstellt:

    Spoiler anzeigen
    [autoit]

    ConsoleWrite(Binom('12.5a-3.5b'))
    ; Ausgabe: (12.5a - 3.5b)² = 156.25a² -87.5ab +12.25b²
    ;===============================================================================
    ; Function Name: Binom($sSquare)
    ; Description:: Anwendung 1./2. Binomische Formel auf übergebene Quadratgleichung
    ; Parameter(s): $sSquare - der quadratische Ausdruck, z.B. "12.5a-3.5b" für "(12.5a+3.5b)^2"
    ; Return Value(s): die gesamte Gleichung ausformuliert, z.B. "(12.5a - 3.5b)² = 156.25a² -87.5ab +12.25b²"
    ; Author: BugFix
    ;===============================================================================
    Func Binom($sSquare)
    Local $sOut, $ret, $signA, $signB, $numA, $numB, $chrA, $chrB, $sqA, $sqB, $2AB
    $sSquare = StringStripWS($sSquare, 8)
    If StringLen($sSquare) < 3 Then Return SetError(1,0,0)
    $ret = StringRegExp($sSquare, '([+-])?(\d+.\d+|\d+)?([a-zA-Z])', 3)
    $sOut = '(' & $ret[0] & $ret[1] & $ret[2] & ' ' & $ret[3] & ' ' & $ret[4] & $ret[5] & ')' & Chr(178) & ' = '
    $signA = '-'
    If $ret[0] <> '-' Then $signA = '+'
    $numA = 1
    If $ret[1] <> '' Then $numA = $ret[1]
    $chrA = $ret[2]
    $signB = '-'
    If $ret[3] <> '-' Then $signB = '+'
    $numB = 1
    If $ret[4] <> '' Then $numB = $ret[4]
    $chrB = $ret[5]
    $sqA = $numA^2
    $sqB = $numB^2
    If $sqA = 1 Then $sqA = ''
    If $sqB = 1 Then $sqB = ''
    $2AB = 2*($signA & $numA)*($signB & $numB)
    If $2AB > 0 Then $2AB = '+' & $2AB
    $sOut &= $sqA & $chrA & Chr(178) & ' ' & $2AB & $chrA & $chrB & ' +' & $sqB & $chrB & Chr(178)
    Return $sOut
    EndFunc ;==>Binom

    [/autoit]
  • Hilfe bei Suchfunktion bei Tabs und ListView

    • BugFix
    • 10. April 2011 um 15:46

    Die Listview-UDF verlangt das Handle, nicht die ID.

    [autoit]

    $IDListview = GuiCtrlCreateListview(...)
    $hListview = GuiCtrlGetHandle($IDListview)

    [/autoit]
  • #include Problem

    • BugFix
    • 10. April 2011 um 10:41

    Hallo Ilse,
    wenn ich dein Ansinnen richtig verstanden habe soll doch nix weiter passieren, als nach Fallentscheidung verschieden Skripte abzuarbeiten.
    Du bist nun (warum auch immer) der unverrückbaren Meinung du müsstest einzelne Skripte verwenden. Dieser Denkansatz ist schlicht und einfach falsch - wirf ihn über Bord, sonst gehst du Wasser saufen. ;)
    Verwende parametrisierte Funktionen. Übergib je nach Fallentscheidung halt entsprechende Parameterinhalte. Das hat auch den Vorteil, dass dein Skript übersichtlicher wird.
    Also nicht: Main.au3 und Datei1.au3, Datei2.au3 - sondern: Main(), Datei1(param1, param2,..), Datei2(param1, param2,..).
    Versuche mal, dein Skript dahingehend zu gestalten. Wenn du nicht richtig klar kommst melde dich - aber bitte mit möglichst genauer Beschreibung. 8o

  • Interaktion mit Notepad++

    • BugFix
    • 10. April 2011 um 03:06

    Da ich mit dem Fenster nicht weiter gekommen bin, habe ich nun einen anderen Weg gewählt: Die Scintilla-Fenster sind ja Childs des Npp-Fensters und lassen sich auf diese Weise ermitteln.
    Nun kann ich auf das Scintilla-Handle zugreifen.
    Da Notepad aber in einem eigenen Adressraum rumgeistert, muß ich die Speicherzugriffe separat steuern. Dazu habe ich mir Funktionen erstellt.
    Im folgenden Bsp. will ich den gesamten Text einer Zeile mit der Funktion "SCI_GETLINE($iLine)" ausgeben. Jedoch bekomme ich als Rückgabe ausschließlich ein Fragezeichenkette. :wacko:
    Eine Untersuchung der Scintilla-Fenster mit Winspector zeigte mir dann, dass dies wohl der Fenstertitel ist. Da fehlt mir jeoch jeder Bezug zu, wieso dort der Fenstertitel statt des Zeileninhalts erscheint.
    Hat da jemand eine Idee?

    Spoiler anzeigen
    [autoit]


    #Include-once
    #Include <SendMessage.au3>
    #Include <Memory.au3>
    #Include <WinAPI.au3>

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

    Global $hWndScintilla = _GetScintillaHwnd()
    If Not $hWndScintilla Then Exit MsgBox(0, 'Fehler', 'Keine Notepad++ Instanz gestartet.')
    Global Const $SCI_GETLINE = 2153
    Global Const $SCI_LINELENGTH = 2350

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

    Local $ret = SCI_GETLINE(1) ; Zeilennummern in Npp sind Nullbasiert
    ConsoleWrite('@@ DEBUG_Line: ' & @ScriptLineNumber & ', Var: $ret >> ' & $ret & ' ; @error: ' & @error & ', @extended: ' & @extended & @LF) ; Debug To Console

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

    Func _GetScintillaHwnd($iInstance=1)
    Local $hScintilla = 0, $PID_Npp = WinGetProcess('[CLASS:Notepad++]')
    Local $optOld = Opt('WinSearchChildren', 1)
    Local $aWin = WinList('[CLASS:Scintilla;INSTANCE:' & $iInstance & ']')
    Opt('WinSearchChildren', $optOld)
    For $i = 1 To $aWin[0][0]
    If WinGetProcess($aWin[$i][1]) = $PID_Npp Then
    $hScintilla = $aWin[$i][1]
    ExitLoop
    EndIf
    Next
    Return $hScintilla
    EndFunc ;==>_GetScintillaHwnd

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

    Func SCI_GETLINE($iLine) ; FAIL
    Local $iLen = SCI_LINELENGTH($iLine), $sText
    Local $aNppMem = _AllocateNppMem($iLen)
    _SendMessage($hWndScintilla, $SCI_GETLINE, $iLine, $aNppMem[1])
    $sText = _ReadFromNppMem($aNppMem[0], $aNppMem[1], $iLen)
    Return $sText
    EndFunc ;==>SCI_GETLINE

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

    Func SCI_LINELENGTH($iLine) ; OK
    Return _SendMessage($hWndScintilla, $SCI_LINELENGTH, $iLine)
    EndFunc ;==>SCI_LINELENGTH

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

    Func _AllocateNppMem($iSize) ; MemPointer -- nach Nutzung freisetzen!!
    Local Const $PROCESS_VM_OPERATION = 0x0008, $PROCESS_VM_READ = 0x010, $PROCESS_VM_WRITE = 0x020
    Local $VMFLAGS = BitOR($PROCESS_VM_OPERATION, $PROCESS_VM_READ, $PROCESS_VM_WRITE)
    Local $PID = WinGetProcess('[CLASS:Notepad++]')
    _WinAPI_GetWindowThreadProcessId($hWndScintilla, $PID)
    Local $hProcess = _WinAPI_OpenProcess($VMFLAGS, False, $PID)
    Local $pMem = _MemVirtualAllocEx($hProcess, 0, $iSize, BitOR($MEM_RESERVE, $MEM_COMMIT), $PAGE_READWRITE)
    Local $aNppMem[2] = [$hProcess,$pMem]
    Return $aNppMem
    EndFunc ;==>_AllocateNppMem

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

    Func _ReadFromNppMem($hProcess, $pMem, $iSize) ; $iSize = Anz. zu lesender Zeichen
    Local $sBuffer = DllStructCreate('wchar[' & $iSize +1 & ']'), $iRead
    _WinAPI_ReadProcessMemory($hProcess, $pMem, DllStructGetPtr($sBuffer), $iSize, $iRead) ; Return True, OK
    $sBuffer = StringLeft(DllStructGetData($sBuffer, 1), $iRead)
    _MemVirtualFreeEx($hProcess, $pMem, $iSize +1, $MEM_RELEASE)
    Return $sBuffer
    EndFunc ;==>_ReadFromNppMem

    [/autoit]
  • array an array hängen

    • BugFix
    • 8. April 2011 um 00:00
    Zitat von bleey

    Ich verstehe UBound() nicht


    Schon mal mein Array-Tut gelesen? (s. Sig.)
    UBound() gibt dir die Anzahl der Elemente in einem Array zurück.
    Das erste Element hat Index 0, also ist das letzte Element: Anzahl-1 ( UBound($array)-1 ). Mit diesem Wissen kannst du das Array durchlaufen.

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™