Beiträge von UEZ
-
-
AUTOITEROIDS (Final): ein Clone des Arcade Spielhallen Klassikers Asteroids von 1979 (Atari)
[Blockierte Grafik: https://www.autoitscript.com/forum/uploads/monthly_05_2009/post-29844-1242504010.png]
Steuerung:
- Pfeil nach oben: Schub
- Pfeil nach links: Drehung nach links
- Pfeil nach rechts: Drehung nach rechts
- Strg (Ctrl): Schießen
- Space Taste: Hypersprung
Game Play:
- Spiel fängt mit 3 Asteroiden an
- alle 10.000 Pukte erhöht sich der Level (u.a. # Asteroiden + 1)
- alle 30.000 Punkte extra Leben
- größter Asteroid = 20 Punkte
- mittlere Asteroid = 50 Punkte
- kleinster Asteroid = 100 Punkte
- großes Alien Schiff = 200 Punkte
- kleines Alien Schiff = 1000 Punkte
Download:
- Source Code + Exe Version: v1.019 Build 2012-07-30 (Download weiter unten!)
- --=> (.7z Archiv kann z.B. mit 7-Zip entpackt werden!)
- Compilierte Version ohne Quellcode: HIER (v1.019 Build 2012-07-30)
Credits:
- Haupt Code: UEZ
- Bass UDF: BrettF
- Bass DLL: www.un4seen.com
- GDI+ Font Lader Code: Yashied
- Font: ck! [Freaky Fonts]
- Sound + Sound Code Modifizierung: Spiff59
- GetKeyboardState code: Eukalyptus
Zu finden auch hier (inkl. Change Log): http://www.autoitscript.com/forum/index.php?showtopic=95138
Online zocken: ASTEROIDS (Java Version)
Viel Spaß beim Ballern
UEZ -
Ich hab's rausgefunden. DL Link und Quellcode aktualisiert (1. Post).
Die Pegelauschläge hängen nun von der Lautstärke ab.
Gruß,
UEZ -
Auch unter Vista gibt es den Stereomix um den Output aufzunehmen:
Rechtsklick auf das Lautsprechersymbol -> Aufnahmegeräte -> Rechtsklick -> "deaktivierte Geräte anzeigen"
Dann erscheinen dann alle möglichen Devices, welche man dann aktivieren kann._BASS_RecordInit($bass_dll, -1) der Parameter gibt das Aufnahmegerät an, wird bei UEZ warscheinlich 2 sein...(-1 = Default, wahrscheinlich Mikro)
Weiß allerdings nocht nicht, wie man automatisch erkennt, welcher der richtige ist...lgE
Ehrlich gesagt habe ich auch nicht weiter geforscht
Bei mir wird leider nicht mehr erkannt als Microphone und LineIn!
autoit.de/wcf/attachment/4120/
Ich werde versuchen, die Lautstärke mit einzubeziehen, so dass, wenn die Lautstärke leise ist, die Pegel Ausschäge weniger sind. D.h. je lauter desto mehr Pegel Ausschläge.
Ich habe noch nicht nachgeforscht, ob bass.dll die Lautstärke auslesen kann und ob Vista kompatibel.
UEZ
-
Darf ich die Visualisierung für meinen Media Player nutzen?
Nach genauso etwas suche ich schon lange....JA! Nur würde ich gerne bei den "Credits" auftauchen.
Hinweis: Bass.au3, Bass.dll und das Bild sind nicht mein geistiges Eigentum
Bitteschön,
UEZ -
@UEZ
da haben ma das problem schon! ich hab kA von demzudem versteh ich nurn teil des codes
Hier die Modifikation des Codes:
;code by UEZ 2009
#AutoIt3Wrapper_Run_Obfuscator=y
#Obfuscator_Parameters=/SO
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Run_After=upx.exe --best "%out%"#include <GUIConstantsEx.au3>
#include <GDIplus.au3>
#include <WindowsConstants.au3>
#include "Bass.au3" ;thanks to BrettFOpt("GUIOnEventMode", 1)
_GDIPlus_Startup()
$bitmap_from_file = _GDIPlus_BitmapCreateFromFile(@ScriptDir & "\AIMP_VU.bmp") ;thanks to AIMP2 player
Global Const $iX = _GDIPlus_ImageGetWidth($bitmap_from_file)
Global Const $iY = _GDIPlus_ImageGetHeight($bitmap_from_file)Global Const $bass_dll = DllOpen(@ScriptDir & "\BASS.dll")
_BASS_SetConfig($bass_dll, $BASS_CONFIG_REC_BUFFER, 1000)_BASS_RecordInit($bass_dll, -1)
;thanks to eukalyptus
$Cnt = 0
$Name = _BASS_RecordGetInputName($bass_dll, 0)
While $Name <> ""
$Input = _BASS_RecordGetInput($bass_dll, $Cnt)
If BitAND($Input[0], $BASS_INPUT_TYPE_WAVE) Then _BASS_RecordSetInput($bass_dll, $Cnt, $BASS_INPUT_TYPE_WAVE, 1)
$Cnt += 1
$Name = _BASS_RecordGetInputName($bass_dll, $Cnt)
WEndIf @OSVersion = "WIN_VISTA" Or @OSVersion = "WIN_2008" Then _BASS_RecordSetInput($bass_dll, 0, $BASS_INPUT_TYPE_WAVE, 1)
$RecHandle = _BASS_RecordStart($bass_dll, 44100, 2, _WinAPI_MakeLong(0, 10))
Global Const $width = $iX * 2
Global Const $height = $iY$hwnd = GUICreate("", $width, $height, -1, -1, Default, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW))
GUISetOnEvent($GUI_EVENT_CLOSE, "close")
GUISetState()$graphics = _GDIPlus_GraphicsCreateFromHWND($hwnd)
$bitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $graphics)
$backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
_GDIPlus_GraphicsSetSmoothingMode($backbuffer, 4)Global Const $pen_size = 2
$pen = _GDIPlus_PenCreate(0, $pen_size)
$brush_l = _GDIPlus_BrushCreateSolid()
$brush_r = _GDIPlus_BrushCreateSolid()
_GDIPlus_GraphicsDrawImage($backbuffer, $bitmap_from_file, 0, 0)
_GDIPlus_GraphicsDrawImage($backbuffer, $bitmap_from_file, $iX, 0)Global Const $pi = 3.1415926535897932384626433832795
Global Const $pi_div_180 = $pi / 180
Global Const $max_amplitude = 450
Global Const $min_x = 25
Global Const $max_x = 160
Global Const $pointer_ini_point_y = 80 ;less is longer
Global Const $pointer_start_y = 93
Global Const $pointer_length = 65
Global Const $ellipse_size = 8
Global Const $ellipse_size_half = $ellipse_size / 2
Global Const $width_div_4 = $width / 4
Global Const $width_div_2 = $width / 2Dim $title[19] = ["º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`", _
"GDI+ Visualization: Analog Meter", _
"Credits:", _
"Main coding by: UEZ 2009", _
"Bass UDF: BrettF", _
"Bass Record Function Code: eukalyptus", _
"Bass DLL: www.un4seen.com", _
"Image: AIMP Player", _
"Music: ACC:Xess", _
"For more music visit: ", _
"http://remix.kwed.org (C64 Remakes / Remixes)", _
"And of course", _
"AutoIt developers ;-)", _
"•*´¯`*•.¸ .. ¥ .. ¸.•*´¯`*•*´¯`*•.¸ .. ¥ .. ¸.•*´¯`*•*´¯`*•.¸ .. ¥ .. ¸.•*´¯`*.¸ .. ¥ .. ¸.•*´¯", _
"Greetings to: ", _
"All members from", _
"www.autoitscript.com / www.autoit.de", _
" ", _
"Restarting text..."]Global $c = 0 ;counter for sleep
Global $i = 1 ;for character
Global $j = 0 ;for array
Global $k = UBound($title) - 1
Global $s = 150 ;sleep time
Global $in = True
Global $effect = Random(1, 2, 1)$g = 0x00
$b = 0x00Do
$levels = _BASS_ChannelGetLevel($bass_dll, $RecHandle)
$LeftChLvl = _WinAPI_LoWord($levels) * 135 / 0x1500
$RightChLvl = _WinAPI_HiWord($levels) * 135 / 0x1500$l_x2 = $min_x + $max_x * ($LeftChLvl / $max_amplitude)
If $l_x2 >= $max_x Then $l_x2 = $max_x
$l_y2 = $pointer_ini_point_y - Sin($l_x2 * $pi_div_180) * $pointer_length$r_x2 = $min_x + $max_x * ($RightChLvl / $max_amplitude)
If $r_x2 >= $max_x Then $r_x2 = $max_x
$r_y2 = $pointer_ini_point_y - Sin($r_x2 * $pi_div_180) * $pointer_length_GDIPlus_PenSetColor($pen, 0xCF111111)
_GDIPlus_GraphicsDrawLine($backbuffer, $width_div_4 - 1, $pointer_start_y, $l_x2, $l_y2, $pen)
_GDIPlus_GraphicsDrawLine($backbuffer, $width - $width_div_4 - 1, $pointer_start_y, $width_div_2 + $r_x2, $r_y2, $pen)$r = $LeftChLvl * ($LeftChLvl / 0xFF)
_GDIPlus_BrushSetSolidColor($brush_l, "0xFF" & Hex($r, 2) & Hex($g, 2) & Hex($b, 2))
_GDIPlus_GraphicsFillEllipse($backbuffer, $width_div_4 - $ellipse_size_half - 1, $pointer_start_y - $ellipse_size_half, $ellipse_size, $ellipse_size, $brush_l)$r = $RightChLvl * ($RightChLvl / 0xFF)
_GDIPlus_BrushSetSolidColor($brush_r, "0xFF" & Hex($r, 2) & Hex($g, 2) & Hex($b, 2))
_GDIPlus_GraphicsFillEllipse($backbuffer, $width - $width_div_4 - $ellipse_size_half - 1, $pointer_start_y - $ellipse_size_half, $ellipse_size, $ellipse_size, $brush_r)_GDIPlus_GraphicsDrawImageRect($graphics, $bitmap, 0, 0, $width, $height)
_GDIPlus_GraphicsDrawImage($backbuffer, $bitmap_from_file, 0, 0)
_GDIPlus_GraphicsDrawImage($backbuffer, $bitmap_from_file, $iX, 0)
Sleep(25)
Display_Info()
Until FalseFunc Display_Info()
If $in Then
If $i <> StringLen($title[$j]) + 1 Then
If $effect = 1 Then
WinSetTitle($hwnd, "", StringLeft($title[$j], $i)) ;effect 1a, 1 by 1
Else
WinSetTitle($hwnd, "", StringRight($title[$j], $i)) ;effect 2a, scroll to right
EndIf
$i += 1
Else
If $c = $s Then
$i = 1
$in = False
$c = 0
$effect = Random(1, 2, 1)
Else
$c += 1
EndIf
EndIf
Else
If $i <> StringLen($title[$j]) + 1 Then
If $effect = 1 Then
WinSetTitle($hwnd, "", StringLeft($title[$j], StringLen($title[$j]) - $i)) ;effect 1b, 1 by 1
Else
WinSetTitle($hwnd, "", StringRight($title[$j], StringLen($title[$j]) - $i)) ;effect 2b, scroll to left
EndIf
$i += 1
Else
$i = 1
$in = True
$effect = Random(1, 2, 1)
If $j = $k Then
$j = 0
Else
$j += 1
EndIf
EndIf
EndIf
EndFunc ;==>Display_InfoFunc close()
_BASS_Free($bass_dll)
DllClose($bass_dll)
_GDIPlus_PenDispose($pen)
_GDIPlus_BrushDispose($brush_l)
_GDIPlus_BrushDispose($brush_r)
_GDIPlus_BitmapDispose($bitmap)
_GDIPlus_GraphicsDispose($graphics)
_GDIPlus_GraphicsDispose($backbuffer)
_GDIPlus_Shutdown()
Exit
EndFunc ;==>close; #FUNCTION# ====================================================================
; Name...........: _GDIPlus_BrushSetSolidColor
; Description ...: Set the color of a Solid Brush object
; Syntax.........: _GDIPlus_BrushSetSolidColor($hBrush, [$iARGB = 0xFF000000])
; Parameters ....: $hBrush - Handle to a Brush object
; $iARGB - Alpha, Red, Green and Blue components of brush
; Return values .: Success - True
; Failure - False
; Author ........:
; Modified.......: smashly
; Remarks .......:
; Related .......:
; Link ..........; @@MsdnLink@@ GdipSetSolidFillColor
; Example .......; Yes
; ================================================================================
Func _GDIPlus_BrushSetSolidColor($hBrush, $iARGB = 0xFF000000)
Local $aResult
$aResult = DllCall($ghGDIPDll, "int", "GdipSetSolidFillColor", "hwnd", $hBrush, "int", $iARGB)
If @error Then Return SetError(@error, @extended, 0)
Return SetError($aResult[0], 0, $aResult[0] = 0)
EndFunc ;==>_GDIPlus_BrushSetSolidColorVielen Dank an eukalyptus für den Teil des Codes!
Achtung: auf Vista funzt das Ganze nicht richtig. Z.B. bekomme ich nur über das Mikrofon die Levels angezeigt. Außerdem kann ich es auf XP momentan nicht testen und kann auch zu den Zeigerausschlägen nicht sagen, ob die ok sind.
Ansonsten einfach den Hex Teiler entsprechend im Code für $LeftChLvl bzw. $RightChLvl ändern.
UEZ
-
Line Out
also all des was du hörst.Was alles die BASS.DLL + Derivate kann, habe ich mir im Detail nicht angeschaut. Vielleicht ist es auch möglich den I/O der Sound Karte abzuzweigen und mit dem Visualisierer darzustellen.
Momentan spielt es nur Audio Dateien ab, aber du kannst ja gerne den Code umschreiben, so dass es direkt den I/O Stream darstellt
Ich weiss nicht, ob ich die Zeit dafür haben werde...Gruß,
UEZ -
Gefällt mir sehr =)
Wäre es möglich die gesamte Ton-aus/eingabe anzeigen lassen?Danke, für das Feedback.
Was genau meinst du mit "gesamte Ton-aus/eingabe anzeigen lassen"?
UEZ
-
Hallo
Jup, war aber positiv gemeint
Das ist richtig, aber du musst die BassConstants.au3 ja mitliefern, da deine Bass.au3 ja keines Falls kompeliert o.ä. wurde
CD:\..\Bass.au3(4,10) : ERROR: can't open include file <BassConstants.au3> #include <BassConstants.au3>
Mfg Spider
Ups, stimmt. Ich habe die bass*.au3's in mein include Verzeichnis, und deshalb ist es mir nicht aufgefallen!
Werde die Downloads gleich mal updaten!!!
DANKE für den Hinweis!
UEZ
-
Hallo
Ein Typisches UEZ Produkt. Sieht wirklich gut aus, respekt
Könntest du vlt noch die BassConstants hinzufügen?Mfg spider
Danke für das Feedback
So, mein GDI+ Zeug ist also typisch für mich
Die BassConstants wird in der Bass.au3 geladen
UEZ
-
Click Me Link korrigiert!
Sorry,
UEZ -
Hab' ein GDI+ Visualizer geschrieben:
autoit.de/wcf/attachment/4343/
;code by UEZ 2009
#AutoIt3Wrapper_Run_Obfuscator=y
#Obfuscator_Parameters=/sf /sv /om /cs=0 /cn=0
#AutoIt3Wrapper_UseUpx=n
;~ #AutoIt3Wrapper_Run_After=upx.exe --best "%out%"
#AutoIt3Wrapper_Run_After=upx.exe --ultra-brute "%out%"
#AutoIt3Wrapper_Run_After=del /f /q "Visualizer_Analog Meter_Obfuscated.au3"
#include <GUIConstantsEx.au3>
#include <GDIplus.au3>
#include <Memory.au3>
#include <Misc.au3>
#include <WindowsConstants.au3>
#include "Bass.au3" ;thanks to BrettF and ProgAndy
Opt("GUIOnEventMode", 1)#Region load image files
Global $dll = DllOpen("user32.dll")
_GDIPlus_Startup()
Global $bitmap_from_file
$bitmap_from_file = Load_BMP_From_Mem(VU_Image()) ;thanks to AIMP2 playerGlobal $bitmap_from_file2
$bitmap_from_file2 = Load_BMP_From_Mem(VU_Fragement_Image())Global Const $iX = _GDIPlus_ImageGetWidth($bitmap_from_file)
Global Const $iY = _GDIPlus_ImageGetHeight($bitmap_from_file)
Global Const $width = $iX * 2
Global Const $height = $iY
#EndRegion#Region initialize sound and load MP3
Global $levels, $LeftChLvl, $RightChLvl, $l_x2, $l_y2, $r_x2, $r_y2, $r, $current
Global $ChLevel = 0x1000
Global $volume_error = 0
Global $ve
Global $volume_boost_level = 2
Global $needle_decrease_speed = 0.0275
Global $no_load = 0
Global Const $bass_dll = _BASS_Startup(@ScriptDir & "\BASS.dll")
If @error = -1 Then
MsgBox(16, "ERROR!", "Could not load BASS.dll" & @CR & "Terminating... ")
Exit
EndIf
Global $file = FileOpenDialog("Select MP3...", "", "MP3 Files (*.mp3)");
If @error Then
$no_load = 1
MsgBox(16, "Error", "Could not load audio file!" & @CRLF & @CRLF & "At main screen you can press O to open file open dialog window" & @CRLF & "or you can drag'n'drop a mp3 file to window!", 20)
EndIf
Global $filename = StringMid($file, StringInStr($file, "\", 0, -1) + 1, StringLen($file) - StringInStr($file, "\", 0, -1) - 4) ;get the filename only
Global $file_suffix
_BASS_Init($BASS_DEVICE_CPSPEAKERS)
Global $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
Global $song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE)
#EndRegion#Region GUI
Global Const $WM_DROPFILES = 0x0233
Global $hwnd = GUICreate("", $width, $height, -1, -1, Default, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW, $WS_EX_ACCEPTFILES))
GUISetOnEvent($GUI_EVENT_CLOSE, "Close")
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "Move") ;move main window when lmb pressed and hold on main window
GUISetState()
#EndRegion#Region initialize GDI+
Global $graphics = _GDIPlus_GraphicsCreateFromHWND($hwnd)
Global $bitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $graphics)
Global $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
_GDIPlus_GraphicsSetSmoothingMode($backbuffer, 4)
Global Const $pen_size = 2
Global $pen = _GDIPlus_PenCreate(0, $pen_size)
Global $brush_l = _GDIPlus_BrushCreateSolid()
Global $brush_r = _GDIPlus_BrushCreateSolid()
_GDIPlus_GraphicsDrawImage($backbuffer, $bitmap_from_file, 0, 0)
_GDIPlus_GraphicsDrawImage($backbuffer, $bitmap_from_file, $iX, 0)
#EndRegion#Region constants
Global Const $pi = 4 * ATan(1)
Global Const $pi_div_180 = $pi / 180
Global Const $max_amplitude = 450
Global Const $min_x = 25
Global Const $max_x = 160
Global Const $pointer_ini_point_y = 80 ;less is longer
Global Const $pointer_start_y = 93
Global Const $pointer_length = 65
Global Const $ellipse_size = 8
Global Const $ellipse_size_half = $ellipse_size / 2
Global Const $width_div_4 = $width / 4
Global Const $width_div_2 = $width / 2
Global Const $sleep = 30
#EndRegion#Region play audio
_BASS_ChannelPlay($MusicHandle, 1)
$volume = _BASS_GetVolume()
If @error Or $volume = 1 Then ;check whether _BASS_GetVolume() returns 1
$volume_error = 1
$ve = "YES! Volume controlled peak disabled!"
Else
$ve = "NO!"
EndIf
#EndRegion#Region initialize title in window
Dim $title[25] = ["º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`", _
" GDI+ Visualization: Analog Meter", _
" Playing: " & $filename, _
" Get volume error: " & $ve, _
" Press P to pause current song", _
" Press C to continue after P was pressed", _
" Press O to open another song", _
" Press ESC to exit program", _
" Credits:", _
" Main coding by: UEZ 2009", _
" Bass UDF: BrettF (modified by ProgAndy)", _
" Bass DLL: http://www.un4seen.com", _
" Image: AIMP Player", _
" And of course", _
" AutoIt developers ;-)", _
"•*´¯`*•.¸ .. ¥ .. ¸.•*´¯`*•*´¯`*•.¸ .. ¥ .. ¸.•*´¯`*•*´¯`*•.¸ .. ¥ .. ¸.•*´¯`*.¸ .. ¥ .. ¸.•*´¯", _
" Greetings to: ", _
" All members from", _
" http://www.autoitscript.com / http://www.autoit.de", _
" Richie for the good ideas to improve Analog Meter", _
" Christos", _
" and", _
" DrSchulz (http://www.drschulz-music.de/) ;-)", _
" ", _
" Restarting text..."]
Global $c = 0 ;counter for sleep
Global $i = 1 ;for character
Global $j = 0 ;for array
Global $k = UBound($title) - 1
Global $s = 150 ;sleep time
Global $in = True
Global $effect = Random(1, 2, 1)
Global $g = 0x00
Global $b = 0x00
Global $pause = 0
#EndRegion#Region additional GUI functions
GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES") ;enable drag'n'drop
GUIRegisterMsg($WM_TIMER, "Draw") ;$WM_TIMER = 0x0113
DllCall("User32.dll", "int", "SetTimer", "hwnd", $hwnd, "int", 0, "int", $sleep, "int", 0) ;set GUIRegisterMsg($WM_TIMER, "Draw") timer
#EndRegionDo
Until False * Not Sleep(100000) ;do nothing, just sleepFunc Draw()
If WinGetState($hwnd) = 15 Then ;only activate keys when window is active
If _IsPressed("50", $dll) Then ;P pressed (pause)
_BASS_Pause()
$pause = 1
ElseIf _IsPressed("43", $dll) Then ;C pressed (continue after pause)
_BASS_Start()
$pause = 0
ElseIf _IsPressed("4F", $dll) Then ;O pressed (open file dialoge)
$file = FileOpenDialog("Select MP3...", "", "MP3 Files (*.mp3)")
If Not @error Then
$file_suffix = StringRight($file, 3)
If StringLower($file_suffix) = "mp3" Then
$filename = StringMid($file, StringInStr($file, "\", 0, -1) + 1, StringLen($file) - StringInStr($file, "\", 0, -1) - 4) ;get the filename only
$title[2] = "Music: " & $filename
_BASS_ChannelStop($MusicHandle)
$MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
$song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE)
_BASS_ChannelStop($MusicHandle)
_BASS_ChannelPlay($MusicHandle, 1)
EndIf
EndIf
EndIf
EndIf
$levels = _BASS_ChannelGetLevel($MusicHandle) ;get 16-bit level for l/r
If $no_load Then $levels = 0x00000000
$l_w = _HiWord($levels) ;get volume level from left (15-8 bit)
$r_w = _LoWord($levels) ;get volume level from right (7-0 bit)
If $l_w < 0 Then $l_w = ($l_w + 1) * - 1 ;invert value to positive value (a bug in bass.dll?)
If $r_w < 0 Then $r_w = ($r_w + 1) * - 1
If $volume_error = 1 And $pause = 0 Then
$volume = 0.33333
Else
If $pause = 0 Then $volume = _BASS_GetVolume() * $volume_boost_level
EndIf
If $pause = 1 Then ;if pause then move needle to position 0
If $volume >= 0 Then $volume -= $needle_decrease_speed
EndIf
$LeftChLvl = 1 + Round($l_w * 135 / $ChLevel * $volume, 0) ; 135 = $max_x - $min_x
$RightChLvl = 1 + Round($r_w * 135 / $ChLevel * $volume, 0)
$l_x2 = $min_x + $max_x * ($LeftChLvl / $max_amplitude) ;set x/y coordinate of needle
If $l_x2 >= $max_x Then $l_x2 = $max_x ;avoid exceeding right limit of needle
If $l_x2 < $min_x Then $l_x2 = $min_x ;avoid exceeding left limit of needle
$l_y2 = $pointer_ini_point_y - Sin($l_x2 * $pi_div_180) * $pointer_length ;calculate length of left needle (radius) depending and new x/y coordinate
$r_x2 = $min_x + $max_x * ($RightChLvl / $max_amplitude)
If $r_x2 >= $max_x Then $r_x2 = $max_x
If $r_x2 < $min_x Then $r_x2 = $min_x
$r_y2 = $pointer_ini_point_y - Sin($r_x2 * $pi_div_180) * $pointer_length
_GDIPlus_PenSetColor($pen, 0xCF111111)
_GDIPlus_GraphicsDrawLine($backbuffer, $width_div_4 - 1, $pointer_start_y, $l_x2, $l_y2, $pen) ;draw left needle
_GDIPlus_GraphicsDrawLine($backbuffer, $width - $width_div_4 - 1, $pointer_start_y, $width_div_2 + $r_x2, $r_y2, $pen) ;draw right needle
_GDIPlus_GraphicsDrawImageRect($backbuffer, $bitmap_from_file2, 68, 76, 53, 30)
_GDIPlus_GraphicsDrawImageRect($backbuffer, $bitmap_from_file2, $iX + 68, 76, 53, 30)
$r = $LeftChLvl * ($LeftChLvl / 0xFF)
_GDIPlus_BrushSetSolidColor($brush_l, "0xFF" & Hex($r, 2) & Hex($g, 2) & Hex($b, 2))
_GDIPlus_GraphicsFillEllipse($backbuffer, $width_div_4 - $ellipse_size_half - 1, $pointer_start_y - $ellipse_size_half, $ellipse_size, $ellipse_size, $brush_l)
$r = $RightChLvl * ($RightChLvl / 0xFF)
_GDIPlus_BrushSetSolidColor($brush_r, "0xFF" & Hex($r, 2) & Hex($g, 2) & Hex($b, 2))
_GDIPlus_GraphicsFillEllipse($backbuffer, $width - $width_div_4 - $ellipse_size_half - 1, $pointer_start_y - $ellipse_size_half, $ellipse_size, $ellipse_size, $brush_r)
_GDIPlus_GraphicsDrawImageRect($graphics, $bitmap, 0, 0, $width, $height)
_GDIPlus_GraphicsDrawImage($backbuffer, $bitmap_from_file, 0, 0) ;clear screen by overwritting screen with bmp (left)
_GDIPlus_GraphicsDrawImage($backbuffer, $bitmap_from_file, $iX, 0) ;clear screen by overwritting screen with bmp (right)
$current = _BASS_ChannelGetPosition($MusicHandle, $BASS_POS_BYTE) ;get current song position
If $current >= $song_length Then _BASS_ChannelPlay($MusicHandle, 1) ;replay song when it is finished
Display_Info() ;display win title info
EndFunc ;==>DrawFunc Move() ;move whole window when pressed lmb and hold continuing drawing of window content
DllCall("user32.dll", "int", "SendMessage", "hWnd", $hwnd, "int", 0x00A1, "int", 2, "int", 0) ;$WM_NCLBUTTONDOWN = 0x00A1
EndFunc ;==>MoveFunc WM_DROPFILES($hwnd, $msg, $wParam, $lParam) ;drag'n'drop function - I don't know who made this
Local $tBuffer = DllStructCreate("char[256]")
Local $iString
;Get dropped items count
Local $aRet = DllCall("shell32.dll", "int", "DragQueryFile", "int", $wParam, "int", -1, "ptr", 0, "int", 0)
;Getting name only from 1st dropped item
DllCall("shell32.dll", "int", "DragQueryFile", "int", $wParam, "int", 0, "ptr", DllStructGetPtr($tBuffer), "int", DllStructGetSize($tBuffer))
$iString = DllStructGetData($tBuffer, 1)
DllCall("shell32.dll", "none", "DragFinish", "int", $wParam)
$file = $iString
$filename = StringMid($file, StringInStr($file, "\", 0, -1) + 1, StringLen($file) - StringInStr($file, "\", 0, -1) - 4) ;get the filename only
$file_suffix = StringRight($file, 3)
If StringLower($file_suffix) = "mp3" Then
_BASS_ChannelStop($MusicHandle)
$title[2] = "Music: " & $filename
$MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
$song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE)
_BASS_ChannelStop($MusicHandle)
_BASS_ChannelPlay($MusicHandle, 1)
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_DROPFILESFunc Display_Info()
If $in Then
If $i <> StringLen($title[$j]) + 1 Then
If $effect = 1 Then
WinSetTitle($hwnd, "", StringLeft($title[$j], $i)) ;effect 1a, 1 by 1
Else
WinSetTitle($hwnd, "", StringRight($title[$j], $i)) ;effect 2a, scroll to right
EndIf
$i += 1
Else
If $c = $s Then
$i = 1
$in = False
$c = 0
$effect = Random(1, 2, 1)
Else
$c += 1
EndIf
EndIf
Else
If $i <> StringLen($title[$j]) + 1 Then
If $effect = 1 Then
WinSetTitle($hwnd, "", StringLeft($title[$j], StringLen($title[$j]) - $i)) ;effect 1b, 1 by 1
Else
WinSetTitle($hwnd, "", StringRight($title[$j], StringLen($title[$j]) - $i)) ;effect 2b, scroll to left
EndIf
$i += 1
Else
$i = 1
$in = True
$effect = Random(1, 2, 1)
If $j = $k Then
$j = 0
Else
$j += 1
EndIf
EndIf
EndIf
EndFunc ;==>Display_InfoFunc Close()
_BASS_Stop()
_BASS_Free()
DllClose(@ScriptDir & "\BASS.dll")
GUIRegisterMsg($WM_DROPFILES, "")
GUIRegisterMsg($WM_TIMER, "")
DllClose($dll)
_GDIPlus_PenDispose($pen)
_GDIPlus_BrushDispose($brush_l)
_GDIPlus_BrushDispose($brush_r)
_GDIPlus_BitmapDispose($bitmap)
_GDIPlus_GraphicsDispose($graphics)
_GDIPlus_GraphicsDispose($backbuffer)
_GDIPlus_Shutdown()
GUIDelete($hwnd)
Exit
EndFunc ;==>CloseFunc Load_BMP_From_Mem($pic) ;coded by UEZ. Thanks to ProgAndy for mem allocation lines
Local $memBitmap, $len, $tMem, $hImage, $hData, $pData, $hStream, $hBitmapFromStream
$memBitmap = Binary($pic) ;load image saved in variable (memory) and convert it to binary
$len = BinaryLen($memBitmap) ;get length of image$hData = _MemGlobalAlloc($len, 0x0002) ;allocates movable memory ($GMEM_MOVEABLE = 0x0002)
$pData = _MemGlobalLock($hData) ;translate the handle into a pointer
$tMem = DllStructCreate("byte[" & $len & "]", $pData) ;create struct
DllStructSetData($tMem, 1, $memBitmap) ;fill struct with image data
_MemGlobalUnlock($hData) ;decrements the lock count associated with a memory object that was allocated with GMEM_MOVEABLE$hStream = _WinAPI_CreateStreamOnHGlobal($pData) ;Creates a stream object that uses an HGLOBAL memory handle to store the stream contents
$hBitmapFromStream = _GDIPlus_BitmapCreateFromStream($hStream) ;Creates a Bitmap object based on an IStream COM interface
$tMem = ""
Return $hBitmapFromStream
EndFuncFunc _WinAPI_CreateStreamOnHGlobal($hGlobal = 0, $fDeleteOnRelease = True)
Local $aResult = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "hwnd", $hGlobal, "int", $fDeleteOnRelease, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return $aResult[3]
EndFunc ;==>_WinAPI_CreateStreamOnHGlobalFunc _GDIPlus_BitmapCreateFromStream($pStream)
Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $pStream, "int*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return $aResult[2]
EndFunc ;==>_GDIPlus_BitmapCreateFromStreamFunc VU_Image()
Local $VU = '0x89504E470D0A1A0A0000000D49484452000000BE0000006B0803000000FE59C833000002A6504C5445000000FFFFFF282828707070B8B8B8484848D8D8D8F8F8F8808080A0A0A0181818E0E8E0F0F0'
$VU &= 'E8E8F0E8C8D0D0E8F0F0F0F8F0D8E0D8809088586868909898E0E8E8F0F8F8607068707878B0B8B8F8F8F098A0A0D0D8D880888898A8A0D8E0E0C0C8C8C0C0C0687070C0C8C0C0C0B8E0E0D8788080B8'
$VU &= 'C0C0D0D0D0585858787878888888D0D8D0B0B8B0F8F0F0606060909090A8B0B0A0A8A850605868686860686898A098808880708078A8B0A8485858889090A0A8A0F0F0F8989898707880788078788888'
$VU &= '7078709898A0788880506860D0D0D8F8F0F8808890687878909890B8C0B8A0A098806040A08080D04838D0C8C888908890A098808078B84030D04038C03828C86050E0C0A0B8B8B0C8C8D0C03830C840'
$VU &= '30C83830C04840505858B8C8C0C84038E08080889898D03830A08060888880B06058E8E0D8586860F0E8E8687068F8F0E8384840789088907068C8D0C8C83828986858C83028202020C83020D8D8D098'
$VU &= '7870B0B0B8708080586060485050B0B0A8606860687870B06860C02020787070806060A87060404020787870806868A8A8A03838380404042C2C2C4C4C4CDCDCDCFCFCFC8484840C0C0CA4A4A4B4B4B4'
$VU &= '1C1C1CF4F4F4F8FCF8C4C4C4FCFCF8D4D4D4CCCCCC7C7C7C8C8C8C545454F8FCFC6464645C5C5CFCF8F8FCF8FC6C6C6C9C9C9CF8F8FCFCE0E084807CBCC4C07C88848C7C7CB06458A4ACA87884809C6C'
$VU &= '60D0D0CC808C88A47C7C8C94949C808098A09C90746CC44038D4D4D0807C7CA04C4074807C787C7CBC4838CCD0CCB8BCB8A46C58C8CCC8E4E8E0F0FCF8E4E8E4B0B4B0ACB4AC748080B05044BCC0BCC0'
$VU &= 'C4C0F4F8F4808C8CAC5848DCE0DCB4B8B4E0E4E0909C98D0D4D0D4D8D4ECECEC080808F0F0F0E0E0E0C8C8C8303030BCBCBC343434747474ACACAC404040A8A8A8505050101010E8E8E8E4E4E4B0B0B0'
$VU &= '3C24B1380000138849444154785ED4CE091180400C03C0F87797F4BBE3C70903A8E82A58BC7474849F726E773FCBD0B75FCB78B29FD80520CBDCAF861803D0E443ADB930B7719D67386F84D997A82060'
$VU &= '652F69620196209902AC094004AAD0A201B156DA38159D984E2A516A493111CBDED354AEABA497B4EEC56D33196D860A964B8E02696123AD5BB95737BD5A7553A9357BA1EBB0D80DC71C3687FC27DD3D'
$VU &= '806C6A466401096CC9678667170B70F6392FBFF3EDC10C9D1A0D1C380CA736F45F1FF8CE86A8E140521357BFFA81EFCCD70C1C488C5AE0173DFD927130FD8D52E040A75F6AA48FB6E31CC6DEB357FA22'
$VU &= '14728E8450E748588908F8080121F6505F2E02431E1E663D1C518F3EF2A8D6D9059F4EEDB1EEA80A494844F040348CA4DE5EA71FD2118DC57B34C227FEDD22DADD0B807A88899EB0B977E9F7AD01A50D'
$VU &= '6761CDC0421F9A4357750BDBA06532A422D11F40973310F8D0F7805A52585043AA8ADE4753780F9D6CD6735D0194AD55EFC02D07C67DF50D6CDD58C5D2D7C45007E0FD34533FA44EA66320F4BB524A2A'
$VU &= 'E366E1F6C748E1284A08D1FE30542015CD887832FEBE3C84D394BF01BE7B0DB8F678ED6B6BA8DDE8DB517FF55800C31D181A028687D0042455DF3452D675BC87A0A320D7EF200B8FFCF7A5CA5D001871'
$VU &= '10EDE9B47097D4F10FE755B329FFABD76BA5EB7DF4D46BD777D28781A1AFF0F8163AEAFABB87AF53922502FD230901E23D4CA49F489E182565ED3FF664774E9E9188152296BC4C20FCE14C6F320AB009'
$VU &= '7D71C31D3C56ABFD6FFA7DC7D78F8BBBE9EFE84F50272801A114F3C998BAFD5DC089C6EB5E3C12118A68E8331FA54D13365861ACA08A421ECDF1956BC3D7BCE258D85DBF74E8C63030FFF26AE9DDE19D'
$VU &= 'D3274DA88E0EB24267204D22DC93C6364894554AE76D156E9327BB4C0B0D0A39A4BBB74F7AB7F8176E78EAA543631CFCDEC19DF46120F8DF2EB0F9EEF5EB87941DF4E913C93DF9FD11E8603CA550A4C3'
$VU &= '85C23DD5439B03B948432B11149010423969120D466227B5A7EAD77D5801B9A37EEDE543252070ECF8B1E1D28EFA40CD316080CA620D3BCBC32968A74E45EA45444BCD7CC4B76705EF41B845D1388B6A'
$VU &= '114854247E60DB2C7B7FF0A38FF40220558064D689606736053CC4E215DF6FF7C79621871DED492190D3BAC04A850DBABA68DB3621314984F375531BB9BBEB8288E655E8044CF94A3D2A7D093DE924C9'
$VU &= 'D050E1E1F73CF2FCFE2D9F55BB629A204174697992B0E9A1EB48F8B224984F80F223F13147EA5B9E3EC146E3C9D1A2457F3B6143282C37AEC73F12054432B6FBB6418EC6036DD958A75CB56942B821B5'
$VU &= '90A387D437758487D2204DBFA0E5822694B1A7C10A6095F3BE3E818F21A20560EBE8D504BAC0BC1629AB000826A3C948249F74F66AC749CB22510F9E69D781D3110525302D1D915886202DA40A521570'
$VU &= 'F2E1C6C76377D387A3C96BD11FAAB20BCE232964650400A943391100F746DFAE5A047B3BCBA46DA942B72052BDB2724CAABA45223712814EA2B7A0420D09E5E94CFFA9DC482C56D062FDA7F3F95C34E5'
$VU &= 'C6D54041E61BCB43253ED4A180A00DD3247572645CBD579F6D4CDF632C291337CD323D0027206B2097024FC22D2800184AF7C7A2C1582C968FA61289703C1E5794DEDE703811CDE563B16477F019D771'
$VU &= '4E2920F9F14F3C3BF15CD6A2C8DA242D1E15F00F68C036EAD3041249D5E9C8F9FEB42AB009F1C91448331A3B821022B154281D0D6ADAA772036941DC0F5528CF8C7E4A3BF1643E1D81F8E1336727CF9C'
$VU &= '3BFF231B02A4CD4E15A4499F0AC0066D4A5FA4B23F7A8A08271DE866D52ED326311013C8C2D1126059F4F4C7F2195789C0476ADC7F3F4CA124F29A96FFE427A62626A62FCC7833C85A3A5CAD57CE8226'
$VU &= 'A9FA7D1440B94DFA44E2D31A92792FE3005456099A20C4480A24735A3CA515728DCCEBC38E7FFABA917AF833E3E3E3335317272626CE5E3C37FBF5C88FE5A47DC53449FA7DD419D204DAA4AFB2B33FEA'
$VU &= 'F41773DD0A74BB6C9BA64D12294D806AFEA33DB9B0DA48AB19480B80353EFEFB2FCE5C9C3B3B71616AF6C77FE20828A990F0FBA813CD6B026D4A9F88F73FAD16C7C22069B2EC8F1FAB44F21925373E7A'
$VU &= 'D404CA680D822C0FBC7AFA0FFFE8E2F4D9B3D39333B33FC5B2CE3A2AE1913971B43DFA10AE8354FF610032A00A65F7815AF8692D2500130F46B5BA7AF3B527FEF8CCE4F4C4D9A999D99F0149DBAC10A1'
$VU &= 'B49BEFF8D9F6741E42A41412AE83CE9C03B242593AA194968F13241E0276FDC99F9EFE337F15CC5D3877FEB3A00FC4899F2BA69C87D4679D0A850049942DE6345297F26AB49077F0F090D6DB7F7EFA2F'
$VU &= '6626A7CF5E983A77DE2E93EC82F8DCE7BA2AF0301F589FA41C6D0296491F44623950273850C81F0688366093B5D86B7FF90DAF0D5DF09600988513E9FA8C83874A9F84C86404C8B269DB264DD324E1F8'
$VU &= 'CFAAEA252DE8A07D50D7F5D74F3FFB8DE727262ECE9CCFE2E9EEF4FBB9930FA24FA2735CD39E4883B42C5AA6E51F88818288C4B430DA0D3B0BA77FE1F939AF82669F4BA6409D2024BBE97F7517FD4041'
$VU &= '20DA110749D3F2C3B74D12D17ECD55B117FC55CF5FFFCDF4C4DCF499675966B5AE4FAAA4BE5BFA1BF7D3A74D284303508341153449D3362D9270C63501624FE0CADFFEFC0B73D35E0FCD8255D3040824'
$VU &= '334901ABB5E2D121B47191EA4E9C8C8D8440DB96954F0B033DA9965A258956587DE4EFFEFEC2D90B93E7BE5EF66F4AEA0825C723B8F4CC11E84DA62FED0BB958B2F352F244410169D9F4ED11098E09E8'
$VU &= '2D1895DE192CA115AA6BAFFDC3E485B9CBE73E0FFA37B5993C9C1418481655B4A0AF0C29C20B5AA443A054B76DC2D146D50A4DAB697FBEB9B47489065AE11F4F7F61F2F9B91766CE83FC266DD2AE300B'
$VU &= 'E5291746B3FA34D5742892FFA5A80BD8A44E1FB88530C88A65A3490C717BD3B92D5AD387FECF43FFE2F94F9DB7A99BD411D714B5E7576291E6D3A76E9AB432BF9A14A12F5E828C9E88161C90AC12CD52'
$VU &= '5A1E14627099688D7FFDB79E7F7F61EEF2D4AC6D67AB44FCB18CF36B79902D148FEA3A883EA58099A40BFAE462219036596D3A7CE796B3BAEAAC6C1A680DFEE7AB3F7979FAF9C9D9ACAD1348FCFAA7B5'
$VU &= '93660BB56FAAA930784485AE23D19D4296EA5891205931D134A59545E1F1CEAD125A83E5FC6B9EFFE5C9D9CF96F99C4BA11064F3FA74D2042D929E7FF8A91C446194F56F8855340BBFB5EC080FE7AD2B'
$VU &= '2DC66F92B95F7EF1F2DC0BBF316BE77ED32D1326C9E6FB3E6952A243B8914B3DB142942069A3798CDAA8227C36176F975AF3376DF2D68917A7E6E6667ECB2B6055A507764ABF761FFD063A39F2443CFF'
$VU &= '6800244DA205F8C682B32971FEE01DA225E89138FDDB53675EFA9D23C8D29655D0D2A6017568E95FECE8CF116415AD60883B8AA72FF9D6E86A6BF1DB0079E9D5DF7DE9F7AAD469FBFE6821FDED58F028'
$VU &= '93680D2E2FF9F61267E04DB65AFDE8FAE6958F3F53A66ED307BBEAB71BC3787B4571DE43B9D3F4B3CBB2D0802C83ACCF053BE87FF01E7D03BB0336AB5F5A59BA5237F7872BEE328D66F56D34A8EE94FA'
$VU &= 'DEA7AFDCAA7B2FAE2CCA49DC7EBB597DC084846017EA34917EFB904D7349B9E2B1B8B2BCE29F28EE4AA9F5BB10FF3FFA7CE32D69AF2CBFB99A7115390FA54D77D97B7D63757450DABB999AE1DC5EF4CE'
$VU &= '14F74ECD300E84BEC1E5BE45C563E9CEDB86FF6270707069616B900742DF30366F0FFAF683B73C6303B595A24730B87240F44B2B0B8B3ECB8DAD6669B5E653327020F4959525DF7EB0CF91D6F7D2CE59'
$VU &= 'B4BFEFCBA6B93028F503C5E03DBCFEFAC848B0F816DB9AFE77ADB7579F6FDC1A6CE02EF479ACADC9211008DC2EDE743789F6E9AF79FAED4DDF58BDB920DD975C692FF1DC57EE146F29B5120DB453BFDD'
$VU &= 'E91B1C58715D571A37B8BA75F5F6CDD137376B256F0D1BD8BFFAB269DEDC0A5CBDBAE5E31FD6D7B746FDD8595B5596B78A77560D633FEB9756E6D7EFB2B1B1BE5E1C75FFA944C360A6589C9FDF985FE3'
$VU &= 'BED6BF321F9CDFD8D898F71ACDC64631A0D4287D0D2E8FCC7B048BFF61ECDBA56B18A59BAF78E2AF8C0537FC26E3C7FE5E3B9DF7DF098E8D960C639FA66F70F095316D2C381F5C91B11BDB67B6383236'
$VU &= 'F6CAD8D8C81BDCB7FAA53B63C1EDB16FD72FDD1996AC97DAA7DFD7567DD46E66646F6FC8DFEB2FAE06D63C166A86B15F97AE54DFB1B4EA18D8AFE963D7FF9C37EA603FE9B7CEC1D037600077D3360E98'
$VU &= 'BE0189D4971807465FAAD694BEE1C70FBDEC71E8F1E13EA5262FFFDFEA1BA55A8D0F225F5A1A3EFEA56F7FF9830DBEFCED2F1DBBE6961E6402945F321F40DF40EDCAC2FAD6924318ADC9AFFE0FE756B4'
$VU &= '9CAA0E451B0C89F8DC1FC81BC5077CE099AFF223A88285320CA8A333FA4734092844217F7283B6A770CFB9BDED592A387BEFC9ACACBDB3639C41EE3C45F974F2DE713AA9A978B668C00F87C26D262BE2'
$VU &= 'D3BF519FA6EE78B359877EFCA3277CB0DC2F34C5FDC6FE763B75E892B1AD6817F16DC4BEB036B3F1CCA43FA5AF683077255C578CC336F88168E85C2CEEDCEBA57D50C53F72F67A7D9FC862E1643FE95C'
$VU &= '8D1C2B06E166E36310FC507D9A8C67B6BD77662B137F3FDBF052D41D3CDDB6D68AF9656B3BE7B565D7DECD5CE8F2FB8D02A3A93BDADBF66C55D29FFD685029A672B5BD6CB74B7B45E877E9C7E272D93F'
$VU &= 'EDB7B53EB20E975ABBBEBCBDBD5DE7F565B43EE8F593725D9647FADD64C6C96AB7DC2AACC59F8B2E268BFFA00F024AB6A75AE16467F49BECA9B01D6B3CB67567BDAF4FDAF57ADA1F0EF669729D9FF4DD'
$VU &= '5A99C7E3B563BBF91F98F41FD6FBD82BE26CE779B74C7614DF5FBD384007F48788D176A12AD6D30E2CFE865C41C77EEF8CA7D6E562ED54B1CF5F74C1681C53269F147FAF76ACE576BD1A1F9EDCFC7BFA'
$VU &= 'E3C6D2BA55B4D0BBB5FBFFEA078332CEA5A71585B62479F02DED71B577A6B391EE5875A1D84FC68CD25881D276367FF5BC6269D9FA79361DED8DDFD2C97C9A6293509A99D8375384EF7AF0AD62B03819'
$VU &= '79B7741B1FA828EA339435C0CFF0803E2B4D24A1292346A20C71151E53E8E8CB11A7F8361DC263D8CA469A304A7104E3DF562DB1157B5BB7EC42B1D726B3B6C9E91D4D7B7C55FA178573D69DD9D4D947'
$VU &= 'C34E1200689023811C9A5102AB2811F71325A699B5D46D99E37B0C95CC4D8E5042112722EB174F208F50D06CC65925431395DDF01853C628C6F74419A2A9D80CBABCAA2066B21D663308D0C1DECC2EDB'
$VU &= '753DEFB6A9898358F30B0C9D275D3B9D2FD797A7D9C676CC000C90B8C72A444026666CC8924777F79D418E6FEC73C335210B8F4722650628CC07EABBC7B26A1237415292368D62FC71C008EEFA64EE91'
$VU &= '54CC758D44701A10180CE50BE8E66935D577A3422B14B44594B24FB4293CCD6F76CFDA2F67D3A771D32FFF001021A5292547426611E161692A639F41009228A92225AE2C230C7068B41DFDE2437D9EF9'
$VU &= '4C121F96392F3306617B5FE41F00BC61256F13D34C4D00A82CF3BEFA2AA0DC9F2D7D64CFB562B15814AF76827CE4BF0321C40FAF3787A61D0EFAD47A92C346D82D119033809B1C505575AD1A7E70FA09'
$VU &= '020A00A53856A04110E44D7C57FFF58B8DE4071BA465DB97F572A2DD50BC8E93B40733E59B7971F74D9EACE5C839B04E9D1FE1F778A5FE07FD28C349D4B028C13C0E383139565E96519E129E91848280'
$VU &= 'F332C10043642698247858F972BF7CB28A8936BF61319F1233EBC1248F0BEDEED4AEF5FAB2DD8741BF78D2927342987AA3D2447E9A22546256129F93B4F33765C21100698609E50941CAC500A0BFE807'
$VU &= '3E521643B491297320A06B6060CECCF298F26329239182401866C90197A282992958BF76036AD53B4BBBCEDF51CC57900F006785F6E19D14EBBD3E6AFAE5534A3FEA3A4AC488E0A812A1846E6A4A1855'
$VU &= 'D2ECEA0755709A005C1938314A215126A3B2AF7E809BC8C4C710101EE581806685B198C15619248255B76BCBB0C94A40122138427050F940D62367727D9DBC2AA86BA15932213D2472AC151FEEF9757E'
$VU &= '3E7812F4F813E9C34AF8823724EA9A4F65548F9257A12F09BAD137D47000B98F6960E41561A608D9A078046CA22A35AB889651023188202C194424C8222E1AAE3480308214E48240C9C22807BDCD4EE8'
$VU &= 'D6F67A9D7CE05A68F611963D40C3D18AC967C075775E42F079904C18200D2F21411C26314C9128591931A406C97010048803BF22D24C212E6954A61CA181FA00DF3FF4D6AD06CFFD759DEBCE15BF5FB0'
$VU &= '0A093E0B379E2EC7F5DBB5074DAB570246BF00ABA9AE69FD88B7E55A7F049F12BC1FEC3106EF8DF2C33858220A7D6AB46B9C77FAACEB9C7E0310F35BD098AC6D6966A6A8F1E9FF7503D3B6ADC5F3B58F'
$VU &= '89A7EDA6B2AA6487EEBE71346F320879F6C6DB03FBE2F8759F448B529421C69A386D1105BE99372CE54C997D1074F40B49BB6956D3A31186110E8D48C67C631C1FB399EB0A1E31107C79B872F5F3EEE5'
$VU &= 'F96580B745713A4C8508C51D9B9157146F6F839887D7D161293A79BF1227095DE91A86A8905B4559136EB898B91B28852131A0C47BA85D8AD5182D6A106369DCE48C05D467CCCFD5451963107CA10FDF'
$VU &= '6DC7FAC3F3DB10CF2FF5C2B32D5709628486BBDED55A7DFD77D0C3F3657D19A12FFF97034DAB94677E9BB64DE3D3B84554D1F4D5F79BFA86FE503BE8AFF7ADD45A9E47AF0F7FC0B52E4E17FBBC9A4E57'
$VU &= '67FBE22DEAC99FA2E6D66139F5C15F82B2D1E5A1D8594DFC4F2B75B0E2200C840178BAD968C95BECB173E9250F995457E9D18ABE532D4A24CC40DFA4B1746F6D6060BFF39F7F0602534AFDA6D73FA887'
$VU &= '2EC27B1CC357889A4847770AD1C07B5577ACF673B9DD0BB16B333AF076B4DF452D34DF9B03D9AE6FE1933644B79C364E07864F78DC0F74BC9CE7A29652A3F200AC5435588994A6CAAEA8197278894F4B'
$VU &= '3E660857AB69AB156E81E6F583889D00A6B8A205003CE4B1310C597EAB08B43E4B45B06FFFE6FB49C6C3BFF39314240FFB2BE73850E508D20000000049454E44AE426082'
Return $VU
EndFuncFunc VU_Fragement_Image()
Local $VU_Fragment = '0x89504E470D0A1A0A0000000D49484452000000350000001E0803000000BB53A6B7000000AE504C54450000003030302828281010104040404848485050507878786060606868683838381818182C2C'
$VU_Fragment &= '2C343434202020080808A8A8A88888889090907070705858588080807474744C4C4C7C7C7C5C5C5C6C6C6CB8B8B8B0B0B0646464D8D8D8F0F0F0E0E0E0ACACACC0C0C08484840C0C0CA4A4A41C1C1C8C'
$VU_Fragment &= '8C8C545454040404A0A0A0E8E8E8E4E4E4D4D4D4C4C4C4D0D0D0C8C8C8B4B4B49898989C9C9CBCBCBCDCDCDCF4F4F4CCCCCCECECEC909898AA04C38C0000000174524E530040E6D8660000025D494441'
$VU_Fragment &= '54785EC5D2D772DB381480611EF4CEDE49F52E773BC9EEFBBF58204AB1A954E52ADF053183C37F301C30F8E716094F1B2FE5C9E2C624910A0CBA30A0C4F68F49D72B64C05A75612D18A444F4DBA636C8'
$VU_Fragment &= '2743342CF644F97037FF6554803927A4148DFFB054D6949C7B63E4CF9B9601395154F0CA076C2764517141143901FAB32862ACCEEA1DA1296F1841781586217684A5554349E647AC7CFD311292E7B9A0'
$VU_Fragment &= 'B2AA894518DBBA6984D5D859DA577E3BCF2B295EBE8F6A99C79C31DE13A5DC8A46B3E9E7CFD35997F94C11C9CB5DB5CC9BEC3A9BD7324E522A39011FE97C36F591CFA67789DB28052517B448E2B43E8C'
$VU_Fragment &= 'A285F091A05C808F904EEE8EFF4DCF8E77AF1B6715802CA84C62593F7F548DD8266C5711A7AC052D27B3E3BBD9A4D0A7FB7065C5B2642BE47BB4CD9631ED5340E021F37C3FFB7077DF5A37EC2B5E9749'
$VU_Fragment &= '9CE597E8AD2E384D8543608C818D78987C9A7CBA984C264FCD661820D43434E65977AEB810AC2A351AC0267FB81F79BC7FDA3A40039DF13295CDE5E72B330E1AB98171F1E2F1CBC8E3E27F83CE438449'
$VU_Fragment &= 'C576F57A388AF41C6177016ED93E5D691340EE424355D3F4E88F22A9D478A3379E7F02E2DDC362E4A1CB117C1B3BEC8A46754144F90E63FD0D06245EDBB791F62011E87718F74519943909F108426419'
$VU_Fragment &= 'B5CFEFDA794C11C223615905DCECF19856A88FBBF9BC1BF8752B91D2786CAF82D57E752534609B388AD6D1D936550061B81A0B827D786DBF224609FE7258AF0FEBC34BD51344F0F72F053FC2042C13C5'
$VU_Fragment &= '328E978560CA101DDC02138B2CA18C51A28CF5D16D56962830278A5A1CDC0C0319000EFE0ED6FA97C957E7B64B82E69A2ACC0000000049454E44AE426082'
Return $VU_Fragment
EndFuncQuellcode alleine läuft nicht, deshalb komplettes Paket hier herunterladen inkl. Exe Dateien: <CLICK ME > oder einfach den Link unten benutzen.
Viel Spaß
UEZ
PS:
ist noch im ßeta StadiumFinale Version -
-
UEZ also bei mir war das 9. Klasse ^^...
Ich kann mich nicht mehr so richtig erinnern, aber angenommen, es war auch bei mir in der Neunten, dann was das 1985!
UEZ
-
AutoIt rechnet intern in Bogenmaß und dein Taschenrechner in Grad.
Grad: 0° - 360°
Bogenmaß: 0 - 2*PiEs ist schon verdammt lang her, wo ich den Stoff in der Schule pauken musste
Daraus folgt:
Bogenmaß = Grad * PI / 180
Grad = Bogenmaß * 180 / PIGruß,
UEZ -
Ja:
MsgBox(0, '', _ProcessGetLocation(@AutoItPID))Func _ProcessGetLocation($iPID)
; SmOke_N, Larry
; GetModuleFileNameExW
Local $aProc = DllCall('kernel32.dll', 'hwnd', 'OpenProcess', 'int', BitOR(0x0400, 0x0010), 'int', 0, 'int', $iPID)
If $aProc[0] = 0 Then Return SetError(1, 0, '')
Local $vStruct = DllStructCreate('int[1024]')
DllCall('psapi.dll', 'int', 'EnumProcessModules', 'hwnd', $aProc[0], 'ptr', DllStructGetPtr($vStruct), 'int', DllStructGetSize($vStruct), 'int_ptr', 0)
Local $aReturn = DllCall('psapi.dll', 'int', 'GetModuleFileNameExW', 'hwnd', $aProc[0], 'int', DllStructGetData($vStruct, 1), 'wstr', '', 'int', 2048)
If $aReturn[0] = 0 Then Return SetError(2, 0, '')
Return $aReturn[3]
EndFuncParameter des Programs: http://www.autoitscript.com/forum/index.php?showtopic=88214&hl=_GetCommandLineFromPID
Und was ist denn mit deinem Beitrag hier: http://www.autoitscript.com/forum/index.php?showtopic=76919&view=findpost&p=557243?UEZ
-
Mit meinem Code funktioniert's
UEZ
-
Hier was von mir:
#Include <File.au3>
$found = "Nicht gefunden"
$lines = _FileCountLines("Test.txt")
$file = FileOpen("test.txt", 0)
While $lines > 0
$line = FileReadLine($file, $lines)
If StringInStr($line, "abcd=") > 0 And StringInStr($line, "xyz=") > 0 Then
$tmp = StringSplit(StringStripWS($line, 7), " ")
If $tmp[UBound($tmp) -1] <> "xyz=" Then
$found = $tmp[2]
ExitLoop
EndIf
EndIf
$lines -= 1
Wend
FileClose($file)
MsgBox(0, "Test", $found)Wobei Test.txt die Datei ist.
Ich hoffe, dass passt!
Gruß,
UEZ -
Hier ein richtiges CMD Beispiel, wie z.B. der LAME Encoder oder xcopy:
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Change2CUI=y
#AutoIt3Wrapper_Run_After=upx.exe --best --compress-resources=1 "%out%"If $CmdLine[0] = 0 Then
ConsoleWrite(@CRLF & "Keine Parameter angegeben! Commandline /? fuer mehr Info" & @CRLF & @CRLF)
Exit
EndIf
$p = 0
For $x = 1 To $CmdLine[0]
If StringLower($CmdLine[$x]) = StringLower("-?") Or _
StringLower($CmdLine[$x]) = StringLower("/?") Or _
StringLower($CmdLine[$x]) = StringLower("-h") Or _
StringLower($CmdLine[$x]) = StringLower("/h") Then
ConsoleWrite(@CRLF & "Commandline.exe ist ein CMD Tool geschrieben mit AutoIt" & @CRLF & @CRLF & _
@TAB & "Commandline.exe -h gibt diese Info wieder" & @CRLF & _
@TAB & "Commandline.exe -e gibt die eulersche Zahl zurueck" & @CRLF & _
@TAB & "Commandline.exe -p gibt PI zurueck" & @CRLF & @CRLF)
Exit
EndIf
If StringLower($CmdLine[$x]) = StringLower("-p") Then
ConsoleWrite(@CRLF & "Pi lautet: 3,14..."& @CRLF & @CRLF)
EndIf
If StringLower($CmdLine[$x]) = StringLower("-e") Then
ConsoleWrite(@CRLF & "e lautet: 2,71..."& @CRLF & @CRLF)
EndIf
Next
ExitVoraussetzung ist, dass der AutoIt3Wrapper installiert ist, da es ansonsten nicht funkioniert!
Einfach kompilieren und in der CMD Box Commandline.exe eingeben oder wie immer das Programm dann heißt.
Gruß,
UEZ -
Probiere's doch mal so: den Code kompilieren, die Exe umbenennen in z.B. Qudrate.scr und nach C:\Windows\System32 kopieren, falls dies der Pfad sein sollte. Dann in der Systemsteuerung den Bildschirmschoner aussuchen.
Dass /P aus der CMD nicht funktioniert liegt daran, dass $CmdLine[2] nicht definiert ist. /P wird intern aufgerufen!
Ich habe auch den Code angepasst, dass /P nicht aus der CMD gestartet werden kann!
UEZ