renocmoa
Messages postés134Date d'inscriptionmardi 7 septembre 2004StatutMembreDernière intervention10 mai 2012
-
3 juin 2006 à 10:30
renocmoa
Messages postés134Date d'inscriptionmardi 7 septembre 2004StatutMembreDernière intervention10 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?
cs_nico1610
Messages postés395Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention19 juin 20091 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 !!
cs_nico1610
Messages postés395Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention19 juin 20091 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
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 !)