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

Beiträge von Micha_he

  • Console write/read

    • Micha_he
    • 3. Februar 2008 um 12:56

    Na siehst Du, hättest Du im Startbeitrag gleich verständlich erklärt was Du suchst, wäre die Frage nach spätestens 2 Antworten erledigt gewesen... :D

  • Console write/read

    • Micha_he
    • 3. Februar 2008 um 00:19

    Na hätte ich gewusst da Du nur die Ausgabe eines Commandline-Befehls zurückhaben willst,.....
    Hier ein 'Ping'-Beispiel

    [autoit]

    #include <GUIConstants.au3>

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

    $rueckgabe = ""
    $fehler = ""

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

    $pid = run(@comspec & " /k ping localhost","",@SW_HIDE,6)

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

    While 1
    $rueckgabe &= StdOutRead($pid)
    If @error Then ExitLoop
    $fehler &= StdErrRead($pid)
    sleep(10)
    Wend

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

    Msgbox(0,"","Ausgabe : " & $rueckgabe & @CRLF & @CRLF & "Fehlercode : " & $fehler)

    [/autoit]
  • Console write/read

    • Micha_he
    • 2. Februar 2008 um 21:11

    Falls Du damit eine Autoit-Zeile wie "ConsoleWrite(@hour & ":" & @min & ":" & @sec)" meinst, dann kann die Zeile ermöglichen, das einige Tools (mir fällt im Moment nicht mal eines ein) die von Autoit übergebene Uhrzeit 'empfangen' können. Die Windows "CMD" ist aber nicht in der Lage (steht auch in der Hilfe).

    Ich hätte es mir immer gewünscht, wenn man von Autoit aus, Daten an die Commandline schicken könnte !

  • GUI Hintergrund transparent für Ebay_Widget

    • Micha_he
    • 2. Februar 2008 um 20:55

    Fertig ist das Ebay_Widget (notwendiges Bild ist in #6):

    [autoit]

    #NoTrayIcon
    #include <GUIConstants.au3>

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

    ; INI-Datei definieren Priorität: Userprofile vor lokaler Datei
    If FileExists(@userprofiledir & "\Ebay_Widget.ini") then
    $inifile = @userprofiledir & "\Ebay_Widget.ini"
    else
    $inifile = @scriptdir & "\Ebay_Widget.ini"
    endif

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

    ; GUI erzeugen mit Contextmenue "Beenden"
    Opt("GUIOnEventMode", 1)
    $gui = GUICreate("Ebay_Widget",110,70, 318, 213,$WS_POPUP,BitOr($WS_EX_LAYERED,$WS_EX_TOOLWINDOW))
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "_PrimeDown")
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Ende")
    $bild_id = GUICtrlCreatePic("Ebay_Widget.gif", 0, 0, 110,70)
    $CMenue = GUICtrlCreateContextMenu ($bild_id)
    $CMenueEnde = GUICtrlCreateMenuitem ("Beenden",$CMenue,0)
    GUICtrlSetOnEvent ($CMenueEnde, "_Ende")
    $suchtext_id = GUICtrlCreateInput("", 32, 40, 73, 21)
    GUICtrlSetOnEvent($suchtext_id,"_Suche")
    GUISetState(@SW_SHOW)

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

    ; alte Fensterposition laden und GUI verschieben
    if $inifile <> "" then
    $WinXPos = IniRead($inifile,"Startwerte","WinXPos","")
    $WinYPos = IniRead($inifile,"Startwerte","WinYPos","")
    If $WinXPos <> "" And $WinYPos <> "" then WinMove("Ebay_Widget","",$WinXPos,$WinYPos)
    endif

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

    ; warten....
    While 1
    Sleep(100)
    WEnd

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

    ; eingegebenen Begriff bei Ebay suchen
    Func _Suche()
    $suchtext = GUICtrlRead($suchtext_id)
    $suchtext = StringReplace($suchtext," ","+")
    $suchtext = StringReplace($suchtext,"Ä","%C4",0,1)
    $suchtext = StringReplace($suchtext,"ä","%E4",0,1)
    $suchtext = StringReplace($suchtext,"Ö","%D6",0,1)
    $suchtext = StringReplace($suchtext,"ö","%F6",0,1)
    $suchtext = StringReplace($suchtext,"Ü","%DC",0,1)
    $suchtext = StringReplace($suchtext,"ü","%FC",0,1)
    $suchtext = StringReplace($suchtext,"ß","%DF",0,1)
    ShellExecute ("http://search.ebay.de/search/search.dll?from=R40&_trksid=m37&satitle=" & $suchtext & "&category0=")
    GUICtrlSetData($suchtext_id,"")
    EndFunc

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

    ; Danke für diese Funktion um das rahmenlose Fenster zu verschieben
    Func _PrimeDown()
    Local $DifX, $DifY, $MouseData = GUIGetCursorInfo(@GUI_WinHandle)
    Local $WinPos = WinGetPos(@GUI_WinHandle)
    Local $MPos = MouseGetPos()
    $DifX = $MPos[0] - $WinPos[0]
    $DifY = $MPos[1] - $WinPos[1]
    While $MouseData[2]
    $MPos = MouseGetPos()
    $WinPos = WinGetPos(@GUI_WinHandle)
    If ($WinPos[0] <> ($MPos[0] - $DifX)) Or ($WinPos[1] <> ($MPos[1] - $DifY)) Then
    WinMove(@GUI_WinHandle, '', $MPos[0] - $DifX, $MPos[1] - $DifY)
    EndIf
    Sleep(15)
    $MouseData = GUIGetCursorInfo(@GUI_WinHandle)
    WEnd
    GUICtrlSetState($suchtext_id,$GUI_FOCUS)
    EndFunc

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

    ; Fensterposition merken und Programm beenden
    Func _Ende()
    $iniid=fileopen($inifile,1)
    if $iniid = -1 then $inifile = @userprofiledir & "\Ebay_Widget.ini"
    fileclose($iniid)
    IniDelete($inifile,"Startwerte")
    $WinPos = WinGetPos("Ebay_Widget")
    IniWrite($inifile,"Startwerte","WinXPos",$WinPos[0])
    IniWrite($inifile,"Startwerte","WinYPos",$WinPos[1])
    Exit
    EndFunc

    [/autoit]
  • Console write/read

    • Micha_he
    • 2. Februar 2008 um 20:19

    Wir wär es mit einer Frage die man verstehen kann !

  • GUI Hintergrund transparent für Ebay_Widget

    • Micha_he
    • 2. Februar 2008 um 18:54

    Wie folgt geht es (habe ich aus einigen Beispiele des englischen Forums herausgelesen):

    [autoit]

    #include <GUIConstants.au3>

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

    $gui = GUICreate("Ebay_Suche",110,70, 318, 213,-1,$WS_EX_LAYERED)
    $bild_id = GUICtrlCreatePic("Ebay_Widget.gif", 0, 0, 110,70)
    $suchtext_id = GUICtrlCreateInput("", 32, 40, 73, 21)
    GUISetState(@SW_SHOW)

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

    GUICtrlSetBKColor($bild_id,$GUI_BKCOLOR_TRANSPARENT)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $suchtext_id
    $suchtext = StringReplace(GUICtrlRead($suchtext_id)," ","+")
    $suchtext = StringReplace($suchtext,"Ä","%C4",0,1)
    $suchtext = StringReplace($suchtext,"ä","%E4",0,1)
    $suchtext = StringReplace($suchtext,"Ö","%D6",0,1)
    $suchtext = StringReplace($suchtext,"ö","%F6",0,1)
    $suchtext = StringReplace($suchtext,"Ü","%DC",0,1)
    $suchtext = StringReplace($suchtext,"ü","%FC",0,1)
    $suchtext = StringReplace($suchtext,"ß","%DF",0,1)
    ShellExecute ("http://search.ebay.de/search/search.dll?from=R40&_trksid=m37&satitle=" & $suchtext & "&category0=")
    GUICtrlSetData($suchtext_id,"")
    EndSwitch
    WEnd

    [/autoit]

    Jetzt muss ich das Widget noch verschiebbar machen und dann kann ich die Titelleiste ausblenden...

    Hier noch das GIF, falls es sich jemand ansehen möchte

    Bilder

    • Ebay_Widget.gif
      • 1,63 kB
      • 110 × 70
  • GUI Hintergrund transparent für Ebay_Widget

    • Micha_he
    • 2. Februar 2008 um 15:09

    Vielleicht eine Idee,... das Bild ist ein transparente GIF und das Inputfeld kann darauf liegen. Mal sehen ob ich nach der BuLi das Picture-Control durchsichtig bekomme. Ich dachte dann sehe ich wieder nur den grauen Hintergrund des GUI !?

  • GUI Hintergrund transparent für Ebay_Widget

    • Micha_he
    • 2. Februar 2008 um 14:46

    Genau, ich möchte ein GUI erzeugen, wovon später nur ein Picture-Control und ein Input-Control zu sehen ist. Das Systemmenue bekomme ich ja später mit $WS_POPUP weg, nur wie bekomme ich es hin, das ich durch das GUI hindurch, den Desktop sehen kann ?

  • GUI Hintergrund transparent für Ebay_Widget

    • Micha_he
    • 2. Februar 2008 um 14:28

    Ich versuche krampfhaft den Hintergrund eines GUI transparent einzustellen. Aber ich bekomme es mit folgendem Versuch nicht hin.

    [autoit]

    #include <GUIConstants.au3>

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

    $Gui1 = GUICreate("Fenster1",200,60,300,200,-1,$WS_EX_TRANSPARENT)
    $Input = GUICtrlCreateInput("",10,10,180,20)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Hat jemand eine Idee ?

  • Aktuelle Uhrzeit

    • Micha_he
    • 31. Januar 2008 um 22:01

    Bei flimmert weder die alte noch die neue Funktion. Es liegt also wohl doch am Tab-Element !

  • Aktuelle Uhrzeit

    • Micha_he
    • 31. Januar 2008 um 18:41

    Ich hab das Script mal auf das notwendigste reduziert und festgestellt das es scheinbar mit der Farbe (Hintergrund) zu tun hat. Wenn die Uhr im grauen Fenster läuft, flackert bei mir nichst mehr.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <date.au3>

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

    $GUI = GUICreate("Time Box",300,200, -1, -1)
    $Input0 = GUICtrlCreateLabel("Zeit in DE", 8, 30, 300, 30)
    $Input1 = GUICtrlCreateLabel("TAG", 8, 55, 300, 30)
    $Input2 = GUICtrlCreateLabel("Stunde", 8, 80, 300, 30)
    $Input3 = GUICtrlCreateLabel("Zeit in Korea", 8, 110, 300, 30)
    $Input4 = GUICtrlCreateLabel("TAG", 8, 135, 300, 30)
    $Input5 = GUICtrlCreateLabel("Stunde", 8, 160, 300, 30)
    AdlibEnable("_DateUpdate",500)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _DateUpdate()
    $date = _NowCalc ( )
    $theirdate = _DateAdd("h",8,$date)
    GUICtrlSetData($Input2,_DateTimeFormat($date,5))
    GUICtrlSetData($Input1, _DateTimeFormat($date,1))
    GUICtrlSetData($Input5,_DateTimeFormat($theirdate,5))
    GUICtrlSetData($Input4, _DateTimeFormat($theirdate,1))
    EndFunc

    [/autoit]
  • Button ist nicht transparent

    • Micha_he
    • 31. Januar 2008 um 15:45

    Ich hätte es wie folgt geschrieben:

    Spoiler anzeigen
    [autoit]

    #include<bla.au3>

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

    Global $alleVariablen

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

    GUICreate('blabla')

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

    While 1 ; Hauptprogramm
    $Msg = GUIGetMsg(1)
    Select
    Case $Msg[0] = $bla
    $bla = 1
    Case $Msg[0] = $miau
    $bla=2
    Case $Msg[0] = $Wuff
    $wuff = 7
    Case $Msg[0] = $GUI_EVENT_CLOSE
    Exit
    EndSelect

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

    Unterprogramm1() ; rufe Unterprogramm1 IMMER auf
    Unterprogramm2() ; rufe Unterprogramm2 IMMER auf
    ; Unterprogramm3() ; wird nicht mehr gebraucht

    If $bla = 1 Then ; rufe Unterprogramm nur auf wenn...
    Unterprogramm15()
    EndIf

    WEnd

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

    Func Unterprogramm1()
    ; irgendwelche Befehle
    EndFunc ; bis dann EndFunc erreicht und wieder ins Hauptprogramm zurückgekehrt wird

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

    Func Unterprogramm2()
    ; irgendwelche Befehle
    EndFunc

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

    Func Unterprogramm15()
    ; irgendwas tun ggf. $bla=0 sonst ruft sich unterprogramm15() immer wieder selbst auf
    EndFunc

    [/autoit]
  • Schreiben in eine XML Datei

    • Micha_he
    • 30. Januar 2008 um 11:39

    Komfortabel mögen diese Dateiänderungen nicht sein, aber wenn Du das einmal richtig drauf hast, kannst Du jede Datei ändern, egal ob ini, txt, xml, html, bin oder andere.

    Ist eigentlich immer der gleiche Ablauf:
    - Datei(en) öffnen (fileopen)
    - Schleife starten
    - Daten lesen (fileread, filereadline)
    - Daten ggf. ändern (If-Funktion, StringMid, StringReplace u.a.)
    - Daten schreiben (filewrite, filewriteline)
    - Schleife beenden
    - Datei(en) schließen (fileclose)
    (jedenfalls grob gesehen)

    Meist ist das mit 10 Zeilen Script erledigt. Und wenn Du eine UDF oder ähnliches benutzt mag das komfortabler sein, aber wenn die UDF dann nicht ganz genau das macht was Du brauchst, sitzt Du wieder auf dem Schlauch.

  • FTP Ordner auslesen + Download

    • Micha_he
    • 25. Januar 2008 um 12:34

    Deine Zeilen 18,20,22 müssen vor die For-Schleife zwischen Zeile 57 und 58.

    Die Variablen müssen meiner Meinung nach dann auch nur Local sein, weil sie außerhalb der Funktion nicht gebraucht werden.
    Außerdem ist die For-Schleife überflüssig, wenn man nur 1 Download macht ( es wird nur $FileToDownload[1] benutzt). Oder habe ich weiter Inputfelder für Demonnamen übersehen ?

    Prinzipiell sollte man alle sich verändernden Variablen der Zeilen 17-24, hinter das "Case $button" der GUI-While-Wend-Schleife oder in die Funktion "_Download()" packen.

  • Was coded ihr noch?

    • Micha_he
    • 24. Januar 2008 um 18:34

    ich noch: Windows-Batch, Linux-Scripte, HTML, VBS (WSH) und VBA (hauptsächlich MS Access).

  • Dos Programm mit drei Parametern automatisieren

    • Micha_he
    • 24. Januar 2008 um 09:24

    Include fehlt !

  • Zwei parallele Schleifen

    • Micha_he
    • 24. Januar 2008 um 09:04

    @Davor: "If $hour=7 And $min < 5 Then" würde die Funktion z.B. zwischen 7:00 und 7:05 starten. Das Sollte doch reichen, oder ?
    Ansonsten wäre auch ein Aufbau wie folgt machbar:

    - wenn $hour >= 7 und fertig = "FALSE" dann starten
    - wenn Funktion Ende dann Variable fertig auf "True" setzen
    - wenn fertig = "True" und $hour < 7 dann fertig = "False"

    So läuft die Funktion 1x nach 7:00 Uhr und wird wieder zwischen 0:00 und 6:59 aktiviert.

  • Dos Programm mit drei Parametern automatisieren

    • Micha_he
    • 23. Januar 2008 um 20:50

    So ganz genau weiß ich nicht was Du damit meinst. Aber wenn Du bestimmte Dateien in einem Ordner wählen möchtest, war doch mein Beispiel ([ offen ] Dos Programm mit drei Parametern automatisieren), wie geschaffen dafür.
    Oder was willst Du genau ?

    P.S.: Welches Feld "Lesen" ? In deinem letzten Script war "$lesen" noch ein Button !

  • Zwei parallele Schleifen

    • Micha_he
    • 23. Januar 2008 um 15:56

    Ich würde einfach in der While-Wend-Schleife eine 2. If-Anweisung schreiben die prüft ob es 7:00 Uhr ist. (@hour, @min)

  • Dos Programm mit drei Parametern automatisieren

    • Micha_he
    • 23. Januar 2008 um 09:25

    Versuch es mal so (ist aber nicht getestet):

    [autoit]

    $pfad = "C:\inv-Dateien\"
    $muster = "*.out"
    $ausgabe = ""
    $suche = FileFindFirstFile($pfad & $muster)
    If $suche <> -1 Then
    While 1
    $datei = FileFindNextFile($suche)
    If @error Then ExitLoop
    $ausgabe &= $pfad & $datei & @CRLF ; Hier kann ggf. der Pfad auch weggelassen werden
    Wend
    FileClose($suche)
    Msgbox(0,"Ausgabe der gefundenen Dateien", $ausgabe)
    EndIf

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