Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 08:07

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



AutoIt Frage

Discussion on AutoIt Frage within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Sep 2010
Posts: 210
Received Thanks: 45
Cool 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 ...
Lighthex is offline  
Old 11/06/2010, 10:44   #2
 
ZaZiZu's Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 832
Received Thanks: 136
Quote:
Originally Posted by Lighthex View Post
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
ZaZiZu is offline  
Old 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
Lighthex is offline  
Old 11/06/2010, 12:49   #4
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
timer? :>
MoepMeep is offline  
Old 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
Lighthex is offline  
Old 11/06/2010, 13:11   #6
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Script?
PenGuin :O is offline  
Old 11/06/2010, 13:14   #7
 
Neon™'s Avatar
 
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.
Neon™ is offline  
Old 11/06/2010, 14:01   #8
 
PenGuin :O's Avatar
 
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?
PenGuin :O is offline  
Old 11/06/2010, 14:05   #9
 
Neon™'s Avatar
 
elite*gold: 50
Join Date: Feb 2009
Posts: 2,173
Received Thanks: 1,766
Quote:
Originally Posted by pinguin94 View Post
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)
Neon™ is offline  
Old 11/06/2010, 14:18   #10
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Quote:
Originally Posted by Neon™ View Post
: 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
PenGuin :O is offline  
Old 11/06/2010, 14:34   #11
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
Quote:
Originally Posted by Lighthex View Post
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 ;OK
        ok
()
    Case 
$iMsgBoxAnswer ;Cancel
        
Exit
EndSelect

Func ok
()
$Form5 GUICreate("shutdown"23030403379BitOr($WS_BORDER$WS_POPUP), BitOR(""$WS_EX_TOOLWINDOW))
$Label1 GUICtrlCreateLabel("computer wird in "8148417)
$Label2 GUICtrlCreateLabel("Label2"921415017)
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 
omer36 is offline  
Old 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"274159192124)
$Label1 GUICtrlCreateLabel("Pc herunterfahren :"16209517)
$Radio1 GUICtrlCreateRadio("in"120811317)
$Radio2 GUICtrlCreateRadio("um,"1203211317)
$Combo1 GUICtrlCreateCombo("Stunde"8568125)
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"96568125)
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"184568125)
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(""88825721BitOR($ES_AUTOHSCROLL,$ES_READONLY))
$Button1 GUICtrlCreateButton("Start/Stop"812025925$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
Lighthex is offline  
Old 11/06/2010, 17:14   #13
 
lolkop's Avatar
 
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
lolkop is offline  
Old 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
Lighthex is offline  
Old 11/06/2010, 20:21   #15
 
lolkop's Avatar
 
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)
lolkop is offline  
Thanks
2 Users
Reply




All times are GMT +1. The time now is 08:07.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.