Herzlichen Glückwunsch!
Beiträge von eukalyptus
-
-
Du mußst bei _GDIPlus_GraphicsSetTransform als ersten Parameter ein Grafikhandle angeben und kein Bildhandle
probiers mal so:
[autoit]_GDIPlus_GraphicsSetTransform($hBack_Buffer, $hMatrix)
[/autoit]mfg
E -
Danke
So ähnlich mach ich das eh schon.
Das Problem ist, daß es sich dabei um tausende Stellen handelt und es sehr auf die Geschwindigkeit ankommt!
Ein Stringregexp würde das in wenigen Sekunden schaffen, während meine momentane Lösung schon im Minutenbereich liegen kann...
Da ja sehr oft Stringreplace aufgerufen wird!Edit
[autoit]
Du hast mich trotzdem auf eine Idee gebracht und die ist viel schneller!
das reicht für meine Zwecke erstmal:$string = '"Test1" Blablabla "Test55" Blablabla "Test23"'
[/autoit]
$string = StringRegExpReplace($string, '(".+?")', Chr(1))
$temp = StringSplit($string, Chr(1))
$string = ""
For $i = 1 To $temp[0] - 1
$string &= $temp[$i] & '#' & $i & '#'
Next
$string &= $temp[$temp[0]]
MsgBox(0, 0, $string)thx
E -
Hi
Ich möchte alle ".."-Stellen eines Strings mit einer fortlaufenden Nummer ersetzen
aus:
"Test1" Blablabla "Test55" Blablabla "Test23"
soll das werden:
#1# Blablabla #2# Blablabla #3#gibts da einen Parameter, den ich beim StringRegExpReplace - Replacestring verwenden kann?
so ähnlich, wie back-references...thx
E -
Oh, wie peinlich
-
bei mir sind die Buttons "organize includes", "open ini", "renew ini" und "exit" unten.
Und sie sind zur Hälfte von der Statusleiste verdeckt; Wenn ich den Style $WS_SIZEBOX einfüge (damit ich OI verwenden kann) dann sind die Buttons komplett von der Statusleiste verdeckt, kommen jedoch zum Vorschein, wenn man die Fenstergröße leicht verändert...
Ich hab Win 7 auf dem Netbook
-
so sollte es gehn:
[autoit]$Open = DllOpen ("C:\Test.dll")
[/autoit]
$Result = DllCall ($Open, "int", "Rechnen", "int", 50, "int", 50)
MsgBox (64, "Test", $Result[0]) -
Hi
Das Fenster ist leider etwas zu groß für die typische Netbookauflösung von 1024x600px und läßt sich auch nicht verkleinern, sodaß man nicht an die Buttons kommt.
Vielleicht kannst du ja da auch noch was machen...mfgE
-
Ein ganz simles Graustufen-Beispiel hätte ich noch hier:
Deutsche Hilfe - Funktionen ohne BeispielmfgE
-
Happy birthday euch beiden!
-
Ich hab jetzt mal etwas herumprobiert und muß sagen, daß diese Aufgabe ziemlich heftig ist!
Wenn man nur die Global Const durch ihre Werte ersetzen will oder die Namen der Funktionen kürzen, dann muß man bereits unzählige Möglichkeiten berücksichtigen!
Folgendes Script zeigt ein paar dieser Probleme:
Spoiler anzeigen
[autoit]#include "Winapi.au3"
[/autoit] [autoit][/autoit] [autoit]
;#include 'Winapi.au3'
;#include <Winapi.au3>
$Test = '#include "Winapi.au3"'
$Test = "#include 'Winapi.au3'"
Global Const $Const1 = 0x01
Global Const $Const2 = $Const1 + 0x01
Global Const $Const3 = (0x01 + 0x02), $Const4 = "0x04" & '0x40'
Global Const $Const5[2][2] = [[0x05, 0x05],[0x05, 0x05]], $Const6[2][2] = [["Global Const $Const1 = 0x01", $Const1],[$Const1, BitOR(BitAND(1, 2), 3)]], $Const8 = BitOR(0, 1, 2)
Global Const $Const7 = "Global Const $Const1 = 0x01"
Global Const $Const1Neu = "Run('Notepad.exe')"
Global Const $Const9 = 0x01, _
$Const10 = 0x02ConsoleWrite($Const1 & @LF)
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite($Const2 & @LF)
ConsoleWrite($Const4 & @LF)
ConsoleWrite($Const6[0][0] & @LF)
ConsoleWrite($Const7 & @LF)
ConsoleWrite($Const1Neu & @LF)
ConsoleWrite(Eval("Const3") & @LF)ConsoleWrite(Eval("Con" & "st3") & @LF)
[/autoit] [autoit][/autoit] [autoit]$Test="3"
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite(Eval("Const" & $Test) & @LF)ConsoleWrite(Execute("$Const5[0][0]") & @LF)
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Vorher " & _
" Nachher")Opt("GuiOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$hGui = GUICreate("")
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent(-3, "_EXIT")
For $i = 1 To 3
GUICtrlCreateButton($i, 10, $i * 30, 100, 20)
GUICtrlSetOnEvent(-1, "_Func" & $i)
Next
GUISetState()Call("_Function1")
[/autoit] [autoit][/autoit] [autoit]Call("_Fun" & "cti" & "on1")
[/autoit] [autoit][/autoit] [autoit]$Test="1"
[/autoit] [autoit][/autoit] [autoit]
Call("_Function" & $Test)For $i = 1 To 3
[/autoit] [autoit][/autoit] [autoit]
Call("_Func" & $i)
NextWhile 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Sleep(1000)
WEndFunc _Func1()
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Func1" & @LF)
EndFuncFunc _Func2()
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Func2" & @LF)
EndFuncFunc _Func3()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Func3" & @LF)
EndFuncFunc _Function1()
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Function1" & @LF)
_Function2()
EndFuncFunc _Function2()
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Function2" & @LF)
_Function3()
EndFuncFunc _Function3()
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Function3" & @LF)
EndFuncFunc _Exit()
[/autoit]
Exit
EndFuncSollte dieser µIt tatsächlich zustandekommen, dann wird 1 Monat wohl nicht ausreichen
mfgE
-
Einzeilige If-Then sind bei weitem am schnellsten!
-
-
-
[autoit]
#include <Constants.au3>
[/autoit][autoit][/autoit][autoit]
#include <GUIConstantsEx.au3>Opt("GUIOnEventMode",1)
[/autoit][autoit][/autoit][autoit]
Opt("TrayOnEventMode",1)
Opt("TrayAutoPause",0)
TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "_Show")$hGui=GUICreate("Test")
[/autoit][autoit][/autoit][autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "_Hide")
GUISetState(@SW_SHOW, $hGui)While 1
[/autoit][autoit][/autoit][autoit]
Sleep(1000)
WEndFunc _Hide()
[/autoit][autoit][/autoit][autoit]
GUISetState(@SW_HIDE, $hGui)
EndFuncFunc _Show()
[/autoit]
GUISetState(@SW_SHOW, $hGui)
EndFuncDoppelklick auf TrayIcon macht es wieder sichtbar
-
Bitmaps mit folgender Funktion laden:
[autoit]Func _ResourceLoadImage($DLL, $ResName); THX to Progandy, Zedna
[/autoit][autoit]
Local $hInstance, $InfoBlock, $GlobalMemoryBlock, $MemoryPointer, $ResSize, $hData, $pData, $pStream, $dll2, $pBitmap
$hInstance = DllCall("kernel32.dll", "int", "LoadLibrary", "str", $DLL)
$InfoBlock = DllCall("kernel32.dll", "int", "FindResourceA", "int", $hInstance[0], "str", $ResName, "long", 10)
$ResSize = DllCall("kernel32.dll", "dword", "SizeofResource", "int", $hInstance[0], "int", $InfoBlock[0])
$GlobalMemoryBlock = DllCall("kernel32.dll", "int", "LoadResource", "int", $hInstance[0], "int", $InfoBlock[0])
$MemoryPointer = DllCall("kernel32.dll", "int", "LockResource", "int", $GlobalMemoryBlock[0])
DllCall("Kernel32.dll", "int", "FreeLibrary", "str", $hInstance[0])
$hData = _MemGlobalAlloc($ResSize[0], 2)
$pData = _MemGlobalLock($hData)
_MemMoveMemory($MemoryPointer[0], $pData, $ResSize[0])
_MemGlobalUnlock($hData)
$pStream = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "int", $hData, "long", 1, "Int*", 0)
$pBitmap = DllCall($ghGDIPDll, "int", "GdipCreateBitmapFromStream", "ptr", $pStream[3], "int*", 0)
$DLL = DllStructCreate("Uint", $pStream[3])
$dll2 = DllStructCreate("uInt", DllStructGetData($DLL, 1) +
DllCall("", "UInt", DllStructGetData($dll2, 1), "UInt", $pStream[3])
_WinAPI_DeleteObject($pStream[3])
$pStream[3] = 0
_MemGlobalFree($hData)
Return $pBitmap[2]
EndFunc ;==>_ResourceLoadImage$r[0] = _ResourceLoadImage(@scriptdir & "\img\gfx.dat","move_1_0")
[/autoit]Des weiteren solltest du alle Sprites editieren und auf gleiche Größe bringen, damit die komischen Bewegungen wegfallen (Seitengröße ändern, nicht skalieren)
Bei Fragen einfach melden...
-
Sehr interessante Aufgabe!
Bin auf jeden Fall dabei! -
-
[autoit]
$iAge = 30
[/autoit]
$sString1 = "Geburtstagskind"
$sString2 = "Kasten Bier"
If $iAge > 30 Then
$sString1 = "Jubilar"
$sString2 = "Geschenkkorb"
EndIf
MsgBox(0, "Glückwunsch", "Alles Gute dem " & $sString1 & @LF & @LF & "Wir überreichen diesen " & $sString2)ps.: nicht so ernst nehmen
-
Spiele könnten schon Spaß machen, aber das wäre dann wohl eher was für den normalen µit, da spezielle Kenntnisse wie GDI+ von Vorteil wären.
Und der Gundgedanke vom µit-Light war doch, daß auch AutoIt-Anfänger mitmachen können...