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

Beiträge von name22

  • Fragen zu transparenten Fenstern

    • name22
    • 29. Dezember 2010 um 16:56
    Zitat


    Mir würde es ja schon reichen, wenn mir jemand sagt, wie ich den Text so hinbekomme, dass er nicht mehr verpixelt.


    Das geht aus dem von mir genannten Grund nicht mit deiner Methode, da sie nur exakt eine Farbe ohne Alpha Kanal (z.B.0xABDCEF) transparent schaltet...

  • 2 Fragen

    • name22
    • 28. Dezember 2010 um 23:48

    Das ist ähnlich wie bei den Klammern, und steht auch irgendwo in der Hilfe... Innerhalb von 2 Anführungszeichen müssen sie doppelt verwendet werden um sie auch in den String einzubauen. Also so z.B.:

    [autoit]

    MsgBox(64, "Test", "Test""Test""Test")

    [/autoit]
  • Fragen zu transparenten Fenstern

    • name22
    • 28. Dezember 2010 um 19:32

    Nein du musst davon augehen, dass es keiner weiß oder derjenige der es weiß diesen Thread noch nicht bemerkt hat ;).
    Das Problem ist, dass durch Anti-Aliasing die Farben der Pixel die deiner Meinung nach transparent sein sollten einen geringfügig anderen Farbton haben als 0xABCDEF.
    Es gibt bestimmt Möglichkeiten mit _WinAPI_UpdateLayeredWindow o. so, aber ich weiß nicht wie das mit den Controls einer GUI Funktioniert, da ich die Funktion bisher nur mit Bitmaps verwendet habe... :S

  • Komplexeres? schnelles durchsuchen größerer Arrays

    • name22
    • 28. Dezember 2010 um 19:26

    Es würde vielleicht schneller gehen 2 Strings zu vergleichen, aber das wird durch die zum Umwandeln der Arrays in Strings benötigte Zeit zunichte gemacht ;).
    Es gibt aber bestimmt eine Möglichkeit das zu beschleunigen, ich kenne sie leider nur nicht. :(

  • StringBetween

    • name22
    • 28. Dezember 2010 um 18:47

    Ich kenne kein anderes Forum, in dem nach 2 Minuten 4 Antworten mit einer potenziell richtigen Problemlösung gepostet werden ^^ .

  • StringBetween

    • name22
    • 28. Dezember 2010 um 18:41

    Hast du dir schon das Beispiel in der Hilfe angeschaut? Und vielleicht könntest du auch dein Script posten, dann können wir dir ja sagen wo der Fehler liegt ;).
    Edit: Zu langsam :whistling: .

  • Anfänger benötigt für euch sicher einfache Hilfe bei Skript mit mehreren Werten

    • name22
    • 28. Dezember 2010 um 18:39

    *facepalm* :pinch: . Ich wusste ich hab irgendwas falsch gemacht...
    Und ein _ExcelBookClose nach der Schleife hab ich auch vergessen :whistling: .

  • Anfänger benötigt für euch sicher einfache Hilfe bei Skript mit mehreren Werten

    • name22
    • 28. Dezember 2010 um 17:58
    Zitat

    Gibt es sowas wie einen Debug-Modus bei Autoit?


    Ja das gibt es. Z.B.

    [autoit]

    Opt("TrayIconDebug", 1)

    [/autoit]


    Aber du könntest uns auch einfach mal ein paar weitere Informationen geben, wie die Daten des Fensters aus der AutoItWindowInfo. Und vielleicht kannst du ja auch mal deine Excel Datei hochladen damit wir das ganze auch selbst testen können.
    Ich hab in meinem Beispiel vergessen zu $iRow immer 1 dazuzuzählen... :whistling:

    Spoiler anzeigen
    [autoit]

    #include <Excel.au3>

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

    $sPath = @ScriptDir & "\Test.xls"
    $iRow = 1

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

    While 1
    $oExcel = _ExcelBookOpen($sPath)
    $sValue = _ExcelReadCell($oExcel, $iRow)
    If @error Then ExitLoop

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

    WinWaitActive("[CLASS:KCMLMasterForm_32]")
    Send($sValue)
    Send("{ENTER}")
    Send("!ä")
    Sleep(500)
    Send("!m")
    Send("{TAB}")
    Send("*")
    Send("{TAB}")
    Send("!s")
    Send("{TAB}")
    Send("!s")
    Sleep(100)
    $iRow += 1
    WEnd
    MsgBox(64, "Info", "Abgeschlossen")

    [/autoit]
  • $b_trace von Funktion _INetSmtpMail anwenden

    • name22
    • 28. Dezember 2010 um 17:51
    Zitat


    Ein einfaches Beispiel hätte die bisherige Diskussion unnötig gemacht.
    Konstruktivität ..... naja


    Wieso hast du dann nicht so etwas wie "Ich hab das mit der Bool Variable leider nicht verstanden, könnt ihr mir mal ein einfaches Beispiel dazu schreiben?" gesagt? Anstatt hier irgendwelchen nonsense von sich zu geben wie

    Zitat

    als wenn nen true ein Fenster öffen würde


    oder

    Zitat

    Schade das selbst die nicht helfen können die immer so gerne auf die Hilfe verweisen.


    Und was bitte soll uns dieser "Satz" sagen?

    Zitat

    Aber du kannst es wohl selber nicht ^ ^
    Denn solche Tips kann das nur heissen


    Wenn du eine gute Antwort willst, dann stell die Frage richtig. ;) Da das ganze jetzt sowieso geklärt ist, es sei denn du hast noch eine Frage, kannst du ja das Präfix auf gelöst setzen indem du den ersten Beitrag bearbeitest und somit auch diese nutzlose Diskussion beenden.

  • UDF: GDI+ Alternativer ToolTip

    • name22
    • 28. Dezember 2010 um 17:43

    Update:
    - Fehler in der Beschreibung beseitigt.
    - Beispiel aktualisiert.
    - Bug bei der Koordinatenberechnung für Stil 1 und 2 beseitigt.

  • If-Abfrage in While-Schleife

    • name22
    • 28. Dezember 2010 um 16:52

    Wenn du überprüfst ob der Button deaktiviert ist und somit überhaupt aktiviert werden muss, sollte der Button nicht mehr flackern ;).

    [autoit]

    if BitAND(GUICtrlGetState($butSave), $GUI_DISABLE) = $GUI_DISABLE And ControlGetText($formHome,"",$editURL) <> $reder then GUICtrlSetState ($butSave, $GUI_ENABLE)

    [/autoit]


    Wo in der Schleife du diese Zeile platzierst ist relativ egal.

  • Anfänger benötigt für euch sicher einfache Hilfe bei Skript mit mehreren Werten

    • name22
    • 28. Dezember 2010 um 16:46

    Versuch es mal damit ;).

    Spoiler anzeigen
    [autoit]

    #include <Excel.au3>

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

    $sPath = @ScriptDir & "\Test.xls"
    $iRow = 1

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

    While 1
    $oExcel = _ExcelBookOpen($sPath)
    $sValue = _ExcelReadCell($oExcel, $iRow)
    If @error Then ExitLoop

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

    WinWaitActive("[CLASS:KCMLMasterForm_32]")
    Send($sValue)
    Send("{ENTER}")
    Send("!ä")
    Sleep(500)
    Send("!m")
    Send("{TAB}")
    Send("*")
    Send("{TAB}")
    Send("!s")
    Send("{TAB}")
    Send("!s")
    Sleep(100)
    WEnd
    MsgBox(64, "Info", "Abgeschlossen")

    [/autoit]


    Bei $sPath musst du natürlich noch den passenden Pfad zur Exceldatei angeben.

  • $b_trace von Funktion _INetSmtpMail anwenden

    • name22
    • 28. Dezember 2010 um 05:22
    Zitat

    als wenn nen true ein Fenster öffen würde


    Ähm, wie bitte? Ich glaube du hast da was falsch verstanden :huh: . $b_trace ist wie Sprenger und autobert schon gesagt haben eine Variable, die dafür gedacht ist entweder True oder False als Wert anzunehmen. Und wenn ich ein True als letzten Parameter bei _INetSmtpMail angebe sagt es der Funktion logischerweise, dass die Übertragung in einem extra Fenster verfolgt werden soll (wie es auch in der Hilfe steht). Wenn du nicht weißt was das bewirken soll, dann probier es doch aus. Eigentlich war das ganze somit doch schon nach Sprengers 1tem Post erledigt, oder?

    Zitat

    Aber wie dem auch sei, nur seltsam das niemand ein praktisches Beispiel zu deren Aussagen hat.


    Was ist daran seltsam? Für einige UDF Funktionen fehlen sogar noch Beispiele sowohl in der englischen als auch in der deutschen Hilfe. Da kann man sich wohl kaum über unvollständige oder nicht ganz verständliche Beispiele beschweren.

    Zitat

    Man kann halt nicht alles haben was solls


    Stimmt, aber ich verstehe nicht wie du das mit diesem Thread in Verbindung bringen willst. Das Problem ist ja eigentlich gelöst.

  • Automatischer Zeilenumbruch

    • name22
    • 28. Dezember 2010 um 03:30

    Ich hab da mal was versucht, aber ich bin leider zu müde um das jetzt noch zu optimieren :sleeping: .
    Vielleicht hilft es dir ja trotzdem weiter...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GDIPlus.au3>
    #include <String.au3>

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

    $sTest = ""
    For $i = 1 To 100
    $sTest &= Chr(Random(65, 90, 1))
    Next

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

    $iMaxWidth = 150

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

    $hWnd = GUICreate("Test", 400, 400)
    $cEdit = GUICtrlCreateEdit("", 5, 5, 390, 390)
    GUISetState()

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

    _GDIPlus_Startup()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)

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

    $hFormat = _GDIPlus_StringFormatCreate()
    $hFamily = _GDIPlus_FontFamilyCreate("Arial")
    $hFont = _GDIPlus_FontCreate($hFamily, 10)

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

    $tMeasureTmp = _GDIPlus_GraphicsMeasureString($hGraphic, $sTest, $hFont, _GDIPlus_RectFCreate(), $hFormat)

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

    $iWidthText = DllStructGetData($tMeasureTmp[0], "width")
    $iStringLen = StringLen($sTest)
    $iLines = Ceiling($iWidthText / $iMaxWidth)
    $iCPL = Ceiling($iStringLen / $iLines)

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

    $sNewText = ""
    $i = 1
    $iWidthRemainingText = $iWidthText
    While $iWidthRemainingText > $iMaxWidth
    $sNewText &= StringLeft($sTest, $iCPL) & @CRLF
    $sTest = StringTrimLeft($sTest, $iCPL)
    $tMeasureTmp = _GDIPlus_GraphicsMeasureString($hGraphic, $sTest, $hFont, _GDIPlus_RectFCreate(), $hFormat)
    $iWidthRemainingText = DllStructGetData($tMeasureTmp[0], "width")
    $i += 1
    WEnd

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

    GUICtrlSetData($cEdit, $sNewText)

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_Shutdown()
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Automatischer Zeilenumbruch

    • name22
    • 28. Dezember 2010 um 03:01
    Zitat

    kann ich an der Stelle $ES_CENTER nicht verwenden?


    Klar kannst du das, du musst das nur bei BitOR als weiteren Parameter hinzufügen ;).

    Zitat

    Der meldet mir beim kompiliieren dabei einen Fehler


    Das könnte auch an den fehlenden Klammern liegen :whistling: .

    [autoit]

    $idEdtBem = GUICtrlCreateInput("" , 2, 405, 713, 105, BitOR($ES_AUTOVSCROLL, $WS_VSCROLL, $ES_MULTILINE, $ES_WANTRETURN))

    [/autoit]
  • Ordner bzw. Datei unterscheiden

    • name22
    • 28. Dezember 2010 um 01:32

    Du kannst ja diese Funktion von mir verwenden um alle Dateien aus dem AutoIt Verzeichnis rekursiv in ein Array eintragen zu lassen.

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ======================================================================================
    ; Name ..........: _FileListToArrayRecursiv()
    ; Description ...: Findet Dateien in einem Verzeichnis und allen Unterverzeichnissen
    ; Syntax ........: _FileListToArrayRecursiv($sPath, [$sFilter = "*"])
    ; Parameters ....: $sPath - Verzeichnispfad in dem gesucht werden soll.
    ; $sFilter - [optional] Dateinamenfilter (z.B. "*.mp3"). Wildcards werden unterstützt.
    ; $iFlag - [optional] 0 = Dateien und Ordner auflisten.
    ; 1 = Nur Dateien auflisten.
    ; 2 = Nur Ordner auflisten.
    ; Return values .: Success - Return Array with Files ($Array[0] = Count)
    ; Failure - Return 0
    ; Author ........: name22 (autoit.de)
    ; Remarks .......: Benötigt #include <File.au3>
    ; =================================================================================================
    Func _FileListToArrayRecursiv($sPath, $sFilter = "*", $iFlag = 0)
    Local $aFiles = _FileListToArray($sPath, $sFilter, $iFlag)
    If Not IsArray($aFiles) Then
    Local $aFiles[1]
    $aFiles[0] = 0
    EndIf

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

    Local $aFolders = _FileListToArray($sPath, "*", 2)
    If Not IsArray($aFolders) Then
    If $aFiles[0] = 0 Then Return 0
    Else
    $bResult = False
    For $i = 1 To $aFolders[0]
    $aSearchTmp = _FileListToArrayRecursiv($sPath & "\" & $aFolders[$i], $sFilter, $iFlag)
    If IsArray($aSearchTmp) Then
    $bResult = True
    ReDim $aFiles[$aFiles[0] + $aSearchTmp[0] + 1]
    For $j = 1 To $aSearchTmp[0]
    $aFiles[$aFiles[0] + $j] = $aFolders[$i] & "\" & $aSearchTmp[$j]
    Next
    $aFiles[0] += $aSearchTmp[0]
    EndIf
    Next
    EndIf

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

    Return $aFiles
    EndFunc

    [/autoit]


    Hoffe ich konnte helfen :).

  • Kleiner Wettbewerb von mir: Stereogramme

    • name22
    • 28. Dezember 2010 um 00:32

    Ich finde es ein wenig unfair was die Geschwindigkeitsbewertung angeht... Andy hat ja auch beim Primzahlen µit eine Assembler Version gescriptet, welche deutlich schneller als alle anderen war :D . Außerdem ist es ja immer noch ein Autoit Wettbewerb :S . Naja, das wird Ineluki dann schon entscheiden.

  • UDF: GDI+ Alternativer ToolTip

    • name22
    • 27. Dezember 2010 um 23:17
    Zitat


    Du hast in der UDF vergessen zu erwähnen, was der Paramter $iStyle_Tip bei _ToolTip_Create() mit dem Wert 3 darstellt ;)


    *hust* :whistling: .

  • Obfuscator - For What?

    • name22
    • 27. Dezember 2010 um 23:04

    Obfuscator sind dazu gedacht das Script unübersichtlich zu machen (ohne dessen Funktion einzuschränken), um den Benutzern von Decompilern das Leben schwer zu machen ;) (Engl. to obfuscate = verschleiern/verdunkeln). Nicht um die Erstellung einer exe aus der au3 Datei zu verhindern.

  • UDF: GDI+ Alternativer ToolTip

    • name22
    • 27. Dezember 2010 um 23:00
    Zitat

    Kannst du dein altes Beispiel nochmals anhängen oder posten?


    Klar kein Problem ;)

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™