Beiträge von anno2008
-
-
Hi,
Spoiler anzeigen
[autoit];===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _ChangeScreenRes()
; Description: Changes the current screen geometry, colour and refresh rate.
; Version: 1.0.0.1
; Parameter(s): $i_Width - Width of the desktop screen in pixels. (horizontal resolution)
; $i_Height - Height of the desktop screen in pixels. (vertical resolution)
; $i_BitsPP - Depth of the desktop screen in bits per pixel.
; $i_RefreshRate - Refresh rate of the desktop screen in hertz.
; Requirement(s): AutoIt Beta > 3.1
; Return Value(s): On Success - Screen is adjusted, @ERROR = 0
; On Failure - sets @ERROR = 1
; Forum(s): http://www.autoitscript.com/forum/index.php?showtopic=20121
; Author(s): Original code - psandu.ro
; Modifications - PartyPooper
;
;===============================================================================_ChangeScreenRes(1024,768)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _ChangeScreenRes($i_Width = @DesktopWidth, $i_Height = @DesktopHeight, $i_BitsPP = @DesktopDepth, $i_RefreshRate = @DesktopRefresh)
[/autoit]
Local Const $DM_PELSWIDTH = 0x00080000
Local Const $DM_PELSHEIGHT = 0x00100000
Local Const $DM_BITSPERPEL = 0x00040000
Local Const $DM_DISPLAYFREQUENCY = 0x00400000
Local Const $CDS_TEST = 0x00000002
Local Const $CDS_UPDATEREGISTRY = 0x00000001
Local Const $DISP_CHANGE_RESTART = 1
Local Const $DISP_CHANGE_SUCCESSFUL = 0
Local Const $HWND_BROADCAST = 0xffff
Local Const $WM_DISPLAYCHANGE = 0x007E
If $i_Width = "" Or $i_Width = -1 Then $i_Width = @DesktopWidth ; default to current setting
If $i_Height = "" Or $i_Height = -1 Then $i_Height = @DesktopHeight ; default to current setting
If $i_BitsPP = "" Or $i_BitsPP = -1 Then $i_BitsPP = @DesktopDepth ; default to current setting
If $i_RefreshRate = "" Or $i_RefreshRate = -1 Then $i_RefreshRate = @DesktopRefresh ; default to current setting
Local $DEVMODE = DllStructCreate("byte[32];int[10];byte[32];int[6]")
Local $B = DllCall("user32.dll", "int", "EnumDisplaySettings", "ptr", 0, "long", 0, "ptr", DllStructGetPtr($DEVMODE))
If @error Then
$B = 0
SetError(1)
Return $B
Else
$B = $B[0]
EndIf
If $B <> 0 Then
DllStructSetData($DEVMODE, 2, BitOR($DM_PELSWIDTH, $DM_PELSHEIGHT, $DM_BITSPERPEL, $DM_DISPLAYFREQUENCY), 5)
DllStructSetData($DEVMODE, 4, $i_Width, 2)
DllStructSetData($DEVMODE, 4, $i_Height, 3)
DllStructSetData($DEVMODE, 4, $i_BitsPP, 1)
DllStructSetData($DEVMODE, 4, $i_RefreshRate, 5)
$B = DllCall("user32.dll", "int", "ChangeDisplaySettings", "ptr", DllStructGetPtr($DEVMODE), "int", $CDS_TEST)
If @error Then
$B = -1
Else
$B = $B[0]
EndIf
Select
Case $B = $DISP_CHANGE_RESTART
$DEVMODE = ""
Return 2
Case $B = $DISP_CHANGE_SUCCESSFUL
DllCall("user32.dll", "int", "ChangeDisplaySettings", "ptr", DllStructGetPtr($DEVMODE), "int", $CDS_UPDATEREGISTRY)
DllCall("user32.dll", "int", "SendMessage", "hwnd", $HWND_BROADCAST, "int", $WM_DISPLAYCHANGE, _
"int", $i_BitsPP, "int", $i_Height * 2 ^ 16 + $i_Width)
$DEVMODE = ""
Return 1
Case Else
$DEVMODE = ""
SetError(1)
Return $B
EndSelect
EndIf
EndFunc ;==>_ChangeScreenResNicht getestet, nur im englischen Forum gefunden, wo du das nächste mal auch suchen kannst :).
-
Hi,
ich hatte jetzt Zeit dein Spiel mal ausgiebig im Multiplayer Mode zu testen.
Ich kann es jetzt mit Controlern spielen :P.
Sehr schönes Game, und perfekt umgesetzt :), gefällt mir :). -
-
-
1. weis ich nicht ob meine Lösung die beste ist
ich hab da noch nie mit gearbeitet und einfach was aus der Hilfe zusammengebastelt.2. Was machst du da mit Seterror?
ZitatManually set the value of the @error macro.
Aber @error willst du doch auch nur benutzen, wenn ein Fehler auftritt. Das hat eingentlich keinen Sinn, return alleine langt.
Ansonsten kannst du sie benutzen, aber eine tolle Funktion, die man unbedingt veröffentlichen muss ist das nicht, aber mach wie du denkst :D.
Feel free to use
-
So ungefähr:
Spoiler anzeigen
[autoit]#include <Constants.au3>
[/autoit] [autoit][/autoit] [autoit]$read = _CMDRead("echo Test")
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0 ,"", $read)Func _CMDRead($command)
[/autoit] [autoit][/autoit] [autoit]
Local $line
$CMD = Run(@ComSpec & " /c " & $command, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)While 1
[/autoit]
$line &= StdoutRead($CMD)
If @error Then ExitLoop
Wend
Return $line
EndFuncDeine "Funktion" ist eigentlich eine Prozedur (es wird nur Code ausgeführt aber nix zurückgegeben)
-
Inputbox mit GuiCtrlRead auslesen , Label mit GuiCtrlSetData
Wo steht das was von GUICtrlGetData ^^.
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]Global $buffer = ''
[/autoit] [autoit][/autoit] [autoit]$Form1 = GUICreate("test", 140, 54, 489, 421)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Input1 = GUICtrlCreateInput("", 8, 8, 121, 21)
$Label1 = GUICtrlCreateLabel("", 8, 32, 100, 100)
GUISetState(@SW_SHOW)While 1
[/autoit]
If $buffer <> GUICtrlRead($Input1) Then GUICtrlSetData($Label1, GUICtrlRead($Input1))
$buffer = GUICtrlRead($Input1)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEndGeht auch noch auf tausend andere Möglichkeiten (wie Raupi gemeint hat mit Adlibenable, wenn es darum geht gleichzeitig noch andere Sachen auszuführen, aber mit WMCommand gehts auch.)
-
-
[Blockierte Grafik: http://www.gamezworld.de/bilder/weihnachten2004.jpg]
Frohe Weihnachten euch allen
[Blockierte Grafik: http://www.google.de/images/holidaytext.gif]
-
Hi und Willkommen im Forum
Hier mal ein ganz einfaches Beispiel:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Form1", 633, 447, 193, 125)
$Button1 = GUICtrlCreateButton("Test", 8, 8, 617, 433, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
MsgBox(0,"","TEEEEEEEEEEEEEEEEEEEESSSSSSSSSSSSSSSTTTTTTTTTTTTTTTT :D") ; mit Guigetmsg wird der Status der GUI abgefragt
; in der While Schleife passiert das immer wieder
; Mit dem Switch Case kann man gewisse Werte, Abfragen (ähnlich If then nur ienfacher bei vielen Abfragen)
; Ja, und ein Event das Auftreten kann wäre in dem Fall z.B. das die GUI geschlossen wird ($GUI_EVENT_CLOSE)
; oder eben $Button1
EndSwitch
WEnd -
Kommt ursprünglich aus dem Englischen Forum, bin aber jetzt zu faul zu suchen, vielleicht gibts da noch en Update.
-
Ja, das ist kein Problem.
Wie liegt die Liste denn vor?
Textdatei, Exel, ... ?Auch das auslesen mit Mysql sollte gehn, aber eine Textdatei würde vollkommen reichen :).
-
Warum suchst du mit CE nicht einfach den Pointer
Das ist nicht soo schwer, es sei denn du musst ihn über ASM suchen, weil der Schutz sehr gut ist, was ich aber nicht glaube.
Anleitungen findest du genüge im Internet ... -
Spoiler anzeigen
[autoit];LinkeMaustaste zum aktivieren
[/autoit] [autoit][/autoit] [autoit]#include <Misc.au3>
[/autoit] [autoit][/autoit] [autoit]$toggle = False
[/autoit] [autoit][/autoit] [autoit]AdlibEnable("_test", 10)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
If $toggle Then
MouseClick("left")
EndIf
Sleep(100)
WEndFunc _test()
[/autoit] [autoit][/autoit] [autoit]
If _IsPressed("01") Then
While _IsPressed("01")
Sleep(10)
WEnd$toggle = Not $toggle
[/autoit]
EndIf
EndFunc ;==>_test/Edit: Spoiler vergessen
-
Es ist unnötig die Werte so groß zu lassen...
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
$joy = _JoyInit()While 1
[/autoit] [autoit][/autoit] [autoit]
$coord = _GetJoy($joy, 0)
$coordX = Round($coord[0] / 10000, 0)
$coordY = Round($coord[1] / 10000, 0)MsgBox(0,"",$coordX & " " & $coordY, 1)
[/autoit] [autoit][/autoit] [autoit]
if ($coordX = 0) And ($coordY = 0) Then
MsgBox(0,"","Oben-Links",1)
Send("{LEFT DOWN}")
Send("{UP DOWN}")
Send("{RIGHT UP}")
Send("{DOWN UP}")
EndIf;usw ...
[/autoit]Das würde reichen, aber eine "wirkliche" Verbesserung ist es nicht. Man hat halt nur kleinere Zahlen, mit denen man besser hantieren kann, aber ansonsten .
Bei mir würde dann rauskommen:
Oben rechts: 0|0
Oben mitte: 3|0
Oben links: 7|0
Mite links: 0|3
Mitte: 3|3
Mitte rechts: 7|3
Unten links: 0|7
Unten mitte: 3|7
Unten rechts: 7|7 -
Eigentlich ist es doch völlig egal, ob das Pad linear oder nicht-linear arbeitet, weil die Maus ja gar nicht umgesetzt werden soll.
Du willst ja nur, dass dein Script anhand der Position des Sticks erkennen kann, ob der Stick nach oben, nach rechts oder nach links gedrückt ist.Eigentlich hast du ja schon richtig angefangen, nur dass die ganze Umwandlung völlig unnötig ist. Du musst ja "nur" eine Range erstellen, in der Dein Stick nach oben gedrückt ist, nach unten gedrückt ist, oder nach recht, oder links gedrückt ist. Ich würde dir ja gerne Helfen, aber ich denke man braucht wirklich ein paar mehr Postionen. Also ich denke da an Oben links, Oben Mitte, Oben rechts, Mitte Links, Mitte Mitte, Mitte Rechts, Unten Links, Unten Mitte und Unten Rechts.
Dann ist noch die Frage, ab wo z.B. oben ist. Wenn dein Stick Diagonal nach oben links gestellt ist, ist das dann nach Oben oder nach Links?
-
Hi und Willkommen im Forum
Wie setzen sich die Koordinaten denn zusammen?
Wie ist die Koordinate bei Mittelstellung.
Dann müsstest du halt noch ein paar Koordinaten "sammeln" und hier mit der Richtung Posten, weil ich mir unter der Frage im Moment nicht so viel vorstellen kann -
Hi,
Zitat[optional] A number between 0 and 255 to indicate the allowed number of shades of variation of the red, green, and blue components of the colour. Default is 0 (exact match).
Bei einer Shade variation von 250 wird fast jede Farbe erkannt.
Versuch mal mit 0.
Spoiler anzeigen
[autoit]$pixelsearch = PixelSearch(1, 1, 1279, 799, 0xF2111F)
[/autoit]
If Not @error Then
MouseMove($pixelsearch[0], $pixelsearch[1] + 100, 1)
MouseClick("left")
Send("{SPACE}")
Sleep(10)
Send("{SPACE}")
Send("{F4}")
Send("{SPACE}")
Sleep(300)
Send("{SPACE}")
Send("{F3}")
Send("{SPACE}")
Sleep(300)
Send("{SPACE}")
Send("{F2}")
Send("{SPACE}")
Sleep(300)
Send("{SPACE}")
Send("{F1}")
Send("{SPACE}")
Sleep(300)
Send("{SPACE}")
Send("{SPACE}")
Send("{SPACE}")
Send("{SPACE}")
Send("{SPACE}")
Else
Sleep(10)
EndIf -
Hi,
Es kann gut sein, dass ich jetzt völlig falsch liege ^^.
Spoiler anzeigen
[autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
ToolTip(CurrentCPU())
WEndFunc CurrentCPU($init = 0)
[/autoit]
Global $liOldIdleTime = 0
Global $liOldSystemTime = 0
Local $SYS_BASIC_INFO = 0
Local $SYS_PERFORMANCE_INFO = 2
Local $SYS_TIME_INFO = 3
$SYSTEM_BASIC_INFORMATION = DllStructCreate("int;uint;uint;uint;uint;uint;uint;ptr;ptr;uint;byte;byte;short")
$status = DllCall("ntdll.dll", "int", "NtQuerySystemInformation", "int", $SYS_BASIC_INFO, _
"ptr", DllStructGetPtr($SYSTEM_BASIC_INFORMATION), _
"int", DllStructGetSize($SYSTEM_BASIC_INFORMATION), _
"int", 0)
If $status[0]Then Return -1
While 1
$SYSTEM_PERFORMANCE_INFORMATION = DllStructCreate("int64;int[76]")
$SYSTEM_TIME_INFORMATION = DllStructCreate("int64;int64;int64;uint;int")
$status = DllCall("ntdll.dll", "int", "NtQuerySystemInformation", "int", $SYS_TIME_INFO, _
"ptr", DllStructGetPtr($SYSTEM_TIME_INFORMATION), _
"int", DllStructGetSize($SYSTEM_TIME_INFORMATION), _
"int", 0)
If $status[0]Then Return -2
$status = DllCall("ntdll.dll", "int", "NtQuerySystemInformation", "int", $SYS_PERFORMANCE_INFO, _
"ptr", DllStructGetPtr($SYSTEM_PERFORMANCE_INFORMATION), _
"int", DllStructGetSize($SYSTEM_PERFORMANCE_INFORMATION), _
"int", 0)
If $status[0] Then Return -3
If $init = 1 Or $liOldIdleTime = 0 Then
$liOldIdleTime = DllStructGetData($SYSTEM_PERFORMANCE_INFORMATION, 1)
$liOldSystemTime = DllStructGetData($SYSTEM_TIME_INFORMATION, 2)
Sleep(1000)
If $init = 1 Then Return -99
Else
$dbIdleTime = DllStructGetData($SYSTEM_PERFORMANCE_INFORMATION, 1) - $liOldIdleTime
$dbSystemTime = DllStructGetData($SYSTEM_TIME_INFORMATION, 2) - $liOldSystemTime
$liOldIdleTime = DllStructGetData($SYSTEM_PERFORMANCE_INFORMATION, 1)
$liOldSystemTime = DllStructGetData($SYSTEM_TIME_INFORMATION, 2)
$dbIdleTime = $dbIdleTime / $dbSystemTime
$dbIdleTime = 100.0 - $dbIdleTime * 100.0 / DllStructGetData($SYSTEM_BASIC_INFORMATION, 11) + 0.5
Return $dbIdleTime
EndIf
$SYSTEM_PERFORMANCE_INFORMATION = 0
$SYSTEM_TIME_INFORMATION = 0
WEnd
EndFunc ;==>CurrentCPUDadurch bin ich drauf gekommen NtQuerySystemInformation