Connexion

Récupérer mon mot de passe

Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Le record du nombre d'utilisateurs en ligne est de 21 le Jeu 17 Oct 2013, 13:40
Derniers sujets
Flux RSS



Flag Counter
Partenaires

[Au3/Exe] Commande externe AffPNG.exe Afficher des images

Voir le sujet précédent Voir le sujet suivant Aller en bas

[Au3/Exe] Commande externe AffPNG.exe Afficher des images

Message par Sachadee le Sam 01 Nov 2014, 13:07

VERSION -> 2.5Bêta -> 25/12/2014 /Web, /LockWindow /Ulock Download
VERSION -> 2.4Bêta 11/12/2014 /Flash Opt.[/ScaleMode]  - Download
VERSION -> 2.3Bêta 10/11/2014 /GetscreenSize /Redim /ToHexa /ToBin Download
VERSION -> 2.2Bêta 10/11/2014 Nouveau paramètre : /nokill /kill /getcmdpos /getdim /attach /zone /taskbar
VERSION -> 2.1 06/11/2014 Gestion de script d'animation

Une commande externe  que vous pouvez appeler depuis vos batchs qui affiche une  image (gif,bmp,jpg,png), Une animation FLASH (swf) depuis une URL ou depuis votre Disque dur, Une page web, où vous voulez à l'écran.

Ou au centre de l'écran si vous ne passez pas les arguments xpos e ypos.

Depuis la version V2.1B vous pouvez à la place d'un fichier (jpg,png,gif,bmp) mettre le nom d'un fichier (.txt). AFFPNG.EXE l'identifiera alors comme
un fichier script.

Ce fichier script doit contenir le nom des fichiers a charger à la suite separé par une virgule :

exemple :

script.txt

Code:
1.jpg,2.jpg,3.jpg,4.jpg,5.jpg
[color]

Si le commutateur [/vitesse milliseconde] n'est pas specifié la vitesse par defaut entre chaque image sera de 1000 millisecondes.
Les comutateur /xpos, /ypos sont utilisable également avec le script.

Utilisation :

AFFPNG [Fichier[PNG,GIF,JPG,BMP] Script[TXT] Flash[swf] Hexa[AFH]] Opt.[/Flash] Opt.[/Web] [Opt.[/Width] Opt.[Width] Opt. [/XPos "Pixel"]] [Opt. [/YPos "Pixel"]] [opt. [/tempo "Milliseconde"]] Script [opt. [/Vitesse "Milliseconde"]] [opt. [/nokill "ID"]
AFFPNG [url] Ou [Chemin\fichier.swf] /flash Opt.[/Width Largeur] Opt.[/Heigth Hauteur] Opt.[/scalemode 1,2,3] Opt.[/attach "title"] Opt. [/nokill][/url][url] -> affiche un fichier flash (.swf) depuis une URL ou un fichier local.
AFFPNG [url] /Web Opt.[/Width largeur] Opt.[Hauteur] Opt.[/Xpos PosX] Opt.[/YPos PosY] Opt.[/WidthCor Correction_en_X] Opt.[/HeigthCor Correction_en_Y] Opt.[/Attach titre] Opt.[/NoKill] -> Affiche une page Web (utilisable)
AFFPNG [/LockWindow ou /LW] "Titre_Window" Opt.[Centered] Opt.[Xpos ou "defaut"] Opt.[YPos] -> Lock une fenêtre à sa position ou centrer ou a une position défini par /XPos ou /YPos
AFFPNG [/Unlock ou /Ul] -> Unlock une fenêtre locké par /LockWindow
[i]AFFPNG [/Kill "ID"]
Efface une image afficher avec l'option /NoKill "ID"
AFFPNG [/getdim "Fichier[BMP,GIF,PNG,JPG]] Retourne les dimensions X et Y d'une image
AFFPNG [/getcmdpos "Window_title"] Retourne la position et les dimensions d'une fenêtre (Par le titre)
AFFPNG ["Fichier[PNG,GIF,JPG,BMP] [/attach "Window_Title"] [opt.[/zone "Debut_en_X Largeur_en_X Debut_en_Y Hauteur_en_Y Commande-...."]] -> /zone ->uniquement pour image attachée (/attach)
AFFPNG [/Taskbar "Commande1 commande2 commande3 commandex"] C'est le nombre de commande qui va définir le nombre de divison de la taskbar.
AFFPNG [/Redim Ratio] Ratio correspond à la valeur qui va être multipliqué par les valeurs X et Y de l'image Exemple 0.5 va diviser l'image par 2.
AFFPNG [/GetScreenSize] Pour récuperer la taille (Résolution) de l'écran
AFFPNG [[Fichier[PNG,GIF,JPG,BMP,BAT,TXT,MP3,EXE,......] /ToHexa] Pour Generer un fichier (.AFH) HEXA de n'importe quel type de fichier
AFFPNG [[Fichier[AFH]  /ToBin [Fichier]] Reconstruit dans [Fichier] un fichier Generé par le switch /ToHexa
AFFPNG.EXE /? Pour afficher l'aide (En Construction)
AFFPNG.EXE /VER Pour afficher la version

L'ordre et la présence des arguments n'a pas d'importance.

/xpos, /ypos , /Width, /Heigth et /tempo sont optionel si /tempo n'est pas specifié l'image vous devrez utiliser ESC pour effacer l'image, si specifié l'image s'effacera après le temp specifié
em milliseconde.

[/url][/i][/url][/color]


[color][url][url]

Le paramétre [b]/web "URL"


Vous permet d'afficher une page web de taille définissable à une position donnée
de l'écran.

Pour ce paramètre j'ai dû créer 2 sous paramètres qui permettent de corriger le positionnement
de la fenêtre Internet dans sa GUI. (c'est un peu complexe à expliquer).
En fait c'est une correction de la fenêtre internet dans la fenêtre de base.
Sans ces sous paramètres la fenêtre Internet afficherait la position X=0 Y=0 dans la GUi
Mais si l'on veut récuperer seulement la fenetre video de Youtube par exemple on doit corriger (Glisser) cette fenêtre
dans notre fenêtre principale pour afficher la partie que l'on veut.

/WidthCor Correction_en_X_en_Pixel
/HeigthCor Correction_en_Y_en_Pixel

Ces 2 sous switch acceptent des valeurs négatives.
Cette correction laisse une bande grise en bas ou à droite de la fenêtre
([i]je travaille sur une solution
)

Les paramètres (switch) applicable avec  /Websont : /width,/heigth, /Xpos, /Ypos, /Attach, /Nokill, /tempo
/Width et /Heigth sont Obligatoire

Utilisation :

AFFPNG [url] /Web Opt.[/Width largeur] Opt.[Hauteur] Opt.[/Xpos PosX] Opt.[/YPos PosY] Opt.[/WidthCor Correction_en_X] Opt.[/HeigthCor Correction_en_Y] Opt.[/Attach titre] Opt.[/NoKill]

Un Petit exemple sera plus parlant :

AFFPNG.EXE "https://www.youtube.com/watch?v=o39qnlkjc2k" /web /width 640 /heigth 450 /heigthcor -62

Video : http://screencast.com/t/Jxfyw8Q0


[/url]
[/url][/i][/url][/color][/b]

[color][url][url][url]

Le paramètre /flash :

vous permet d'afficher à l'écran des animations, films ou jeu flash directement
depuis une URL (Internet connecté) ou depuis votre unité locale.

Utilisation :
affpng.exe URL/Fichier.swf /Flash /Width Largeur /Heigth Hauteur Opt.[/ScaleMode 1,2,3], Opt.[/Xpos], Opt.[/Ypos], Opt.[/attach], Opt.[/nokill]

ATTENTION : [i]Si vous mettez un nom de fichier vous devez mettre le chemin complet (pas seulement le nom du fichier)


Les paramètres (switch) applicable avec  /Flash sont : /ScaleMode, /Width, /Heigth, /Xpos, /Ypos, /Attach, /Nokill, /tempo

Le Switch /ScaleMode vous permet de definir si AffPNG doit adapter (2) ou non (3) la taille de l'animation à la taille défini par
l'utilisateur. Il est utile pour certaine animation qui ne s'affiche pas correctement en mode (2).

Donc si la qualité en mode 2 n'est pas terrible essayer en mode (3).

Exemple : Attacher un Flash à votre fenêtre CMD. Ça peut-être sympa pour agrementer votre programme (Big program, BatChat,...)

Video : http://screencast.com/t/ScbKmROV5wQX

AffPNG.exe "URL ou Chemin\complet\fichier.swf" /Flash /width Largeur /heigth Hauteur /attach /nokill

Dans mon exemple j'ai un fichier "flashvortex.swf" donc :

AffPNG.exe "C:\Users\CN Micros\Desktop\PROGRAMMATION\flashvortex.swf" /flash /width 440 /heigth 85 /attach "cmd"

Un pack de superbe animation (loading/waiting bar) gratuite à télecharger :

http://img.designswan.com/2009/loading.zip

[/url]
[/url][/i][/url][/color]


[color][url][url][url]

Les switch /LockWindow et /Unlock

Le switch /LockWindow permet de bloquer une fenêtre sur sa position actuelle ou sur une position
défini par l'utilisateur.

Les dimensions de la fenêtre initiale sont également figé donc non modifiable.
Et la fenêtre est activé par défaut (Donc au TOP).

Vous pouvez donc obliger les focus sur votre fenêtre CMD avec des positions figées.

Ce switch est util si vous afficher une image dans le CMD à une position précise et vous ne voulez
pas que l'utilisateur puisse changer la position de votre CMD.

Utilisation :

[i]AffPNG.exe [/LockWindow ou /LW] "Titre_Window" Opt.[Centered] Opt.[Xpos ou "defaut"] Opt.[YPos]


Exemples :

-  Bloquer la fenêtre "cmd" de manière centrer à l'écran
  
   AffPNG.exe /LockWindow "cmd" "Centered"
ou AffPNG.exe /LW "cmd" "centered"

-  Bloquer la fenêtre "cmd" sur sa position actuelle :

  AffPNG.exe /LockWindow "cmd"

-  Bloquer la fenêtre "cmd" sur la position X=100 Y=200

   AffPNG.exe /Lockwindow "cmd" 100 200

-  Bloquer la fenêtre "cmd" sur la position X=100 et laisser Y sur sa position actuelle

   AffPNG.exe /Lockwindow "cmd" 100

-  Bloquer la fenêtre "cmd" sur sa position X actuelle et Y=200

   AffPNG.exe /LockWindow "cmd" defaut 200

Pour débloquer une fenêtre :

   AffPNG.exe [/UnLock ou /UL]

[/url]
[/url][/i][/url][/color]


[color][url][url][url]

Les paramètres /nokill "ID" /kill "ID"

Le paramètre /Nokill "ID" indique a AFFPNG.EXE que l'image ou le script ne peut pas être
effacé ni pas ESC ni par une temporisation ni par la fermeture du CMD.

A partir de la version 2.5B vous devez specifié un ID (nom de votre choix) pour la fenêtre
cela permettra de détruire cette fenêtre spécifiquement grâce au switch /kill "ID"

Si c'est une image attachée (/Attach) à une fenêtre. La destruction de la
Fenêtre (fermeture) entrainera automatiquement l'effacement de l'image.

En cas d'utilisation avec un script. L'animation bouclera. (pour des animations d'attente par exemple)
Voir exemple ICI

Le paramètre /kill "ID" lui permet d'effacer une image ou un script afficher avec le paramètre /nokill.

[/url]
[/url]
[/url][/color]


[color][url][url][url]

Le paramètre /Redim -> http://screencast.com/t/GwJBDrjL0BG

Permet le redimentionnement d'image.

AffPNG.exe /Redim ratio -> sortie une image "_redim.jpg"

Ratio correspond à la valeur par laquel on va MULTIPLIER les
l'image en X et Y.

Exemple :

Affpng test.jpg /redim 0.5 -> Va diviser l'image en 2
Affpng test.jpg /redim 2    -> Va doubler l'image
 
[/url]
[/url]
[/url][/color]


[color][url][url][url]

Les paramètres /ToHexa /ToBin -> http://screencast.com/t/SqtajmFY6h3

Le paramètre /ToHexa permet de generer la representation HEXA de n'importe
quel type de fichier (txt,bat,exe,mp3,jpg,...).

Pour reconstruire le fichier ainsi créer (.afh) on utilisera le switch /ToBin

exemple :

AffPNG.exe Test.bat /ToHexa -> Va créer un Fichier Test.afh

Pour recréer le Test.bat original :

AffPNG.exe Test.afh /ToBin test.bat -> Va créer test.bat en clair

[/url]
[/url]
[/url][/color]


[color][url][url][url]

Les Paramètres : /Taskbar
/Taskbar "commande1 commande2 commande3 commandex"
permet d'afficher une taskbar clickable.

Le nombre de zone est défini automatiquement par le nombre de commande.
Donc a vous de creer une image en consequence. Si vous creer une image d'une largeur de 200 pixel
avec 4 commandes chaque zone clicable aura 50 pixels de large.

La hauteur est défini automatiquement par la hauteur de l'image.

Les paramètres /xpo et /ypos sont obligatoire.

Les commandes doivent être des executables (exe,bat,...)

Si vous ne voulez pas que la taskbar soit détruite par ESC utilisez le parametre /nokill

Très simple !

Exemple:

AFFPNG.EXE barretest.png /taskbar "NOTEPAD.EXE toto.bat calc.exe" /xpos 100 /ypos 100 /nokill

[/url]
[/url]
[/url][/color]


[color][url][url][url]

Les Paramètres : /ATTACH /ZONE -> http://screencast.com/t/peZlaUer
/ATTACH "titre"
permet d'attacher une image en bas à gauche d'une fenêtre.

/ZONE "Debut_en_X Largeur_en_X Debut_en_Y Hauteur_en_Y Commande_a_lancer en cas de click-...."

Permet de definir des zones clicables dans l'image définie par /ATTACH
Il est important de respecter la synthaxe et de mettre le tout entre string.

Le point zero de réference est toujours l'angle Bas/gauche de la fenêtre où l'on a attaché
l'image.

Exemple: On veut créer 2 zones clicables de 50x50 pixel sur notre image
              Attaché.
Pour la première zone on va lancer la commande Dir en cas de clic
Pour la seconde la commande notepad.exe

Aff.au3 barretest.png /attach "cmd" /zone "0 50 0 50 DIR-51 49 0 50 NOTEPAD.EXE"

[/url]
[/url]
[/url][/color]


[color][url][url][url]

Exemples d'utilisation :

[/url]
[/url]
[/url][/color]


[color][url][url][url]

[i]Pour afficher une image :


AffPNG.exe Image.jpg Opt.[/xpos "pixel" /ypos "pixel" /tempo "milliseconde" /nokill "ImageTest"]

[/url]
[/url][/i][/url][/color]


[color][url][url][url]


[i]Pour un script d'animation :


AffPNG.exe script.txt Opt.[/vitesse "milliseconde"] Opt.[/xpos "pixel" /ypos "pixel"]

[/url]
[/url][/i][/url][/color]


[color][url][url][url]

[i]Pour récuperer les dimensions (Résolution) de l'écran


AffPNG.exe /GetScreenSize

Recuperer ces valeurs depuis un BAT :
[/url]
[/url][/i][/url][/color]
Code:

@echo off
set "$image=batch.gif"
for /f "delims=" %%a in ('affpng.exe /GetScreenSize') do (
  for /f "tokens=1,2 delims= " %%1 in ('echo %%a') do (
    set "$X=%%1"
    set "$Y=%%2"
  )
)

Echo Largeur Ecran = %$X%
echo Hauteur Ecran = %$Y%
[color][url][url][url]

[/url]
[/url]
[/url][/color]


[color][url][url][url]

[i]Pour récuperer les dimensions X Y d'un fichier (Gif,bmp,jpg,png) :


AffPNG.exe "Fichier.jpg" /getdim

Recuperer ces valeurs depuis un BAT :
[/url]
[/url][/i][/url][/color]
Code:

@echo off
set "$image=batch.gif"
for /f "delims=" %%a in ('affpng.exe %$image% /getdim') do (
  for /f "tokens=1,2 delims= " %%1 in ('echo %%a') do (
    set "$X=%%1"
    set "$Y=%%2"
  )
)

Echo Image : %$image%
Echo Largeur = %$X%
echo Hauteur = %$Y%
[color][url][url][url]

[/url]
[/url]
[/url][/color]


[color][url][url][url]

[i]Pour récuperer les dimensions et coordonnées d'une fenêtre windows :


AffPNG.exe /getcmdpos "Titre de la fenêtre"

Récuperer ces valeurs depuis un BAT :

[/url]
[/url][/i][/url][/color]
Code:

@echo off
title=test
for /f "delims=" %%a in ('affpng.exe /getcmdpos "test"') do (
  for /f "tokens=1-4 delims= " %%1 in ('echo %%a') do (
    set "$TopX=%%1"
    set "$TopY=%%2"
    set "$X=%%3"
    set "$Y=%%4"
  )
)

Echo Top X = %$TopX%
Echo Top Y = %$TopY%
Echo Largeur = %$X%
echo Hauteur = %$Y%
[color][url][url][url]

[/url]
[/url]
[/url][/color]


[color][url][url][url]

TUTORIEL :

Faire une barre d'animation centrer dans votre fenêtre CMD
En attendand le switch /center (Version 2.6B)

http://batch.xoo.it/t4271-AFFPNG-Cr-er-une-barre-d-attente-anim-e-pour-vos-…

[/url]
[/url]
[/url][/color]


[color][url][url][url]


Download V2.1 (Pack avec exemple) : https://drive.google.com/file/d/0B9yh04HYXto1UnZaSGZDU1ZrbHc/view?usp=sharing
Download V2.2Bêta : https://drive.google.com/file/d/0B9yh04HYXto1QVRhNHZkd25na2s/view?usp=sharing
Download V2.3Bêta : https://drive.google.com/file/d/0B9yh04HYXto1V0tscmdmVmplODQ/view?usp=shari…
Download V2.4Bêta : https://drive.google.com/file/d/0B9yh04HYXto1OHlMa054Nmw3RDQ/view?usp=shari…
Download V2.5Bêta : https://drive.google.com/file/d/0B9yh04HYXto1MnVHN0hmdlNIN2c/view?usp=sharing
Code Source V2.5 Bêta :

[hide=Spoiler]

; #INDEX#
;===================================================================================================
; Title ............: AFFPNG.EXE
; version ..........: 2.5B - 29/11/2014-
; Description ......: Utilitaire en ligne de commande pour l'affichage et le traitement d'éléments graphique
; ;.................: format des images : PNG,JPG,GIF,BMP,SWF
; Author(s) ........: SachaDee (c) 2014
; ;.................:
; ;Ajout............: 07/11/2014 switch /nokill /kill /getcmdPos "Titre" /getdim "Fichier" /attach "Titre_CMD"
; ;.................: 08/11/2014 switch /zone "Xpos Nb_pixel Ypos Nb_pixel command1-Xpos Nb_pixel Ypos Nb_pixel command2-...."
; ;.................: 10/11/2014 switch /taskbar "command1 command2 commandx" --> /Xpos et /Ypos sont obligatoire
; ;.................: 12/11/2014 Possibilité d'utiliser le switch /nokill pour boucler sur un script
; ;.................: 28/11/2014 switch /GetScreenSize /ReDim
; ;.................: Correction bug /NoKill Version 2.2 Bêta
; ;.................: 29/11/2014 switch /ToHexa, /ToBin
; ;.................: 10/12/2014 switch /Flash --> affpng URL/Fichier.swf Opt.[/Flash Xpos Ypos] Opt.[/scalemode 1,2,3] Opt.[$XPos], Opt.[$YPos], Opt.[/attach] Opt.[/nokill]
; ;.................: 13/12/2014 switch /LockWindow "Fenêtre" [X ou Defaut] Opt.[Y] Opt.["centered"] et switch /Unlock
; ;.................: 25/12/2014 Modification du switch /attach. La positon de la fenêtre attachée est défini par les switch /XPos et /YPos ou centré si Xpos et ypos non défini
; ;.................: 25/12/2014 Ajout des switchs /Width /Heigth pour standardiser la définition des largeur et hauteur d'écran (/Flash et /WEB)
; ;.................: 25/12/2014 Ajouts Switch /Web -->  AFFPNG [url] /Web Opt.[/Width largeur] Opt.[Hauteur] Opt.[/Xpos PosX] Opt.[/YPos PosY] Opt.[/WidthCor Correction_en_X] Opt.[/HeigthCor Correction_en_Y] Opt.[/Attach titre] Opt.[/NoKill] -> Affiche une page Web (utilisable)
; ;.................: 26/12/2014 Debuggage et mise au point du paramètres /attach et mis le background de la GUI en noir
; ;.................: 26/12/2014 Debuggage du paramètre /script avec /attach
; ;.................: 27/12/2014 Ajout du paramètre /WinID "ID pour /Nokill" Pour permettre de faire un /kill "ID" sur une fenetre spécifique (Obligatoire avec /nokill /kill)
; DOWNLOAD .........:
;...................: AFFPNG 2.0      :  https://drive.google.com/file/d/0B9yh04HYXto1QWpVS0VxOVJiYWc/view?usp=shari…
; ;.................: AFFPNG 2.1      :  https://drive.google.com/file/d/0B9yh04HYXto1UnZaSGZDU1ZrbHc/view?usp=shari…
; ;.................: AFFPNG 2.2 BÊTA :  https://drive.google.com/file/d/0B9yh04HYXto1RWJ3dEI1N0hlUVU/view?usp=shari… / Bug /nokill
; ;.................: AFFPNG 2.3 BÊTA :  https://drive.google.com/file/d/0B9yh04HYXto1V0tscmdmVmplODQ/view?usp=shari…
; ;.................: AFFPNG 2.4 BÊTA :  https://drive.google.com/file/d/0B9yh04HYXto1OHlMa054Nmw3RDQ/view?usp=shari…
; ;.................: AFFPNG 2.5 BÊTA :  =https://drive.google.com/file/d/0B9yh04HYXto1MnVHN0hmdlNIN2c/view?usp=sharing]https://drive.google.com/file/d/0B9yh04HYXto1MnVHN0hmdlNIN2c/view?usp=shari…
;====================================================================================================

;SachaDee 2014

#NoTrayIcon
#include
#include
#include
;/web
#include


Global $Version="2.5B"
Local $tempo=0
Local $x=-1
Local $y=-1
Local $Val=1
Local $IsScript=0
LOcal $Vitesse=1000
Local $NoKill=0
Local $getdim=0
Local $Attach=0
Local $Zone=0
Local $Taskbar=0
Local $Ratio=0
Local $ToHex=0
Local $ToBin=0
Local $IsFlash=0
Local $Iscentered=0
Local $IsAvi=0
Local $IsWeb=0

Local $Scalemode=2

Local $width, $height, $hGUI1, $hImage, $hGraphic1, $fname, $FlashWidth,$FlashHeigth,$Width,$Heigth,$WidthCor,$HeigthCor,$KillID

Local $iX=300
Local $iY=200
Local $widthCor=0
Local $HeigthCor=0

_TestSetParam()
_Main()

Func _Main()
 If $IsScript Then
      $Images = StringSplit($Liste, ",")
      $fname=$Images[1]
   EndIf
   If Not $IsFlash Then
      If Not $IsWeb Then
      _GDIPlus_Startup()
       $hImage = _GDIPlus_ImageLoadFromFile($fname)
       $iX = _GDIPlus_ImageGetWidth($hImage)
       $iY = _GDIPlus_ImageGetHeight($hImage)
       EndIf
    EndIf
    if $Ratio Then
        Local $hImage_Redim = _GDIPlus_ImageResize($hImage, $iX * $Ratio, $iY * $Ratio)
       _GDIPlus_ImageSaveToFile ( $hImage_Redim, StringTrimRight($fname,4)&"_Redim.jpg")
       _GDIPlus_BitmapDispose($hImage)
       _GDIPlus_BitmapDispose($hImage_Redim)
       _GDIPlus_Shutdown()
       Exitsdee()
    EndIf
    if $getdim Then
       ConsoleWrite($iX & " " & $iY)
       _GDIPlus_Shutdown()
       ExitSDee()
    EndIf
    if $attach Then
         Global $XAttConst=$x-$aWin[0]
         Global $YAttConst=$y-$aWin[1]
       ;_SetCMDPos($AttCmd)
       $hAttCmd=WinGetHandle($attcmd)
       if not @error = 0 Then $hattCmd=Wingethandle("administrateur : "&$attcmd)
       if not @error = 0 Then $hattCmd=Wingethandle("administrator : "&$attcmd)
       if not @error = 0 Then $hattCmd=Wingethandle("administrador : "&$attcmd)
        if not @error = 0 Then _TestExistWindow($attcmd)

       $hGUI1 = GUICreate("", $iX , $iY, $x, $y, $WS_POPUP, -1,$hAttcmd)
       GUISetBkColor(0x000000)
    Else
       If $isweb then
          $type=-1
       Else
        $type=$WS_EX_TOPMOST
       EndIf
       $hGUI1 = GUICreate("", $iX , $iY, $x, $y, $WS_POPUP,$Type)
       GUISetBkColor(0x000000)
   EndIf

if $IsFlash Then _Flash($Fname)
If $IsWeb then _web($Fname)

GUISetState()
    $hGraphic1 = _GDIPlus_GraphicsCreateFromHWND($hGUI1)
    if not $attach Then _GDIPlus_GraphicsDrawImage($hGraphic1, $hImage, 0, 0)
   if $attach then WinActivate($attcmd)
   While 1
      if ClipGet()=$KillID Then
         Clipput("")
         GUIDelete()
         _GDIPlus_Shutdown()
         ExitSDee()
      EndIf
        if $Attach Then
            _SetCMDPos($attcmd)
            ControlMove($hGui1, "", "", $x, $y)
             if not $IsFlash Then
                if not $isScript Then
                   _GDIPlus_GraphicsDrawImage($hGraphic1, $hImage, 0, 0)
                EndIf
            Endif
             sleep(70)
          EndIf
        If $Taskbar Then
           _TestClickTask($aTaskbar,$iX,$iY,$x,$y)
           _GDIPlus_GraphicsDrawImage($hGraphic1, $hImage, 0, 0)
           sleep(70)
        EndIf

        If $zone Then
            $taskbar=0
           _TestClickZone($aZone)
        EndIf

        If $IsScript Then
           $Img = _GDIPlus_ImageLoadFromFile($Images[$val])
           _GDIPlus_GraphicsDrawImage($hGraphic1, $Img, 0, 0)
           if $val = $Images[0] Then
              Sleep($Vitesse)
              if $NoKill Then
                  $val=1
               Else
                  ExitLoop
               EndIf
            Else
              $val =$Val + 1
           EndIf
           Sleep($Vitesse)
        Else
        If $tempo=0 Then
           If _ispressed("1B") Then ExitLoop
           Else
            Sleep($tempo)
            if $NoKill Then
               sleep(100)
            Else
               ExitLoop
            EndIf
         EndIf
      EndIf

    WEnd
    GUIDelete()
_GDIPlus_Shutdown()
EndFunc

Func _TestSetParam ()
   If $cmdline[0] = "" then
      ConsoleWrite("Erreur pas d'argument sp‚cifi‚.."&@CRLF&@CRLF)
      _GetHelp()
      Exit
   EndIf

   If $cmdline[1]="/LockWindow" Or $cmdline[1]="/lw" Then _LockWindow($cmdline[2])
   If $cmdLine[1]="/Unlock" or $cmdline[1]="/Ul" Then _SendUnLockWindow()

If $cmdLine[1]="/kill" Then
   If $cmdLine[0]=2 Then
      ClipPut($cmdline[2])
      Exit
   Else
      ClipPut("AFFPNGKILL")
      Exit
   EndIf
EndIf

If $cmdLine[1]="/GetScreenSize" Then
   ConsoleWrite(@DeskTopWidth&" "&@DeskTopHeight)
   ExitSDee()
EndIf

If $cmdline[1]="/getcmdPos" Then
      if $cmdline[0]>=2 Then
         Local $Titre=$cmdline[2]
         _TestExistWindow($Titre)
         $aWin=WinGetPos($hWin)
         ConsoleWrite($aWin[0]&" "&$aWin[1]&" "&$aWin[2]&" "&$aWin[3])
         ExitSDee()
      Else
         ConsoleWrite("Erreur titre de la fenêtre CMD manquant")
         ExitSDee()
      EndIf
   EndIf
If $cmdLine[1]="/?" Then
   _GetHelp()
   Exit
EndIf
If $cmdLine[1]="/ver" Then ExitSdee()
Global $fname = $cmdline[1]
If StringRight($fname,3)="txt" Then $IsScript=1
If StringRight($fname,3)="swf" Then $IsFlash=1
If $cmdline[0]>=2 Then _GetParam($cmdline)
If Not $IsFlash Then
   If Not $Isweb Then
      If Not FileExists($fname) Then
         ConsoleWrite("ERREUR : Le Fichier " & $fname & " est introuvable..")
         ExitSDee()
      EndIf
   EndIf
EndIf

If $IsScript Then Global $liste = FileReadLine($fname)
EndFunc ;;->_TestSetParam



Func _GetParam ($Array)
   $i=1
   While $i<=UBound($Array)-1
      If $Array[$i]="/web" Then $IsWeb=1
      If $Array[$i]="/Width" Then $iX=$Array[$i+1]
      If $Array[$i]="/Heigth" Then $iY=$Array[$i+1]
      If $Array[$i]="/WidthCor" Then $WidthCor=$Array[$i+1]
      If $Array[$i]="/HeigthCor" Then $HeigthCor=$Array[$i+1]
      If $Array[$i]="/flash" Then $IsFlash=1
      If $Array[$i]="/Tempo" Then $tempo = $Array[$i+1]
      If $Array[$i]="/Scalemode" Then $Scalemode = $Array[$i+1]
      If $Array[$i]="/Redim" Then $ratio = $Array[$i+1]
      If $Array[$i]="/ToHexa" Then _ToHexa($fname)
      If $Array[$i]="/ToBin" Then _ToBin($fname,$Array[$i+1])
      If $Array[$i]="/WinID" Then
         $IsWinID=1
         $WinID=$Array[$i+1]
      EndIf
      if $Array[$i]="/Taskbar" Then
         Global $aTaskbar = StringSplit($Array[$i+1]," ")
         Global $Taskbar=1
         $Zone=0
      endif
      If $Array[$i]="/Xpos" Then $x = $Array[$i+1]
      If $Array[$i]="/Ypos" Then $y = $Array[$i+1]
      If $Array[$i]="/Zone" Then
         Global $aZone = StringSplit($Array[$i+1],"-")
         Global $Zone=1
      EndIf
      If $Array[$i]="/Nokill" Then
          $KillID=$Array[$i+1]
          $NoKill=1
          $tempo=1
      EndIf
      If $Array[$i]="/Getdim" Then Global $getDim=1
      If $Array[$i]="/Attach" Then
         Global $aWin=WinGetPos($Array[$i+1])
         Global $Attach=1
         Global $AttCmd=$Array[$i+1]
      EndIf
      If $Array[$i]="/Vitesse" Then
          If $Array[$i+1]=="" Then
             $Vitesse=1000
          Else
             $Vitesse=$Array[$i+1]
          EndIf
       EndIf
      $i+=1
   WEnd
   If $taskbar Then
      if $x=-1 Or $y=-1 Then
         Consolewrite("Erreur ! La position X doit être specifi‚ pour une taskbar. Utiliser les switch /Xpos et /YPOS")
         ExitSDee()
      EndIf
   EndIf
EndFunc

Func _ToHexa($Fichier)
   $hFichierIn=FileOpen($Fichier,16)
   $string=FileRead($hFichierIn)
   FileWrite(StringTrimright($Fichier,4)&".afh",Hex($string))
   FileClose($hFichierIn)
   ConsoleWrite("Fichier : " & StringTrimright($Fichier,4) & ".afh " & "Gener‚" & @CRLF)
   Exit
EndFunc

Func _ToBin($Fichier,$Fsortie)
   $output=Fileopen($Fsortie,18)
   $Input=Fileopen($Fichier)
   $string="0x"&FileRead($Input)
   FileWrite($Output,$string)
   FileClose($Output)
   FileClose($Input)
   ConsoleWrite("Fichier : " & $Fsortie & " Reconstruit" & @CRLF)
   Exit
EndFunc


Func _GetHelp()
   Consolewrite("Help en Construction...")
   ExitSDee()
EndFunc

Func _SetCMDPos($fCmd)
   _TestExistWindow($fCmd)
         $aWin=WinGetPos($hWin)
         $x=$aWin[0]+$XAttConst
         $y=$aWin[1]+$YAttConst
      EndFunc

Func _TestClickTask($aZone,$largeur,$hauteur,$topx,$topy)
   If _IsPressed("01") Then
        $aMpos = MouseGetPos()
        Local $NbpixelZoneX=$largeur/(UBound($aZone) -1)
        For $i = 1 To UBound($aZone) -1
           $zoneXTMP=($i-1)*$NbPixelZoneX
           if $aMpos[1]>$topy And $aMpos[1]<$topy+$hauteur Then
              if $aMpos[0]>$topx+$zoneXTMP And $aMpos[0]<$topx+$zoneXtmp+$NbpixelZoneX Then
                 ShellExecute($aZone[$i])
              EndIf
           EndIf
        Next
     EndIf
  EndFunc

Func _TestClickZone($aZone)
   If _IsPressed("01") Then
        $aMpos = MouseGetPos()
        Local $DernValx=0
        Local $dernValy=0
      For $i = 1 To Ubound($aZone) - 1
           $aTmp=StringSplit($aZone[$i]," ")
            if $aTmp[1]=0 Then $DernValx=$aTmp[2]
            if $aTmp[3]=0 Then $DernValy=$aTmp[4]
         if $aMpos[1]>$y+$aTmp[3] And $aMpos[1]<$y+$aTmp[3]+$DernValy Then
            if $aMpos[0]>$x+$aTmp[1] and $aMpos[0]<$x+$aTmp[1]+$DernValx Then

              WinActivate($attCmd)
              send($aTmp[5] & "{ENTER}")
              ExitLoop
            EndIf
         EndIf
           $DernValx=$aTmp[2]
           $DernValy=$aTmp[4]
    Next
 EndIf
  EndFunc

func _LockWindow($Titre)
   _TestExistWindow($Titre)
   $aWin=WinGetPos($hwin)
   if $cmdline[0]>=3 Then
      $XX = $cmdline[3]
      if $XX="defaut" Then $XX=$aWin[0]
      if $XX="centered" Then
         $IsCentered=1
         $XX=Round((@DesktopWidth/2)-($aWin[2]/2))
         $YY=Round((@DesktopHeight/2)-($aWin[3]/2))
      EndIf
   Else
    $XX=$aWin[0]
   EndIf
   if $cmdline[0]>=4 Then
      $YY = $cmdline[4]
   Else
      If not $IsCentered then $YY=$aWin[1]
      EndIf
   ConsoleWrite("["&$Titre&"] Bloqu‚e")
   while 1
     Local $iState = WinGetState($hWin)
     If BitAND($iState, 16) Then  WinSetState($titre,"",@SW_RESTORE)
     If not BitAND($iState, Cool Then  WinActivate($titre)
     _UnlockWindow($titre)
      $TestError=WinMove($Titre,"",$XX,$YY,$aWin[2],$aWin[3])
      if $testerror=0 then Exit
      Sleep(50)
   WEnd
EndFunc

Func _SendUnlockWindow()
 ClipPut("Unlock")
 ExitSdee()
EndFunc


Func _UnlockWindow($titre)
   $TestUnlock=clipget()
   if $testUnlock="Unlock" Then
      clipput("")
      ConsoleWrite("["&$Titre& "] debloqu‚e")
      ExitSDee()
   EndIf
EndFunc

Func _TestExistWindow($Titre)
 Global $hWin=WinGetHandle($Titre)
   if @error Then
      ConsoleWrite("Erreur aucun CMD avec ce titre")
      ExitSDee()
   EndIf
EndFunc

Func ExitSDee()
   ConsoleWrite(@CRLF&"// *** AFFPNG.EXE " & $Version&" By SachaDee (c) 2014 *** \\"&@CRLF)
   Exit
EndFunc

Func _Flash($fname)
    $oFlash = ObjCreate("ShockwaveFlash.ShockwaveFlash")
    If @error Then
    ConsoleWrite("Adobe Flash Player non installé sur cette machine")
    ExitSDee()
    EndIf
$GUIActiveX = GUICtrlCreateObj( $oFlash, 0, 0 , $iX, $iY  )
With $oFlash
    .Movie = $fname
    .ScaleMode = $ScaleMode
    .bgcolor = "#000000"
    .Loop = True
    .wmode = "Transparent"; Opaque / transparent
    .allowScriptAccess = "Always"
EndWith
EndFunc


Func _web($Url)
   Local $oIE = _IECreateEmbedded()
   GUICtrlCreateObj($oIE,$WidthCor, $HeigthCor, $iX, $iY)
   _IENavigate($oIE, $Url)
   $oIE.document.body.scroll = "no"
   $oIE.document.body.style.border = 0
EndFunc


[/hide][/url][/url]
[/url]
[/url][/color][url][url][url][/url][/url][/url]
[url][url][url][/url][/url][/url]


Dernière édition par Sachadee le Sam 27 Déc 2014, 14:52, édité 5 fois

_________________
@SachaDee
avatar
Sachadee
Admin
Admin

Mensagens : 591
Data de inscrição : 04/06/2013

http://bbat.forumeiro.com

Revenir en haut Aller en bas

Re: [Au3/Exe] Commande externe AffPNG.exe Afficher des images

Message par Sachadee le Dim 16 Nov 2014, 11:55

Voici comment créer une barre d'attente animée et centrée dans votre fenêtre commande :

1 - Premièrement  créer votre animation.

Pour notre exemple j'ai splitté celle-çi :



En 26 images que vous pouvez Downloader ICI

2 - Créer le fichier script contenant la sequence d'images à afficher dans mon cas :

script2.txt :


frame-001.png,frame-002.png,frame-003.png,frame-004.png,frame-005.png,frame-006.png,frame-007.png,frame-008.png,frame-009.png,frame-010.png,frame-011.png,frame-012.png,frame-013.png,frame-014.png,frame-016.png,frame-017.png,frame-018.png,frame-019.png,frame-020.png,frame-021.png,frame-022.png,frame-023.png,frame-024.png,frame-025.png,frame-026.png

3 - Créer le code bat qui va centrer l'animation par rapport à notre fenêtre CMD et lancer l'animation
     Le code est commenté.


Code:
@echo off&cls

:: On donne un titre à notre fenêtre

Title Test barre attente By SachaDee 2014

:: On récupère les coordonnées de la fenêtre courante

for /f "delims=" %%a in ('affpng.exe /getcmdpos "Test barre attente By SachaDee 2014"') do (
  for /f "tokens=1-4 delims= " %%1 in ('echo %%a') do (
    set "$TopX=%%1"
    set "$TopY=%%2"
    set "$X=%%3"
    set "$Y=%%4"
  )
)

::On récupère les dimensions d'une des images de l'animation.
::Vous pouvez le faire préalablement pour éviter une perte de temps.

@echo off
set "$image=frame-001.png"
for /f "delims=" %%a in ('affpng.exe %$image% /getdim') do (
  for /f "tokens=1,2 delims= " %%1 in ('echo %%a') do (
    set "$Ximage=%%1"
    set "$Yimage=%%2"
  )
)


::On calcul la position d'affichage de notre animation
::Pour qu'elle soit centrer à notre fenêtre

Set /a $Xpos=(%$X%/2)-(%$Ximage%/2)+%$Topx%
set /a $Ypos=(%$Y%/2)-(%$Yimage%/2)+%$Topy%

::On lance l'animation avec le switch /nokill pour qu'elle boucle temps que le processus
::n'est pas terminé

start affpng.exe script2.txt /vitesse 100 /xpos %$Xpos% /ypos %$ypos% /nokill
echo traitement en cours...

::Ici votre traitement. Ici je cree une tache bidon, un comptage jusqu'à 30000.
::Pour simuler votre traitement

ping localhost -n 3 >nul
For /l %%a in (1,1,30000) do (echo %%a >nul)

::On kill l'animation en fin de traitement

affpng.exe /kill
cls
echo traitement termin‚...
pause

Et voilà le résultat : --> http://screencast.com/t/nclbdnwCeDy

 :ok:


PS : Je travail sur l'affichage direct de GIF animée....  Wink


Dernière édition par Sachadee le Lun 17 Nov 2014, 21:38, édité 1 fois

_________________
@SachaDee
avatar
Sachadee
Admin
Admin

Mensagens : 591
Data de inscrição : 04/06/2013

http://bbat.forumeiro.com

Revenir en haut Aller en bas

Re: [Au3/Exe] Commande externe AffPNG.exe Afficher des images

Message par Dylan Gadacha le Lun 17 Nov 2014, 06:22

Alors là, je dis Bravo !

_________________
avatar
Dylan Gadacha
EQUIPE BBAT
EQUIPE BBAT

Mensagens : 106
Data de inscrição : 24/10/2013
Idade : 18

Revenir en haut Aller en bas

Re: [Au3/Exe] Commande externe AffPNG.exe Afficher des images

Message par Sachadee le Dim 23 Nov 2014, 02:15

Une nouvelle animation sympa :




Résultat en Vidéo : http://screencast.com/t/MXEYYoLDGCG

Download des images : https://drive.google.com/file/d/0B9yh04HYXto1RzVGWkZHMDVpZEE/view?usp=shari…

Fichier script :
Code:
frame-001.png,frame-002.png,frame-003.png,frame-004.png,frame-005.png,frame-006.png,frame-007.png,frame-008.png,frame-009.png,frame-010.png,frame-011.png,frame-012.png,frame-013.png,frame-014.png,frame-016.png,frame-017.png,frame-018.png,frame-019.png,frame-020.png


Une autre :



Résultat en Vidéo : http://screencast.com/t/D5YmXqCVZM6

Download des images : https://drive.google.com/file/d/0B9yh04HYXto1aDRxeU5qZnQzUDg/view?usp=shari…

Fichier script :
Code:
frame-001.png,frame-002.png,frame-003.png,frame-004.png,frame-005.png,frame-006.png,frame-007.png,frame-008.png,frame-009.png,frame-010.png,frame-011.png,frame-012.png,frame-013.png


Et encore une :



Résultat en Vidéo : http://screencast.com/t/Iqjk6zKpeUv

Download des images : https://drive.google.com/file/d/0B9yh04HYXto1OW5mTHNBNGZxaG8/view?usp=shari…

Fichier script :
Code:
frame-001.png,frame-002.png,frame-003.png,frame-004.png,frame-005.png,frame-006.png,frame-007.png,frame-008.png,frame-009.png,frame-010.png,frame-011.png,frame-012.png,frame-013.png,frame-014.png,frame-015.png,frame-016.png



 :ok:

_________________
@SachaDee
avatar
Sachadee
Admin
Admin

Mensagens : 591
Data de inscrição : 04/06/2013

http://bbat.forumeiro.com

Revenir en haut Aller en bas

Re: [Au3/Exe] Commande externe AffPNG.exe Afficher des images

Message par Delmar Grande le Jeu 27 Nov 2014, 21:05

lol!
avatar
Delmar Grande
EQUIPE BBAT
EQUIPE BBAT

Mensagens : 170
Data de inscrição : 14/06/2013
Localização : Devant le pc

http://dbatchscript.forumeiros.com/

Revenir en haut Aller en bas

Re: [Au3/Exe] Commande externe AffPNG.exe Afficher des images

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum