|
You last visited: Today at 08:07
Advertisement
AutoIt Frage
Discussion on AutoIt Frage within the AutoIt forum part of the Coders Den category.
11/06/2010, 10:38
|
#1
|
elite*gold: 0
Join Date: Sep 2010
Posts: 210
Received Thanks: 45
|
AutoIt Frage
Hallo ich bins wiedermal,
ehm meine neuen Probleme sind :
Ich habe ein GUI in dem ein Paar Labels sind und diese Labels werden durch GUICtrlSetData aktualisiert und jetzt werden die Labels so schnell aktualisiert das es flakert....
Hättet ihr dafür eine Lösung ?
Ich möchte ein Tool schreiben dies bei einer bestimmten Zeit herrunterfährt,also bei einer Zeit die der Benutzer auswählen kann und die restliche Zeit soll in einem Label angezeigt werden...
Ich hoffe ihr könnt mir helfen
Danke ...
|
|
|
11/06/2010, 10:44
|
#2
|
elite*gold: 0
Join Date: Jul 2008
Posts: 832
Received Thanks: 136
|
Quote:
Originally Posted by Lighthex
Hallo ich bins wiedermal,
ehm meine neuen Probleme sind :
Ich habe ein GUI in dem ein Paar Labels sind und diese Labels werden durch GUICtrlSetData aktualisiert und jetzt werden die Labels so schnell aktualisiert das es flakert....
Hättet ihr dafür eine Lösung ?
Ich möchte ein Tool schreiben dies bei einer bestimmten Zeit herrunterfährt,also bei einer Zeit die der Benutzer auswählen kann und die restliche Zeit soll in einem Label angezeigt werden...
Ich hoffe ihr könnt mir helfen
Danke ...
|
ist bei dir in einer schleife ohne speedlimit
deswegen empfehle ich dir irgendwo ein sleep(XXXX) zwischenzuschieben
am besten halt mit 1000, also in 1 sekunde-schritten
|
|
|
11/06/2010, 10:46
|
#3
|
elite*gold: 0
Join Date: Sep 2010
Posts: 210
Received Thanks: 45
|
Naja dies ist ein Bot mit anzeige dann würde der Bot 1Skunde lang immer wieder stoppenn ,deswegen ist das nicht tauglich
|
|
|
11/06/2010, 12:49
|
#4
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
|
timer? :>
|
|
|
11/06/2010, 13:11
|
#5
|
elite*gold: 0
Join Date: Sep 2010
Posts: 210
Received Thanks: 45
|
Hmm ok und ehm ...
Das mit dem Shutdown ....
also das die restliche zeit angezeigt wird
|
|
|
11/06/2010, 13:11
|
#6
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Script?
|
|
|
11/06/2010, 13:14
|
#7
|
elite*gold: 50
Join Date: Feb 2009
Posts: 2,173
Received Thanks: 1,766
|
Pythagoras
@Topic: Ein bissche eigene Initiative wäre angebracht. Es soll ja schließlich DEIN Bot werden.
|
|
|
11/06/2010, 14:01
|
#8
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Quote:
Hallo ich bins wiedermal,
ehm meine neuen Probleme sind :
Ich habe ein GUI in dem ein Paar Labels sind und diese Labels werden durch GUICtrlSetData aktualisiert und jetzt werden die Labels so schnell aktualisiert das es flakert....
Hättet ihr dafür eine Lösung ?
Ich möchte ein Tool schreiben dies bei einer bestimmten Zeit herrunterfährt,also bei einer Zeit die der Benutzer auswählen kann und die restliche Zeit soll in einem Label angezeigt werden...
Ich hoffe ihr könnt mir helfen
Danke ...
|
Quote:
Pythagoras
@Topic: Ein bissche eigene Initiative wäre angebracht. Es soll ja schließlich DEIN Bot werden.
|
o.O
Entweder bin ich schon wieder schwer von Begriff, aber was hat das mit Mathe zutun?
|
|
|
11/06/2010, 14:05
|
#9
|
elite*gold: 50
Join Date: Feb 2009
Posts: 2,173
Received Thanks: 1,766
|
Quote:
Originally Posted by pinguin94
o.O
Entweder bin ich schon wieder schwer von Begriff, aber was hat das mit Mathe zutun? 
|
Ich musste diesen Kommentar einfach posten
Jetzt aber mal ernsthaft: Google (Timer, AutoIt, Countdown)
|
|
|
11/06/2010, 14:18
|
#10
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Quote:
Originally Posted by Neon™
: Google (Timer, AutoIt, Countdown)
|
Oder einfach auf bestimmte Fälle reagieren.
WM_COMMAND, WM_NOTIFY hilft da manchmal, oder auch einfach eine Variable in der ein alter Wert geschrieben wurde.
Deshalb will ich ja das Script sehen, damit man dazu was konkretes sagen aknn
|
|
|
11/06/2010, 14:34
|
#11
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
Quote:
Originally Posted by Lighthex
Hallo ich bins wiedermal,
ehm meine neuen Probleme sind :
Ich habe ein GUI in dem ein Paar Labels sind und diese Labels werden durch GUICtrlSetData aktualisiert und jetzt werden die Labels so schnell aktualisiert das es flakert....
Hättet ihr dafür eine Lösung ?
Ich möchte ein Tool schreiben dies bei einer bestimmten Zeit herrunterfährt,also bei einer Zeit die der Benutzer auswählen kann und die restliche Zeit soll in einem Label angezeigt werden...
Ich hoffe ihr könnt mir helfen
Danke ...
|
PHP Code:
#RequireAdmin
;#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$timer = InputBox("Info", "Wann soll der Computer runtergefahren werden?" & @CRLF & "(Bitte Zahl in sec. angeben!)")
If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
$iMsgBoxAnswer = MsgBox(65,"Bestätigen", $timer & " sek")
Select
Case $iMsgBoxAnswer = 1 ;OK
ok()
Case $iMsgBoxAnswer = 2 ;Cancel
Exit
EndSelect
Func ok()
$Form5 = GUICreate("shutdown", 230, 30, 403, 379, BitOr($WS_BORDER, $WS_POPUP), BitOR("", $WS_EX_TOOLWINDOW))
$Label1 = GUICtrlCreateLabel("computer wird in ", 8, 14, 84, 17)
$Label2 = GUICtrlCreateLabel("Label2", 92, 14, 150, 17)
GUISetState(@SW_SHOW)
For $i = $timer To 0 Step -1
GUICtrlSetData($Label2, $i & " sek heruntergefahren")
If $i = 0 Then MsgBox(0, "", "", "1")
Sleep(1000)
Next
Shutdown(1)
EndFunc
|
|
|
11/06/2010, 14:39
|
#12
|
elite*gold: 0
Join Date: Sep 2010
Posts: 210
Received Thanks: 45
|
PHP Code:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 274, 159, 192, 124)
$Label1 = GUICtrlCreateLabel("Pc herunterfahren :", 16, 20, 95, 17)
$Radio1 = GUICtrlCreateRadio("in", 120, 8, 113, 17)
$Radio2 = GUICtrlCreateRadio("um,", 120, 32, 113, 17)
$Combo1 = GUICtrlCreateCombo("Stunde", 8, 56, 81, 25)
GUICtrlSetData(-1, "0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24")
$Combo2 = GUICtrlCreateCombo("Minuten", 96, 56, 81, 25)
GUICtrlSetData(-1, "0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60")
$Combo3 = GUICtrlCreateCombo("Sekunde", 184, 56, 81, 25)
GUICtrlSetData(-1, "0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60")
$Input1 = GUICtrlCreateInput("", 8, 88, 257, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
$Button1 = GUICtrlCreateButton("Start/Stop", 8, 120, 259, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
So soll das aussehen und man kann den eben wählen zwischenin so und so viuelen stunden oder um dieser uhrzeit wenn in dann eben wie ein countdown und dieser coutdown soll im input angezeigt werden und wenn um dnn soll die restzeit in diesem input angezeigt werden
|
|
|
11/06/2010, 17:14
|
#13
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
ich würde jeweils die restzeit in sekunden ausrechnen, und das denn ausgeben...
Code:
Dim $timer, $go=False
GUICreate("Form1", 274, 159, -1, -1)
GUICtrlCreateLabel("Pc herunterfahren :", 16, 20, 95, 17)
$Radio1 = GUICtrlCreateRadio("in", 120, 8, 113, 17)
GUICtrlSetState(-1, 1)
$Radio2 = GUICtrlCreateRadio("um,", 120, 32, 113, 17)
$Combo1 = GUICtrlCreateCombo("Stunde", 8, 56, 81, 25)
GUICtrlSetData(-1, BuildComboNumber(0,24))
$Combo2 = GUICtrlCreateCombo("Minuten", 96, 56, 81, 25)
GUICtrlSetData(-1, BuildComboNumber(0,60))
$Combo3 = GUICtrlCreateCombo("Sekunde", 184, 56, 81, 25)
GUICtrlSetData(-1, BuildComboNumber(0,60))
$Input1 = GUICtrlCreateInput("", 8, 88, 257, 21, 0x880)
$Button1 = GUICtrlCreateButton("Start/Stop", 8, 120, 259, 25)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $Button1
$go = Not $go
$timer = TimerInit()
Case Else
If $go Then
$std_read = GUICtrlRead($Combo1)
If $std_read = 'Stunden' Then $std_read=0
$min_read = GUICtrlRead($Combo2)
If $min_read = 'Minuten' Then $min_read=0
$sek_read = GUICtrlRead($Combo3)
If $sek_read = 'Sekunden' Then $sek_read=0
If BitAND(GUICtrlRead($Radio1),1) Then
$left = (($std_read*60*60*1000 + $min_read*60*1000 + $sek_read)*1000 - TimerDiff($timer))/1000
Else
$left = ($std_read*60*60*1000 + $min_read*60*1000 + $sek_read) - (@HOUR*60*60 + @MIN*60 + @SEC)
If $left < 0 Then $left += 24*60*60
EndIf
$std = Int($left / 60 / 60)
$min = Int($left / 60 - $std * 60)
$sek = Int($left - $min*60 - $std*60*60)
If $std>0 Then
GUICtrlSetData($Input1, $std&' Stunden '&$min&' Minuten '&$sek& ' Sekunden')
ElseIf $min>0 Then
GUICtrlSetData($Input1, $min&' Minuten '&$sek& ' Sekunden')
Else
GUICtrlSetData($Input1, $sek& ' Sekunden')
EndIf
If $left <= 0 Then
$go = Not $go
GUICtrlSetData($Input1, 'Good Bye')
;~ Shutdown(1)
EndIf
EndIf
EndSwitch
WEnd
Func BuildComboNumber($von,$bis)
Local $i, $return
For $i=$von To $bis
$return&=$i&'|'
Next
Return StringTrimRight($return,1)
EndFunc
|
|
|
11/06/2010, 19:51
|
#14
|
elite*gold: 0
Join Date: Sep 2010
Posts: 210
Received Thanks: 45
|
Ehm das verstehe ich nicht ...
kannst du das entweder erklären oder eine anderemoglichkeit
|
|
|
11/06/2010, 20:21
|
#15
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
also für um xx:xx:xx pc herunterfahren, sollte es doch leicht verständlich sein.
du rechnest du zeit gespeichert in @hour, @min und @sec um in sekunden.
eine minute hat 60 sekunden, eine stunde hat 60minuten.
willst du also stunden in sekunden umrechnen, rechnest du erst mal 60 und kommt kommst auch minuten. dann nochmal mal 60 und du hast sekunden
also @Hour*60*60 und du hast die stunden in sekunden umgewandelt.
für minuten reicht @min*60 und sekunden brauchst du garnichtmehr umwandeln.
das ganze addierst du nun und bekommst die aktuelle tageszeit in sekunden.
angenommen es ist 01:30:25uhr, so hast du 1*60*60 + 30*60 + 25 sekunden.
das selbe machst du jetzt mit den combo-boxen. (wieder in sekunden umrechnen auf die selbe art und weise.
jetzt kannst du einfach die aktuelle tageszeit von gewünschte shutdownzeit subtrahieren, und bekommst so die verbleibende zeit in sekunden.
um sekunden wieder als stunden, minuten, sekunden darzustellen, die umwandlung einfach einmal genau andersherum machen.
für stunden nimmst du die sekunden und dividierst durch 60*60.
die minuten sind der rest davon durch 60.
und die sekunden sind einfach der noch verbleibende rest.
angenommen du hast 5000 sekunden. dann rechnest du das durch 60*60
also 5000/(60*60) bzw 5000/60/60 und erhälst eine stunde.
eine stunde sind 1*60*60 (3600) sekunden. die kannst du jetzt schon von der zeit in sekunden abziehen.
dh du musst noch die restlichen 1400 sekunden in minuten und sekunden aufteilen.
für minuten einfach die 1400/60 rechnen und du erhälst 23 minuten.
das entspricht 23*60 (1380) sekunden.
die ziehst du nun wieder von den verbliebenen 1400 sekunden ab, und erhälst 20 verbleibende sekunden.
dh 5000sekunden = 1 Stunde, 23 Minuten und 20 Sekunden.
sollte soweit wohl verständlich sein.
mit dem anderen "herunterfahren in..." geht das genauso
da timer allerdings im millisekunden bereich arbeiten, musst du hier die zeit in millisekunden umrechnen. (ich habe das gesamte ergebnis dann einfach nochmal durch 1000 geteilt, und bekomme so wieder einen sekunden wert, den ich genauso darstellen kann)
|
|
|
All times are GMT +1. The time now is 08:07.
|
|