Page 1 sur 1

Fichier ouvert - Avertissement de sécurité" " Voulez-vous exécuter ce fichier ?

Posté : ven. 18 nov. 2016 00:54
par Cerbius
Bonjour à tous,

Je viens vous demandez de l'aide car je debute avec AutoIt et je me retrouve face à un petit problème.
Je vous explique:
Je veux créer ma première Auto-installation d'un logiciel (Teamviewer)
J'ai vu quelques tutos qui font un exemple avec ce soft !
Mais lors de mon test en cours d'ecriture (F5), le test se lance bien, mais à un moment donné, j'ai la fenètre " Fichier ouvert - Avertissement de sécurité" " Voulez-vous exécuter ce fichier ?" qui s'ouvre.
Je souhaite automatiser le clic sur "Executer", mais en vain.
Je vous donne le commencement de mon code afin de voir si j'ai un souci ou si vous pouvez m'aider s'il vous plait.
#include <perso.au3>

; Affichage d'une infobulle d'information
TrayTip("Installateur Logiciel","Début d'installation de Teamviewer 11",3000)

;Pause de 3 secondes
sleep (3000)

;Lance le programme d'installation
ShellExecute ( "TeamViewer_Setup_fr.exe" ) ,

;Attendre la fenêtre principal du programme teamviewer 11
WA("Fichier ouvert - Avertissement de sécurité | Voulez-vous exécuter ce fichier ? |{ENTER}")

;Attendre la fenêtre principal du programme teamviewer 11
WA("Installation de Teamviewer 11", "Bienvenue chez TeamViewer")

Re: Fichier ouvert - Avertissement de sécurité" " Voulez-vous exécuter ce fichier ?

Posté : ven. 18 nov. 2016 14:35
par walkson
Bonjour,
Je vais peut être dire une bêtise (une de plus :mrgreen: ) mais je ne crois pas possible d'automatiser cette fenêtre avec Autoit. Par contre, on peut l'éviter en réglant la sécurité de Windows ou en modifiant la propriété du programme (débloqué).
A titre indicatif, Teamviewer possède des command-lines

Re: Fichier ouvert - Avertissement de sécurité" " Voulez-vous exécuter ce fichier ?

Posté : ven. 18 nov. 2016 23:00
par Cerbius
Merci walkson !
Je suis partis sur la facilité pour le moment en modifiant la propriété du programme (débloqué) comme tu me l'as dit et ça roule.
Cependant, j'uste aprés je dois rentré des commandes de types Send car je dois taper 3 fois sur la touche "TAB" et ensuite 1 fois sur " ESPACE",mais lorsque je rentre ne serais-ce qu’une seule commande Send, elle ne s'execute pas.
Par exemple :
Send "({TAB})"

Re: Fichier ouvert - Avertissement de sécurité" " Voulez-vous exécuter ce fichier ?

Posté : sam. 19 nov. 2016 16:32
par walkson
Bonjour,
Très mauvaise idée d'utiliser Send "({TAB})" ou autres. C'est un peu comme si vous confisquiez les lunettes à un myope et de lui donner un fusil pour tuer une mouche ! :D
Utilisez Autoit V3 Window info (dans le dossier Autoit) pour connaitre les ID des boutons et autres
Cela vous donne par exemple:
ShellExecute("TeamViewer_Setup_fr.exe")
WinWaitActive("Installation de TeamViewer 11")
WinActivate("Installation de TeamViewer 11")
ControlCommand("Installation de TeamViewer 11","","[CLASS:Button; INSTANCE:6]","Check", "")
ControlCommand("Installation de TeamViewer 11","","[CLASS:Button; INSTANCE:8]","Check", "")
MsgBox(0,"","button clic!")
ProcessClose("TeamViewer_.exe");il y a 2 processus TeamViewer_Setup_fr.exe et TeamViewer_.exe
                        ;voir gestionnaire des taches
Utilisez les fonctions Control...() et Win...() de préférence (voir l'aide F1)
Une petite remarque si vous n'avez pas besoin du service TeamViewer, c'est d'utiliser TeamViewer portable et de le copier dans un dossier tout bêtement, c'est à vous de voir...
Autre chose aussi, TeamViewer demandera les droits administrateur pour installer son programme, on ne peut pas contourner cette fenêtre (à ma connaissance) sauf avec TeamViewer portable

Re: Fichier ouvert - Avertissement de sécurité" " Voulez-vous exécuter ce fichier ?

Posté : sam. 19 nov. 2016 18:38
par TommyDDR
Si vous avez les droits en écriture sur le fichier, utilisez cette fonction*, sinon, copiez le fichier dans un dossier où vous avez les droits d'écriture et utilisez la fonction* (il faut envoyer le nom du fichier en paramètre) :
Func deleteZoneIdentifier($fileName)
   Local $file = FileOpen($fileName & ":Zone.Identifier", 2)
   FileClose($file)
EndFunc
* La fonction sert à supprimer l'information qui dit que le fichier vient d'internet (c'est cette information qui provoque l'affichage de la popup)

Re: Fichier ouvert - Avertissement de sécurité" " Voulez-vous exécuter ce fichier ?

Posté : sam. 19 nov. 2016 23:14
par jguinch
Excellent ça Tommy ! Je me demandais comment Windows détectait qu'un exécutable avait été téléchargé. Maintenant je sais.
Merci

Re: Fichier ouvert - Avertissement de sécurité" " Voulez-vous exécuter ce fichier ?

Posté : dim. 20 nov. 2016 16:00
par jchd
Oui, Windoze met ça dans un ADS, chose dont on a déjà parlé ici.

Re: Fichier ouvert - Avertissement de sécurité" " Voulez-vous exécuter ce fichier ?

Posté : dim. 20 nov. 2016 18:52
par jguinch
Oui, j'avais déjà vu des scripts qui utilisent les data stream, mais je ne savais pas que Windows utilisais ça pour flagger les fichiers télécharger (en même temps, c'est assez logique...)
Donc ça veut dire que sur un système Fat32 on n'a pas le problème (clé USB par ex).

Re: Fichier ouvert - Avertissement de sécurité" " Voulez-vous exécuter ce fichier ?

Posté : lun. 21 nov. 2016 00:06
par jchd
Je dirais même plus : c'est comme ça que commencent les problèmes !
Si on se repose sur ce système de "sécurité" il est évident qu'on risque d'être salement koku (pour parler franc). J'ai plutôt tendance à appeler ça un système de piégeage de pigeons. Mais qui suis-je pour chercher des poux dans la tonsure d'une "corp" aussi fructueuse ?

Re: Fichier ouvert - Avertissement de sécurité" " Voulez-vous exécuter ce fichier ?

Posté : lun. 21 nov. 2016 13:29
par Cerbius
Merci à vous tous, vous êtes super !
Je test ca ce soir et je vous dit si cela fonctionne

Re: Fichier ouvert - Avertissement de sécurité" " Voulez-vous exécuter ce fichier ?

Posté : mar. 22 nov. 2016 23:39
par Tlem
Bonsoir tout le monde.
Une autre option qui fonctionne dans tous les cas (que j'ai eu la possibilité de tester), consiste à copier le fichier à installer dans un dossier pour lequel on a les droits (le dossier "temp" est pas mal pour ça ...)

Voici un code simple testé sur différents types de Windows (7, 8.1 et 10) et qui permet d'automatiser entièrement l'installation d'un TeamViewer classique ou d'une version Host. ^^
#RequireAdmin

$TVFiles2InstallPath = @ScriptDir
$TVFile2Install = "TeamViewer_Setup_fr.exe"
$TVRegFile2Install = "TeamViewer.reg"

FileCopy($TVFiles2InstallPath & "\" & $TVFile2Install, @TempDir)
ShellExecuteWait(@TempDir & "\" & $TVFile2Install, "/S")

; La ligne de code ci-dessous correspond àla fusion des paramètres exporté précédemment.
; TeamViewer permet l'export de ses paramètres au format .reg
; Menu :
; "Options"
; "Avancé"
; "Afficher les options avancées"
; puis tout en bas : "Exporter les options dans un fichier *.reg."
RunWait(@ComSpec & " /C " & "Reg Import " & $TVFiles2InstallPath & "\" & $TVRegFile2Install, "", @SW_HIDE)

FileDelete(@TempDir & "\" & $TVFile2Install)
MsgBox(64, "Fin", "Installation de TeamViewer terminée")