Bonjour !
Connaîtriez-vous une astuce pour forcer le dialogue Windows à directement commencer aux favoris réseau / voisinage réseau ou, mieux encore, à l'arborescence des ordinateurs proches ?
Merci d'avance !
Bonjour !
Connaîtriez-vous une astuce pour forcer le dialogue Windows à directement commencer aux favoris réseau / voisinage réseau ou, mieux encore, à l'arborescence des ordinateurs proches ?
Merci d'avance !
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
Peut être en lui donnant comme répertoire de début l'ID de ce que tu veux (reste à obtenir ce dernier).
Si c'est juste pour récupérer un répertoire (et non un fichier), y'a une autre boite qui permet de limiter l'arborescence au reseau.
Merci pour ta réponse !
Dans comdlg32.dll ? Laquelle, svp ?Envoyé par Aurelien.Regat-Barrel
![]()
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
En fait c'est SHBrowseForFolder, que tu initialises avec CSIDL_NETWORK.
Inspire toi de ça:
J'ai pas trop testé, véridie quand même, regarde les flags possibles. En particulier SHGetPathFromIDList peut assez facilement échouer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 LPITEMIDLIST PidlBrowse(HWND hwnd, int nCSIDL, LPSTR pszDisplayName) { LPITEMIDLIST pidlRoot = NULL; LPITEMIDLIST pidlSelected = NULL; BROWSEINFO bi = {}; LPMALLOC pMalloc = NULL; SHGetMalloc( &pMalloc ); if ( nCSIDL ) { SHGetFolderLocation( hwnd, nCSIDL, NULL, NULL, &pidlRoot ); } else { pidlRoot = NULL; } bi.hwndOwner = hwnd; bi.pidlRoot = pidlRoot; bi.pszDisplayName = pszDisplayName; bi.lpszTitle = NULL; //"Choose a folder"; bi.ulFlags = 0; bi.lpfn = NULL; bi.lParam = 0; pidlSelected = SHBrowseForFolder( &bi ); if ( pidlRoot ) { pMalloc->Free( pidlRoot ); } pMalloc->Release(); return pidlSelected; } void SHBrowseForFolder_Network( HWND hParent ) { CoInitialize( 0 ); IMalloc * imalloc = 0; if ( FAILED( SHGetMalloc ( &imalloc ) ) ) { return; } LPITEMIDLIST pidlNetwork = 0; if ( SHGetSpecialFolderLocation( hParent, CSIDL_NETWORK, &pidlNetwork ) != S_OK ) { imalloc->Release(); return; } BROWSEINFO bi = { 0 }; bi.lpszTitle = "MESSAGE PERSONNEL"; bi.hwndOwner = hParent; bi.ulFlags = BIF_BROWSEFORCOMPUTER | BIF_NEWDIALOGSTYLE | BIF_NONEWFOLDERBUTTON; bi.pidlRoot = pidlNetwork; LPITEMIDLIST pidl = SHBrowseForFolder( &bi ); if ( pidl != 0 ) { TCHAR path[ MAX_PATH ]; if ( SHGetPathFromIDList( pidl, path ) ) { MessageBox( hParent, path, "Résultat", 0 ); } imalloc->Free( pidl ); } imalloc->Free( pidlNetwork ); imalloc->Release(); }
Aurélien !
Je vais tester la chose.
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
Partager