mach mal anstatt der 1 und 0 bei guictrlsetstate: $GUI_CHECKED und $GUI_UNCHECKED (zeilen: 122, 123, 130,131)
Beiträge von PCKing
-
-
mach mal anstatt
[autoit]GUISetState(@SW_SHOW)
[/autoit]
[autoit]
das hier:GUISetState(@SW_SHOW, $Form1)
[/autoit]
und du wirst sehen: die GUI wird angezeigt -
du müsstest das wenn dann so formulieren:
[autoit]If @OSLang = 0409 Or @OSLang = 0809 Or @OSLang = "0c09" ...............
[/autoit] -
wenn ichs richtig verstanden hab meinst du das in etwa so:
Spoiler anzeigen
[autoit]Opt("TrayMenuMode", 1) ; Default tray menu items (Script Paused/Exit) will not be shown.
[/autoit] [autoit][/autoit] [autoit]$oWMP = ObjCreate("WMPlayer.OCX")
[/autoit] [autoit][/autoit] [autoit]$Radio = TrayCreateMenu("Radiolist")
[/autoit] [autoit][/autoit] [autoit]
$radio1 = TrayCreateItem("Technobase.fm", $Radio, -1,1)
$radio2 = TrayCreateItem("Housetime.fm", $Radio, -1,1)
$radio3 = TrayCreateItem("Hardbase.fm", $Radio, -1,1)
$radio4 = TrayCreateItem("Happy Hardcore Radio", $Radio, -1,1)
$radio5 = TrayCreateItem("Coretime.fm", $Radio, -1,1)
$radio6 = TrayCreateItem("Afterhours.fm", $Radio, -1,1)
$cmdPlay = TrayCreateItem("Play")
$cmdStop = TrayCreateItem("Stop")While 1
[/autoit]
$tmsg = TrayGetMsg()
Switch TrayGetMsg()
Case $radio1
$oWMP.URL = "http://listen.technobase.fm/tunein-dsl-asx"
$oWMP.controls.play()
$zeit = TimerInit()
Case $radio2
$oWMP.URL = $urlHb
$oWMP.controls.play()
$zeit = TimerInit()
Case $radio3
$oWMP.URL = $urlHhr
$oWMP.controls.play()
$zeit = TimerInit()
Case $radio4
$oWMP.URL = $urlTb
$oWMP.controls.play()
$zeit = TimerInit()
Case $radio5
$oWMP.URL = $urlCt
$oWMP.controls.play()
$zeit = TimerInit()
Case $radio6
$oWMP.URL = $urlAh
$oWMP.controls.play()
$zeit = TimerInit()
Case $cmdStop
$oWMP.controls.stop()
Case $cmdPlay
$oWMP.controls.play()
EndSwitch
WEndIch Garantiere für Fehler
//P.S.: das is der code, den ich benutzt hatte, wollte jetzt nicht jeden sender einzelnd testen
-
Zitat
Leider komme ich bei einem Problem nicht weiter und zwar möchte ich, dass der Bot während eines vom Benutzer festgelegten Zeitintervalls die Taste "F" für die Dauer des Zeitintervalls simuliert, als wenn ich auf meinem Keyboard diese Taste gedrückt halte und er nur "FFFFFFFFFFFFFFFFFFFF..." simuliert. Bei mir drückt er meist nur ein F, was ja nicht mein Ziel war.
Ließ mal das: http://www.autoit.de/index.php?page=Forumrules
-
ich rate mal: in zeile 434 steht hinterm WEnd noch irgendwas oder irgendeine variable ist falsch deklariert, nur ohne code kann man nicht viel zu sagen(ich zu mindestens).
-
man kann mit GUICtrlDelete einzelne buttons oder texte in einem gui löschen, und mit GUIDelete das ganze fenster, aber so wie du das meinst (wenn ichs richtig verstanden hab) geht das sonst nicht....... glaub ich
-
das neue script funktioniert einwandfrei, das einzigste, was du machen MUSST ist beim clienten port überprüfen(der muss der gleiche sein, wie beim server) und ob die ip gleich ist
-
meinst du HEX-codes?
-
das GDIPlus blockiert das GUICtrlCreatePic kommando! wenn du die ganzen GDI+ kommandos wegmachst dann klappts, keine ahnung warum
-
guck dir mal:
[autoit]#NoTrayIcon
[/autoit]an
-
wenn du es so machen willst, geht das hier etwas schneller:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <StaticConstants.au3>
#include <WindowsConstants.au3>HotKeySet("{w}","_WalkUp")
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{a}","_WalkLeft")
HotKeySet("{d}","_WalkRight")
HotKeySet("{s}","_WalkDown")#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Game.Test", 625, 443, 192, 124)
$Label1 = GUICtrlCreateLabel("", 72, 56, 356, 297)
GUICtrlSetBkColor(-1, 0x00FF00)
$Label2 = GUICtrlCreateLabel("", 424, 56, 140, 113)
GUICtrlSetBkColor(-1, 0x00FF00)
$Player = GUICtrlCreateLabel("", 100, 320, 12, 20)
GUICtrlSetBkColor(-1, 0x000000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitEndSwitch
[/autoit] [autoit][/autoit] [autoit]
WEndFunc _WalkUp()
[/autoit] [autoit][/autoit] [autoit]
$pos = ControlGetPos("","",$Player)
If $pos[1] <> 0 Then
GUICtrlSetPos($Player,$pos[0],$pos[1] - 2)
EndIf
EndFuncFunc _WalkDown()
[/autoit] [autoit][/autoit] [autoit]
$pos = ControlGetPos("","",$Player)
If $pos[1] <> 422 Then
GUICtrlSetPos($Player,$pos[0],$pos[1] + 2)
EndIf
EndFuncFunc _WalkLeft()
[/autoit] [autoit][/autoit] [autoit]
$pos = ControlGetPos("","",$Player)
If $pos[0] <> 0 Then
GUICtrlSetPos($Player,$pos[0] - 2,$pos[1])
EndIf
EndFuncFunc _WalkRight()
[/autoit]
$pos = ControlGetPos("","",$Player)
If $pos[0] <> 612 Then
GUICtrlSetPos($Player,$pos[0] + 2,$pos[1])
EndIf
EndFuncdie funktion _CheckPosIn lädt zu lange, deshalb laggt das ganze sich in den tod und nimmt den cpu mit
-
Zitat von der Hilfe
Um eine Endlosschleife zu erhalten, kann man eine Zahl ungleich Null als expression verwenden.
soll heissen: du kanns nach dem While irgendeine zahl nehmen, die NICHT 0 ist
-
haha, erster, EIN WUNDER!!!
Sender
[autoit]Global $IP
[/autoit]
Global $Connect = -1 ;erstmal das TCPConnect auf -1 setzen
Global $Socket
$IP = InputBox("IP", "IP des anderen:", "192.168.0.55")
TCPStartup()
If @error = -1 Then
MsgBox(0, "Error", "Folgender Fehler ist aufgetreten:" & @error)
EndIf
Do
$Connect = TCPConnect($IP, 6221);damit er es solange macht, bis er auch eine connection hat...
Until $Connect <> -1 ;machen wir das in eine Do ... Until Schleife
;die @error abfrage ersparen wir uns damit
While 1 ;die Variable $1 wird hier nicht benötigt (siehe Zeile 15)
$Text = InputBox("Text", "Die Nachricht")
If @error = 1 Then ;wenn der Abbrechen button gedrückt wird dann...
Exit ;beendet er das programm, damit die InputBox nicht immer wieder kommt
EndIf
If $Text <> "" Then ;TCPListen KANN nichts senden, NUR empfangen.... ok?
TCPSend($Connect, $Text);das wird über TCPConnect gesendet, anders gehts mitn senden via TCP nicht
EndIf
WEnd ;Fertig ist der Sender, hab 8 Zeilen entfernt, 2 zeilen neugemacht und 2 Variablen verändertEmpfänger
[autoit]#include <iNet.au3>
[/autoit]
Global $Msg, $accept, $eingehendeIP, $name, $Socket ;ich finde, das wenn man die Variablen mit Global deklariert, sollte man dies am anfang, nach den includes tun
TCPStartup()
If @error = -1 Then
MsgBox(0, "Error", "Folgender Fehler ist aufgetreten:" & @error)
EndIf
$Socket = TCPListen(@IPAddress1, 6221)
If @error = -1 Then
MsgBox(0, "Error", "Folgender Fehler ist aufgetreten:" & @error)
EndIf
Do
$accept = TCPAccept($Socket);hier, wie beim Sender warten, bis eine verbindung entsteht
Until $accept <> -1
While 1
$Msg = TCPRecv($accept, 9999);ich habe die TCPAccept variable verändert, also auch die hier
If $Msg <> "" Then;hier der error weg
$eingehendeIP = SockettoIP($accept)
$name = _TCPIpToName($eingehendeIP)
MsgBox(0, "Nachricht", $name & " schrieb folgendes an dich:" & @CRLF & $Msg)
EndIf
WEnd
;das hier drunte stämpel ich einfach mal als richtig ab
Func SocketToIP($SHOCKET) ;== Ip des Senders erhalten s. Hilfe "Function Reference TCPRecv"
Local $sockaddr, $aRet
$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
$aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
"ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr))
If Not @error And $aRet[0] = 0 Then
$aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
If Not @error Then $aRet = $aRet[0]
Else
$aRet = 0
EndIf
$sockaddr = 0
Return $aRet
EndFunc ;so 7 Zeilen entfernt, 1 Variable verändert und 2 Zeilen neugemacht
so, Beschreibung liegt im Code bei -
ich habs mal so gemacht:
Spoiler anzeigen
[autoit]#include <File.au3>
[/autoit]
_FileCreate(@DesktopDir & "/test.bat")
$file = FileOpen(@DesktopDir & "/test.bat",2)
FileWriteLine($file,"@echo off")
FileWriteLine($file,"")
FileWriteLine($file,'shutdown s -t 10 -c "Shutdown"') -
guck dir mal das an:
[autoit]#include <IE.au3>
[/autoit]
_IECreate()das sollte dir eigentlich helfen
-
es geht auch mit dem converter von autoit, der ist normalerweise in: Start => Alle Programme => AutoIt v3 => Compile Script to .exe
habs im anhang im bild mal rot markiert -
ich hab mir das mal angeguckt. ich hoffe, das ich das richtig verstanden habe, du meinst das doch so: zinsen werden ausgerechnet und mit dem, was im jahr zuvor schon drauf war addiert.
mit dem nächsten jahr soll er das gleiche machen, bis er am ende der zeit angekommen ist.
wenn das so richtig ist, dann funktioniert das doch auch, denn genau das macht das programm bis jetzt.
also bei mir macht es das zu mindest, von daher bin ich grad am rätseln, was du genau jetzt willst -
bei
[autoit]Opt("TrayAutoPause",0)
[/autoit]deaktiviert er das nur und bei
[autoit]Opt("TrayMenuMode",1)
[/autoit]löscht der alles, was vorher in der liste steht
-
versuch das mal:
[autoit]Opt("TrayMenuMode",1)
[/autoit]