Démarrer l'application via un fichier associé selon une extension donnée
5 réponses
David Bouchard
Salut, j'aimerais permettre au utilisateur de mon programme de démarrer
l'application via les fichiers associés à mon programme. Pour l'instant,
j'ai réussi à faire en sorte que les fichiers de l'extension voulu démarre
mon application, par contre, je voudrais que ceux-ci se charge aussi dans
l'application. Autrement dit, lorsque l'on double-clique sur un fichier
Excel par example, automatiquement, Excel démarre et le fichier se charge
dans excel. Donc, je voudrais optenir le même résultat. Alors comment faire
pour réaliser ceci. J'avais tenté d'utiliser ceci
Public Shared Sub Main(ByVal s() As String)
If s.Length <> 0 Then
dim Fichier as string = s(0)
End If
End Sub
Mais le nom de fichier n'est pas complet malheureusement, il a un format
plus court et donc incompatible avec mon application. Donc, si quelqu'un
sait comment optenir soit le chemin du fichier au complet, ou une autre
solution, merci de votre aide.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred
Dans son message % David Bouchard nous dit :
Mais le nom de fichier n'est pas complet malheureusement, il a un format plus court et donc incompatible avec mon application. Donc, si quelqu'un sait comment optenir soit le chemin du fichier au complet, ou une autre solution, merci de votre aide.
C'est quoi un nom de fichier incomplet ? Et un format plus court ? Si par hasard le chemin était tronqué au niveau du premier espace dans la chaîne, alors il s'agit d'un problème d'enregistrement de l'association extension - programme.
MonProgramme.exe "%1"
Les guillemets y sont-ils ?
Si ce n'est pas cela, précise ta question en donnant éventuellement un exemple de ce que tu récupères comme chemin dans le programme.
-- Fred
Dans son message %23GuGu2zNFHA.3492@TK2MSFTNGP09.phx.gbl
David Bouchard nous dit :
Mais le nom de fichier n'est pas complet malheureusement, il a un
format plus court et donc incompatible avec mon application. Donc, si
quelqu'un sait comment optenir soit le chemin du fichier au complet,
ou une autre solution, merci de votre aide.
C'est quoi un nom de fichier incomplet ? Et un format plus court ?
Si par hasard le chemin était tronqué au niveau du premier espace dans la
chaîne, alors il s'agit d'un problème d'enregistrement de l'association
extension - programme.
MonProgramme.exe "%1"
Les guillemets y sont-ils ?
Si ce n'est pas cela, précise ta question en donnant éventuellement un
exemple de ce que tu récupères comme chemin dans le programme.
Mais le nom de fichier n'est pas complet malheureusement, il a un format plus court et donc incompatible avec mon application. Donc, si quelqu'un sait comment optenir soit le chemin du fichier au complet, ou une autre solution, merci de votre aide.
C'est quoi un nom de fichier incomplet ? Et un format plus court ? Si par hasard le chemin était tronqué au niveau du premier espace dans la chaîne, alors il s'agit d'un problème d'enregistrement de l'association extension - programme.
MonProgramme.exe "%1"
Les guillemets y sont-ils ?
Si ce n'est pas cela, précise ta question en donnant éventuellement un exemple de ce que tu récupères comme chemin dans le programme.
-- Fred
David Bouchard
Merci pour ta réponse, en faite, je n'avais pas placé de guillemets mais j'ai essayé d'en placé et le résultat reste le même. Voici l'example du chemin que je récupère:
C:DOCUME~1bouchardBureauDAVIDB~1.BUD
Autrement dit, je voudrais qu'il n'est pas les symbole ~ ainsi que l'extention de mon fichier à été coupé, il manque une lettre au bout.
Merci de votre aide
David
"Fred" a écrit dans le message de news:
Dans son message % David Bouchard nous dit :
Mais le nom de fichier n'est pas complet malheureusement, il a un format plus court et donc incompatible avec mon application. Donc, si quelqu'un sait comment optenir soit le chemin du fichier au complet, ou une autre solution, merci de votre aide.
C'est quoi un nom de fichier incomplet ? Et un format plus court ? Si par hasard le chemin était tronqué au niveau du premier espace dans la chaîne, alors il s'agit d'un problème d'enregistrement de l'association extension - programme.
MonProgramme.exe "%1"
Les guillemets y sont-ils ?
Si ce n'est pas cela, précise ta question en donnant éventuellement un exemple de ce que tu récupères comme chemin dans le programme.
-- Fred
Merci pour ta réponse, en faite, je n'avais pas placé de guillemets mais
j'ai essayé d'en placé et le résultat reste le même. Voici l'example du
chemin que je récupère:
C:DOCUME~1bouchardBureauDAVIDB~1.BUD
Autrement dit, je voudrais qu'il n'est pas les symbole ~ ainsi que
l'extention de mon fichier à été coupé, il manque une lettre au bout.
Merci de votre aide
David
"Fred" <nospam@nospam.net> a écrit dans le message de news:
eV4SR11NFHA.2252@TK2MSFTNGP15.phx.gbl...
Dans son message %23GuGu2zNFHA.3492@TK2MSFTNGP09.phx.gbl
David Bouchard nous dit :
Mais le nom de fichier n'est pas complet malheureusement, il a un
format plus court et donc incompatible avec mon application. Donc, si
quelqu'un sait comment optenir soit le chemin du fichier au complet,
ou une autre solution, merci de votre aide.
C'est quoi un nom de fichier incomplet ? Et un format plus court ?
Si par hasard le chemin était tronqué au niveau du premier espace dans la
chaîne, alors il s'agit d'un problème d'enregistrement de l'association
extension - programme.
MonProgramme.exe "%1"
Les guillemets y sont-ils ?
Si ce n'est pas cela, précise ta question en donnant éventuellement un
exemple de ce que tu récupères comme chemin dans le programme.
Merci pour ta réponse, en faite, je n'avais pas placé de guillemets mais j'ai essayé d'en placé et le résultat reste le même. Voici l'example du chemin que je récupère:
C:DOCUME~1bouchardBureauDAVIDB~1.BUD
Autrement dit, je voudrais qu'il n'est pas les symbole ~ ainsi que l'extention de mon fichier à été coupé, il manque une lettre au bout.
Merci de votre aide
David
"Fred" a écrit dans le message de news:
Dans son message % David Bouchard nous dit :
Mais le nom de fichier n'est pas complet malheureusement, il a un format plus court et donc incompatible avec mon application. Donc, si quelqu'un sait comment optenir soit le chemin du fichier au complet, ou une autre solution, merci de votre aide.
C'est quoi un nom de fichier incomplet ? Et un format plus court ? Si par hasard le chemin était tronqué au niveau du premier espace dans la chaîne, alors il s'agit d'un problème d'enregistrement de l'association extension - programme.
MonProgramme.exe "%1"
Les guillemets y sont-ils ?
Si ce n'est pas cela, précise ta question en donnant éventuellement un exemple de ce que tu récupères comme chemin dans le programme.
-- Fred
Fred
Dans son message % David Bouchard nous dit :
Voici l'example du chemin que je récupère:
C:DOCUME~1bouchardBureauDAVIDB~1.BUD
Bonsoir, Je ne connais pas ce problème. C'est sous 98 ou Me ? As-tu essayé de récupérer les arguments de la ligne de commande par l'intermédiaire de la propriété System.Environment.CommandeLine ?
D'autre part, ce chemin est valide. Qu'est-ce qui pose problème dans son utilisation ? Tiens-nous au courant.
-- Fred
Dans son message %23CSgdU7NFHA.2252@TK2MSFTNGP15.phx.gbl
David Bouchard nous dit :
Voici
l'example du chemin que je récupère:
C:DOCUME~1bouchardBureauDAVIDB~1.BUD
Bonsoir,
Je ne connais pas ce problème. C'est sous 98 ou Me ?
As-tu essayé de récupérer les arguments de la ligne de commande par
l'intermédiaire de la propriété System.Environment.CommandeLine ?
D'autre part, ce chemin est valide. Qu'est-ce qui pose problème dans son
utilisation ?
Tiens-nous au courant.
Bonsoir, Je ne connais pas ce problème. C'est sous 98 ou Me ? As-tu essayé de récupérer les arguments de la ligne de commande par l'intermédiaire de la propriété System.Environment.CommandeLine ?
D'autre part, ce chemin est valide. Qu'est-ce qui pose problème dans son utilisation ? Tiens-nous au courant.
-- Fred
David Bouchard
En faite, j'ai essayé System.Environment.CommandLine et le problème est le même. J'ai utilisé System.Environment.CurrentDirectory et celui-ci me retourne bien le chemin complet d'où provient mon fichier, par contre, il me manquerait le nom du fichier pour réglé complètement mon problème. Pour ce qui est de la question à propos de mon système d'exploitation, j'utilise XP pro. Mon problème avec ce format de chemin est que j'ai besoin d'obtenir le nom réel complet du fichier puisque je fais un traitement sur celui-ci par la suite lors de son ouverture et si celui-ci n'est pas complet, cela engendre une erreur et même si je corrigerait le problème d'erreur, ceci ne me satisferait pas puisque j'utilise ce nom par la suite dans mon application. Est-ce possible que mon problème parvient de la façon d'écrire dans la base de registre même si je doute de cette possibilité. Voici de qu'elle façon je m'y prends.
Dim oRegKey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.ClassesRoot
oRegKey = oRegKey.CreateSubKey(".BUDG")
oRegKey.SetValue("", "Budget.Projet")
oRegKey.Close()
oRegKey = Microsoft.Win32.Registry.ClassesRoot
Dim oRegKeyOpenCommand As Microsoft.Win32.RegistryKey
Merci beaucoup de votre aide, disons que vous pourriez m'épargner beaucoup de temps de casse-tête.
David
"Fred" a écrit dans le message de news:
Dans son message % David Bouchard nous dit :
Voici l'example du chemin que je récupère:
C:DOCUME~1bouchardBureauDAVIDB~1.BUD
Bonsoir, Je ne connais pas ce problème. C'est sous 98 ou Me ? As-tu essayé de récupérer les arguments de la ligne de commande par l'intermédiaire de la propriété System.Environment.CommandeLine ?
D'autre part, ce chemin est valide. Qu'est-ce qui pose problème dans son utilisation ? Tiens-nous au courant.
-- Fred
En faite, j'ai essayé System.Environment.CommandLine et le problème est le
même. J'ai utilisé System.Environment.CurrentDirectory et celui-ci me
retourne bien le chemin complet d'où provient mon fichier, par contre, il me
manquerait le nom du fichier pour réglé complètement mon problème. Pour ce
qui est de la question à propos de mon système d'exploitation, j'utilise XP
pro. Mon problème avec ce format de chemin est que j'ai besoin d'obtenir le
nom réel complet du fichier puisque je fais un traitement sur celui-ci par
la suite lors de son ouverture et si celui-ci n'est pas complet, cela
engendre une erreur et même si je corrigerait le problème d'erreur, ceci ne
me satisferait pas puisque j'utilise ce nom par la suite dans mon
application. Est-ce possible que mon problème parvient de la façon d'écrire
dans la base de registre même si je doute de cette possibilité. Voici de
qu'elle façon je m'y prends.
Dim oRegKey As Microsoft.Win32.RegistryKey =
Microsoft.Win32.Registry.ClassesRoot
oRegKey = oRegKey.CreateSubKey(".BUDG")
oRegKey.SetValue("", "Budget.Projet")
oRegKey.Close()
oRegKey = Microsoft.Win32.Registry.ClassesRoot
Dim oRegKeyOpenCommand As Microsoft.Win32.RegistryKey
Merci beaucoup de votre aide, disons que vous pourriez m'épargner beaucoup
de temps de casse-tête.
David
"Fred" <nospam@nospam.net> a écrit dans le message de news:
OqOqqg8NFHA.1500@TK2MSFTNGP09.phx.gbl...
Dans son message %23CSgdU7NFHA.2252@TK2MSFTNGP15.phx.gbl
David Bouchard nous dit :
Voici
l'example du chemin que je récupère:
C:DOCUME~1bouchardBureauDAVIDB~1.BUD
Bonsoir,
Je ne connais pas ce problème. C'est sous 98 ou Me ?
As-tu essayé de récupérer les arguments de la ligne de commande par
l'intermédiaire de la propriété System.Environment.CommandeLine ?
D'autre part, ce chemin est valide. Qu'est-ce qui pose problème dans son
utilisation ?
Tiens-nous au courant.
En faite, j'ai essayé System.Environment.CommandLine et le problème est le même. J'ai utilisé System.Environment.CurrentDirectory et celui-ci me retourne bien le chemin complet d'où provient mon fichier, par contre, il me manquerait le nom du fichier pour réglé complètement mon problème. Pour ce qui est de la question à propos de mon système d'exploitation, j'utilise XP pro. Mon problème avec ce format de chemin est que j'ai besoin d'obtenir le nom réel complet du fichier puisque je fais un traitement sur celui-ci par la suite lors de son ouverture et si celui-ci n'est pas complet, cela engendre une erreur et même si je corrigerait le problème d'erreur, ceci ne me satisferait pas puisque j'utilise ce nom par la suite dans mon application. Est-ce possible que mon problème parvient de la façon d'écrire dans la base de registre même si je doute de cette possibilité. Voici de qu'elle façon je m'y prends.
Dim oRegKey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.ClassesRoot
oRegKey = oRegKey.CreateSubKey(".BUDG")
oRegKey.SetValue("", "Budget.Projet")
oRegKey.Close()
oRegKey = Microsoft.Win32.Registry.ClassesRoot
Dim oRegKeyOpenCommand As Microsoft.Win32.RegistryKey
Merci beaucoup de votre aide, disons que vous pourriez m'épargner beaucoup de temps de casse-tête.
David
"Fred" a écrit dans le message de news:
Dans son message % David Bouchard nous dit :
Voici l'example du chemin que je récupère:
C:DOCUME~1bouchardBureauDAVIDB~1.BUD
Bonsoir, Je ne connais pas ce problème. C'est sous 98 ou Me ? As-tu essayé de récupérer les arguments de la ligne de commande par l'intermédiaire de la propriété System.Environment.CommandeLine ?
D'autre part, ce chemin est valide. Qu'est-ce qui pose problème dans son utilisation ? Tiens-nous au courant.
-- Fred
Fred
"David Bouchard" a écrit dans le message de news: Salut, merci de votre aide, mais j'ai trouvé une façon qui fonctionne assez bien, en faite, je considère que ce n'est pas la méthode idéal mais pour l'instant, elle me convient. J'apprécierait quand même que si vous trouvez mieux, de me le faire savoir. La méthode que j'ai utilisé est la voici:
J'ai premièrement obtenue le le répertoire avec System.Environment.CurrentDirectory , ensuite, je me suis créer un directoryInfo et j'ai extrait tout les fichiers de ce répertoire à l'aide GetFiles dans un tableau de FileInfo. Ensuite, j'ai créé un fileinfo à l'aide du fichier retourné par le commandline. Finalement, j'ai fait un for each sur tous les fichiers du directoryinfo et je compare le Lenght, le CreationTime, LastWriteTime et LastAccessTime de chaque fileInfo du directoryInfo avec le FileInfo créer avec le commandLine. Ceci m'assure que le fichier est le même ou presque. Disons que les chances que deux fichiers possèdent exactement toutes ces mêmes caractéristiques soient quasiement nuls mais pas impossible et c'est pourquoi je préférait obtenir une méthode plus simple et plus efficace.
Voici mon code pour faire ce que j'explique plus haut
Dim val As String = s(0) Dim Fichier As String Dim Directory_Info As IO.DirectoryInfo = New IO.DirectoryInfo(System.Environment.CurrentDirectory) Dim Files_Infos() As IO.FileInfo = Directory_Info.GetFiles Dim File_Info_Clicked As IO.FileInfo = New IO.FileInfo(val) For Each f As IO.FileInfo In Files_Infos If f.Length = File_Info_Clicked.Length Then If f.CreationTime = File_Info_Clicked.CreationTime Then If f.LastWriteTime = File_Info_Clicked.LastWriteTime Then If f.LastAccessTime = File_Info_Clicked.LastAccessTime Then Fichier = f.FullName Exit For End If End If End If End If Next
Bonjour, Je pensais effectivement jeter un coup d'oeil au fileinfo. Je vais regarder du côté du système s'il y n'y a pas moyen de "forcer" l'utilisation des nom longs, lors de l'utilisation du paramètre %1. Je n'ai rien trouvé dans la MSDN à ce sujet.
"David Bouchard" <boutchmusic@hotmail.com> a écrit dans le message de
news:eS6YvnLOFHA.1176@TK2MSFTNGP12.phx.gbl...
Salut, merci de votre aide, mais j'ai trouvé une façon qui fonctionne assez
bien, en faite, je considère que ce n'est pas la méthode idéal mais pour
l'instant, elle me convient. J'apprécierait quand même que si vous trouvez
mieux, de me le faire savoir. La méthode que j'ai utilisé est la voici:
J'ai premièrement obtenue le le répertoire avec
System.Environment.CurrentDirectory , ensuite, je me suis créer un
directoryInfo et j'ai extrait tout les fichiers de ce répertoire à l'aide
GetFiles dans un tableau de FileInfo. Ensuite, j'ai créé un fileinfo à
l'aide du fichier retourné par le commandline. Finalement, j'ai fait un for
each sur tous les fichiers du directoryinfo et je compare le Lenght, le
CreationTime, LastWriteTime et LastAccessTime de chaque fileInfo du
directoryInfo avec le FileInfo créer avec le commandLine. Ceci m'assure que
le fichier est le même ou presque. Disons que les chances que deux fichiers
possèdent exactement toutes ces mêmes caractéristiques soient quasiement
nuls mais pas impossible et c'est pourquoi je préférait obtenir une méthode
plus simple et plus efficace.
Voici mon code pour faire ce que j'explique plus haut
Dim val As String = s(0)
Dim Fichier As String
Dim Directory_Info As IO.DirectoryInfo = New
IO.DirectoryInfo(System.Environment.CurrentDirectory)
Dim Files_Infos() As IO.FileInfo = Directory_Info.GetFiles
Dim File_Info_Clicked As IO.FileInfo = New IO.FileInfo(val)
For Each f As IO.FileInfo In Files_Infos
If f.Length = File_Info_Clicked.Length Then
If f.CreationTime = File_Info_Clicked.CreationTime Then
If f.LastWriteTime = File_Info_Clicked.LastWriteTime Then
If f.LastAccessTime = File_Info_Clicked.LastAccessTime Then
Fichier = f.FullName
Exit For
End If
End If
End If
End If
Next
Bonjour,
Je pensais effectivement jeter un coup d'oeil au fileinfo. Je vais regarder
du côté du système s'il y n'y a pas moyen de "forcer" l'utilisation des nom
longs, lors de l'utilisation du paramètre %1. Je n'ai rien trouvé dans la
MSDN à ce sujet.
"David Bouchard" a écrit dans le message de news: Salut, merci de votre aide, mais j'ai trouvé une façon qui fonctionne assez bien, en faite, je considère que ce n'est pas la méthode idéal mais pour l'instant, elle me convient. J'apprécierait quand même que si vous trouvez mieux, de me le faire savoir. La méthode que j'ai utilisé est la voici:
J'ai premièrement obtenue le le répertoire avec System.Environment.CurrentDirectory , ensuite, je me suis créer un directoryInfo et j'ai extrait tout les fichiers de ce répertoire à l'aide GetFiles dans un tableau de FileInfo. Ensuite, j'ai créé un fileinfo à l'aide du fichier retourné par le commandline. Finalement, j'ai fait un for each sur tous les fichiers du directoryinfo et je compare le Lenght, le CreationTime, LastWriteTime et LastAccessTime de chaque fileInfo du directoryInfo avec le FileInfo créer avec le commandLine. Ceci m'assure que le fichier est le même ou presque. Disons que les chances que deux fichiers possèdent exactement toutes ces mêmes caractéristiques soient quasiement nuls mais pas impossible et c'est pourquoi je préférait obtenir une méthode plus simple et plus efficace.
Voici mon code pour faire ce que j'explique plus haut
Dim val As String = s(0) Dim Fichier As String Dim Directory_Info As IO.DirectoryInfo = New IO.DirectoryInfo(System.Environment.CurrentDirectory) Dim Files_Infos() As IO.FileInfo = Directory_Info.GetFiles Dim File_Info_Clicked As IO.FileInfo = New IO.FileInfo(val) For Each f As IO.FileInfo In Files_Infos If f.Length = File_Info_Clicked.Length Then If f.CreationTime = File_Info_Clicked.CreationTime Then If f.LastWriteTime = File_Info_Clicked.LastWriteTime Then If f.LastAccessTime = File_Info_Clicked.LastAccessTime Then Fichier = f.FullName Exit For End If End If End If End If Next
Bonjour, Je pensais effectivement jeter un coup d'oeil au fileinfo. Je vais regarder du côté du système s'il y n'y a pas moyen de "forcer" l'utilisation des nom longs, lors de l'utilisation du paramètre %1. Je n'ai rien trouvé dans la MSDN à ce sujet.