Und das Skript ist wo? Ansonsten macht es keinen Sinn.
Beiträge von UEZ
-
-
Hier eine UDF zum Abspielen von folgenden Musik Formaten:
Code
Alles anzeigen- .MOD (protracker/fasttracker modules) - .S3M (screamtracker 3 modules) - .XM (fasttracker 2 modules) - .IT (impulse tracker modules) - .MID (MIDI files) - .RMI (MIDI files) - .SGT (DirectMusic segment files) - .FSB (FMOD Sample Bank files) - .MP3 - .OGG - .WAV - .MP2 - .RAW
Download: FModMem UDF build 2019-11-24Folgende Funktionen sind hinzugefügt:
Code
Alles anzeigenFMUSICMEM_FreeSong FMUSICMEM_GetBPM FMUSICMEM_GetGlobalVolume FMUSICMEM_GetMasterVolume FMUSICMEM_GetName FMUSICMEM_GetNumChannels FMUSICMEM_GetNumInstruments FMUSICMEM_GetNumOrders FMUSICMEM_GetNumPatterns FMUSICMEM_GetNumSamples FMUSICMEM_GetOrder FMUSICMEM_GetPaused FMUSICMEM_GetRow FMUSICMEM_GetSpeed FMUSICMEM_GetTime FMUSICMEM_GetType FMUSICMEM_IsFinished FMUSICMEM_LoadSong FMUSICMEM_LoadSongEx FMUSICMEM_OptimizeChannels FMUSICMEM_PlaySong FMUSICMEM_SetMasterVolume FMUSICMEM_SetOrder FMUSICMEM_SetPaused FMUSICMEM_StopAllSongs FMUSICMEM_StopSong FSOUNDMEM_Close FSOUNDMEM_DSP_Create FSOUNDMEM_DSP_Free FSOUNDMEM_DSP_GetActive FSOUNDMEM_DSP_GetFFTUnit FSOUNDMEM_DSP_GetSpectrum FSOUNDMEM_DSP_SetActive FSOUNDMEM_DSP_SetPriority FSOUNDMEM_GetAmplitude FSOUNDMEM_GetChannelsPlaying FSOUNDMEM_GetCPUUsage FSOUNDMEM_GetCurrentLevels FSOUNDMEM_GetError FSOUNDMEM_GetFrequency FSOUNDMEM_GetGetSurround FSOUNDMEM_GetMaxChannels FSOUNDMEM_GetPan FSOUNDMEM_GetPaused FSOUNDMEM_GetVolume FSOUNDMEM_Init FSOUNDMEM_SetPaused FSOUNDMEM_SetSpeakerMode FSOUNDMEM_SetSurround FSOUNDMEM_SetVolume FSOUNDMEM_SetVolumeAbsolute FSOUNDMEM_Stream_Close FSOUNDMEM_Stream_FindTagField FSOUNDMEM_Stream_GetLength FSOUNDMEM_Stream_GetLengthMs FSOUNDMEM_Stream_GetNumTagFields FSOUNDMEM_Stream_GetOpenState FSOUNDMEM_Stream_GetPosition FSOUNDMEM_Stream_GetTagField FSOUNDMEM_Stream_GetTime FSOUNDMEM_Stream_Net_GetStatus FSOUNDMEM_Stream_Net_SetMetadataCallback FSOUNDMEM_Stream_Net_SetProxy FSOUNDMEM_Stream_Open FSOUNDMEM_Stream_Play FSOUNDMEM_Stream_PlayEx FSOUNDMEM_Stream_SetLoopCount FSOUNDMEM_Stream_SetPosition FSOUNDMEM_Stream_SetTime FSOUNDMEM_Stream_StopDer Aufruf der DLL erfolgt aus dem Speicher.
Viel Spaß.
-
-
Ich habe mal den FB Code als x64 laufen lassen -> Resultat siehe oben Post#31.
Bei einem Thread die Laufzeit mehr als halbiert!
-
Top

$n = 1000000000 -> Intel(R) Core(TM) i5-4300U CPU:
CodeThreads: 1 Time: 2922.8ms PI: 3.141592652586 Threads: 2 Time: 1786.9ms PI: 3.141592652591 Threads: 3 Time: 1485.4ms PI: 3.141592652598 Threads: 4 Time: 1383.9ms PI: 3.141592652593 Threads: 5 Time: 1476.1ms PI: 3.141592652591 Threads: 6 Time: 1398.5ms PI: 3.141592652588 Threads: 7 Time: 1439.3ms PI: 3.141592652589 Threads: 8 Time: 1397.7ms PI: 3.141592652586 Threads: 9 Time: 1385.6ms PI: 3.141592652587 Threads: 10 Time: 1388.6ms PI: 3.141592652590 -
@alpines: ich habe den Code jetzt auch 4 Threads modifiziert. Ich vermute, dass die Unterschiede von der Addition der Teilergebnisse kommen.
-
Ein Thema ist mir noch in den Sinn gekommen -> Multithreading.
Ich habe mal mit FB verglichen, wie schnell 1 Thread zu 4 Threads sind.
Hier das Resultat:
x86:
Code1 Thread PI: 3.14159265258805 11998.85867815465 ms for 1000000000 iterations. 4 Threads PI: 3.14159266258921 3342.891288688406 ms for 1000000000 iterations.x64:
Code1 Thread PI: 3.14159265258805 5485.781099298038 ms for 1000000000 iterations. 4 Threads PI: 3.14159266258921 2726.45756660495 ms for 1000000000 iterations.Ich habe 1.000.000.000 (eine Milliarde) Durchgänge gewählt, dass man die Auslastung der CPU mitverfolgen kann -> Faktor ca. 3.6!
Source Code:
Spoiler anzeigen
Code
Alles anzeigenType tParam ende As UInteger start As UInteger result As Double End Type Sub Thread_Leibniz_PI(ByVal pParam As tParam Ptr) Dim As Double fPI = 0.0, fSign = 1.0 Dim As UInteger k For k As UInteger = pParam->start To pParam->ende fPI += fSign / ((k Shl 1) + 1) fSign = -fSign Next pParam->result = fPI * 4.0 End Sub Function Leibniz_PI(n As UInteger) As Double Dim As Double fPI = 0.0, fSign = 1.0 For k As UInteger = 0 To n - 1 fPI += fSign / ((k Shl 1) + 1) fSign = -fSign Next Return 4 * fPI End Function Dim As UInteger iterations = 1000000000 Dim As Double fTimer = Timer Print "1 Thread PI: " & Leibniz_PI(iterations), 1000 * (Timer - fTimer) & " ms for " & iterations & " iterations." Dim As Any Ptr pThread1, pThread2, pThread3, pThread4 Dim As tParam tParams(0 To 3) tParams(0).start = 0 tParams(0).ende = iterations / 4 tParams(1).start = iterations / 4 + 1 tParams(1).ende = iterations / 2 tParams(2).start = iterations / 2 + 1 tParams(2).ende = iterations * 3 / 4 tParams(3).start = iterations * 3 / 4 + 1 tParams(3).ende = iterations - 1 fTimer = Timer pThread1 = ThreadCreate(@Thread_Leibniz_PI, @tParams(0)) pThread2 = ThreadCreate(@Thread_Leibniz_PI, @tParams(1)) pThread3 = ThreadCreate(@Thread_Leibniz_PI, @tParams(2)) pThread4 = ThreadCreate(@Thread_Leibniz_PI, @tParams(3)) ThreadWait(pThread1) ThreadWait(pThread2) ThreadWait(pThread3) ThreadWait(pThread4) Print "4 Threads PI: " & tParams(0).result + tParams(1).result + tParams(2).result + tParams(3).result, 1000 * (Timer - fTimer) & " ms for " & iterations & " iterations." SleepVergleich Andy's ASM Code:
Selbst 4 Threads schlagen den ASM Code von Andy nicht!
Oder ich den nehme gleich den ASM Code von Andy als Thread_Leibniz_PI Funktion. Dann sollte es brutal abgehen...
-
Old School Style

Ein bissl zu bunt (für mich), aber sehr nostalgisch.

-
Wenn schon allein für diese "Pillepalle"-Anwendung mit der sehr kleinen Schleife so immense Unterschiede in der Laufzeit (vgl. UEZ´s erste Compilerversionen) feststellbar sind, was bringen dann erst Optimierungen für lange rechenintensive Schleifen!?
Was lernen wir daraus? Shit in - Shit out. Ergo, der Compiler schafft keine Wunder.
-
-
Allerdings sind in dem Code mit dem VUMeter von dir zwei Func drin (_ASM_DecompressLZMAT und _LZMAT_CodeDecompress) welche
in dieser Version nicht erzeugt werden (_WinAPI_LZNTDecompress).Genau das sind die kosmetischen Veränderungen. Das Prinzip der Funktion hat sich nicht geändert.
-
@Cape-City: der Link sollte jetzt funzen. Die Version 2015-09-19 ist nicht veröffentlicht, da im Großen und Ganzen nur kosmetische Veränderungen gemacht wurden.
Vielleicht aktualisiere ich mal bei Gelegenheit die Pastebin Version...
-
Bringt das denn
nachher etwas beim Compilieren oder ist die EXE deswegen auch nicht viel kleiner, wenn der UPX drüber gelaufen ist?Da der Code intern die Daten als Strings speichert, bläht sich natürlich der Code auf. Ideal wäre es, wenn man die Exe so klein wie möglich halten will, die Dateien als Ressourcen in die Exe anhängt. Um zu testen, müsste man aber den Code immer kompilieren.
Wie schon alpines schrieb, reagieren die AV Programme sehr sensible gegen UPX gepackte AutoIt Executables. Die Exe wird zwar kleiner, aber die AV Programme werden dadurch eher nur angetriggert.
Mir persönlich ist mittlerweile die Exe Größe egal.
-
Hier noch ein kleines Bespiel, wie man z.B. XM Sound Dateien abzuspielen kann.
-
Den Part "_FSOUND_GetCurrentLevels@12" in der DLL hatte ich auch bereits im Internet gefunden, wusste aber nicht, wie ich das entsprechend aufrufen muss.
Mal das Help File zu FMOD im Anhang.
Und hier die Funktionen:
Code
Alles anzeigen_FMUSIC_FreeSong@4|0x00020626 _FMUSIC_GetBPM@4|0x00021813 _FMUSIC_GetGlobalVolume@4|0x0002174B _FMUSIC_GetMasterVolume@4|0x0002170B _FMUSIC_GetName@4|0x0002141D _FMUSIC_GetNumChannels@4|0x00021628 _FMUSIC_GetNumInstruments@4|0x000215AA _FMUSIC_GetNumOrders@4|0x00021536 _FMUSIC_GetNumPatterns@4|0x00021575 _FMUSIC_GetNumSamples@4|0x000215E9 _FMUSIC_GetOpenState@4|0x00021D11 _FMUSIC_GetOrder@4|0x00021853 _FMUSIC_GetPattern@4|0x0002178B _FMUSIC_GetPatternLength@8|0x000216B9 _FMUSIC_GetPaused@4|0x0002197B _FMUSIC_GetRealChannel@8|0x000219BA _FMUSIC_GetRow@4|0x000218A9 _FMUSIC_GetSample@8|0x00021667 _FMUSIC_GetSpeed@4|0x000217D3 _FMUSIC_GetTime@4|0x00021900 _FMUSIC_GetType@4|0x00021459 _FMUSIC_GetUserData@4|0x00021AAA _FMUSIC_IsFinished@4|0x0002148C _FMUSIC_IsPlaying@4|0x000214DA _FMUSIC_LoadSong@4|0x000205C2 _FMUSIC_LoadSongEx@24|0x000205EE _FMUSIC_OptimizeChannels@12|0x00021130 _FMUSIC_PlaySong@4|0x00020896 _FMUSIC_SetInstCallback@12|0x00020E4A _FMUSIC_SetLooping@8|0x00021A20 _FMUSIC_SetMasterSpeed@8|0x00021323 _FMUSIC_SetMasterVolume@8|0x000212C0 _FMUSIC_SetOrder@8|0x0002118B _FMUSIC_SetOrderCallback@12|0x00020D94 _FMUSIC_SetPanSeperation@8|0x000213A8 _FMUSIC_SetPaused@8|0x0002126C _FMUSIC_SetReverb@4|0x00021CED _FMUSIC_SetRowCallback@12|0x00020CDE _FMUSIC_SetSample@12|0x00020EF6 _FMUSIC_SetUserData@8|0x00021A65 _FMUSIC_SetZxxCallback@8|0x00020C3F _FMUSIC_StopAllSongs@0|0x00020C18 _FMUSIC_StopSong@4|0x00020B30 _FSOUND_3D_GetAttributes@12|0x000231AE _FSOUND_3D_GetMinMaxDistance@12|0x0002854C _FSOUND_3D_Listener_GetAttributes@32|0x00022DFC _FSOUND_3D_Listener_SetAttributes@32|0x00022CBB _FSOUND_3D_Listener_SetCurrent@8|0x0002301C _FSOUND_3D_SetAttributes@12|0x0002304A _FSOUND_3D_SetDistanceFactor@4|0x00022F5B _FSOUND_3D_SetDopplerFactor@4|0x00022F32 _FSOUND_3D_SetMinMaxDistance@12|0x0002845D _FSOUND_3D_SetRolloffFactor@4|0x00022FBE _FSOUND_CD_Eject@4|0x0002639B _FSOUND_CD_GetNumTracks@4|0x0002648E _FSOUND_CD_GetPaused@4|0x00026462 _FSOUND_CD_GetTrack@4|0x0002647A _FSOUND_CD_GetTrackLength@8|0x000264A2 _FSOUND_CD_GetTrackTime@4|0x00026501 _FSOUND_CD_GetVolume@4|0x0002637D _FSOUND_CD_OpenTray@8|0x00026405 _FSOUND_CD_Play@8|0x0002623E _FSOUND_CD_SetPaused@8|0x000262D2 _FSOUND_CD_SetPlayMode@8|0x000262B9 _FSOUND_CD_SetTrackTime@8|0x000264E7 _FSOUND_CD_SetVolume@8|0x0002634B _FSOUND_CD_Stop@4|0x00026250 _FSOUND_Close@0|0x0002273C _FSOUND_DSP_ClearMixBuffer@0|0x00028908 _FSOUND_DSP_Create@12|0x000285E4 _FSOUND_DSP_Free@4|0x0002864E _FSOUND_DSP_GetActive@4|0x00028811 _FSOUND_DSP_GetBufferLength@0|0x0002890D _FSOUND_DSP_GetBufferLengthTotal@0|0x00028916 _FSOUND_DSP_GetClearUnit@0|0x00028823 _FSOUND_DSP_GetClipAndCopyUnit@0|0x000288EC _FSOUND_DSP_GetFFTUnit@0|0x00028877 _FSOUND_DSP_GetMusicUnit@0|0x0002885B _FSOUND_DSP_GetPriority@4|0x000287D5 _FSOUND_DSP_GetSFXUnit@0|0x0002883F _FSOUND_DSP_GetSpectrum@0|0x000288C5 _FSOUND_DSP_MixBuffers@28|0x0002891F _FSOUND_DSP_SetActive@8|0x000287FF _FSOUND_DSP_SetPriority@8|0x000287A0 _FSOUND_FX_Disable@4|0x00027DCC _FSOUND_FX_Enable@8|0x00027D0F _FSOUND_FX_SetChorus@32|0x00027E66 _FSOUND_FX_SetCompressor@28|0x00027EFD _FSOUND_FX_SetDistortion@24|0x00027F97 _FSOUND_FX_SetEcho@24|0x0002802B _FSOUND_FX_SetFlanger@32|0x000280BF _FSOUND_FX_SetGargle@12|0x0002815F _FSOUND_FX_SetI3DL2Reverb@52|0x000281E0 _FSOUND_FX_SetParamEQ@16|0x0002829E _FSOUND_FX_SetWavesReverb@20|0x00028326 _FSOUND_File_SetCallbacks@20|0x00010232 _FSOUND_GetAmplitude@4|0x000272AC _FSOUND_GetCPUUsage@0|0x00022C80 _FSOUND_GetChannelsPlaying@0|0x00022BAD _FSOUND_GetCurrentLevels@12|0x00027CA2 _FSOUND_GetCurrentPosition@4|0x00027BD5 _FSOUND_GetCurrentSample@4|0x00027C1B _FSOUND_GetDriver@0|0x000229E2 _FSOUND_GetDriverCaps@8|0x00022A9B _FSOUND_GetDriverName@4|0x00022A49 _FSOUND_GetError@0|0x00022CB5 _FSOUND_GetFrequency@4|0x00027121 _FSOUND_GetLoopMode@4|0x00027AE7 _FSOUND_GetMaxChannels@0|0x00022B1E _FSOUND_GetMaxSamples@0|0x00022B3C _FSOUND_GetMemoryStats@8|0x00010D1E _FSOUND_GetMixer@0|0x00022A06 _FSOUND_GetMute@4|0x0002778D _FSOUND_GetNumDrivers@0|0x00022A21 _FSOUND_GetNumHWChannels@12|0x00022C21 _FSOUND_GetNumHardwareChannels@0|0x00022C03 _FSOUND_GetNumSubChannels@4|0x000283B4 _FSOUND_GetOutput@0|0x00022998 _FSOUND_GetOutputHandle@0|0x000229B3 _FSOUND_GetOutputRate@0|0x00022B03 _FSOUND_GetPan@4|0x000274E5 _FSOUND_GetPaused@4|0x0002787B _FSOUND_GetPriority@4|0x0002793A _FSOUND_GetReserved@4|0x00027A07 _FSOUND_GetSFXMasterVolume@0|0x0002204C _FSOUND_GetSpeakerMode@0|0x00022BA4 _FSOUND_GetSubChannel@8|0x00028404 _FSOUND_GetSurround@4|0x00027678 _FSOUND_GetVersion@0|0x00022991 _FSOUND_GetVolume@4|0x00027261 _FSOUND_Init@12|0x000220FB _FSOUND_IsPlaying@4|0x00027C5C _FSOUND_PlaySound@8|0x00026EAB _FSOUND_PlaySoundEx@16|0x00026E24 _FSOUND_Record_GetDriver@0|0x000291B9 _FSOUND_Record_GetDriverName@4|0x00029100 _FSOUND_Record_GetNumDrivers@0|0x000290C5 _FSOUND_Record_GetPosition@0|0x000292DF _FSOUND_Record_SetDriver@4|0x00029151 _FSOUND_Record_StartSample@8|0x000291EA _FSOUND_Record_Stop@0|0x000292B7 _FSOUND_Reverb_GetChannelProperties@8|0x000233CB _FSOUND_Reverb_GetProperties@4|0x000232CC _FSOUND_Reverb_SetChannelProperties@8|0x00023304 _FSOUND_Reverb_SetProperties@4|0x00023294 _FSOUND_Sample_Alloc@28|0x0002967C _FSOUND_Sample_Free@4|0x0002970C _FSOUND_Sample_Get@4|0x0002AA91 _FSOUND_Sample_GetDefaults@20|0x0002A9DD _FSOUND_Sample_GetDefaultsEx@32|0x0002A93F _FSOUND_Sample_GetLength@4|0x0002AA31 _FSOUND_Sample_GetLoopPoints@12|0x0002A8E3 _FSOUND_Sample_GetMinMaxDistance@12|0x0002A49C _FSOUND_Sample_GetMode@4|0x0002A9FD _FSOUND_Sample_GetName@4|0x0002AA65 _FSOUND_Sample_Load@20|0x00029E09 _FSOUND_Sample_Lock@28|0x0002A29B _FSOUND_Sample_SetDefaults@20|0x0002A8C2 _FSOUND_Sample_SetDefaultsEx@32|0x0002A81A _FSOUND_Sample_SetLoopPoints@12|0x0002A4F0 _FSOUND_Sample_SetMaxPlaybacks@8|0x0002A55F _FSOUND_Sample_SetMinMaxDistance@12|0x0002A416 _FSOUND_Sample_SetMode@8|0x0002A381 _FSOUND_Sample_Unlock@20|0x0002A338 _FSOUND_Sample_Upload@12|0x0002A1F0 _FSOUND_SetBufferSize@4|0x00021F16 _FSOUND_SetCurrentPosition@8|0x00027B2B _FSOUND_SetDriver@4|0x00021E76 _FSOUND_SetFrequency@8|0x00026FE3 _FSOUND_SetFrequencyEx@8|0x00027083 _FSOUND_SetHWND@4|0x00021F56 _FSOUND_SetLoopMode@8|0x00027A4E _FSOUND_SetMaxHardwareChannels@4|0x000220B1 _FSOUND_SetMemorySystem@20|0x00010BE6 _FSOUND_SetMinHardwareChannels@4|0x00022067 _FSOUND_SetMixer@4|0x00021ED4 _FSOUND_SetMute@8|0x000276C9 _FSOUND_SetOutput@4|0x00021DEA _FSOUND_SetPan@8|0x000273E1 _FSOUND_SetPanSeperation@4|0x00022007 _FSOUND_SetPaused@8|0x000277DD _FSOUND_SetPriority@8|0x000278C2 _FSOUND_SetReserved@8|0x00027985 _FSOUND_SetSFXMasterVolume@4|0x00021F82 _FSOUND_SetSpeakerMode@4|0x00022B6D _FSOUND_SetSurround@8|0x000275F6 _FSOUND_SetVolume@8|0x0002716C _FSOUND_SetVolumeAbsolute@8|0x0002730C _FSOUND_StopSound@4|0x00026F36 _FSOUND_Stream_AddSyncPoint@12|0x0002EB88 _FSOUND_Stream_Close@4|0x0002D0FF _FSOUND_Stream_Create@20|0x0002CF90 _FSOUND_Stream_CreateDSP@16|0x0002E92F _FSOUND_Stream_DeleteSyncPoint@4|0x0002EC6A _FSOUND_Stream_FindTagField@20|0x0003193D _FSOUND_Stream_GetLength@4|0x0002E6E7 _FSOUND_Stream_GetLengthMs@4|0x0002E71B _FSOUND_Stream_GetMode@4|0x0002E80B _FSOUND_Stream_GetNumSubStreams@4|0x0002E140 _FSOUND_Stream_GetNumSyncPoints@4|0x0002ECC5 _FSOUND_Stream_GetNumTagFields@8|0x0003186C _FSOUND_Stream_GetOpenState@4|0x0002E85C _FSOUND_Stream_GetPosition@4|0x0002E414 _FSOUND_Stream_GetSample@4|0x0002E8F3 _FSOUND_Stream_GetSyncPoint@8|0x0002ED0A _FSOUND_Stream_GetSyncPointInfo@8|0x0002ED47 _FSOUND_Stream_GetTagField@24|0x000318B9 _FSOUND_Stream_GetTime@4|0x0002E5FE _FSOUND_Stream_Net_GetBufferProperties@12|0x00030420 _FSOUND_Stream_Net_GetLastServerStatus@0|0x00030585 _FSOUND_Stream_Net_GetStatus@20|0x000305A2 _FSOUND_Stream_Net_SetBufferProperties@12|0x000303C3 _FSOUND_Stream_Net_SetMetadataCallback@12|0x0003064F _FSOUND_Stream_Net_SetNetDataCallback@8|0x000306A2 _FSOUND_Stream_Net_SetProxy@4|0x0003046C _FSOUND_Stream_Net_SetTimeout@4|0x00030577 _FSOUND_Stream_Open@16|0x0002CFCB _FSOUND_Stream_Play@8|0x0002D321 _FSOUND_Stream_PlayEx@16|0x0002D335 _FSOUND_Stream_SetBufferSize@4|0x0002ED85 _FSOUND_Stream_SetEndCallback@12|0x0002D6A3 _FSOUND_Stream_SetLoopCount@8|0x0002EAA8 _FSOUND_Stream_SetLoopPoints@12|0x0002E9B6 _FSOUND_Stream_SetMode@8|0x0002E78E _FSOUND_Stream_SetPCM@8|0x0002DA74 _FSOUND_Stream_SetPosition@8|0x0002D7E1 _FSOUND_Stream_SetSubStream@8|0x0002E129 _FSOUND_Stream_SetSubStreamSentence@12|0x0002E1A7 _FSOUND_Stream_SetSyncCallback@12|0x0002EB3C _FSOUND_Stream_SetTime@8|0x0002D7F8 _FSOUND_Stream_Stop@4|0x0002D693 _FSOUND_Update@0|0x000228F5Happy Intro Coding.

-
Hier ein kleine Erweiterung der FMOD Memory UDF:
AutoItFunc FSOUND_GetCurrentLevels($F_Channel = 2) Local $tLeft = DllStructCreate("float l"), $tRight = DllStructCreate("float r") Local $F_RetValue = MemoryDllCall($F_DLL, "int", "_FSOUND_GetCurrentLevels@12", _ "int", $F_Channel, _ "struct*", $tLeft, _ "struct*", $tRight) If Not $F_RetValue[0] Then Return SetError(1, 0, 0) Local $F_LEVELS[2] = [$tLeft.l, $tRight.r] Return $F_LEVELS EndFuncKleiner Flimmer Beispiel als Anhang.
Ich sehe, dass du auch "Demo / Intro" begeistert bist.

-
Einen Hammer geilen Geburtstag wünsche ich dir und möge Thor immer dir zur Seite stehen.
Die 50 rückt näher...

-
-
AutoIt
Dim $var2 = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\UNINSTALL\"&$var, "DisplayName") ConsoleWrite($var2&@CRLF) If @error then ExitLoop@error bezieht sich in diesem Fall auf ConsoleWrite und nicht auf RegRead, sprich die For/Next Schleife läuft zwangsmäßig bis 999, da ConsoleWrite nie einen Fehler zurück gibt.
Ansonsten kann ich beim Überfliegen nichts weiter erkennen.
-
Test System (CPU): Intel(R) Core(TM) i5-4300U @2,5 GHz
Mars:
Andy:
UEZ: