wow ich bin echt baff das geht ja unglaublich schnell ich muss unbedingt assembler lernen
vielen vielen dank
Beiträge von gem
-
-
ich wollte eine farbpallette darstellen allerdings braucht gdi+ und quickdraw zu lange um ca 65000 pixel darzustellen. was mache ich falsch?. gibt es eine bessere möglichkeit?.
zeit bei mir für eine darstellung einer farbpalette
GDI+ : 6169ms
QuickDraw : 2284msGDI+
[autoit]#include <SliderConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GDIP.au3>$gui = GUICreate("example", 296, 256)
[/autoit] [autoit][/autoit] [autoit]$slider = GUICtrlCreateSlider(261, 5, 30, 251, BitOR($TBS_VERT, $TBS_TOP, $TBS_LEFT, $TBS_BOTH, $TBS_NOTICKS, $TBS_ENABLESELRANGE))
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetLimit(-1, 255, 0)_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$graphics = _GDIPlus_GraphicsCreateFromHWND($gui)
[/autoit] [autoit][/autoit] [autoit]
$bitmap = _GDIPlus_BitmapCreateFromGraphics(256, 256, $graphics)
$buffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
$brush = _GDIPlus_BrushCreateSolid()GUISetState()
[/autoit] [autoit][/autoit] [autoit]While GUIGetMsg() <> -3
[/autoit] [autoit][/autoit] [autoit]$a = GUICtrlRead($slider)
[/autoit] [autoit][/autoit] [autoit]For $b = 0 To 255
[/autoit] [autoit][/autoit] [autoit]
For $c = 0 To 255
$color = String(Hex($a, 2) & Hex($b, 2) & Hex($c, 2))
_GDIPlus_BrushSetFillColor($brush, "0xFF" & $color)
_GDIPlus_GraphicsFillRect($buffer, $b, $c, 1, 1, $brush)
Next
Next_GDIPlus_GraphicsDrawImage($graphics, $bitmap, 0, 0)
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_Shutdown()
[/autoit]QuickDraw
[autoit]#include <QuickDraw.au3>
[/autoit] [autoit][/autoit] [autoit]_QuickDraw_Enable("example", 256, 256, 0, 0, False)
[/autoit] [autoit][/autoit] [autoit]$a = 0
[/autoit] [autoit][/autoit] [autoit]HotKeySet("{RIGHT}", "Slider1")
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{LEFT}", "Slider0")While _QuickDraw_Running() And GUIGetMsg() <> -16
[/autoit] [autoit][/autoit] [autoit]_QuickDraw_ClearBuffer(0xFF000000)
[/autoit] [autoit][/autoit] [autoit]For $b = 0 To 255
[/autoit] [autoit][/autoit] [autoit]
For $c = 0 To 255
$color = String(Hex($a, 2) & Hex($b, 2) & Hex($c, 2))
_QuickDraw_Point($b, $c, "0xFF" & $color)
Next
Next_QuickDraw_SwapBuffers()
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit] [autoit][/autoit] [autoit]_QuickDraw_Disable()
[/autoit] [autoit][/autoit] [autoit]
ExitFunc Slider0()
[/autoit] [autoit][/autoit] [autoit]
If $a <> 0 Then $a -= 1
EndFunc ;==>Slider0Func Slider1()
[/autoit]
If $a <> 256 Then $a += 1
EndFunc ;==>Slider1 -
guten tag
ich weis nicht wie ich einen string so koordinieren kann das es zu so einem ergebnis komm
[autoit]; gegebener string
[/autoit][autoit][/autoit][autoit]
$string = "func1(func2(func3()),,func4())"; so soll die ausgabe sein
[/autoit]
dim $array[4]
$array[0] = "func4()"
$array[1] = "func3()"
$array[2] = "func2("&$array[0]&")"
$array[3] = "func1("&$array[2]&",,"&$array[1] &")" -
ShellExecute("chrome.exe","http://www.google.de")
-
mist war ich wohl langsamer
-
vieleicht so
[autoit]FileSaveDialog("", @DesktopDir, "(*.*)", 16, "", $Account_Manager)
[/autoit] -
so die neue version ist draußen nun kann man apps löschen und das programm nicht doppelt starten außerdem sind app-parameter hinzugekommen.
leider gab es bei zwei apps noch probleme einmal beim timer und bei der stoppuhr. die apss werde ich bald nachliefern -
Zitat
Nein nein, da kann man Hintergrundfarbe vom Dashboard die Hintergrundfarbe.
tut mir leid versteh ich nicht
ich versuch nochmal
wenn du von deiner app die hintergrundfarbe ändert willst benutzt den parameter = background-color="" im frame bereich
um die hintergrundfarbe von controls zu ändern benutzt diesen auch nur nicht im frame bereichwenn du durch ein klick die hintergrundfarbe vom programm dashboard ändern willst machst es z.b. so:
-
update kommt gleich
[autoit]
um die hintergrundfarbe zu ändern muss man nicht das skript umschreiben schreib in deine app bei action einfachguisetbkcolor(0xff0000,$mainwin)
[/autoit]
in der neuen version kannst du auch mit dem parameter regist arbeiten der wird einmal automatisch ausgeführtnoch was
combobox = <combobox></combobox>
-
bei dem parameter action wird beschrieben was passiert wenn man auf das control klickt dabei werden die befehle mit dem autoit befehl execute() ausgeführt wo es kein ifstatement gibt
wichtig um variablen zu deklarieren assign() benutzen = z.B assign('variablenname','wert')
um nächsten befehl auszuführen zwischen den befehlen mit dem zeichen § trennen =z.B msgbox(0,'','')§msgbox(0,'','')
bei strings kein " benutzen sondern 'um ein ifstatement zu benutzen, benutze die funktion ifstatement($wert1,$opeartor,$wert2,$function)
$operator
1:=
2:<>
3:==
4:>=
5:<=
5:>
6:<
achte darauf das du die function als string generiest wobei du die strings in der funktion mit ^ umhüllst = z.b ifstatement(1,1,1,'msgbox(0,^^,^1 ist 1^)')wenn du den action parameter im frame deklariest werden diese befehle durckgehend ausgeführt z.b für eine zeitanzeige
ich hoffe ich konnte dir damit helfen wenns noch fragen gibt einfach stellen ich werde bald eine ausfürlicher beschreiben schreiben.
-
Stevenx
wie geil ist das den
hätte nicht gedacht das jemand das macht
ich habe bereits auch noch ein paar gemacht werde ich morgen reinstellen
darunter gibt es
Yahoo Suche, YouTube Suche, Wetter, Stoppuhr, Timer
allerdings muss mann dafür eine neue version von dashboard downloaden da einige funktionen hinzugekommen sindupdates in der neuen dashboard version
-kann nur einmal gestartet werden
-apps können entfernt werdenupdates bei den apps
-notizen vom notizblock werden gespeichertStevenx gui runden
[autoit]$variable = _WinAPI_CreateRoundRectRgn(0, 0, $width, $height, $width / $round, $height / $round)
[/autoit]
_WinAPI_SetWindowRgn($GUI, $variable) -
wäre sehr cool. kann ich gut gebrauchen danke dir
-
ich werde bald eine beschreibung schreiben in der erkärt wird wie man eine application erstellt allerdings gibt es noch nicht so einen großen funktionsumfang.
Bildschirm verdunkeln:
eigentlich ganz leicht du erstellt eine gui die maximiert wird dan blendest du das systemneu aus und setzt die transparenz mit winsettransbeispiel
[autoit]#include <GUIConstantsEx.au3>
[/autoit][autoit][/autoit][autoit]
#include <WindowsConstants.au3>GUICreate("Example", 500, 500, -1, -1, BitOR($WS_MINIMIZEBOX,$WS_MAXIMIZE,$WS_POPUP,$WS_GROUP))
[/autoit][autoit][/autoit][autoit]
WinSetTrans("Example","",150)
GUISetState()While GUIGetMsg() <> -3
[/autoit]
WEnd -
[Blockierte Grafik: http://www9.pic-upload.de/18.01.12/dc4b69wirtrv.png]
da mir das dashboard von mac sehr gut gefällt und ich es sehr nützlich fande, habe ich es so gut wie es geht in autoit nachgemacht.
das programm seht ihr weder als trayicon noch in der startleiste um es zu beenden einfach ESC drücken. um es ein- auszublenden F4 drücken.
über das plus unten rechts könnt ihr anwendungen hinzufügen bisher habe ich vier gemacht. es kommen aber noch ein paar hinzu. -
[Blockierte Grafik: http://img198.imageshack.us/img198/7291/unbenannt3kopieh.png]
ich habe ein ausweichspiel versucht mit quickdraw zu realisieren. hauptprinzip ist es nicht die kästen zu berühren. im normalen modus könnt ihr mir leertaste einen schuss abgeben der allerdings wenn er ein feld trifft 100 minuspunkte gibt. durch ein weiße kugel bekommt ihr 250 punkte bei einem türkisen kugel habt ihr für drei sekunden einen schutzmantel. der speedmode unterscheidet sich nur in einer sache: die geschwindigkeit nimmt kontinuierlich zu. im ersten multiplayer modus kann ein zweiter auch eine kugel haben hier geht er nur darum wer zu erst verliert. im ersten multiplayer modus gibt es keine items. im zweiten multiplayer modus kommen die felder aus allen richtung hier gilt es wieder diesen zu entweichen dazu könnt ihr euch auch in alle richtungen bewegen. mit der F3 taste kommt ihr ins menu.
-
ich habe nun eine neue version rausgebracht ist allerdings auch noch nicht ganz fertig was noch kommt steht ganz oben
was würdet ihr noch machen?
was fehlt noch? -
vielen vielen dank das war es
-
Ich versuche vergeblich den Text im Button zu zentrieren das er sich Linksbündig anordnet habe ich so geschaft leider gibt es keine zentrierungsformat
Linksbündig:
[autoit]$hFormat = _GDIPlus_StringFormatCreate(0x0001)
[/autoit]wie kann man den Text zentrieren?
Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GDIP.au3>Global $Title = "Example"
[/autoit] [autoit][/autoit] [autoit]
Global $Width = 500
Global $Height = 500$Form = GUICreate($Title, $Width, $Height)
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]
$Graphic = _GDIPlus_GraphicsCreateFromHWND($Form)
$Bitmap = _GDIPlus_BitmapCreateFromGraphics($Width, $Height, $Graphic)
$Buffer = _GDIPlus_ImageGetGraphicsContext($Bitmap)
$Brush1 = _GDIPlus_LineBrushCreate(0, 0, 0, 25, 0xFFFAFAFA, 0xFFE7E7E7)
$Brush2 = _GDIPlus_LineBrushCreate(0, 0, 0, 25, 0xFFFDFDFD, 0xFFE9E9E9)
$Brush3 = _GDIPlus_BrushCreateSolid(0xFF555555)
$Brush4 = _GDIPlus_BrushCreateSolid(0xFF222222)
$Pen1 = _GDIPlus_PenCreate(0xFFAAAAAA)
$Pen2 = _GDIPlus_PenCreate(0xFF999999)
$Pen3 = _GDIPlus_PenCreate(0xFFE0E0E0)GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
Switch GUIGetMsg()
Case -3
_GDIPlus_PenDispose($Pen1)
_GDIPlus_PenDispose($Pen2)
_GDIPlus_PenDispose($Pen3)
_GDIPlus_BrushDispose($Brush1)
_GDIPlus_BrushDispose($Brush2)
_GDIPlus_BrushDispose($Brush3)
_GDIPlus_BrushDispose($Brush4)
_GDIPlus_ImageDispose($Buffer)
_GDIPlus_BitmapDispose($Bitmap)
_GDIPlus_GraphicsDispose($Graphic)
_GDIPlus_Shutdown()
Exit
EndSwitch
_GDIPlus_GraphicsClear($Buffer, 0xFFFFFFFF)
Button(100, 100, 200, 22, "Hallo Welt")
_GDIPlus_GraphicsDrawImage($Graphic, $Bitmap, 0, 0)
WEndFunc Button($Left, $Top, $Width, $Height, $Text)
[/autoit] [autoit][/autoit] [autoit]If Pos($Left, $Top, $Width, $Height) = True Then
[/autoit] [autoit][/autoit] [autoit]
$Brush = $Brush2
$Pen = $Pen2
$Color = $Brush4
_GDIPlus_GraphicsDrawLine($Buffer, $Left - 1, $Top + 1, $Left - 1, $Top + $Height - 1, $Pen3)
_GDIPlus_GraphicsDrawLine($Buffer, $Left + $Width + 1, $Top + 1, $Left + $Width + 1, $Top + $Height - 1, $Pen3)
_GDIPlus_GraphicsDrawLine($Buffer, $Left + 1, $Top - 1, $Left + $Width - 1, $Top - 1, $Pen3)
_GDIPlus_GraphicsDrawLine($Buffer, $Left + 1, $Top + $Height + 1, $Left + $Width - 1, $Top + $Height + 1, $Pen3)
Else
$Color = $Brush3
$Brush = $Brush1
$Pen = $Pen1
EndIf_GDIPlus_GraphicsFillRect($Buffer, $Left + 1, $Top + 1, $Width - 1, $Height - 1, $Brush)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDrawLine($Buffer, $Left, $Top + 1, $Left, $Top + $Height - 1, $Pen)
_GDIPlus_GraphicsDrawLine($Buffer, $Left + $Width, $Top + 1, $Left + $Width, $Top + $Height - 1, $Pen)
_GDIPlus_GraphicsDrawLine($Buffer, $Left + 1, $Top, $Left + $Width - 1, $Top, $Pen)
_GDIPlus_GraphicsDrawLine($Buffer, $Left + 1, $Top + $Height, $Left + $Width - 1, $Top + $Height, $Pen)$hFormat = _GDIPlus_StringFormatCreate()
[/autoit] [autoit][/autoit] [autoit]
$hFamily = _GDIPlus_FontFamilyCreate("Arial")
$hFont = _GDIPlus_FontCreate($hFamily, 13, 0)
$tLayout = _GDIPlus_RectFCreate($Left, $Top, $Width, $Height)
$aInfo = _GDIPlus_GraphicsMeasureString($Buffer, $Text, $hFont, $tLayout, $hFormat)_GDIPlus_GraphicsDrawStringEx($Buffer, $Text, $hFont, $aInfo[0], $hFormat, $Color)
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>ButtonFunc Pos($Left, $Top, $Width, $Height)
[/autoit]
$Pos = GUIGetCursorInfo($Form)
If $Pos[0] >= $Left And $Pos[0] <= $Left + $Width And $Pos[1] >= $Top And $Pos[1] <= $Top + $Height Then Return True
EndFunc ;==>Pos -
[autoit]
$String = "123-456-789"
[/autoit][autoit][/autoit][autoit]
$Nummern = StringSplit($String,"-")For $i = 1 To $Nummern[0]
[/autoit]
MsgBox(0,"",$Nummern[$i])
Next -
@Wydliez
Habe mal eine PNG UDF geschrieben so werden die Bilder auch noch angezeigt wenn man das Fenster bewegt
GUIImage
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]Global $Graphic, $Counter, $Array[1][5]
[/autoit] [autoit][/autoit] [autoit]Func _GUIImageStart($Form)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_Startup()
$Graphic = _GDIPlus_GraphicsCreateFromHWND($Form)
EndFunc ;==>_GUIImageStartFunc _GUICtrlCreateImage($Filename, $Left, $Top, $Width = False, $Height = False)
[/autoit] [autoit][/autoit] [autoit]
$Counter += 1
ReDim $Array[$Counter][6]
$Array[$Counter - 1][0] = _GDIPlus_ImageLoadFromFile($Filename)
If $Width = False Then $Width = _GDIPlus_ImageGetWidth($Array[$Counter - 1][0])
If $Height = False Then $Height = _GDIPlus_ImageGetHeight($Array[$Counter - 1][0])
$Array[$Counter - 1][1] = $Left
$Array[$Counter - 1][2] = $Top
$Array[$Counter - 1][3] = $Width
$Array[$Counter - 1][4] = $Height
GUIRegisterMsg(0x000F, "WM_PAINT")
EndFunc ;==>_GUICtrlCreateImageFunc WM_PAINT()
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($Array) - 1
_GDIPlus_GraphicsDrawImageRect($Graphic, $Array[$i][0], $Array[$i][1], $Array[$i][2], $Array[$i][3], $Array[$i][4])
Next
EndFunc ;==>WM_PAINTFunc _GUIImageClose()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
For $i = 0 To UBound($Array) - 1
_GDIPlus_ImageDispose($Array[$i][0])
Next
_GDIPlus_GraphicsDispose($Graphic)
_GDIPlus_Shutdown()
EndFunc ;==>_GUIImageCloseGUIImage Example
[autoit]#include <GUIImage.au3>
[/autoit] [autoit][/autoit] [autoit]$Form = GUICreate("Example",500,500)
[/autoit] [autoit][/autoit] [autoit]
_GUIImageStart($Form)
_GUICtrlCreateImage("Basketball.png", 10, 10, 100, 100)
_GUICtrlCreateImage("Basketball.png", 199, 199, 100, 100)
_GUICtrlCreateImage("Basketball.png", 300, 300)
GUISetState()While True
[/autoit]
Switch GUIGetMsg()
Case -3
_GUIImageClose()
Exit
EndSwitch
WEnd