Fermer l'explorateur windows... (ouvert grâce à Shell ) VBA - Access
philou4283
Messages postés4Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention 1 août 2005
-
29 juil. 2005 à 20:23
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
1 août 2005 à 19:19
Hello evelibody !
Bon, alors j'ai un petit pb:
Mon but est de fermer l'explorateur windows ouvert par :
PS : à la base, mon pb est que j'ai une base access sur un poste dont certaines tables sont reliées à une base access d'un autre poste du reseau. Et cette autre table distante est localisée par un Network Drive (le truc de windows). Or de tps en tps, à l'ouverture de la premiere base, windows me dis que le chemin M:\ n'est pas valide alors que l'autre ordi est allumé et que j'ai bien coché la case login à chaque démarrage lors de la création du Network drive. Dsl, c pas simple à expliquer. Si quelqu'un a compris ça, d'abord bravo ! et ensuite une solution ????
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 30 juil. 2005 à 16:33
ProcessId = Shell("explorer ""M:""", vbHide) ne te convient pas?
sinon,
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 30 juil. 2005 à 19:29
Salut,
A la place de "m:\...." pourquoi ne met-tu pas le chemin réseau : "[file://serveur/..... \\serveur\.....]" ?
Explik : une lettre logique (m:) pour identifier un chemin réseau peut être différente suivant les postes connectés au lan. Donc le mieux est de n'utiliser que le vrai chemin réseau.
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
philou4283
Messages postés4Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention 1 août 2005 1 août 2005 à 18:28
Hello, merci pour vos réponse !
PCPT : ProcessId = Shell("explorer ""M:""", vbHide) ne fait pas ce que j'ai envie de faire... Il faut vraiment que j'ouvre l'explorateur pour charger le network drive apparement.
Sinon, pourrais-tu expliquer un peu ta solution, je l'ai juste inséré dans les déclarations mais je ne sais pas comment m'en servir... merci.
CanisLupus : en fait un truc m'a obligé à faire un network drive...
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 1 août 2005 à 19:19
salut,
bin le problème, c'est que je suis sous VB(6), je ne sais pas si çà fonctionne de la même manière pour VBA...
et pour bien faire, je t'ai un peu mené sur une fausse piste. (l'idée était là, mais pas tout à fait complet)
voici testé sous XP et VB6, fonctionnel :
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Const WM_CLOSE = &H10
Dim ShareName As String
Dim ShareLetter As String
Dim ShareIP As String 'contient les côtes ['']
'
'
Private Sub Form_Load()
ShareName = "tests" 'nom de mon dossier partagé
ShareLetter = "T:"
'lettre du partage
ShareIP = "'192.168.0.1'"
'IP propriétaire du dossier "tests"
End Sub
'
'
Private Sub Command1_Click()
Call Shell("explorer " & ShareLetter & "", vbMinimizedNoFocus)
End Sub
'
'
Private Sub Command2_Click()
Dim BrowsH As Long
'il faut trouver le nom exact de la fenêtre, variables initialisées au Form_Load
BrowsH = FindWindow(vbNullString, ShareName & " sur " & ShareIP & " (" & ShareLetter & ")")
If BrowsH <> 0 Then Call PostMessage(BrowsH, WM_CLOSE, 0&, 0&) Else MsgBox "Fenêtre non-trouvée", 32, "UnFound Explorer"
End Sub