Hallo Com.
Ich habe mir gedacht ich mache mal ein kleinesTutorial es geht um ein Intro für ein beliebiges Script ich habe 2 Versionen die erste handelt sich um ein Video Intro die zweite um ein Bild Intro.
Funktioniert nur unter windows wegen WMP Object
Version 1 Video Intro
;()()()()()()()()(INCLUDES)()()()()()()()()()()
#include <winapi.au3>
#include <WindowsConstants.au3>
;()()()())()()()()()()()()()()()()()()()()()()
FileInstall("C:\Users\Tobias\Desktop\SionS Intro\SionSIntro.avi",@TempDir&"\IntroVid.avi") ;Hier Müsst ihr eure Video Datai mit Fileinstall in das Temp Verzeichnis packen
[/autoit] [autoit][/autoit] [autoit]intro(); Diese Func führt das "intro" aus also sollte es bei eurem script am anfang stehen oder villt. In einer andern func (info) oder so
[/autoit] [autoit][/autoit] [autoit]Func intro()
$hwnd = GUICreate("", 148, 60, 20000, 20000, $WS_POPUP, $WS_EX_TOPMOST) ;Die unsichtbare Gui wird erstellt der style $WS_EX_TOPMOST ist wichtig das heist das das intro Permanent im vodergrund ist sonst könnte man es evntl. nicht sehen weil ein anderes fenster davor steht.
_WinAPI_SetLayeredWindowAttributes($hwnd, 0xFFFFFF,255) ; Dieser schnipsel sorgd dafür das man keine $GUI_EVENT hat also kein (Minimieren, schließen, Maximieren) es wird einfach durchsichtig
$ocwmp = ObjCreate("WMPlayer.OCX") ;wir nutzen einfach den Windows-Media-Player zum abspielen hier wird er sozusagen erstellt also das Object
$ocdrinne = GUICtrlCreateObj($ocwmp, 0, 0, 148, 60); Hier wird die grösse angegeben WICHTIG!! bei eurem VIdeo müsst ihr hier die größe so ändern das es genauso groß ist wie das Video Das gleiche gild für die GUI
$ocwmp.URL = @TempDir&"\IntroVid.avi";Hier Der Pfad den ihr bei Fileinstall gewählt habt
$ocwmp.settings.volume = 0 ;lautstärke in Prozent mein video Hatt keinen ton also 0%
$ocwmp.stretchToFit = True ;das es gestreckt wird braucht man eig ned da wir die GUI und das Object an das Video anpassen und nicht andersrum
$ocwmp.fullscreen = True ; Das ist wohl klar
$ocwmp.uiMode = 'none' ;wir nutzen keinen Mode
$ocwmp.enableContextMenu = False ;das ist auch noch gut wenn man bei Windows-Media-Player auf ein laufendes Video Rechtsklick Macht dann öffnet sich ein Kontextmenu das gleiche würde für unser Intro gelten das wir aber mit diesem Schnipsel unterbinden
$ocwmp.controls.play();Brauchen wir eig. nicht aber wollte es mit hin schreiben es sorgt dafür das das Video gleich abgespielt wird
GUISetState(@SW_SHOW);Das das Video-GUI angezeigt wird
For $i = 1 to 255 Step 2;Klassiche For Func
Sleep(3)
WinSetTrans($hwnd, "", $i) ;Tranzperenz wid gesetzt nach dem wert $i der sich alle 3 ms um 2 erhöt und bis 255 geht(volle Sichtbarkeit)
WinMove($hwnd,"",$i+1,1 ) ;Hier Moven wir das GUI mit dem Video wir nutzen die gleiche For schleife
Next
Sleep(5000);Hier wird die Länge angegeben die das GUI (leben) soll^^ also die Länge vom Video
For $i = 255 to 1 Step -2;Das gleiche nur andersum WICHTIG MIT "-" davor
Sleep(3)
WinSetTrans($hwnd, "", $i)
WinMove($hwnd,"",$i+1,1 )
Next
GUIDelete() ;Das Video GUI wird gelöscht
FileDelete(@TempDir&"\IntroVid.avi"); Das Video wird aus dem Temp Verzeichniss gelöscht
Exit ;!!!!!!!!!!!!!!!!!WICHTIG!!!!!!!!!!!!!!!!! Dass müsst ihr weglassen wenn das Intro am Anfang stehen soll sonst seht ihr nur das Intro und euer Programm schließt sich einfach.
EndFunc
Version 2 Bild Intro
;()()()()()()(INCLUDES)()()()()()()
#include <winapi.au3>
#include <WindowsConstants.au3>
;()()()()()()()()())()()()()()()()
FileInstall("C:\Users\Tobias\Desktop\SionS Intro\Intro.jpg",@TempDir&"\intro.jpg") ;Hier Müsst ihr eure Video Datai mit Fileinstall in das Temp Verzeichnis packen
intro()
Func intro()
$intro = GUICreate("", 605, 131, -1, -1,$WS_POPUP);Hier die größe des bildes
$intropic = GUICtrlCreatePic(@TempDir&"\intro.jpg", 0, 0, 605, 131, BitOR($WS_GROUP,$WS_CLIPSIBLINGS));und hier nochmal die selben angaben
_WinAPI_SetLayeredWindowAttributes($intro, 0xFFFFFF,255);kennen wir ja schon auch wieder damit wir keinen $GUI_EVENT haben
GUISetState(@SW_SHOW); Es wird angezeigt
For $i = 1 to 255 Step 1 ;wieder die selbe For Func
Sleep(3)
WinSetTrans($intro, "", $i)
Next
Sleep(5000)
For $i = 255 to 1 Step -1
Sleep(3)
WinSetTrans($intro, "", $i)
Next
GUIDelete()
FileDelete(@TempDir&"\intro.jpg"); Das Bild wird aus dem Temp Verzeichniss gelöscht
Exit; !!!!!!!!!!!!!!!!!!!!WICHTIG!!!!!!!!!!!!!!!!!!!!! wieder weglassen
EndFunc
Hier noch die Beispiel dateien im anhang
PS: Ihr müsst den Datei Pfaht überall ändern (an die neulinge gerichtet)
autoit.de/wcf/attachment/13851/