[R] splash screen avant le lancement d'une application

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
nethiery
Niveau 1
Niveau 1
Messages : 6
Enregistré le : lun. 07 janv. 2008 20:45
Localisation : bordeaux
Status : Hors ligne

[R] splash screen avant le lancement d'une application

#1

Message par nethiery »

Je débute, voilà, je voudrais lancer une image jpg pendant 4 ou 5 secondes avant le lancement de mon application , j'ai trouvé ceci de "simple" , mon image se lance bien MAIS mon appli qui se nomme traqueur.exe ne se lance pas en suivant si quelqu'un peut m'aider.
Merci d'avance

► Afficher le texte
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] splash screen avant le lancement d'une application

#2

Message par ani »

>Bonjour nethiery soyez le bienvenu parmis nous

Ou se trouve votre logiciel "traqueur.exe"

Pour run, il faut que vous sachiez, que cette commande, démarre une console ms-dos.
Dans votre exemple ça donne ceux-ci :
>Démarre une console ms-dos
>On y tape traqueur.exe
Le logiciel démarre ? si oui, il faut indiquer ceux-ci = run(@comspec & " /c traqueur.exe")
sinon faudra lui indiquer le chemin du logiciel.

VOus avez aussi la fonction shellexecute qui est quasi identique a run sauf que celui-ci est plutôt graphique, c'est la boîte de dialogue Executer.


Dans votre code l'appel à la fonction runapp est désactivé par le point virgule (;)
nethiery
Niveau 1
Niveau 1
Messages : 6
Enregistré le : lun. 07 janv. 2008 20:45
Localisation : bordeaux
Status : Hors ligne

Re: [..] splash screen avant le lancement d'une application

#3

Message par nethiery »

Merci de votre réponse rapide alors en fait mon appli est "portable " et je la lance par

Run("traqueur.exe")
$Path = @ScriptDir


mais je n'arrive pas à combiner les deux *.au3

merci d'avance
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] splash screen avant le lancement d'une application

#4

Message par Tlem »

Voici une version light d'un splash screen (Implique de connaitre la taille de l'image) :

Code : Tout sélectionner

#include <WindowsConstants.au3>

$Image = "splash.jpg"
$Taille_Image_H = 240
$Taille_Image_V = 100

GUICreate("", $Taille_Image_H - 1, $Taille_Image_V - 1, -1, -1, $WS_POPUPWINDOW,$WS_EX_TOOLWINDOW)
GUICtrlCreatePic($Image, -1, -1, $Taille_Image_H, $Taille_Image_V)
GUISetState()

Sleep(4000) ; Delais d'affichage du splash.

RUN(@ScriptDir & "\traqueur.exe") ; Traqueur.exe ce trouve dans le même répertoire que le script.
Exit
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] splash screen avant le lancement d'une application

#5

Message par ani »

ok :)

run(".\traqueur.exe")
ou
run($path & "traqueur.exe)

j'ai pas pu testé le script n'ayant pas autoit sous la machine
je recherche la clé usb pour testé


edit: hm on m'a devancé ^^'
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] splash screen avant le lancement d'une application

#6

Message par Tlem »

Au final, j'aime bien la version GDI ...
La voici modifiée sous forme de fonction, et adaptée à la demande de nethiery :

Code : Tout sélectionner

#include-once
#include <GDIPlus.au3>
#include <WinAPI.au3>
#include <StructureConstants.au3>
#include <WindowsConstants.au3>

_SplashGDI(@ScriptDir & "\Splash.jpg", 3)
Run("traqueur.exe")
Exit


; --------------------------------------------  Functions  --------------------------------------------
Func _SplashGDI($Img, $tempo)
    _GDIPlus_Startup()
    $hImage = _GDIPlus_ImageLoadFromFile($Img)
    $width = _GDIPlus_ImageGetWidth($hImage)
    $height = _GDIPlus_ImageGetHeight($hImage)

    $GUI = GUICreate("", $width, $height, -1, -1, $WS_POPUP, $WS_EX_LAYERED)
    SetBitmap($GUI, $hImage, 255)
    GUISetState()
    WinSetOnTop($GUI, "", 1)
    _GDIPlus_Shutdown()

    Sleep($tempo * 1000)
EndFunc   ;==>_SplashGDI

Func SetBitmap($hGUI, $hImage, $iOpacity)
    Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend

    $hScrDC = _WinAPI_GetDC($hGUI)
    $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
    $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
    DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", $iOpacity)
    DllStructSetData($tBlend, "Format", 1)
    _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, 2)
    _WinAPI_ReleaseDC(0, $hScrDC)
    _WinAPI_SelectObject($hMemDC, $hOld)
    _WinAPI_DeleteObject($hBitmap)
    _WinAPI_DeleteDC($hMemDC)
EndFunc   ;==>SetBitmap
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
nethiery
Niveau 1
Niveau 1
Messages : 6
Enregistré le : lun. 07 janv. 2008 20:45
Localisation : bordeaux
Status : Hors ligne

Re: [..] splash screen avant le lancement d'une application

#7

Message par nethiery »

Absolument SUPERBE !!!!!!!!!!!!!!!!!!!!!!!!!!! :D :D
BRAVO à toi thierry , mon voisin de Bordeaux
nethiery
Niveau 1
Niveau 1
Messages : 6
Enregistré le : lun. 07 janv. 2008 20:45
Localisation : bordeaux
Status : Hors ligne

Re: [R] splash screen avant le lancement d'une application

#8

Message par nethiery »

Bon ben j'en profite :D merci beaucoup ça fonctionne nickel

voilà maintenant c'est exe j'ai besoin de lui rajouter un reg donc j'ai mis

$Path = @ScriptDir
Run ("regedit.exe /s 2.reg")
Run ("traqueur.exe")

jusque là tout va bien , le fichier 2.reg me sers pour l'enregistrement du soft
donc copir du 2.reg , enregistrement du soft , lancement du splash nickel

mais je voudrais à la sortie du programme nettoyer la base de registre en lançant quand je ferme cet appli traqueur.exe un fichier 3.reg qui annule les modis faites pas le 2.reg

j'avais pensé à ça MAIS ça me le fait de suite comment puis je lancer ce 3.reg qu'à la fin et la sortie de mon programme ??

$Path = @ScriptDir
Run ("regedit.exe /s 2.reg")
Run ("traqueur.exe")
Run ("regedit.exe /s 3.reg")

si je met ça le soft n'est pas enregistré car le 3.reg se lance et annule le 2.reg de suite
merci encore
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [R] splash screen avant le lancement d'une application

#9

Message par ani »

Il vous faudra visualiser le processus du logiciel (traqueur)
Y aura plusieur possibilité, la plus simple est la fonction runwait(le logiciel) qui permet d'attendre la fin du processus avant de continuer une autre action.
ou bien sur une condition du style = If ..... then (si .... alors)

GDI c'est de la ball :)
j'ai encore le plein de projet en attente :(

bonne continuation ;)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] splash screen avant le lancement d'une application

#10

Message par Tlem »

+1 avec ce que à dit ani.

De plus il serait sans doute souhaitable d'inscrire vous même l'info d'enregistrement plutôt que d'utiliser 2 fichiers .reg.

genre :

Code : Tout sélectionner

; Définition des variables.
$Lic = "dfgtj-f5yu-79jk-cdkh-25d5-cmza-4yu0"
$RegCle = "HKLM\SOFTWARE\MonSoft\Enregistrement"

RegWrite($RegCle, "Licence", "REG_SZ", $Lic)

RunWait("traqueur.exe")

; Indique de faire cette action à la sortie du script.
Func OnAutoItExit ( )
    RegDelete($RegCle, "Licence")
EndFunc
 
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
nethiery
Niveau 1
Niveau 1
Messages : 6
Enregistré le : lun. 07 janv. 2008 20:45
Localisation : bordeaux
Status : Hors ligne

Re: [R] splash screen avant le lancement d'une application

#11

Message par nethiery »

merci je vais tester
super sympa
Répondre