Lancement de l'appli depuis fichier

Résolu
renocmoa Messages postés 134 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 10 mai 2012 - 3 juin 2006 à 10:30
renocmoa Messages postés 134 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 10 mai 2012 - 7 juin 2006 à 07:59
Bonjour,

Je voudrais savoir comment lancer mon appli depuis un fichier.

1 comment definir que mon appli est celle par défaut pour un type de fichier
2 comment et quoi récupérer au lancement de celle-ci?

merci.

reno

7 réponses

cs_nico1610 Messages postés 395 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 19 juin 2009 1
3 juin 2006 à 18:46
quand un fichier est double cliquer et associé a un programme il lance le programme avec comme ligne de commande le chemin complet du ficher !!

Pour le recuperer dans VB6 on utilise simplement Command
Command est une string pré créé par visualBasic qui donne les arguments de la liste de commande ! grace a elle il n'y as plus qu'a faire ton OPEN FILE !!
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
3 juin 2006 à 11:15
Va voir les sources qui en parlent...

http://www.vbfrance.com/codes/ASSOCIER-EXTENSION-FICHIER-SANS-API_4340.aspx

Après pour récupèrer le nom de fichier cliqué, il suffit de récupèrer la ligne de commande de ton programme à son lancement.

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
0
renocmoa Messages postés 134 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 10 mai 2012
3 juin 2006 à 14:40
merci de la reponse

qui envoi quelle ligne de commande...?

merci
reno
0
renocmoa Messages postés 134 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 10 mai 2012
6 juin 2006 à 07:58
merci super

reno
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
renocmoa Messages postés 134 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 10 mai 2012
6 juin 2006 à 09:33
question subsidiaire

si l'appli tourne déjà comment ne pas ouvrir une autre session et recevoir la ligne de commande

Merci
reno
0
cs_nico1610 Messages postés 395 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 19 juin 2009 1
6 juin 2006 à 20:28
Certaines applications n'acceptent d'être ouverte qu'une seule fois. Si l'on essaie de l'ouvrir une deuxième fois,
la fenêtre de la première instance repasse en premier plan et est restaurée si nécessaire.




Pour
tester le code ci-dessous, créez un projet et ajoutez une form. Son nom
est Form1 par défaut. Ajoutez ensuite le code ci-dessous dans un module
standard. Enfin, sélectionnez "Sub Main" comme objet de démarrage dans
les propriétés du projet.





vb,

----

Private
Declare
Function FindWindow Lib"user32"Alias"FindWindowA" _
(ByVal lpClassName AsString, _
ByVal lpWindowName AsString) AsLong
PrivateDeclareFunction GetWindow Lib"user32" (ByVal hwnd AsLong, ByVal wCmd AsLong) AsLong
PrivateDeclareFunction ShowWindow Lib"user32" (ByVal hwnd AsLong, ByVal nCmdShow AsLong) AsLong
PrivateDeclareFunction SetForegroundWindow Lib"user32" (ByVal hwnd AsLong) AsLong
PrivateConst SW_RESTORE = 9
PrivateConst GW_HWNDPREV = 3
PrivateSub Main()
Dim lngHandle AsLong
'Cherche une fenêtre qui serait déjà ouverte
lngHandle = GetPreviousWindow
If lngHandle > 0 Then
'fenêtre trouvée, on l'affiche
DisplayWindow lngHandle
Else
Form1.Show
EndIf
EndSub
PrivateFunction GetPreviousWindow() AsLong
Dim strTitre AsString
Dim lngHwnd AsLong
'Sauvegarde le titre de l'application et le modifie
'sinon on trouverait toujours une instance de l'application : celle qui vient d'être lancée
strTitre = App.Title
App.Title = "---" & App.Title
'Récupère le handle de la fenêtre principale (invisible)
lngHwnd = FindWindow("ThunderRT6Main", strTitre)
'Obtient le handle de la fenêtre visible
If lngHwnd > 0 Then GetPreviousWindow = GetWindow(lngHwnd, GW_HWNDPREV)
'Restaure le titre original
App.Title = strTitre
EndFunction
PrivateSub DisplayWindow(ByVal lngHandle AsLong)
ShowWindow lngHandle, SW_RESTORE
SetForegroundWindow lngHandle
EndSub




La
Fonction GetPreviousWindow() renvoie le handle de la fenêtre de
l'application si celle-ci a déjà été ouverte. La fonction
DisplayWindow() restaure et met au premier plan la fenêtre dont le
handle est passé en paramètre. Dans la procédure Main, nous recherchons
une instance existante. Si nous en avons trouvé une, nous l'activons,
sinon nous affichons Form1.




Il existe aussi un autre moyen :




vb,

----

Private
Sub Form_Load()
If App.PrevInstance Then
MsgBox "Désolé, une instance est déjà active" & vbCrLf & "Le programme va s'arréter"
End
EndIf
EndSub



Source : http://vb.developpez.com/faq/?page=Autres#compile 

Apres pour passer le nom du fichier utilise un SendMessage, mais là, regarde sur d'autre post, on en a déja parlé !!


Je met ce code ici pour que d'autre n'est pas besoin d'aller parcourir
X site pour trouver leur bonheur... Mais un conseil : va sur http://vb.developpez.com/faq/  il on fait une FAQ digne de MSDN !! (En plus simple !)
0
renocmoa Messages postés 134 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 10 mai 2012
7 juin 2006 à 07:59
merci pour tout...

reno
0
Rejoignez-nous