[R] Listview & Msgbox

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Y01
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 17 nov. 2014 10:46
Status : Hors ligne

[R] Listview & Msgbox

#1

Message par Y01 »

Bonjour,

J'ai créé une petite liseuse de logs qui liste tous les fichiers .log et .bmp d'un dossier et qui les affichent dans une MSGBOX lorsqu'on clique dessus.

Mon problème est que je souhaiterais que ce soit une listview qui s'ouvre lorsque je clic sur un .log et une msgbox pour un .bmp.

Le code actuellement :
► Afficher le texte
EDIT : Le code finalisé
► Afficher le texte
Modifié en dernier par Y01 le lun. 08 déc. 2014 14:12, modifié 2 fois.
Y01
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..] Listview & Msgbox

#2

Message par DimVar »

Bonjour,

Une msgbox ne peut pas afficher de BMP. (ou alors je n'ai pas compris votre requête)


Cdlt.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Y01
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 17 nov. 2014 10:46
Status : Hors ligne

Re: [..] Listview & Msgbox

#3

Message par Y01 »

C'est l’inconvénient de ne pas tester tous les modifications que l'on effectuent.

Mea Culpa.

A la base, les fichiers étaient ouvert avec un shellexecute, ce qui marchait parfaitement.

Par contre, le problème initial était que je souhaitais que les fichiers restent en premier plan, ce qui explique la msgbox(262144...) et ça fonctionne très bien (pour les logs en tout cas).

Mon autre problème est que j'ai des logs de plusieurs pages et que c'est impossible d'avoir le contenu complet dans un msgbox.

Concernant les BMP, je pense qu'on fera avec si on ne peut les ouvrir qu'avec un shellexecute.
Y01
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Listview & Msgbox

#4

Message par jguinch »

Le mieux serait une GUI qui affiche les logs avec GUICtrlCreateEdit et les images avec GUICtrlCreatePic.
- tu mets la GUI en premier plan
- tu auras un ascenseur pour les logs
- tu pourras dimensionner l'image comme tu veux (tu peux d'ailleurs récupérer la taille de l'image avec _GDIPlus_ImageGetWidth et _GDIPlus_ImageGetHeight :

Code : Tout sélectionner

 _GDIPlus_Startup()
$hBitmap = _GDIPlus_BitmapCreateFromFile ( "C:\Users\j1guinchard\Documents\GDIPlus_Image.bmp" )
$iWidth = _GDIPlus_ImageGetWidth($hBitmap)
$iHeight = _GDIPlus_ImageGetHeight($hBitmap)
_GDIPlus_BitmapDispose($hBitmap)
ConsoleWrite($iWidth & "x" & $iHeight)
 
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Y01
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 17 nov. 2014 10:46
Status : Hors ligne

Re: [..] Listview & Msgbox

#5

Message par Y01 »

Merci jguinch, j'ai réussi à faire une GUI qui me récupère le contenu de mes logs par contre je n'arrive pas à lui faire comprendre la diffèrence entre un bmp et un log.

J'ai essayé ça mais sans succès :
► Afficher le texte
Y01
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Listview & Msgbox

#6

Message par jguinch »

J'avais un peu de temps ce soir, je t'ai fais un petit truc qui devrait ressembler à ce que tu veux.
J'ai utilisé GUIRegisterMsg au lieu de ta boucle For $i = 1 to $files[0] et créé une GUI pour afficher soit une image soit du texte.
La GUI et l'image sont redimensionnées à l'affichage (en me basant sur mon idée précédente).

Pour différencier un .log d'un .bmp, j'ai simplement testé si le nom du fichier se termine par .log ou non :
If StringRegExp($sSelectedFile, "(?i)\.log$") Then $sType = "log"
► Afficher le texte
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Y01
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 17 nov. 2014 10:46
Status : Hors ligne

Re: [..] Listview & Msgbox

#7

Message par Y01 »

Génial jguinch !!!

ça marche nickel.

PS : Désolé de la latence de réponse, je n'avais pas d'ordinateur à dispo.
Y01
Répondre