Newsgroup: it.comp.lang.visual-basic
Titolo: [?] \File comuni\

Ciao a tutti
Ho necessita di risalire al percorso dei file comuni (C:\programmi\file
comuni\ o simili a seconda della lingua).
Pensavo di aver risolto con ShGetFolderPAth(), ma con mio grande stupore su
win9x da un bel "punto di ingresso della DLL non trovato (vedi a non leggere
completamente MSDN!) con CSIDL_PROGRAM_FILES_COMMON.
Volevo ripiegare sulla SHGetSpecialFolderLocation() ma non sembra trovare
quello che cerco.
Idee?
La mia prima idea e di trovare la \Programmi\ con
SHGetSpecialFolderLocation() e attaccarci un arbitrario "common".
Alternative?
Grazie, ciao.

 Volevo ripiegare sulla SHGetSpecialFolderLocation()
Vedi che sono un fesso?
La SHGetSpecialFolderLocation() funziona solo con WinCE... quindi sono da
capo.
Soluzioni?
Devo rintracciare per lo meno la cartella Programmi...
(ma come fa il Setup wizard??? ora ci dň un occhio...)
Ciao

 quello che cerco.
direi di usare la SHGetSpecialFolderLocation() nei sistemi NT, e la
lettura del registro nei sistemi 9X (dovrebbe essere
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion, Stringa
CommonFilesDir)
Ciao
--
Faber

 capo.
non mi risulta  :)
--
Faber


Infatti... non capisco perchè sotto la sezione API mi dice "richiesto wince"
mentre sotto SDK dice che va bene per tutti...
Dato che il setup wizard sembra usare questa la uso anch'io. (provo)
Ciao

 Dato che il setup wizard sembra usare questa la uso anch'io. (provo)
prova, facci sapere... cmq mi sa che ti tocca fare come ho segnalato
nell'altro post
Ciao
--
Faber


Se possibile vorrei evitare il registro...
Ciao

 Se possibile vorrei evitare il registro...
lo so, č 'brutto'... perň ho dovuto fare anch'io cosě per recuperare la
COMMON_STARTUP   :\
--
Faber

 COMMON_STARTUP   :\
PDW dice:
If IsWindows95() Then
        fPriv = True
    End If
    If fPriv Then
        If fStartMenu Then
            lPrograms = sfidSTARTMENU
        Else
            lPrograms = sfidPROGRAMS
        End If
    Else
        If fStartMenu Then
            lPrograms = sfidCOMMON_STARTMENU
        Else
            lPrograms = sfidCOMMON_PROGRAMS
        End If
    End If
    ' Fill the item id list with the pointer of each folder item, rtns 0 on
success
    If SHGetSpecialFolderLocation(frmSetup1.hWnd, lPrograms, IDL) = NOERROR
Then
        sPath = String$(gintMAX_PATH_LEN, 0)
        SHGetPathFromIDListA IDL, sPath
        SHGetMalloc oMalloc
        oMalloc.Free IDL
        sPath = StringFromBuffer(sPath)
    End If
non ho ancora ben chiaro cosa sia quel oMalloc (da VBShell.IVBMalloc???)
Ciao

 nell'altro post
Uff!
La SHGetSpecialFolderLocation() va bene ma richiede l'interfaccia IMAlloc
per liberare l'IDL però in w2000 e ME si dovrebbe usare la
SHGetFolderLocation() che non vuole l'intervento di IMalloc, ma non è molto
portabile... ecchecca...spita!
Ma la shell32 l'ha programmata un ubriaco?
Sai che faccio? I miei files li pianto in \Windows\MiaDir
Ciao

 "richiesto wince" mentre sotto SDK dice che va bene per tutti...
Perché la "sezione API" fa parte della documentazione di
WinCE, e parla solo ed esclusivamente di questo SO.
Ciao.
--
BSD is for UNIX-lovers -- linux is for Windows-haters.

 WinCE, e parla solo ed esclusivamente di questo SO.
Come ho fatto a non pensarci prima?
E' così chiaro! :P
Ciao