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

  • Protokolldatei umsortieren

    • BugFix
    • 14. Januar 2007 um 12:09

    Erfasse die Logs mit Delimiter (z.B. "|") in der Form:
    DATUM|ABSENDER|EMPFÄNGER|OBJEKT
    (wenn die vorhandenen Leerzeichen garantiert nur als Trenner auftauchen, kannst du auch diese verwenden)
    Dann kannst du mit StringSplit( ) die Zeile in ein Array auslesen und dann umsortieren.

  • Brauche Hilfe

    • BugFix
    • 14. Januar 2007 um 10:01

    Fragen zu ListBox?

    Guckst du hier: http://autoit.aufwaerts.de/thread.php?postid=5214#post5214

  • internetformular

    • BugFix
    • 14. Januar 2007 um 09:56

    Hi Dustin,
    du bist immer etwas geizig mit deinen Angaben. :rolleyes: Etwas fiktiv zu erklären ist nicht so toll. Bring doch mal eine Beispielseite (bzw. deren Quellcode), die du ansprechen möchtest (evtl. accountbezogene Angaben einfache x-en).
    Mit Beispiel arbeitet sich's viel besser. ;)

  • Link anklicken

    • BugFix
    • 13. Januar 2007 um 22:48

    Gib doch mal die Adresse der Web-Site an. Dann kann man sich selbst ein Bild machen.

  • Ist das moeglich???

    • BugFix
    • 13. Januar 2007 um 20:36

    Oder so, schließt auch nach OK-Button.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Dim $key = "HKEY_LOCAL_MACHINE\SOFTWARE\Vitalwerks\DUC", $val = "xxxx.no-ip.org"

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

    $gui = GUICreate("test")
    $input = GUICtrlCreateInput($val, 20, 20)
    $OK = GUICtrlCreateButton("OK", 20, 60, 60, 21)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $OK
    $key = GUICtrlRead($input)
    RegWrite($key, "Checked", "REG_SZ", $val &"|")
    ExitLoop
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect
    WEnd
    Exit

    [/autoit]
  • FAQ

    • BugFix
    • 13. Januar 2007 um 16:54

    Eigene Abkürzungen in SciTE

    SciTE verfügt über eine Liste von Abkürzungen (zu finden in der Datei "abbrev.properties"), die das Codieren sehr vereinfachen.
    Durch Eingabe der Abkürzung + Leertaste wird der hinterlegte Code eingefügt.
    In einem vorigen Beitrag hatte ich bereits zur Änderung bestehender Abkürzungen geschrieben. Zu den bestehenden Abkürzungen lassen sich auch ganz einfach eigene hinzufügen.

    Code
    Die Syntax ist folgende:
    
    
    Abkürzung=Code
    Zeilenumbruch:		\n
    Tabulatorschritt:	\t
    Cursorposition:		|
    
    
    Alle Anweisungen müssen innerhalb einer Zeile geschrieben werden.
    
    
    Um z.B. einen Scriptheader zu erstellen der so aussieht:
    
    
    #cs ----------------------------------------------------------------------------
    
    
     AutoIt Version:	        3.2.1.14 (beta)
     Author:			Dein Name
     Script Function:		hier soll der Cursor stehen
    
    
    #ce ----------------------------------------------------------------------------
    
    
    mußt du diese Zeile erstellen:
    scriptheader=#cs ----------------------------------------------------------------------------\n\n AutoIt Version:		3.2.1.14 (beta)\n Author:				Dein Name\n Script Function:		|\n\n#ce ----------------------------------------------------------------------------\n
    Alles anzeigen

    Die Datei "abbrev.properties" kannst du direkt über SciTE -> Optionen -> Abkürzungsdatei öffnen.
    Füge einfach die neue Zeile in die Dateie ein (Position ist eigentlich egal - Hauptsache vor der Markierung [#-#-#-#..]) - aber für eine bessere Übersicht macht es vielleicht Sinn, eine eigene Sektion (#; -- Eigene Abkürzungen --) einzufügen.
    Damit das Kürzel auch aktiv wird, mußt du es in der "au3.keywords.properties" (SciTE -> Optionen -> Öffnen au3.keywords.properties) eintragen.
    Füge das Kürzel an das Ende der Sektion: ".keywords.abbrev=..." an. Hier aufpassen, dass als letztes immer ein Zeilenumbruch in der Datei bleibt - gibt sonst 'nen Fehler.
    Ab sofort steht die neue Abkürzung zur Verfügung.

  • Internetverknüpfung auf Desktop löschen

    • BugFix
    • 12. Januar 2007 um 23:53

    Habs grad mal bei mir getestet, "FileDelete(@DesktopDir & "\blabla.lnk")" funktioniert 100 %.
    Mit

    [autoit]

    MsgBox(0, '', FileDelete(@DesktopDir & "\blabla.lnk"))

    [/autoit]

    kannst du dir gleich den Rückgabewert ausgeben lassen. 1-Erfolg, 0-Pech gehabt. ;)

    Wenn es also bei dir nicht funzt, liegt es nicht an Autoit.

  • Dateikopieren

    • BugFix
    • 8. Januar 2007 um 22:26
    [autoit]

    $arNoMoveCustom = IniReadSection(@Scriptdir & "\modmove.ini", "NoMoveCustom")
    $arNoMove = IniReadSection($INIPfad, "NoMove")

    [/autoit]

    Wenn ich das richtig verstehe, beziehst du dich auf dieselbe INI. Dann verwende besser auch gleichen Code:

    [autoit]

    $arNoMoveCustom = IniReadSection($INIPfad, "NoMoveCustom")
    $arNoMove = IniReadSection($INIPfad, "NoMove")

    [/autoit]


    Und wenn

    [autoit]

    $AllCustomModFiles = _FileListToArray($QuellPfad, "*.iwd")
    ; ==
    $AllModFiles = _FileListToArray($QuellPfad, "*.iwd")

    [/autoit]


    dann verwende besser nur "$AllModFiles", das ist eindeutig und erspart dir eine Variable.


    EDIT:
    So, habs mal geändert und vereinfacht:

    Spoiler anzeigen
    [autoit]


    $arNoMoveCustom = IniReadSection(@Scriptdir & "\modmove.ini", "NoMoveCustom")
    ;~ $arNoMoveCustom = IniReadSection($INIPfad, "NoMoveCustom") falls dieselbe INI, dieses hier
    $arNoMove = IniReadSection($INIPfad, "NoMove")
    ;~ $AllCustomModFiles = _FileListToArray($QuellPfad, "*.iwd") weglassen, spart 'ne Menge Code
    $AllModFiles = _FileListToArray($QuellPfad, "*.iwd")
    For $i = 1 To $AllModFiles[0]
    For $k = 1 To $arNoMoveCustom[0][0]
    ;Custom Dateien markieren, die nicht verschoben werden sollen
    If $AllModFiles[$i] = $arNoMoveCustom[$k][1] Then $AllModFiles[$i] &= "|"
    Next
    For $k = 1 To $arNoMove[0][0]
    ; Dateien markieren, die nicht verschoben werden sollen
    If $AllModFiles[$i] = $arNoMove[$k][1] Then $AllModFiles[$i] &= "|"
    Next
    Next
    For $i = 1 To $AllModFiles[0]
    ; nicht markierte Dateien verschieben
    If StringRight($AllModFiles[$i], 1) <> "|" Then FileMove($QuellPfad & $AllModFiles[$i], $ZielPfad)
    Next
    ;counter
    Select
    Case $devmapsaveposmod = "yes"
    FileMove($filepath & "modmove\zzz_Save_position_mod_V1.0.iwd", $filepath)
    FileMove($filepath & "modmove\zzz_999_nades.iwd", $filepath)
    $iextra = $counterextra + 1
    IniWrite(@ScriptDir & "\modmove.ini", "Programminfo", "counterextra", $iextra)
    Case Else
    ;counting the amount of movements
    $icounter = $counter + 1
    IniWrite(@ScriptDir & "\modmove.ini", "Programminfo", "counter", $icounter)
    EndSelect

    [/autoit]


    Nun noch zu deiner "Func _nomovelist()".
    Ist

    [autoit]

    $werteanzahl = IniReadSection($INIPfad, "NoMoveCustom")

    [/autoit]

    nicht dieselbe Sektion derselben INI, wie hier:

    [autoit]

    $arNoMoveCustom = IniReadSection(@Scriptdir & "\modmove.ini", "NoMoveCustom")

    [/autoit]

    ?
    Und das Sortieren brauchst du nur einmal ausführen, nicht in einer Schleife. Somit wird die ganze Funktion hinfällig. Du solltest aber angeben, welche Dimension du sortieren möchtest.

    So, ich denke das wars erst mal.

  • Dateikopieren

    • BugFix
    • 8. Januar 2007 um 22:13

    Ja, stimmt,. Mit _ArraySort( ) war ich auf dem falschen Dampfer - sorry. Werde wohl doch langsam senil :rofl:

    Das andere schau ich mir nochmal an. Für schnelle Zwischenfragen, wärs nicht schlecht, falls du per Messsenger erreichbar wärst. Falls ja kannst du mich ja anklingeln. Steht alles in meinem Profil

  • Dateikopieren

    • BugFix
    • 8. Januar 2007 um 21:33
    [autoit]

    $AllCustomModFiles = _FileListToArray($QuellPfad, "*.iwd")
    ; identisch mit:
    $AllModFiles = _FileListToArray($QuellPfad, "*.iwd")

    [/autoit]


    Ist das Absicht?

    [autoit]

    For $icustom = 1 To $AllCustomModFiles[0]
    For $kcustom = 1 To $arNoMoveCustom[0][0]

    [/autoit]


    Macht den Code etwas unübersichtlich, verwende lieber $i , $k usw. für einfache Zählvariablen.

    EDIT:
    nochwas entdeckt:

    [autoit]

    For $i = 1 To $AllModFiles[0]
    ; nicht markierte Dateien verschieben
    If StringRight($AllModFiles[$i], 1) <> "|" OR StringRight($AllCustomModFiles[$icustom], 1) <> "|" Then FileMove($QuellPfad & $AllModFiles[$i], $ZielPfad) AND FileMove($QuellPfad & $AllCustomModFiles[$icustom], $ZielPfad)
    Next

    [/autoit]

    geht nicht

    ich denke, du meinst sowas:

    [autoit]

    For $i = 1 To $AllModFiles[0]
    ; nicht markierte Dateien verschieben
    If StringRight($AllModFiles[$i], 1) <> "|" Then
    FileMove($QuellPfad & $AllModFiles[$i], $ZielPfad)
    ElseIf StringRight($AllCustomModFiles[$icustom], 1) <> "|" Then
    FileMove($QuellPfad & $AllCustomModFiles[$icustom], $ZielPfad)
    EndIf
    Next

    [/autoit]
  • Dateikopieren

    • BugFix
    • 7. Januar 2007 um 20:40

    IniReadSection gibt ein Array das im Index $array[0][0] die Anzahl der Elemente führt.

  • Wie kann ich Symbolleisten an- oder abhaken

    • BugFix
    • 7. Januar 2007 um 20:32

    Einiges kannst du mit ControlClick( ) oder ControlCommand( ) ausführen. Wie du die Controls ansprichst, erfährst du mit dem Tool: AutoIt Window Info.
    Es gibt auch die Möglichkeit mit WinApi zu arbeiten, aber da hab ich wenig Erfahrung mit.
    Eine gute Infoquelle ist auf jeden Fall das englische Forum. Die haben schon fast alles mal gemacht. :)

  • Dateikopieren

    • BugFix
    • 7. Januar 2007 um 20:24

    Guckst du hier:

    Spoiler anzeigen
    Zitat

    Function Reference
    GUIGetMsg
    --------------------------------------------------------------------------------

    Polls the GUI to see if any events have occurred.


    GUIGetMsg ( [advanced] )


    Parameters

    advanced [optional] return extended information in an array.
    0 = (default) Returns a single event.
    1 = returns an array containing the event and extended information.


    Return Value

    Returns an event, or an array depending on the "advanced" parameter.
    The "event" returned is the control ID of the control sending the message, or it is a special event (like the window is closing, minimizing). Or if there is no message, the event is 0.


    Event ID the ID of the control sending the message
    0 No event
    $GUI_EVENT_CLOSE dialog box being closed (either by defined button or system menu).
    $GUI_EVENT_MINIMIZE dialog box minimized with Windows title bar button.
    $GUI_EVENT_RESTORE dialog box restored by click on task bar icon.
    $GUI_EVENT_MAXIMIZE dialog box maximized with Windows title bar button.
    $GUI_EVENT_MOUSEMOVE the mouse cursor has moved.
    $GUI_EVENT_PRIMARYDOWN the primary mouse button was pressed.
    $GUI_EVENT_PRIMARYUP the primary mouse button was released.
    $GUI_EVENT_SECONDARYDOWN the secondary mouse button was pressed.
    $GUI_EVENT_SECONDARYUP the secondary mouse button was released.
    $GUI_EVENT_RESIZED dialog box has been resized.
    $GUI_EVENT_DROPPED End of a Drag&Drop action @GUI_DRAGID, @GUI_DRAGFILE and @GUI_DROPID will be used to retrieve the ID's/file corresponding to the involve control.


    When using the "advanced" parameter the information is returned in an array with extended information:
    $array[0] = 0 or Event ID or Control ID
    $array[1] = The window handle the event is from
    $array[2] = The control handle the event is from (if applicable)
    $array[3] = The current X position of the mouse cursor (relative to the GUI window)
    $array[4] = The current Y position of the mouse cursor (relative to the GUI window)


    If the GUIOnEventMode option is set to 1 then the return from GUIGetMsg is always 0 and the @error is set to 1.
    If the option GUIEventOptions is set to 1 the minimize, restore and maximize button will not do any action on the window just a simple notification.


    Remarks

    This function automatically idles the CPU when required so that it can be safely used in tight loops without hogging all the CPU.

    Information about the mouse position and the hovering control can be retrieved with GUIGetCursorInfo. No event is fired when the mouse is over a control so GUIGetCursorInfo must be called to retrieve the ControlID.

    Alles anzeigen
  • statische IP-Adresse herausfinden

    • BugFix
    • 7. Januar 2007 um 19:47

    Zitat aus der Hilfe:

    [autoit]

    #include <Inet.au3>
    $PublicIP = _GetIP()
    MsgBox(0, "IP Address", "Your IP Address is: " & $PublicIP)

    [/autoit]


    Bringt dir deine öffentliche IP

  • Beep Komponist

    • BugFix
    • 7. Januar 2007 um 18:23

    Erstelle das kleine Fenster mit Style: $WS_EX_TOPMOST
    Aufruf großes Fenster, dann Aufruf kleines Fenster ( GUISetState(@SW_SHOW, $Fensterhandle) ) - nun bleibt das kleine Fenster immer im Vordergrund.

  • Position TrayBar ermitteln

    • BugFix
    • 7. Januar 2007 um 17:52

    Habe gerade die Ermittlung der Position der TrayBar benötigt und das ganze gleich in eine Funktion gepackt.

    [autoit]

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; Funktion _GetTrayBarPos()
    ;
    ; Beschreibung gibt die Position der TrayBar zurück
    ; 1 = rechts
    ; 2 = unten
    ; 3 = links
    ; 4 = oben
    ;
    ; Autor BugFix ( [email='bugfix@autoit.de'][/email] )
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Func _GetTrayBarPos()
    $TrayBarPos = WinGetPos("", "Notification Area" )
    Select
    Case $TrayBarPos[0] = -4
    If $TrayBarPos[1] = -4 And $TrayBarPos[2] = (@DesktopWidth +8) Then
    ; Position = "unten"
    Return 2
    ElseIf $TrayBarPos[1] = -4 And $TrayBarPos[3] = (@DesktopHeight +8) Then
    ; Position = "rechts"
    Return 1
    Else
    ; Position = "oben"
    Return 4
    EndIf
    Case Else
    ; Position = "links"
    Return 3
    EndSelect
    EndFunc ; ==> _GetTrayBarPos()

    [/autoit]

    Dateien

    _GetTrayBarPos.au3 856 Byte – 310 Downloads
  • Wie kann ich Symbolleisten an- oder abhaken

    • BugFix
    • 7. Januar 2007 um 16:38
    Zitat

    Wenn sie aber nicht angehakt war, dann hake ich sie damit auch noch an :(


    Ja, das stimmt leider. Momentan sehe ich aber keine Möglichkeit abzufragen, ob die Symbolleiste aktiviert oder deaktiviert ist. Vielleicht geht sowas durch Verwendung der WinAPI. Aber da bin ich nicht firm.

    Edit:
    Ich habe dir mal eine Möglichkeit mit Ermittlung der Taskbar-Position erstellt. Dann bist du zumindest dabei unabhängig.

    Spoiler anzeigen
    [autoit]

    $TrayBarPos = WinGetPos("", "Notification Area" )
    Select
    Case $TrayBarPos[0] = -4
    If $TrayBarPos[1] = -4 And $TrayBarPos[2] = (@DesktopWidth +8) Then
    ; Position = "unten"
    $x=0
    $y=@DesktopHeight
    ElseIf $TrayBarPos[1] = -4 And $TrayBarPos[3] = (@DesktopHeight +8) Then
    ; Position = "rechts"
    $x=@DesktopWidth
    $y=0
    Else
    ; Position = "oben"
    $x=0
    $y=0
    EndIf
    Case Else
    ; Position = "links"
    $x=0
    $y=0
    EndSelect
    MouseClick("right", $x, $y, 1, 0)
    Send("y") ; Aufruf Menü Symbolleisten
    Sleep(100)
    Send("c") ; deaktiviert Schnellstart
    MouseClick("right", $x, $y, 1, 0)
    Send("y") ; Aufruf Menü Symbolleisten
    Sleep(100)
    Send("f") ; aktiviert FreeLaunchBar

    [/autoit]
  • Wie kann ich Symbolleisten an- oder abhaken

    • BugFix
    • 7. Januar 2007 um 15:54

    Ja Bernd, da hast du natürlich recht.
    ich habe noch etwas rumprobiert. Sollte aber die Taskbar unten sein, ist folgende Variante schneller und darüber lässt sich auch die FreeLaunchBar aktivieren.

    [autoit]

    Dim $x = 0, $y = @DesktopHeight
    MouseClick("right", $x, $y, 1, 0)
    Send("y") ; Aufruf Menü Symbolleisten
    Sleep(100)
    Send("c") ; deaktiviert Schnellstart
    MouseClick("right", $x, $y, 1, 0)
    Send("y") ; Aufruf Menü Symbolleisten
    Sleep(100)
    Send("f") ; aktiviert FreeLaunchBar

    [/autoit]

    Ideal wäre natürlich, wenn per RunDLL32 auch dieses Menü direkt aufgerufen werden könnte. Hab aber k.P. ob das geht.

  • Wie kann ich Symbolleisten an- oder abhaken

    • BugFix
    • 7. Januar 2007 um 14:45

    Hier eine Lösung, die funktioniert. Leider dauert das Eintragen der Änderung bei Windows recht lang, sodass das Eigenschaftsfenster noch 4-5 Sekunden sichtbar ist.

    [autoit]

    AutoItSetOption("WinTitleMatchMode", 4)
    Dim $x = 0, $y = @DesktopHeight
    MouseClick("right", $x, $y, 1, 0) ; Rechtsklick in unterste linke Ecke
    Send("i") ; Aufruf Kontextmenü Eigenschaften
    WinWaitActive("Eigenschaften von Taskleiste und Startmenü")
    ControlClick("Eigenschaften von Taskleiste und Startmenü", "", 1107) ; egal welcher Tab gerade sichtbar, das Control wird direkt angesprochen
    Send("{ENTER}") ; dauert etwas

    [/autoit]
  • Wie kann ich Symbolleisten an- oder abhaken

    • BugFix
    • 7. Januar 2007 um 11:16

    Die Einstellungen für die Taskbar findest du im Registry-Schlüssel: HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop\

    Im Schlüssel "TaskbarWinXP" sind alle Informationen als Binärwert abgelegt. Du kannst also nicht gezielt einzelne Einstellungen verändern, sondern müsstest vorher wissen, wie sich dabei der Binärwert ändert.
    Ist also z.B. für unattended installation interessant, dass gleich die Voreinstellungen für die Taskbar wieder installiert werden.

    Bleibt also nur der Mausklick in den Taskbareigenschaften zum Deaktivieren der Schnellstartleiste.

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™