[R] Script pour récupérer le nom d'un fichier
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Script pour récupérer le nom d'un fichier
Bonjour,
Je cherche à créer un script qui récupérer le nom d'un fichier sans extension de type "fichier" à la racine d'un lecteur USB.
Par exemple quand j'insère ma clé USB qui prend une lettre au hasard, le script que je lance retrouve automatiquement le nom du fichier GENERIC.
Le but est de créer un petit lanceur pour truecrypt.
Merci d'avance pour votre aide
Je cherche à créer un script qui récupérer le nom d'un fichier sans extension de type "fichier" à la racine d'un lecteur USB.
Par exemple quand j'insère ma clé USB qui prend une lettre au hasard, le script que je lance retrouve automatiquement le nom du fichier GENERIC.
Le but est de créer un petit lanceur pour truecrypt.
Merci d'avance pour votre aide
Modifié en dernier par mokoto le ven. 28 janv. 2011 10:53, modifié 1 fois.
- scorp84
- Niveau 7

- Messages : 415
- Enregistré le : mar. 04 nov. 2008 21:51
- Localisation : Avignon, France
- Status : Hors ligne
Re: [..] Script pour récupérer le nom d'un fichier
Bonjour mokoto,
J'utilise aussi Truecrypt qui est génial et j'ai sur ma clé un volume TC que je lance avec un script TC recompilé sous Autoit.
TC a un assistant pour créer des volumes sur un média amovible (Tools > Traveler Disk Setup).
Que cherches tu à faire exactement ? Lancer la fenêtre du mot de passe d'ouverture de ton volume à l'insertion de la clé ?
Dis nous en un peu plus que l'on puisse répondre exactement ce que tu cherches.
Amicalement.
BM
J'utilise aussi Truecrypt qui est génial et j'ai sur ma clé un volume TC que je lance avec un script TC recompilé sous Autoit.
TC a un assistant pour créer des volumes sur un média amovible (Tools > Traveler Disk Setup).
Que cherches tu à faire exactement ? Lancer la fenêtre du mot de passe d'ouverture de ton volume à l'insertion de la clé ?
Dis nous en un peu plus que l'on puisse répondre exactement ce que tu cherches.
Amicalement.
BM
Re: [..] Script pour récupérer le nom d'un fichier
En fait il faut que l'utilisation de TrueCrypt soit la plus simple possible.
Voici comment se compose l'arborescence de la clé (il faut que ce soit comme ça) :
Racine ----- TrueCrypt
| |
| |_ le programme original portable
|
|_ Un fichier sans extension nommé pour l'exemple GENERIC (le volume dont le nom est modifiable)
|_ Lanceur du programme qui lance le fichier GENERIC
|_ Programme pour déconnecter le volume
En ce moment j'utilise un script vbs transformé en exécutable qui marche plutôt bien mais j'utilise une version commercial limité pour créer l'exécutable dont j'ai pas la licence . J'ai fait le programme en Visual Basic mais les ordinateurs n'ont pas .NET Framework....
Je veux transposé mon programme en autoIt qui est libre de droit.
Donc déjà je sais lancé mon programme :
Le problème c'est que le nom GENERIC doit être modifiable à volonté sans passé par une fenêtre qui demande le nom du fichier, bien sûr c'est possible de lui donné une extension style ".tc" si c'est nécessaire. Au final l'utilisateur ne doit avoir que la fenêtre pour rentrer son mot de passe (le lanceur) et l'executable pour déconnecter le volume.
Voici comment se compose l'arborescence de la clé (il faut que ce soit comme ça) :
Racine ----- TrueCrypt
| |
| |_ le programme original portable
|
|_ Un fichier sans extension nommé pour l'exemple GENERIC (le volume dont le nom est modifiable)
|_ Lanceur du programme qui lance le fichier GENERIC
|_ Programme pour déconnecter le volume
En ce moment j'utilise un script vbs transformé en exécutable qui marche plutôt bien mais j'utilise une version commercial limité pour créer l'exécutable dont j'ai pas la licence . J'ai fait le programme en Visual Basic mais les ordinateurs n'ont pas .NET Framework....
Je veux transposé mon programme en autoIt qui est libre de droit.
Donc déjà je sais lancé mon programme :
Code : Tout sélectionner
Run ( "\TrueCrypt\TrueCrypt.exe /v GENERIC /l /m rm /auto /q /e" )- scorp84
- Niveau 7

- Messages : 415
- Enregistré le : mar. 04 nov. 2008 21:51
- Localisation : Avignon, France
- Status : Hors ligne
Re: [..] Script pour récupérer le nom d'un fichier
Si j'ai bien compris tu as sur la clé 1 seul fichier TC.
Je te conseille de lui donner l'extension TC (j'avais rencontré des soucis en cas de sauvegarde de la clé avec les fichiers sans extensions).
1. Tu récupères la lettre de ta clé avec :
2. Tu lances une recherche sur ta clé avec une fonction style _FileListToArrayEx en ne cherchant que l'extension .tc :
http://www.autoitscript.fr/forum/viewtopic.php?p=34893
3. Tu récupères le nom de ton fichier pour lancer ta ligne de commande :
En espérant avoir pu t'aider.
Amicalement.
BM
Je te conseille de lui donner l'extension TC (j'avais rencontré des soucis en cas de sauvegarde de la clé avec les fichiers sans extensions).
1. Tu récupères la lettre de ta clé avec :
Code : Tout sélectionner
StringLeft(@ScriptDir,3)http://www.autoitscript.fr/forum/viewtopic.php?p=34893
Code : Tout sélectionner
#include<Array.au3>
#include<FileListToArrayEx.au3>
$ar_Array = _FileListToArrayEx (StringLeft(@ScriptDir,3), "*.tc", 0, "", True)
_ArrayDisplay($ar_Array)Code : Tout sélectionner
$cmd_chaine='TrueCrypt.exe /q background /lR /m rm /v "'& $ar_Array[1] &'"'
Run(@ComSpec & " /c " & $cmd_chaine, "", @SW_HIDE)Amicalement.
BM
Re: [..] Script pour récupérer le nom d'un fichier
Merci pour ton aide j'en suis là :
Le problème c'est que je ne sais pas comment récupérer le résultat de la recherche puisque $ar_Array retourne un tableau.
Code : Tout sélectionner
$Lettre = StringLeft(@ScriptDir,3)
$ar_Array = _FileListToArrayEx (StringLeft(@ScriptDir,3), "*.tc", 1, "", True)
Run ( "\TrueCrypt\TrueCrypt.exe /v" & $ar_Array & "/l /m rm /auto /q /e" )- scorp84
- Niveau 7

- Messages : 415
- Enregistré le : mar. 04 nov. 2008 21:51
- Localisation : Avignon, France
- Status : Hors ligne
Re: [..] Script pour récupérer le nom d'un fichier
Regarde mon point 3 
BM
Amicalement.$ar_Array[1]
BM
Re: [..] Script pour récupérer le nom d'un fichier
Merci beaucoup pour ton aide voilà les scripts finaux :
Lanceur normal :
Lanceur avec lettre spécifique :
Déconnexion du volume :
Tout fonctionne 
Lanceur normal :
Code : Tout sélectionner
#include<Array.au3>
#include<FileListToArrayEx.au3>
$Lettre = StringLeft(@ScriptDir,3)
$ar_Array = _FileListToArrayEx (StringLeft(@ScriptDir,3), "*.tc", 1, "", True)
Run ( "\TrueCrypt\TrueCrypt.exe /v " & $ar_Array[1] & " /l /m rm /auto /q /e" )Code : Tout sélectionner
#include<Array.au3>
#include<FileListToArrayEx.au3>
$Lettre = StringLeft(@ScriptDir,3)
$ar_Array = _FileListToArrayEx (StringLeft(@ScriptDir,3), "*.tc", 1, "", True)
$lettre = InputBox("Lettre du lecteur", "FACULTATIF: entrez une lettre de lecteur pour monter votre fichier. ATTENTION la lettre ne doit pas être déja utilisée par un périphérique ou un lecteur réseau. Exemple : V.")
Run ( "\TrueCrypt\TrueCrypt.exe /v " & $ar_Array[1] & " /l " & $lettre & " /m rm /auto /q /e" )Code : Tout sélectionner
Run ( "\TrueCrypt\TrueCrypt.exe /q /d" )- scorp84
- Niveau 7

- Messages : 415
- Enregistré le : mar. 04 nov. 2008 21:51
- Localisation : Avignon, France
- Status : Hors ligne
Re: [R] Script pour récupérer le nom d'un fichier
Bonjour,
Tant mieux si j'ai pu t'aider.
Penses juste à mettre [R] dans ton premier post pour que les autres puissent savoir que le sujet est résolu.
Amicalement.
BM
Tant mieux si j'ai pu t'aider.
Penses juste à mettre [R] dans ton premier post pour que les autres puissent savoir que le sujet est résolu.
Amicalement.
BM
-
GaRydelaMer
- Niveau 7

- Messages : 450
- Enregistré le : mer. 18 mars 2009 22:12
- Localisation : Montpellier
- Status : Hors ligne
Re: [R] Script pour récupérer le nom d'un fichier
Bonjour
tu peux aussi proposer une liste des lettres disponible.
Local $aDrives = DriveGetDrive("All") te retourne un tableau des lettres déjà utilisé.
Ensuite tu parcours les lettres de A(code ascii 65) à Z(code ascii 90), si c'est pas dans le tableau tu l'ajoute à une ListBox ou un tableau:
tu peux aussi proposer une liste des lettres disponible.
Local $aDrives = DriveGetDrive("All") te retourne un tableau des lettres déjà utilisé.
Ensuite tu parcours les lettres de A(code ascii 65) à Z(code ascii 90), si c'est pas dans le tableau tu l'ajoute à une ListBox ou un tableau:
Code : Tout sélectionner
Local $aDrives = DriveGetDrive("All")
_ArrayDisplay($aDrives)
Local $aDrivesDispo[1]
For $Ascii = 65 To 90
If _ArrayFindAll($aDrives, Chr($Ascii) & ":", 1) = -1 Then
ReDim $aDrivesDispo[UBound($aDrivesDispo) + 1]
$aDrivesDispo[UBound($aDrivesDispo) - 1] = Chr($Ascii) & ":"
$aDrivesDispo[0] += 1
; ajoute aussi dans la liste
_GUICtrlListBox_AddString($ListBox, $aDrivesDispo[$i])
EndIf
Next
_ArrayDisplay($aDrivesDispo)
For $i = 1 To $aDrivesDispo[0]
_GUICtrlListBox_AddString($ListBox, $aDrivesDispo[$i])
NextRe: [R] Script pour récupérer le nom d'un fichier
Bonjour GaRydelaMer,
Merci pour ta suggestion, c'est une super idée mais je débute autoIt il va me falloir du temps pour que je puisse l'intégrer dans mon code
Merci pour ta suggestion, c'est une super idée mais je débute autoIt il va me falloir du temps pour que je puisse l'intégrer dans mon code
- walkson
- Modérateur

- Messages : 1039
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: [R] Script pour récupérer le nom d'un fichier
Bonjour,
J'ai trouvé Launcher pour Truecrypt, une solution complète basée sur Autoit à ce lien:
http://blog.usboffice.kr/?p=210
et voici le code:
Le principe est simple, le launcher en ZIP crée 3 dossiers. Dans Program files, vous avez le sous dossier Truecrypt où vous importez le logiciel Truecrypt.
Vous créez le container dans le même dossier.
En cliquant sur TC_Loader.exe, une MSbox s'ouvre pour indiquer le container et la lettre du lecteur. nouvelle fenêtre pour le mot de passe.
Par la suite, en cliquant sur TC_Loader.exe la fenêtre pour le mot de passe s'ouvre uniquement sans autre forme. (le chemin est inscrit sur un setting.ini)
Petite remarque sans rapport, le site est coréen dont http://www.usboffice.kr/ est la pièce maitresse avec un forum autoit. Google traduct est conseillé
J'ai trouvé Launcher pour Truecrypt, une solution complète basée sur Autoit à ce lien:
http://blog.usboffice.kr/?p=210
et voici le code:
► Afficher le texte
Vous créez le container dans le même dossier.
En cliquant sur TC_Loader.exe, une MSbox s'ouvre pour indiquer le container et la lettre du lecteur. nouvelle fenêtre pour le mot de passe.
Par la suite, en cliquant sur TC_Loader.exe la fenêtre pour le mot de passe s'ouvre uniquement sans autre forme. (le chemin est inscrit sur un setting.ini)
Petite remarque sans rapport, le site est coréen dont http://www.usboffice.kr/ est la pièce maitresse avec un forum autoit. Google traduct est conseillé
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)

