Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336

    [vb6]Verificare se un componente è registrato

    E' possibile tramite un'applicazione vb verificare se un componente è registrato?

  2. #2
    se lo trovi in
    codice:
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
    allora è registrato
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336
    Grazie della risposta, e già che ci sono, come si ottiene il percorso della cartella dei programmi? Mi serve saperlo per ottenere il percorso nei pc stranieri

  4. #4
    Utente di HTML.it L'avatar di sebamix
    Registrato dal
    Aug 2000
    Messaggi
    1,028
    Questo potrebbe fare per te:

    Dove vuoi (form, modulo, classe)

    codice:
    Public Function GetSpecialfolder(CSIDL As Long) As String
        ' Found on All-API.
        Dim r As Long
        Dim IDL As ITEMIDLIST
        'Get the special folder
        r = SHGetSpecialFolderLocation(100, CSIDL, IDL)
        If r = NOERROR Then
            'Create a buffer
            Path$ = Space$(512)
            'Get the path from the IDList
            r = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal Path$)
            'Remove the unnecessary chr$(0)'s
            GetSpecialfolder = Left$(Path, InStr(Path, Chr$(0)) - 1)
            Exit Function
        End If
        GetSpecialfolder = ""
    End Function
    In modulo

    codice:
    Public Const CSIDL_DESKTOP = &H0
    Public Const CSIDL_PROGRAMS = &H2
    Public Const CSIDL_CONTROLS = &H3
    Public Const CSIDL_PRINTERS = &H4
    Public Const CSIDL_PERSONAL = &H5
    Public Const CSIDL_FAVORITES = &H6
    Public Const CSIDL_STARTUP = &H7
    Public Const CSIDL_RECENT = &H8
    Public Const CSIDL_SENDTO = &H9
    Public Const CSIDL_BITBUCKET = &HA
    Public Const CSIDL_STARTMENU = &HB
    Public Const CSIDL_DESKTOPDIRECTORY = &H10
    Public Const CSIDL_DRIVES = &H11
    Public Const CSIDL_NETWORK = &H12
    Public Const CSIDL_NETHOOD = &H13
    Public Const CSIDL_FONTS = &H14
    Public Const CSIDL_TEMPLATES = &H15
    Public Const CSIDL_APPDATA = &H1A
    
    Public Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long
    Public Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
    
    Public Const MAX_PATH = 260
    Public Type SHITEMID
        cb As Long
        abID As Byte
    End Type
    Public Type ITEMIDLIST
        mkid As SHITEMID
    End Type
    Quindi dove vuoi
    codice:
    MsgBox GetSpecialfolder(CSIDL_PROGRAMS)

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336
    Grazie, ma questo codice l'avevo già trovato, solo che invece di restituirmi ad esempio la cartella "C:\Programmi" mi restituisce "C:\Documents and Settings\nomeutente\Menu Avvio\Programmi"...

    Non c'è modo di sapere la cartella dei programmi?

  6. #6

  7. #7
    Utente di HTML.it L'avatar di sebamix
    Registrato dal
    Aug 2000
    Messaggi
    1,028
    Originariamente inviato da Jumpychan
    Grazie, ma questo codice l'avevo già trovato, solo che invece di restituirmi ad esempio la cartella "C:\Programmi" mi restituisce "C:\Documents and Settings\nomeutente\Menu Avvio\Programmi"...

    Non c'è modo di sapere la cartella dei programmi?
    lascia stare momentaneamente la cartella perogrammi,a cosa ti serve esattamente?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336
    In pratica ho un'applicazione fatta in flash e vb.

    Ne ho una seconda che faccio partire da un filmato in flash su cd che controlla se è stata fatta l'installazione della prima.

    Se non è installata fa partire il programma di installazione che sta su cd, se è installata fa partire il programma.

    Io lo faccio installare nella cartella "c:\programmi\nomeprogramma" che però, in caso venga usata da un utente straniero, potrebbe cambiare.

    Per questo mi serviva sapere direttamente da vb qual'è la cartella programmi di default.

    L'alternativa sarebbe farlo installare in "c:\nomeprogramma" lasciando perdere così il problema.

    C'è modo di creare un pacchetto con inno setup che non faccia scegliere all'utente dove installare un software, ma che lo installi solo in "C:\nomeprogramma"?

    Grazie intanto per le risposte!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.