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... ![]()
Beiträge von Micha_he
-
-
Na hätte ich gewusst da Du nur die Ausgabe eines Commandline-Befehls zurückhaben willst,.....
[autoit]
Hier ein 'Ping'-Beispiel#include <GUIConstants.au3>
[/autoit][autoit][/autoit][autoit]$rueckgabe = ""
[/autoit][autoit][/autoit][autoit]
$fehler = ""$pid = run(@comspec & " /k ping localhost","",@SW_HIDE,6)
[/autoit][autoit][/autoit][autoit]While 1
[/autoit][autoit][/autoit][autoit]
$rueckgabe &= StdOutRead($pid)
If @error Then ExitLoop
$fehler &= StdErrRead($pid)
sleep(10)
WendMsgbox(0,"","Ausgabe : " & $rueckgabe & @CRLF & @CRLF & "Fehlercode : " & $fehler)
[/autoit] -
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 !
-
Fertig ist das Ebay_Widget (notwendiges Bild ist in #6):
[autoit]#NoTrayIcon
[/autoit][autoit][/autoit][autoit]
#include <GUIConstants.au3>; INI-Datei definieren Priorität: Userprofile vor lokaler Datei
[/autoit][autoit][/autoit][autoit]
If FileExists(@userprofiledir & "\Ebay_Widget.ini") then
$inifile = @userprofiledir & "\Ebay_Widget.ini"
else
$inifile = @scriptdir & "\Ebay_Widget.ini"
endif; GUI erzeugen mit Contextmenue "Beenden"
[/autoit][autoit][/autoit][autoit]
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); alte Fensterposition laden und GUI verschieben
[/autoit][autoit][/autoit][autoit]
if $inifile <> "" then
$WinXPos = IniRead($inifile,"Startwerte","WinXPos","")
$WinYPos = IniRead($inifile,"Startwerte","WinYPos","")
If $WinXPos <> "" And $WinYPos <> "" then WinMove("Ebay_Widget","",$WinXPos,$WinYPos)
endif; warten....
[/autoit][autoit][/autoit][autoit]
While 1
Sleep(100)
WEnd; eingegebenen Begriff bei Ebay suchen
[/autoit][autoit][/autoit][autoit]
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; Danke für diese Funktion um das rahmenlose Fenster zu verschieben
[/autoit][autoit][/autoit][autoit]
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; Fensterposition merken und Programm beenden
[/autoit]
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 -
Wir wär es mit einer Frage die man verstehen kann !
-
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)
[/autoit][autoit][/autoit][autoit]
$bild_id = GUICtrlCreatePic("Ebay_Widget.gif", 0, 0, 110,70)
$suchtext_id = GUICtrlCreateInput("", 32, 40, 73, 21)
GUISetState(@SW_SHOW)GUICtrlSetBKColor($bild_id,$GUI_BKCOLOR_TRANSPARENT)
[/autoit][autoit][/autoit][autoit]While 1
[/autoit]
$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
WEndJetzt 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
-
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 !?
-
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 ?
-
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)
[/autoit][autoit][/autoit][autoit]
$Input = GUICtrlCreateInput("",10,10,180,20)
GUISetState(@SW_SHOW)While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEndHat jemand eine Idee ?
-
Bei flimmert weder die alte noch die neue Funktion. Es liegt also wohl doch am Tab-Element !
-
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>
[/autoit] [autoit][/autoit] [autoit]
#include <date.au3>$GUI = GUICreate("Time Box",300,200, -1, -1)
[/autoit] [autoit][/autoit] [autoit]
$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)While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEndFunc _DateUpdate()
[/autoit]
$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 -
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
[/autoit] [autoit][/autoit] [autoit]
$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
EndSelectUnterprogramm1() ; rufe Unterprogramm1 IMMER auf
[/autoit] [autoit][/autoit] [autoit]
Unterprogramm2() ; rufe Unterprogramm2 IMMER auf
; Unterprogramm3() ; wird nicht mehr gebraucht
If $bla = 1 Then ; rufe Unterprogramm nur auf wenn...
Unterprogramm15()
EndIf
WEndFunc Unterprogramm1()
[/autoit] [autoit][/autoit] [autoit]
; irgendwelche Befehle
EndFunc ; bis dann EndFunc erreicht und wieder ins Hauptprogramm zurückgekehrt wirdFunc Unterprogramm2()
[/autoit] [autoit][/autoit] [autoit]
; irgendwelche Befehle
EndFuncFunc Unterprogramm15()
[/autoit]
; irgendwas tun ggf. $bla=0 sonst ruft sich unterprogramm15() immer wieder selbst auf
EndFunc -
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.
-
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.
-
ich noch: Windows-Batch, Linux-Scripte, HTML, VBS (WSH) und VBA (hauptsächlich MS Access).
-
-
@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.
-
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 !
-
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)
-
Versuch es mal so (ist aber nicht getestet):
[autoit]$pfad = "C:\inv-Dateien\"
[/autoit]
$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