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

Beiträge von FireFlyer

  • Brauche Hilfe :)

    • FireFlyer
    • 10. August 2009 um 01:25

    Zeile 36 musst du ausserhalb des Switch schreiben da sonst eine Endlosschleife entsteht.
    Tipp: anstatt $var = $var + 1 kannst du auch $var += 1 schreiben

  • Problem mit IE Embed Adress Zeile

    • FireFlyer
    • 10. August 2009 um 01:22
    Spoiler anzeigen
    [autoit]

    #include<IE.au3>
    $ie = _IECreate("http://www.autoit.de", 0, 1, 0)
    _IELoadWait($ie)
    _funktion()

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

    Func _funktion()
    MsgBox(0, "Fertig", "Die Seite wurde geladen")
    EndFunc

    [/autoit]

    Was ist daran umständlich? Natürlich kannst du das Script auch direkt bei Create oder Navigate warten lassen und dann die Funktion ausführen.

  • Problem mit IE Embed Adress Zeile

    • FireFlyer
    • 10. August 2009 um 00:02

    zu 1
    _IELoadWait bzw. _IELoadWaitTimeout
    In der Hilfe schauen wäre mal angebracht dann wäre dir nich so langeweilig und du müsstest deine beiträge nicht ständig pushen ;)

  • Array sortieren und doppelte Einträge finden

    • FireFlyer
    • 9. August 2009 um 23:43

    So vllt?

    Spoiler anzeigen
    [autoit]

    #include<Array.au3>
    Opt("MustDeclareVars", 1)
    Local $test

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

    Dim $array[6] = [1, 2, 2, 3, 4, 2]
    Dim $array2[3] = [1, 2, 3]
    _ArrayDisplay($array)

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

    $test = _ArrayDoubles($array, 1)
    _ArrayDisplay($test)
    MsgBox(0, "", $test)

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

    Func _ArrayDoubles(ByRef $array, $uniqueres = 0, $icase = 0, $start = 0, $end = 0)
    Local $out = 0, $end2
    If Not IsArray($array) Then Return SetError(1)
    If UBound($array, 0) > 1 Then Return SetError(2)
    If $start < 0 Or $start > UBound($array)-1 Then Return SetError(3)
    If $end < 0 Or $end > UBound($array)-1 Then Return SetError(4)
    If $end = 0 Then
    $end2 = UBound($array) - 1
    Else
    $end2 = $end
    EndIf

    For $i = $start To $end2
    If _ArraySearch($array, $array[$i], $i+1, 0, $icase) <> -1 Then
    If $uniqueres = 0 Or ($uniqueres = 1 And _ArraySearch($out, $array[$i], 0, 0, $icase) = -1) Then
    If Not IsArray($out) Then
    Dim $out[1] = [ $array[$i] ]
    Else
    _ArrayAdd($out, $array[$i])
    EndIf
    EndIf
    EndIf
    Next
    Return $out
    EndFunc

    [/autoit]
  • _GUICtrlEdit_SetSel und der doofe Mausklick

    • FireFlyer
    • 9. August 2009 um 23:03

    ohhman :love:
    Manchmal sieht man den Wald vor lauter Bäumen einfach net.

    Danke :thumbup:

  • _GUICtrlEdit_SetSel und der doofe Mausklick

    • FireFlyer
    • 9. August 2009 um 20:51

    Es war einmal...
    Ach kurze knackige Problemstellung: _GUICtrlEdit_SetSel startet bevor der Mausklick beendet wurde hier mal der ausschnittsweise code:

    [autoit]

    Func autowrite_startart($ctrlid)
    If GUICtrlRead($ckbx_autowrite) = $GUI_CHECKED And Not StringLen(GUICtrlRead($ctrlid)) Then GUICtrlSetData($ctrlid, IniRead($inipath, "options", "standardstrt", "N.a."))
    _GUICtrlEdit_SetSel($ctrlid, 0, -1)
    EndFunc

    [/autoit]

    Diese Funktion wird durch einen WM_COMMAND aufgerufen und zwar bei den Codes 256 (focus) bzw. 1024 (change). Das Control um das es geht ist ein Input. Man klickt in das Input und es wird automatisch ein Text reingeschrieben. Anschließend soll der Text markiert sein. Wenn man in das Control reintabbt klappts wunderbar. Wenn man reinklickt sieht man ein milisekündchen lang wie der text markiert ist, dann wird die Markierung jedoch durch den Mausklick (der noch da ist^^) wieder aufgehoben.
    Wäre es eine sinnvolle Lösung per Schleife zu warten bis die Maustaste losgelassen wurde? Habe das zwar probiert war damit aber nicht sonderlich zufrieden :/

  • Frage =)

    • FireFlyer
    • 9. August 2009 um 20:04

    Dateisuche in Ordner und allen Unterordnern - eine weitere Variante

  • Frage =)

    • FireFlyer
    • 9. August 2009 um 19:44

    Nein dazu musst du eine Rekursive Funktion erstellen zu diesem Thema hatten wir allerdings schon einige Threads und Scripte. Wenn es nur darum geht zu wissen ob ein Programm installiert ist oder nicht würde ich dir die Registry empfehlen dort ist der Pfad immer gleich ;)

  • schleife beginnt nicht

    • FireFlyer
    • 9. August 2009 um 18:57

    na klar fängt die forschleife nicht wieder von vorne an. Dies tut sie ja erst wieder sobald du den Button Start drückst ;)
    Anstatt einer Forschleife würde ich dir die Funktionen TimerDiff / TimerStart (mit While schleife) ans Herz legen damit kannst du weitaus präzieser arbeiten ;)

  • Eigene Updatefunktion erstellen?

    • FireFlyer
    • 8. August 2009 um 14:44

    mein updater vergleicht die version in der ini und die die meiner .exe alle dateien die zum programm dazugehören liegen in einem ordner auf dem ftp svr
    in der ini steht dann welche dateien heruntergeladen werden müssen und wo sie hingehören.
    meine ini sieht z.b. so aus:
    [ftp]
    file=/update/zusatz1.file
    file=/update/zusatz2.file
    file=/update/zusatz3.file
    [lokal]
    zusatz1.file=@sd\addons\zusatz1.file
    zusatz2.file=@sd\addons\zusatz2.file
    zusatz3.file=@sd\addons\zusatz3.file

    der updater schaut welche files da in der ini aufm ftp liegen und lädt diese erstmal in den temp runter dann kopiert er sie entsprechend [lokal] (@sd wird einfach mit @ScriptDir ersetzt ;) ) klappt eig. wunderbar so. Komplizierter wirds wenn dein programm z.b. ne options.ini hat wo der user einstellungen hat und du die nicht überschreiben möchtest.
    Den Fall hatte ich einmal war en bissl ne wurschtelei aber es ging eig. ;)

  • Eigene Updatefunktion erstellen?

    • FireFlyer
    • 8. August 2009 um 14:17

    mein updater liest die komponenten die zur neuen version gehören aus der ini aus und kopiert sie entsprechend den pfaden in der inidatei in das verzeichnis

  • Hintergrund

    • FireFlyer
    • 7. August 2009 um 19:54

    Mit "push" machst du dir hier keine Freunde
    Was du machen kannst ist eine GUI mit entsprechenden Styles sodass die Leiste fehlt (wie das geht steht in der Hilfe)
    Und dann eine Leiste machen aber um die zum Funktionieren zu bekommen wird aufwendig ;)

  • Drucker Mappen

    • FireFlyer
    • 7. August 2009 um 18:40

    Funktioniert das so??? Frage an die Autoit meister :D
    Hab das jetzt einfach mal so vom VB abgeschrieben wie ich mir das dachte

    Spoiler anzeigen
    [autoit]

    $obj = ObjCreate("WScript.Network")
    if @error Then MsgBox(0, "Obj", @error)
    $printerpath = "\\Server\Printer"
    $obj.AddWindowsPrinterConnection($printerpath)

    [/autoit]


    Das script läuft durch ohne fehlermeldung... stimmts so???

  • Hintergrund

    • FireFlyer
    • 7. August 2009 um 18:19

    Na wie wärs denn mit GUISetBkColor ? ;)

  • TCPsend über IRC?

    • FireFlyer
    • 7. August 2009 um 16:55

    keine ahnung ich vermute das IRC einen speziellen Header hat ähnlich wie bei Telnet vllt??? Und an dem erkennt der Client ob eine Datei im anmarsch ist :D
    Sorry für die Ausdrucksweise^^

  • TCPsend über IRC?

    • FireFlyer
    • 7. August 2009 um 16:26

    also generell kann man über irc dateien versenden wie das genau funktioniert (tcp) etc. weiss ich net.
    Das dcc ist glaube ich nur der query selbst oder? Sobald die verbindung "steht" wird dann per tcp gesendet (glaub ich^^)

  • Problem mit GUI Menü

    • FireFlyer
    • 7. August 2009 um 01:50

    ich denke mal er meint sowas?
    Aus der Hilfe zu GUICtrlCreateContextMenu

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ButtonConstants.au3>

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

    Opt('MustDeclareVars', 1)

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

    Example2()

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

    ; *****************
    ; * Second sample *
    ; *****************
    Func Example2()
    Local $hGui, $OptionsBtn, $OptionsDummy, $OptionsContext, $OptionsCommon, $OptionsFile, $msg
    Local $OptionsExit, $HelpBtn, $HelpDummy, $HelpContext, $HelpWWW, $HelpAbout
    $hGui = GUICreate("My GUI", 170, 40)

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

    $OptionsBtn = GUICtrlCreateButton("&Options", 10, 10, 70, 20, $BS_FLAT)

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

    ; At first create a dummy control for the options and a contextmenu for it
    $OptionsDummy = GUICtrlCreateDummy()
    $OptionsContext = GUICtrlCreateContextMenu($OptionsDummy)
    $OptionsCommon = GUICtrlCreateMenuItem("Common", $OptionsContext)
    $OptionsFile = GUICtrlCreateMenuItem("File", $OptionsContext)
    GUICtrlCreateMenuItem("", $OptionsContext)
    $OptionsExit = GUICtrlCreateMenuItem("Exit", $OptionsContext)

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

    $HelpBtn = GUICtrlCreateButton("&Help", 90, 10, 70, 20, $BS_FLAT)

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

    ; Create a dummy control and a contextmenu for the help too
    $HelpDummy = GUICtrlCreateDummy()
    $HelpContext = GUICtrlCreateContextMenu($HelpDummy)
    $HelpWWW = GUICtrlCreateMenuItem("Website", $HelpContext)
    GUICtrlCreateMenuItem("", $HelpContext)
    $HelpAbout = GUICtrlCreateMenuItem("About...", $HelpContext)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()

    Switch $msg
    Case $OptionsExit, $GUI_EVENT_CLOSE
    ExitLoop

    Case $OptionsBtn
    ShowMenu($hGui, $msg, $OptionsContext)

    Case $HelpBtn
    ShowMenu($hGui, $msg, $HelpContext)

    Case $HelpAbout
    MsgBox(64, "About...", "GUICtrlGetHandle-Sample")
    EndSwitch
    WEnd
    GUIDelete()
    EndFunc ;==>Example2

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

    ; Show a menu in a given GUI window which belongs to a given GUI ctrl
    Func ShowMenu($hWnd, $CtrlID, $nContextID)
    Local $arPos, $x, $y
    Local $hMenu = GUICtrlGetHandle($nContextID)

    $arPos = ControlGetPos($hWnd, "", $CtrlID)

    $x = $arPos[0]
    $y = $arPos[1] + $arPos[3]

    ClientToScreen($hWnd, $x, $y)
    TrackPopupMenu($hWnd, $hMenu, $x, $y)
    EndFunc ;==>ShowMenu

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

    ; Convert the client (GUI) coordinates to screen (desktop) coordinates
    Func ClientToScreen($hWnd, ByRef $x, ByRef $y)
    Local $stPoint = DllStructCreate("int;int")

    DllStructSetData($stPoint, 1, $x)
    DllStructSetData($stPoint, 2, $y)

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

    DllCall("user32.dll", "int", "ClientToScreen", "hwnd", $hWnd, "ptr", DllStructGetPtr($stPoint))

    $x = DllStructGetData($stPoint, 1)
    $y = DllStructGetData($stPoint, 2)
    ; release Struct not really needed as it is a local
    $stPoint = 0
    EndFunc ;==>ClientToScreen

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

    ; Show at the given coordinates (x, y) the popup menu (hMenu) which belongs to a given GUI window (hWnd)
    Func TrackPopupMenu($hWnd, $hMenu, $x, $y)
    DllCall("user32.dll", "int", "TrackPopupMenuEx", "hwnd", $hMenu, "int", 0, "int", $x, "int", $y, "hwnd", $hWnd, "ptr", 0)
    EndFunc ;==>TrackPopupMenu

    [/autoit]
  • Dateien in einem Ordner in einer Listview wiedergeben.

    • FireFlyer
    • 7. August 2009 um 01:35

    vielleicht diese funktion: _GUICtrlListView_DeleteItemsSelected ?

  • Dateien in einem Ordner in einer Listview wiedergeben.

    • FireFlyer
    • 7. August 2009 um 01:16

    So?
    Wenn du nur Dateien haben willst und keine Unterordner schau in der Hilfe zur Funktion _FileListToArray nach da gibts nen Parameter ;)

    Spoiler anzeigen
    [autoit]

    #include<GUIConstants.au3>
    #include<File.au3>

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

    GUICreate("Files", 300, 300)
    $lv = GUICtrlCreateListView("Dateien", 10, 10, 280, 280)
    $files = _FileListToArray(@ScriptDir)
    For $i = 1 To UBound($files)-1
    GUICtrlCreateListViewItem($files[$i], $lv)
    Next

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

    GUISetState()

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

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

    [/autoit]
  • Array Deklaration

    • FireFlyer
    • 6. August 2009 um 13:59

    Vielleicht sollte man aber noch erwähnen das ReDim nicht gerade sehr schnell ist (bei großen Arrays & viele Änderungen)

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™