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

  • GDI+ Text verändern

    • BugFix
    • 20. Oktober 2009 um 13:31
    Zitat von Magnus

    Kann man nur einen Text neu zeichnen?

    Stell dir das in etwa so vor:
    - Grafik-Handle ist eine Tafel
    - Pen-Handle ist die Kreide
    - Bitmap- oder Text-Handle ist das, was mit Kreide aufgemalt wird
    Du kannst mit der Kreide munter über die alten Inhalte malen. Aber du kannst nicht einen speziellen Kreidestrich entfernen, ohne dass davon der Rest betroffen wird.
    Wenn du zum Bsp. 3 Texte nacheinander 'malen' willst und Nr. 2 entfernen, mußt du halt die Tafel abwischen und Text 1 und 3 nochmal 'malen'.

  • c.a 80 Ordner mit verschiedenen Namen automatisch erstellen

    • BugFix
    • 20. Oktober 2009 um 13:19

    Naja, ist ja kein Aufwand ;)

    [autoit]

    Global $array[80]; Array muß dann natürlich Inhalte haben.
    For $i = 0 To UBound($array) -1
    DirCreate("C:\Users\Administrator\Desktop\Namen\" & $array[$i])
    Next

    [/autoit]
  • VBA

    • BugFix
    • 20. Oktober 2009 um 13:15
    Zitat von sc4ry

    bis mir leider aufgefallen ist, dass am ende die zeichencodierung nicht stimmte (die umlaute werden in Hieroglyphen angezigt).


    Dann schick mir mal so eine Datei (vor der Umwandlung), dann kann ich mal schauen, wo es hakt. Kannst ja evtl. datenschutzrelevante Inhalte aus-x-en.

  • VBA

    • BugFix
    • 20. Oktober 2009 um 11:11

    Bevor ich mich da weiter reinlese: Warum machst du das nicht komplett in AutoIt?
    Das schreit doch aufgrund seines Automatisierungsbedarfes geradezu nach AutoIt. :D

  • Do Until mit 2 Statements?

    • BugFix
    • 20. Oktober 2009 um 11:05

    Da war ich etwas zu wortkarg :D
    Eigentlich wollte ich nur drauf aufmerksam machen, dass = 1 bei Funktionen die 0 bei Fehler/Mißerfolg zurückgeben auch eingespart werden kann. ;)

  • 3. Txt dateien zusammen in 1. ini schreiben

    • BugFix
    • 20. Oktober 2009 um 11:00
    Code
    Name1 - Nachname1
    Straße1 
    Name2 - Nachname2
    Straße2 
    usw....


    Das ist aber kein INI-Format.
    Eine INI sieht so aus:

    Code
    [section]
    key=value

    Könnte bei dir etwa so aussehen:

    Code
    [adressen]
    id=name,vorname,strasse_nr,plz,ort


    ID deshalb, weil über Name+... keine eineindeutige Identifizierung gesichert ist. Ich hatte schon mal zwei Klaus Müller unter derselben Adresse und auch noch demselben Geburtstag. Sowas kommt häufiger vor als man denkt.

    Wenn es mehr Daten werden solltest du evtl. über den Einsatz von SQLite nachdenken.

    Beitrag # 4.444 :D

  • Do Until mit 2 Statements?

    • BugFix
    • 20. Oktober 2009 um 10:50
    Zitat von VERGiL

    Until WinActive ("Neues Dokument scannen", "Voreinstellung für das Scannen") = 1 or WinActive("Neues Dokument scannen", "Das Scannen ist aufgrund eines") = 1


    Etwas zu viel des Guten. ;)

  • Text aus Chatfenster bis Keyword auslesen

    • BugFix
    • 20. Oktober 2009 um 10:46
    Zitat von dschihejns

    Angenommen ich habe ein Chatfenster, welches sich dauernd wieder erneuert weil einer der beiden Partner schreibt.


    Ich vermute mal:
    - Du liest den Text in Intervallen aus.
    - Das, was du bisher schon ausgelesen hast, möchtest du nicht mehr im aktuellen Text drin haben.
    Wenn dem so ist:
    Der Text enthält doch mit Sicherheit Zeilenumbrüche. Also:
    - Gesamten Text lesen und an den Zeilenumbrüchen splitten. Nun hast du ein Array mit den Zeilen.
    - Die letzte Zeile (letzter Eintrag im Array) speicherst du in einer Vergleichsvariablen. (Beim Programmstart ist diese leer)
    - Mit For-Schleife vom letztem zum ersten Element durch das Array iterieren und vergleichen ob aktuelle Zeile identisch mit Vergleichsvariable. Ausnahme: Vergleichsvariable ist leer - dieser dann den letzten Eintrag zuweisen und den gesamten Inhalt verwenden
    - Wenn Übereinstimmung Variable=ArrayEintrag sind alle Arrayeinträge vor und diesem alte Sachen.

  • Tooltip bei mouseover in listview?

    • BugFix
    • 19. Oktober 2009 um 20:02
    Zitat von ThinkCross

    Ich würde gerne beim Eintragen der Werte individuelle Tooltipps setzen.


    Ja, mein Bsp. sollte auch nur den Weg zeigen, wie du an Zeilen- und SpaltenIndex des HotItems kommst. Individuelle Tooltipps müßtest du dann in einem separaten Array ablegen.
    Dabei wirst du evtl. auf ein Problem stoßen: Was passiert, wenn z.B. Elemente eingefügt, gelöscht werden oder das Listview sortiert wird?
    Dann stimmt deine Zuordnung aus dem Array nicht mehr.
    Das kannst du umgehen, indem du
    - entweder alle Aktionen, die im Listview stattfinden auch auf dein Array anwendest um dort den selben Status zu haben - seeehr aufwändig ;)
    oder
    - du nutzt (so, wie ich es in ListviewFormat getan habe) iParam zum Speichern eines Verweises zum Array. Dann sind Veränderungen im Listview nicht relevant. Allerdings mußt du für SimpleSort die von mir modifizierte Version verwenden, damit auch iParam mitsortiert wird.

  • Tooltip bei mouseover in listview?

    • BugFix
    • 19. Oktober 2009 um 17:43

    Dafür gibt es LVN_HOTTRACK:

    Spoiler anzeigen
    [autoit]

    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIListView.au3>

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

    $gui = GUICreate('test')
    $hListView = GUICtrlCreateListView('Spalte1|Spalte2', 10, 10, 300, 200)
    _GUICtrlListView_SetColumnWidth($hListView, 0, 146)
    _GUICtrlListView_SetColumnWidth($hListView, 1, $LVSCW_AUTOSIZE_USEHEADER)
    For $i = 1 To 10
    GUICtrlCreateListViewItem('Zeile ' & $i & ' Spalte 1|Zeile ' & $i & ' Spalte 2', $hListView)
    Next
    GUISetState()

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

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    Do
    $msg = GUIGetMsg()
    Until $msg = $GUI_EVENT_CLOSE

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

    Func ListView_HOTTRACK($iSubItem)
    Local $HotItem = _GUICtrlListView_GetHotItem($hListView)
    If $HotItem <> -1 Then _ToolTipMouseExit("Überfahrenes Item: " & $HotItem & " SubItem: " & $iSubItem & @CRLF & _
    'Inhalt: ' & _GUICtrlListView_GetItemText($hListView, $HotItem, $iSubItem), 500)
    EndFunc ;==>ListView_HOTTRACK

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

    Func _ToolTipMouseExit($TEXT, $TIME=-1, $x=-1, $y=-1, $TITLE='', $ICON=0, $OPT='')
    If $TIME = -1 Then $TIME = 3000
    Local $start = TimerInit(), $pos0 = MouseGetPos()
    If ($x = -1) Or ($y = -1) Then
    ToolTip($TEXT, $pos0[0], $pos0[1], $TITLE, $ICON, $OPT)
    Else
    ToolTip($TEXT, $x, $y, $TITLE, $ICON, $OPT)
    EndIf
    Do
    Sleep(50)
    $pos = MouseGetPos()
    Until (TimerDiff($start) > $TIME) Or _
    (Abs($pos[0] - $pos0[0]) > 10 Or _
    Abs($pos[1] - $pos0[1]) > 10)
    ToolTip('')
    EndFunc ;_ToolTipMouseExit

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $hListView
    If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

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

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $LVN_HOTTRACK ; Sent by a list-view control when the user moves the mouse over an item
    Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
    ListView_HOTTRACK(DllStructGetData($tInfo, "SubItem"))
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]
  • Gui in 2 Sprachen darstellen - Wie?

    • BugFix
    • 19. Oktober 2009 um 09:21

    Hier mal ein Ausschnitt, aus einem Programm von mir. Hier wird der deutsche Text verwendet, sofern die vom OS verwendete Sprache eine der deutschen ist. Anderenfalls kommt der englische Text zum Einsatz. Dazu hinterlege ich alle Texte in einem 2D-Array und greife über den Index ($iLang) auf deutsch oder englisch zu:

    Spoiler anzeigen
    [autoit]

    Global $iLang=1
    If StringInStr("0407 0807 0c07 1007 1407", @OSLang) Then $iLang = 0
    Global $aText[18][2] = [ _
    ["Schließen","Close"],['FEHLER','ERROR'], _
    ["Die Datei 'xyz.exe' konnte nicht gefunden werden.","File 'xyz.exe' couldn't found."], _
    ['Das Programm wird beendet.','The program will close.'], _
    ["Ferneinstellungssoftware ","Remotesoftware "],["Hilfe","Help"],["Über","About"], _
    ["Neues Fenster","New Instance"],['Raum|Notiz|Status','Room|Note|State'],["Notiz","Note"], _
    ["COM-Port wählen","Choose COM-Port"],["Bett ","Bed "],["Notiz eintragen","Set Note"], _
    ["Geben Sie hier den neuen Titel ein: ","Set here new title: "],[" aktuelles Fenster:"," current window:"], _
    ["Starte Fernbedienung","Run Remote"],["Dieser Fenstername existiert bereits.","This window title always exists."], _
    ["Verbindung besteht bereits.","Connection always exists."]]

    [/autoit]
  • Die englische Hilfe wird bugfreier

    • BugFix
    • 18. Oktober 2009 um 20:27
    Zitat von Tweaky

    Von den Posts die auf meinen folgenden habe ich allerdings die Hälfte nicht verstanden.

    Mal ganz salopp gesagt: Da Jos der Meinung ist, dass eine andere Nation unfähig ist die Hilfe komplett zu übersetzen ohne auf halbem Weg aufzugeben, ist es ihm gelinde gesagt wohl schei..egal ob und was in dieser Richtung getan wird.
    Es ist also nicht unbedingt davon auszugehen, dass der aktuelle Link von Jos eingearbeitet wird. :S

  • passwortmanager

    • BugFix
    • 18. Oktober 2009 um 13:51

    Hier findest du Bsp. dazu: Auto-Ersetzen u. Input-Check mit Hook

  • [StringRight] Klappt das Programm nicht? Oder bin ich einfach nur dumm? :D

    • BugFix
    • 18. Oktober 2009 um 13:49

    Schau dir mal _StringReverse($sString) an.

  • [Problem] Beep

    • BugFix
    • 18. Oktober 2009 um 13:31
    Zitat von masterRobb

    Kann mir jemand sagen, welche Frequenz etc. welcher Ton hat? also: c, d, e, f, g, a, h,... + länge eines Viertel Tons.... etc.

    Guckst du: Beep Komponist

  • 'Ersatz'-Signatur

    • BugFix
    • 18. Oktober 2009 um 13:20

    Ich habe mal eine Auflistung der meisten meiner Skripte und UDF in Post 1 mit Verlinkung eingestellt. Dann habt ihr es leichter (und ich auch ;) ) nach etwas zu suchen.

  • Lizenzcode

    • BugFix
    • 18. Oktober 2009 um 09:49
    Zitat von slin

    Denkst du ich probiere nichts selber? :cursing: Da hast du dich aber geschnitten! Du "Profi"

    Bleib bitte auf dem Teppich und halte dich an die Netiquette!
    Der Einwurf von blubbstar ist völlig berechtigt: Wenn du nicht weiterkommst, dann zeig uns bitte, was du bisher versucht hast. Dann können wir auch ganz gezielt helfen.

  • passwortmanager

    • BugFix
    • 18. Oktober 2009 um 09:43
    Zitat von Rubberducky

    Kleiner Tipp:
    Ich würd die Tastenkombination Alt+Tab auch blockieren, Genauso wie Windows + m und Alt+F4.
    Was bringt sonst, wenn Taskmanager nicht möglich zu öffnen ist, aber die Sperre per Alt+F4 umgänglich ist?


    Ehe du mühselig alle Tastenkombinationen mit ALT und WIN unterdrückst, setze einfache einen Hook auf die ALT- und die WIN- Taste.

  • Ordner durchsuchen

    • BugFix
    • 18. Oktober 2009 um 09:31
    Zitat von mille86

    wolltet ihr nicht schon immer alle Dateien und / oder Ordner eines Pfades ermitteln?


    Haben wir das nicht auch schon getan...? :D
    Rekursive Datei/Ordner Auflistung per Objekt
    _RecursiveFileListToArray (mit StringRegExp)
    ..einen hab ich noch. Schon etwas älter und muß wohl mal wieder auf die aktuelle AutoIt-Version angepaßt werden:
    Dateien / Ordner rekursiv lesen

  • Einzelne ListView Items einfärben.

    • BugFix
    • 17. Oktober 2009 um 22:47

    So sieht die Funktionskopfzeile zum Formatieren aus.

    [autoit]

    _GUICtrlListView_FormattingCell($hWnd, $iItem, $iSubItem, $iBkCol=-1, $iCol=-1, $iSize=-1, $iWeight=-1, $sFont=-1)

    [/autoit]


    Und wenn du in die Funktionsbeschreibung schaust: dort steht nirgendwo, dass man auf ein Item mit '-1' Bezug nehmen kann.
    Du mußt schon die Indexwerte für Item(Zeile) und SubItem(Spalte) angeben.
    Wenn du die Werte für alle Spalten einer Zeile mit denselben Werten setzen möchtest, mach es in einer Schleife:

    [autoit]

    For $i = 0 To $Index_letzteSpalte
    _GUICtrlListView_FormattingCell($hWnd, $iItem, $i, ... )
    Next

    [/autoit]


    Wenn du aber nur 2 Farben im Wechsel auf die Zeilen anwenden möchtest, das geht einfacher:

    Spoiler anzeigen
    [autoit]

    #include <GuiListView.au3>
    #include <GUIConstantsEx.au3>
    GUICreate('Test')

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

    $ListView1 = GUICtrlCreateListView("Col 1|Col 2", 15, 15, 300, 250)
    GUICtrlSetBkColor(-1, 0xFF4400) ; Color odd row
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_LV_ALTERNATE)
    _GUICtrlListView_SetColumnWidth($ListView1, 0, 148)
    _GUICtrlListView_SetColumnWidth($ListView1, 1, 148)

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

    For $i = 1 To 30
    GUICtrlCreateListViewItem(Random(10000, 1000000, 1) & '|' & Random(10000, 1000000, 1), $ListView1)
    GUICtrlSetBkColor(-1, 0xFFFF23) ; Color even row
    Next

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

    GUISetState()

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

    Do
    Until GUIGetMsg() = -3

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