Schau dir mal WinHTTP an, wie i2c gesagt hat. Du brauchst nichtmal die UDF benutzen sondern kannst einfach deine Daten mitsniffen und per TCP verschicken, das ist das selbe. Gute Tutorials zu Packetaufbau etc findet man über google. Zum sniffen kannst du ein Firefox Tool benutze (LiveHTTP Header) oder WireShark, wobei du da dann die richtige Verbindung raussuchen musst.
Beiträge von BadBunny
-
-
Ich benutze jetzt FillRect um den Hintergrund zu zeichnen, damit man die unterschiedlichen Größen benutzen kann. Mir GraphicsClear geht das leider nicht bzw nicht so einfach, aber dann würde es unter XP funktionieren weil es vorher auch ging.
-
So, ein paar Sachen geändert mehr dazu im Changelog. Die leere Binäransicht kommt noch.
-
Zitat
Nur hat das Script bei weitem zu viele Zeilen
Ohja Das ist mir auch beim Coden aufgefallen aber ich hab erstmal nur Wert darauf gelegt das es ausnahmsweise mal gut aussiehtZitatWENN binär, dann richtig; Stunden, Minuten und Sekunden NACHEINANDER in einer Zeile, farblich getrennt,
OOOOO|OOOOOO|OOOOOO, hat den Vorteil, die Uhr auch "in" den oberen Rahmen eines Fensters oder in die Menübar schieben zu können, ohne dass Fensterteile überdeckt werden.
Ich denke ich mach mehrere AnsichtenZitatWeiterhin verschwindet die Uhr bei mir nach Fensterwechsel unter anderen Fenstern und ist nicht mehr auffindbar....
Die sollte eig. direkt am Anfang schon im Hintergrund bleiben, ich hab den Style $WS_OVERLAPPED drin aber der funktioniert nicht so wie er eig soll?ZitatDie Anzeige nur einmal in jeder Sekunde würde ich einfach per adlibregister("_draw",1000) lösen.
Dann kann es aber doch zu verzögerungen kommen oder nicht? -
Hey,
Hatte ein wenig langeweile und wollt mal versuchen auf einem transparenten Fenster mit GDI+ zu arbeiten.
Aufgebaut ist es in 3 Spalten (Stunden, Minuten, Sekunden) wobei die Lowbits unten sind.Schauts euch einfach an, vllt gefällts euch ja
Code
[autoit]#NoTrayIcon
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WinApi.au3>
#include <GDIPlus.au3>
#include <WindowsConstants.au3>
#include <Array.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global Const $SC_DRAGMOVE = 0xF012
[/autoit] [autoit][/autoit] [autoit]Global $nWidth = 100, $nHeight = 130, $nWnd_X = 1066, $nWnd_Y = 46
[/autoit] [autoit][/autoit] [autoit]Global $Kreis_size = 15
[/autoit] [autoit][/autoit] [autoit]Global $Sec, $Type = 1
[/autoit] [autoit][/autoit] [autoit]$tSize = DllStructCreate($tagSIZE)
[/autoit] [autoit][/autoit] [autoit]
$pSize = DllStructGetPtr($tSize)
DllStructSetData($tSize, "X", 500)
DllStructSetData($tSize, "Y", 500)
$tSource = DllStructCreate($tagPOINT)
$pSource = DllStructGetPtr($tSource)
$tBlend = DllStructCreate($tagBLENDFUNCTION)
$pBlend = DllStructGetPtr($tBlend)
DllStructSetData($tBlend, "Alpha", 255)
DllStructSetData($tBlend, "Format", 1)Dim $aHour[5]
[/autoit] [autoit][/autoit] [autoit]
_FillArrayWithBinary($aHour, @HOUR)Dim $aMin[6]
[/autoit] [autoit][/autoit] [autoit]
_FillArrayWithBinary($aMin, @MIN)Dim $aSec[6]
[/autoit] [autoit][/autoit] [autoit]
_FillArrayWithBinary($aSec, @SEC)Dim $aAll[17]
[/autoit] [autoit][/autoit] [autoit]$hWnd = GUICreate("Binary-Clock", 500, 500, $nWnd_X, $nWnd_Y, -1, BitOR($WS_EX_LAYERED, $WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "_FollowMouse")
$nMenu = GUICtrlCreateContextMenu(-1)
GUICtrlSetOnEvent(GUICtrlCreateMenuItem("Exit", $nMenu), "_Exit")
GUISetState()GUIRegisterMsg($WM_LBUTTONDBLCLK, "_ChangeType")
[/autoit] [autoit][/autoit] [autoit]$hDC_Window = _WinAPI_GetDC($hWnd)
[/autoit] [autoit][/autoit] [autoit]
$hDC_Buffer = _WinAPI_CreateCompatibleDC($hDC_Window)
$hBitmap_Buffer = _WinAPI_CreateCompatibleBitmap($hDC_Window, 500, 500)
_WinAPI_SelectObject($hDC_Buffer, $hBitmap_Buffer)_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hGraphics = _GDIPlus_GraphicsCreateFromHDC($hDC_Buffer)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsSetSmoothingMode($hGraphics, 2)
DllCall($ghGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $hGraphics, "int", 4);; Macht durchsichtig ?!$hPen_Hour = _GDIPlus_PenCreate(0xFF000000)
[/autoit] [autoit][/autoit] [autoit]
$hBrush_Hour = _GDIPlus_BrushCreateSolid(0xAAFF0000)$hPen_Min = _GDIPlus_PenCreate(0xFF000000)
[/autoit] [autoit][/autoit] [autoit]
$hBrush_Min = _GDIPlus_BrushCreateSolid(0xAA00FF00)$hPen_Sec = _GDIPlus_PenCreate(0xFF000000)
[/autoit] [autoit][/autoit] [autoit]
$hBrush_Sec = _GDIPlus_BrushCreateSolid(0xAA0000FF)$hBrush_BG = _GDIPlus_BrushCreateSolid(0x30000000)
[/autoit] [autoit][/autoit] [autoit]While Sleep(100)
[/autoit] [autoit][/autoit] [autoit]
If $Sec <> @SEC Then
$Sec = @SEC
_DRAW()
EndIf
WEndFunc _DRAW()
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsClear($hGraphics, 0x0)
_GDIPlus_GraphicsFillRect($hGraphics, 0, 0, $nWidth, $nHeight, $hBrush_BG)_FillArrayWithBinary($aHour, @HOUR)
[/autoit] [autoit][/autoit] [autoit]
_FillArrayWithBinary($aMin, @MIN)
_FillArrayWithBinary($aSec, @SEC)Switch $Type
[/autoit] [autoit][/autoit] [autoit]
Case 1
_DrawDisplay1()
Case 2
_DrawDisplay2()
Case 3
_DrawDisplay3()
EndSwitch_WinAPI_UpdateLayeredWindow($hWnd, $hDC_Window, 0, $pSize, $hDC_Buffer, $pSource, 0, $pBlend, 2)
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_DRAWFunc _DrawDisplay3()
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDrawString($hGraphics, "EMPTY", 0, 0)
EndFunc ;==>_DrawDisplay3Func _DrawDisplay2()
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To 4
$aAll[$i] = $aHour[$i]
Next
For $i = 5 To 10
$aAll[$i] = $aMin[$i - 5]
Next
For $i = 11 To 16
$aAll[$i] = $aSec[$i - 11]
NextFor $i = 1 To 17
[/autoit] [autoit][/autoit] [autoit]
If $aAll[$i - 1] = 1 Then
If $i >= 1 And $i <= 5 Then ;; Hour
_GDIPlus_GraphicsFillEllipseMid($hGraphics, ($Kreis_size * $i), $nHeight / 2, $Kreis_size, $hBrush_Hour)
_GDIPlus_GraphicsDrawEllipseMid($hGraphics, ($Kreis_size * $i), $nHeight / 2, $Kreis_size, $hPen_Hour)
ElseIf $i >= 6 And $i <= 11 Then ;; Min
_GDIPlus_GraphicsFillEllipseMid($hGraphics, ($Kreis_size * $i) + $Kreis_size, $nHeight / 2, $Kreis_size, $hBrush_Min)
_GDIPlus_GraphicsDrawEllipseMid($hGraphics, ($Kreis_size * $i) + $Kreis_size, $nHeight / 2, $Kreis_size, $hPen_Min)
ElseIf $i >= 12 And $i <= 17 Then;; Sec
_GDIPlus_GraphicsFillEllipseMid($hGraphics, ($Kreis_size * $i) + $Kreis_size * 2, $nHeight / 2, $Kreis_size, $hBrush_Sec)
_GDIPlus_GraphicsDrawEllipseMid($hGraphics, ($Kreis_size * $i) + $Kreis_size * 2, $nHeight / 2, $Kreis_size, $hPen_Sec)
EndIf
EndIf
If $aAll[$i - 1] = 0 Then
If $i >= 1 And $i <= 5 Then ;; Hour
_GDIPlus_GraphicsDrawEllipseMid($hGraphics, ($Kreis_size * $i), $nHeight / 2, $Kreis_size, $hPen_Hour)
ElseIf $i >= 6 And $i <= 11 Then ;; Min
_GDIPlus_GraphicsDrawEllipseMid($hGraphics, ($Kreis_size * $i) + $Kreis_size, $nHeight / 2, $Kreis_size, $hPen_Min)
ElseIf $i >= 12 And $i <= 17 Then;; Sec
_GDIPlus_GraphicsDrawEllipseMid($hGraphics, ($Kreis_size * $i) + $Kreis_size * 2, $nHeight / 2, $Kreis_size, $hPen_Sec)
EndIf
EndIf
Next
EndFunc ;==>_DrawDisplay2Func _DrawDisplay1()
[/autoit] [autoit][/autoit] [autoit];; Stunden
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($aHour) - 1
If $aHour[$i] = 1 Then
_GDIPlus_GraphicsFillEllipseMid($hGraphics, ($nWidth / 4) * 1, ($i + 2) * $Kreis_size, $Kreis_size, $hBrush_Hour)
EndIf
_GDIPlus_GraphicsDrawEllipseMid($hGraphics, ($nWidth / 4) * 1, ($i + 2) * $Kreis_size, $Kreis_size, $hPen_Hour)
Next;; Minuten
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($aMin) - 1
If $aMin[$i] = 1 Then
_GDIPlus_GraphicsFillEllipseMid($hGraphics, ($nWidth / 4) * 2, ($i + 1) * $Kreis_size, $Kreis_size, $hBrush_Min)
EndIf
_GDIPlus_GraphicsDrawEllipseMid($hGraphics, ($nWidth / 4) * 2, ($i + 1) * $Kreis_size, $Kreis_size, $hPen_Min)
Next;; Sekunden
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($aSec) - 1
If $aSec[$i] = 1 Then
_GDIPlus_GraphicsFillEllipseMid($hGraphics, ($nWidth / 4) * 3, ($i + 1) * $Kreis_size, $Kreis_size, $hBrush_Sec)
EndIf
_GDIPlus_GraphicsDrawEllipseMid($hGraphics, ($nWidth / 4) * 3, ($i + 1) * $Kreis_size, $Kreis_size, $hPen_Sec)
Next;; Digitale Uhrzeit
[/autoit] [autoit][/autoit] [autoit]
;; Kasten
$Time = @HOUR & ":" & @MIN & ":" & @SEC
_GDIPlus_GraphicsDrawString($hGraphics, $Time, $nWidth / 2 - 25, $nHeight - 20, "Arial", 10)
EndFunc ;==>_DrawDisplay1Func _ChangeType()
[/autoit] [autoit][/autoit] [autoit]
$Pos = WinGetPos("Binary-Clock")
$Type += 1
If $Type >= 4 Then $Type = 1
Switch $Type
Case 1
$nWidth = 100
$nHeight = 130
Case 2
$nWidth = $Kreis_size * 20
$nHeight = $Kreis_size * 2
Case 3
$nWidth = 130
$nHeight = 130
EndSwitch
_GDIPlus_GraphicsClear($hGraphics, 0xABCDEF)
_Draw()
EndFunc ;==>_ChangeTypeFunc _GDIPlus_GraphicsDrawEllipseMid($hGraphic, $x, $y, $Durchmesser, $hPen = 0)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDrawEllipse($hGraphic, $x - $Durchmesser / 2, $y - $Durchmesser / 2, $Durchmesser, $Durchmesser, $hPen)
EndFunc ;==>_GDIPlus_GraphicsDrawEllipseMidFunc _GDIPlus_GraphicsFillEllipseMid($hGraphic, $x, $y, $Durchmesser, $hBrush = 0)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsFillEllipse($hGraphic, $x - $Durchmesser / 2, $y - $Durchmesser / 2, $Durchmesser, $Durchmesser, $hBrush)
EndFunc ;==>_GDIPlus_GraphicsFillEllipseMidFunc _FillArrayWithBinary(ByRef $aArray, $nDec)
[/autoit] [autoit][/autoit] [autoit]
$aBits = StringSplit(_TranslateBase($nDec), "", 2)
For $i = 0 To UBound($aArray) - 1 - UBound($aBits)
$aArray[$i] = 0
NextFor $i = UBound($aArray) - UBound($aBits) To UBound($aArray) - 1
[/autoit] [autoit][/autoit] [autoit]
$aArray[$i] = $aBits[$i - (UBound($aArray) - UBound($aBits))]
Next
EndFunc ;==>_FillArrayWithBinaryFunc _FollowMouse()
[/autoit] [autoit][/autoit] [autoit]
_SendMessage($hWnd, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0)
EndFunc ;==>_FollowMouseFunc _Exit()
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_PenDispose($hPen_Hour)
_GDIPlus_PenDispose($hPen_Min)
_GDIPlus_PenDispose($hPen_Sec)_WinAPI_ReleaseDC($hWnd, $hDC_Window)
[/autoit] [autoit][/autoit] [autoit]
_WinAPI_DeleteDC($hDC_Buffer)
_WinAPI_DeleteObject($hBitmap_Buffer)_GDIPlus_BrushDispose($hBrush_Hour)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_BrushDispose($hBrush_Min)
_GDIPlus_BrushDispose($hBrush_Sec)
_GDIPlus_BrushDispose($hBrush_BG)
_GDIPlus_Shutdown()
Exit
EndFunc ;==>_ExitFunc _TranslateBase($sNumber, $iOldBase = 10, $iNewBase = 2)
[/autoit]
;!!by eukalyptus!!
If $iOldBase < 2 Or $iOldBase > 36 Or $iNewBase < 2 Or $iNewBase > 36 Then Return SetError(1, 1, False)
Local $iNum, $aRes, $tChr = DllStructCreate("char[64];")
If $iOldBase <> 10 Then
$aRes = DllCall("msvcrt.dll", "uint64:cdecl", "_strtoui64", "str", $sNumber, "ptr", 0, "int", $iOldBase)
If @error Then Return SetError(1, 2, False)
$iNum = $aRes[0]
Else
$iNum = Int($sNumber)
EndIf
$aRes = DllCall("msvcrt.dll", "ptr:cdecl", "_i64toa", "int64", $iNum, "ptr", DllStructGetPtr($tChr), "int", $iNewBase)
If @error Then Return SetError(1, 3, False)
Return DllStructGetData($tChr, 1)
EndFunc ;==>_TranslateBaseChangelog:
* 2. Binäransicht verschönert (Platz zwischen den Bit-Blöcken gelassen)
_____________________________________________________________________________________
+ Binäransicht wechselbar mit Doppelklick
+ Neue Binäransicht
* Schrift verschönert (Danke an name22 (Kann mir jmd sagen warum RenderingHint auf 3 die Bitmap in dem Fall durchsichtig macht?!)
* Draw-Funktion ruckelt nichtmehr (Danke Marsi ;))
* Vollständige Resourcen FreigabePS: Beenden kann man es mit Rechter Maustaste->Exit
Ich bau vllt noch ein, das die Position gespeichert wird in der das Fenster geschlossen wird, damit es immer richtig öffnet. -
Wenn man in der Console neben das fenster klickt stürzt das Prog. ab Musst noch gucken ob es ein Array ist.
Die Position ist: Chunk 34 auf der normalen Welt
-
Ich hätte nicht gedacht das du weitermachst Respekt.
Kleiner Bug: In dem Kartenabschnitt mit dem Teich, den 8 Apfelbäumen und den Flüssen an den Seiten bleibt man hängen wenn man unten rechts hinkommt, man kann die Seite nichtmehr wechseln. Du musst sowieso, finde ich, den Map-Wechsel Teil ändern.Ansonsten gute Arbeit (Dauert manchmal nur etwas die GUIs zu öffnen, und wie komme ich an Geld?!)
-
Was soll das bringen? Nur damit ein anders Datum und eine größere Anzahl an Online-Usern da unten steht
Außerdem bezweifle ich das das in einer bestimmten Zeit über 4000 Leute lesen, die außerdem noch angemeldet sind und sich dann um die Uhrzeit an dem Tag anmelden. Ich denke mal das früher viel mehr Leute aktiv waren oder irg was anderes an dem Tag war (Welt AutoIt Tag oder so ;D) -
Wenn du so fragst: Nein gibt es nicht.
Send schickt Tastendrücke und die werden dann im fokusierten Bereich eingetragen. Mehr nicht. Du müsstest dir schon eine eigene Funktion speziell für deine Anwendung schreiben, aber alleine da du es ja aus "© Gründen" uns nicht verraten darfst wodrum es sich handelt.
Google
Benutz die SuFu -
Send sendet doch nur einen text, der kann den dann nicht deleten oO
Du könntest höchstens gucken wie lang der text danach ist (StringLen) Und dann sooft nach links klickenlassen und dann deleten. Oder den Text ganz bekommen (Wir wissen ja nicht wo reingeschrieben wird) und daraus dann den textteil Replacen.
-
@M3xt: Nein ist er nicht.
Das Problem war das Techmix die HDD kaputt gegangen ist -> Alles weg. Auf jeden Fall muss er einiges nachschreiben was nicht mit Flutch zu tun hat was ihn sicher viel zeit kosten wird. Da er der "Hauptcoder" war ist er ein großer verlust, daraus folgt das wir aufgehört haben.
-
Ich denke mal du meinst die Rücktaste. Wenn du auf die Hilfe geklickt hättest dus gleich gesehen:
[autoit]Send ("{BACKSPACE}" oder "{BS}")
[/autoit] -
Das ist dein erstes Spiel mit GDI+? Respekt. Ist wirklich gut geworden. Ruckelt nicht und die Idee ist auch mal was anderes^^ (Ähnelt ein wenig AuoItRoids, du musst nurnoch "Trägheit" vom Raumschiff machen^^)
Weiter so -
Ah, ich wusste nicht das es auch schräg geht Dann war es kein Fehler, umso besser
-
Cool, gefällt mir Evtl noch eine Anzeige wer dran ist.
Mir ist aufgefallen das manchmal 2 Steine sich ändern obwohl sie nicht zwischen 2 Steinen liegen. Also 2 Steine ändern sich pro Zug.Beispiel:
(w = weiß, s = schwarz)
Ich setze einen schwarzen neben einen Weißen, so das er "umzingelt" ist. Der weiße wird schwarz und der darüber auch?! Obwohl der nicht zwischen 2 Schwarzen lag -
EDIT:::: Du Kannst keine Funktionen in einer Schleife erstellen. Du kannst sie aber von da aufrufen.
-
Benutz doch GDI+. Ich denke mal das ist wesentlich schneller. Evtl muss man die ganzen Positionen immer speichern, aber es rentiert sich. Tuts findest du über Google und genug Beispiele hier im Forum
-
Es gibt viele Möglichkeiten deine Website zu gestalten. Grafisch schön ist Javascript, für die Aktionen, Überprüfungen etc benutzt man Php und html/css für die einfachen Darstellungen bzw zur Gliederung der Seite. MySQL ist einfach, wie schon gesagt, für Datenbanken gut. Wenn du ein Login haben möchtest in dem Name, EMail, PW (Hoffentlich gehasht), Letzter Login, und und und.... machen möchtest sind Datenbanken einfach am einfachsten zu verwalten. Damit lassen sich dann auch Sachen wie Artikel (Im Bereich Shop-Business, worauf du anscheinend willst) sehr veralgemeinern in dem man die Seite immer gleich einbaut nur ein anderes Bild lädt, der Text anders ist und der Preis mehr oder weniger beträgt.
MySQL "steuerst" du dann auch über Php (Das ist wie eine Programmiersprache für den Server.) -
Dann lernst du aber nix
Und das was du vor hast sieht für mich leicht aus wie ein "Spaßvirus" der den Comp von jmd runterfährt wenn dus willst. Aber das hab ich nicht zu entscheiden.Ich kann dir nur nochmal, wie alle anderen auch, den Tipp geben in die Hilfe zu schauen und die Beispiele durchzulesen. Da erfährst du alles wichtige, wie man Sendet, Empfängt etc.
-
Als erstes mal: Dein Client beendet sich sofort wieder, das heißt der Server hat nur eine kurze Zeit die Verbindung anzunehmen. Doch du versuchst auch nur einmal die Verbindung anzunehmen (TCPAccept).
Du musst in einer Schleife solange prüfen bis TCPAccept <> -1 ist, dann hat sich jmd angemeldet und du kannst in annehmen. Dann speicherst du dir die Socket ID zum Client ab (In einem Array oder sowas) und so kannst du immer mit dem Client kommunizieren.kleines Beispiel (Aus dem Kopf! Kann Fehler enthalten!)
[autoit]
CLIENT:TCPStartup()
[/autoit][autoit][/autoit][autoit]
$Socket = TCPConnect (IP, Port)
TcpSend ($Socket, "String")While Sleep (500)
[/autoit][autoit][/autoit][autoit]Wend
[/autoit]
TCPShutdown()SERVER:
[autoit]TCPStartup()
[/autoit][autoit][/autoit][autoit]
$Socket = TCPListen(IP, PORT)
Do
$clientSocketID = TCPAccept ($Socket)
Until $clientSocketID <> -3Do
[/autoit]
$recv=TCPRecv ($clientSocketID, 1024)
Until $recv <> ""
MsgBox (0, "", $recv)