[R] Masquer une installation

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Andranik
Niveau 3
Niveau 3
Messages : 45
Enregistré le : mer. 30 oct. 2013 14:28
Status : Hors ligne

[R] Masquer une installation

#1

Message par Andranik »

Bonjour tout le monde :)

Je voulais savoir si il été possible de masquer une installation?
Le but est d'installer plusieurs logiciel automatiquement mais de ne pas voir les différents étapes de l'installation... les fenêtre qui s'ouvre qui se ferme... mais seulement (exemple) Une Gui avec une barre qui défile avec (toujours ex)
étapes 1/10 de l'installation...

J'ai déjà essayer WinSetTrans et c'est pas top top.

Pouvez vous m'aider svp?

Merci 8) 8) 8)
Modifié en dernier par Andranik le mer. 12 févr. 2014 15:45, modifié 1 fois.

Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Masquer une installation

#2

Message par Hugues »

Salut, pour faire disparaitre tes fenetres...

Tu as le ShellExecute() avec showflag (@SW_HIDE) pour masquer...

Andranik
Niveau 3
Niveau 3
Messages : 45
Enregistré le : mer. 30 oct. 2013 14:28
Status : Hors ligne

Re: [..] Masquer une installation

#3

Message par Andranik »

Hugues a écrit :Salut, pour faire disparaitre tes fenetres...

Tu as le ShellExecute() avec showflag (@SW_HIDE) pour masquer...
Merci pour la repense rapide.
Voilà un exemple d'une installation automatique VLC
Mais cela ne cache pas la fenêtre :-(

Code : Tout sélectionner

ShellExecute ("logiciel\vlc.exe",@SW_HIDE)
   WinWaitActive("Installer Language", "Please select a language.")

   send("{ENTER}")
   WinWaitActive("Installation de VLC media player 2.1.2", "Bienvenue dans le programme d'installation de VLC media player 2.1.2")
  
   send("{ENTER}")
   WinWaitActive("Installation de VLC media player 2.1.2", "Licence utilisateur")
  
   send("{ENTER}")
   WinWaitActive("Installation de VLC media player 2.1.2", "Choisissez les composants")

   send("{ENTER}")
   WinWaitActive("Installation de VLC media player 2.1.2", "Choisissez le dossier d'installation")
 
   send("{ENTER}")
 

Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2474
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Masquer une installation

#4

Message par jguinch »

Code : Tout sélectionner

RunWait("vlc-2.1.3-win32.exe /S /NCRC")
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !

Andranik
Niveau 3
Niveau 3
Messages : 45
Enregistré le : mer. 30 oct. 2013 14:28
Status : Hors ligne

Re: [..] Masquer une installation

#5

Message par Andranik »

jguinch a écrit :

Code : Tout sélectionner

RunWait("vlc-2.1.3-win32.exe /S /NCRC")
Bonjour jguinch,

Le problème c'est que on ne peut pas rajouter un "/S /NCRC" a tous les logiciels. VLC été simplement un example mais j'ai besoin également des logiciel comme "Photoshop", "OpenOffice" ou autres. J'ai utilisé USSF pour savoir si il y a des argument a ajouter.

Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Masquer une installation

#6

Message par Hugues »

Code : Tout sélectionner

ShellExecute ("logiciel\vlc.exe", "", "", "", @SW_HIDE)
?

Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 1830
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Masquer une installation

#7

Message par TommyDDR »

Vous ne pourrez pas avec un run ou shellexecute, en effet, il incombe au programme lancé de prendre en compte ou non le @SW_HIDE.
Il y aura toujours des programmes qui ne le prendront pas en compte.
Par exemple, mspaint.exe le prend en compte alors que calc.exe non.

Code : Tout sélectionner

Local $PID1 = Run("mspaint.exe", "", @SW_HIDE)
Local $PID2 = Run("calc.exe", "", @SW_HIDE)
Sleep(3000)
ProcessClose($PID1)
ProcessClose($PID2)
Une solution serait de faire un :

Code : Tout sélectionner

WinSetState("VotreFenetre", "", @SW_HIDE)
Les ControlClick fonctionneront toujours

Faites le test :

Code : Tout sélectionner

Run("calc.exe")
Local $hWnd = WinWaitActive("Calculatrice")
WinSetState($hWnd, "", @SW_HIDE)
Sleep(500)
ControlClick($hWnd, "", "[CLASS:Button; INSTANCE:15]")
ControlClick($hWnd, "", "[CLASS:Button; INSTANCE:15]")
ControlClick($hWnd, "", "[CLASS:Button; INSTANCE:15]")
Sleep(500)
WinSetState($hWnd, "", @SW_SHOW)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

Andranik
Niveau 3
Niveau 3
Messages : 45
Enregistré le : mer. 30 oct. 2013 14:28
Status : Hors ligne

Re: [..] Masquer une installation

#8

Message par Andranik »

Hugues a écrit :

Code : Tout sélectionner

ShellExecute ("logiciel\vlc.exe", "", "", "", @SW_HIDE)
?
Non plus, cela ne fonctionne pas :/

Andranik
Niveau 3
Niveau 3
Messages : 45
Enregistré le : mer. 30 oct. 2013 14:28
Status : Hors ligne

Re: [..] Masquer une installation

#9

Message par Andranik »

Il est peut être possible de faire exécuter ces logiciel dans une Gui? puis de la cacher ou la transformer en une barre de progression ?

Andranik
Niveau 3
Niveau 3
Messages : 45
Enregistré le : mer. 30 oct. 2013 14:28
Status : Hors ligne

Re: [..] Masquer une installation

#10

Message par Andranik »

TommyDDR a écrit :Vous ne pourrez pas avec un run ou shellexecute, en effet, il incombe au programme lancé de prendre en compte ou non le @SW_HIDE.
Il y aura toujours des programmes qui ne le prendront pas en compte.
Par exemple, mspaint.exe le prend en compte alors que calc.exe non.

Code : Tout sélectionner

Local $PID1 = Run("mspaint.exe", "", @SW_HIDE)
Local $PID2 = Run("calc.exe", "", @SW_HIDE)
Sleep(3000)
ProcessClose($PID1)
ProcessClose($PID2)
Une solution serait de faire un :

Code : Tout sélectionner

WinSetState("VotreFenetre", "", @SW_HIDE)
Les ControlClick fonctionneront toujours

Faites le test :

Code : Tout sélectionner

Run("calc.exe")
Local $hWnd = WinWaitActive("Calculatrice")
WinSetState($hWnd, "", @SW_HIDE)
Sleep(500)
ControlClick($hWnd, "", "[CLASS:Button; INSTANCE:15]")
ControlClick($hWnd, "", "[CLASS:Button; INSTANCE:15]")
ControlClick($hWnd, "", "[CLASS:Button; INSTANCE:15]")
Sleep(500)
WinSetState($hWnd, "", @SW_SHOW)

Bonjour TommyDDR

Merci pour l'exemple, j'ai déjà essayer de le faire de cette façon mais ce qui me dérange un peut c'est d'être obliger a faire ce ci pour seulement 3 click

Code : Tout sélectionner

Run("\logiciel\vlc.exe")
WinWaitActive("Installer Language", "Please select a language.")
WinSetState("Installer Language", "Please select a language.", @SW_HIDE)
ControlClick("Installer Language", "", "[CLASS:Button; INSTANCE:1]")
Sleep(500)
WinWaitActive("Installation de VLC media player 2.1.2", "Bienvenue dans le programme d'installation de VLC media player 2.1.2")
WinSetState("Installation de VLC media player 2.1.2", "Bienvenue dans le programme d'installation de VLC media player 2.1.2", @SW_HIDE)
ControlClick("Installation de VLC media player 2.1.2", "", "[CLASS:Button; INSTANCE:2]")
Sleep(500)
WinWaitActive("Installation de VLC media player 2.1.2", "")
WinSetState("Installation de VLC media player 2.1.2", "", @SW_HIDE)
ControlClick("Installation de VLC media player 2.1.2", "", "[CLASS:Button; INSTANCE:2]")
Sleep(500)
WinWaitActive("Installation de VLC media player 2.1.2", "")
WinSetState("Installation de VLC media player 2.1.2", "", @SW_HIDE)
ControlClick("Installation de VLC media player 2.1.2", "", "[CLASS:Button; INSTANCE:2]")
Sleep(5000)
WinSetState("Installation de VLC media player 2.1.2", "", @SW_show)
 

Andranik
Niveau 3
Niveau 3
Messages : 45
Enregistré le : mer. 30 oct. 2013 14:28
Status : Hors ligne

Re: [..] Masquer une installation

#11

Message par Andranik »

Et en plus de ce ci c'est que a chaque fois que la fenêtre s'ouvre on la vois puis elle se cache.

Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 1830
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Masquer une installation

#12

Message par TommyDDR »

Malheureusement je ne vois pas d'autre possibilité.
Vous pouvez inclure la fenêtre dans une de vos gui (_WinAPI_SetParent()), mais une fois de plus, il vous faut le handle de la fenêtre, et donc, celle-ci sera affichée.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2474
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Masquer une installation

#13

Message par jguinch »

Andranik a écrit :Le problème c'est que on ne peut pas rajouter un "/S /NCRC" a tous les logiciels. VLC été simplement un example mais j'ai besoin également des logiciel comme "Photoshop", "OpenOffice" ou autres. J'ai utilisé USSF pour savoir si il y a des argument a ajouter.
En général, les logiciels "de base" sont installables de manière automatique voir silencieuse. On trouve pas mal d'infos sur ITNinja (en autres).
D'accord, ça ne répond pas à ta question, mais comme il a été déjà discuté quelques fois ici, l'installation avec la méthode du clic devrait être à utiliser en dernier recours. C'est pourquoi je te suggère de rechercher une solution "propre" pour chacune des tes installations. Le temps que tu mettras pour trouver la bonne ligne de commande sera peut-être (pas forcément) plus long que le codage d'un script, mais tu auras une solution plus sûre.

Juste par curiosité, qu'est-ce que tu as comme applications à installer ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !

Andranik
Niveau 3
Niveau 3
Messages : 45
Enregistré le : mer. 30 oct. 2013 14:28
Status : Hors ligne

Re: [R] Masquer une installation

#14

Message par Andranik »

Bonjour,

Merci pour vos repense :)

Les logiciel que je veux installer c'est du genre NetoWatcher Pour des douchette, des logiciel de Caisse quoi...
Merci je vais voir si je trouve quel que chose qui me convient.

Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Masquer une installation

#15

Message par sksbir »

Bonjour

Masquer une installation consiste à la rendre
- silencieuse ( c'est à dire sans fenêtres autres que celles désirées ),
- et autonome ( c'est à dire sans que l'installation ne pose de question au cours de sa progression ).

en anglais : silent and unattended
Voici le document qui m'a toujours servi de référence : http://unattended.sourceforge.net/installers.php

En la matière, la règle, c'est qu'il n'y a pas de règle : chaque produit est spécifique, même si avec l'expérience, on s'aperçoit qu'il existe des familles de produit dont le regroupement vient de la façon dont ils ont été packagés ( microsoft/MSI , nullsoft ,etc... )

La bonne démarche consiste à suivre ceci dans l'ordre :
- lire la documentation du fournisseur
- chercher sur internet "silent unattended <le_soft_a_installer>"

Puis pour les cas extrêmes et désespérés essayer de repackager l'installation ou utiliser autoit pour simuler les actions de l'utilisateur
Autoit m'a servi une seule fois pour fermer une fenêtre récalcitrante après avoir rendu le processus d'installation presque completement silencieux via la doc fournisseur... (tout ça pour dire qu'on peut mixer les méthodes, mais qu'il faut faire les chose dans l'ordre que j'indique : d'abord suivre la doc, et si ça résiste, passer à la suite...

Bon courage. 8)

Répondre