Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    6

    Vb 2008 Express Edition - Utilizzo Api

    Ciao,

    devo scrivere un programma in VB 2008 EXPRESS EDITION per installare dei Fonts sul PC. Sono riuscito a capire che devo utilizzare delle apposite funzioni nelle librerie API, ma quando tento il Debug mi dice che è impossibile accedere alle varie librerie:
    -Kernel
    -GDI
    -User

    Volevo chiedervi se è possibile utilizzare queste librerie API in VB 2008 EXPRESS EDITION o anche in VBA e nel caso come caricarle, oppure non è previsto.
    Mille Grazie

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Scusa, mai font non si installano più dall'epoca di Windows 98.
    Ora basta solo copiarli nella cartella %WinDir%\FONTS.

    In ogni caso, la copia dei file deve essere demandata al SETUP che installa il programma.
    Ovviamente, tieni presente che per l'installazione l'utente deve avere i diritti di amministrore altrimenti nisba.


  3. #3
    Originariamente inviato da gibra
    Scusa, mai font non si installano più dall'epoca di Windows 98.
    Ora basta solo copiarli nella cartella %WinDir%\FONTS.
    Se ben ricordo in realtà i font si installano tutt'ora, semplicemente quando li copi nella cartella fonts tramite Esplora Risorse, questo li registra automaticamente. Una semplice copia (ad esempio via prompt dei comandi) non mi pare che sia sufficiente perché siano immediatamente visibili.
    Per inciso, il percorso della cartella fonts andrebbe recuperato tramite l'apposita API.
    In ogni caso, la copia dei file deve essere demandata al SETUP che installa il programma.
    Questo è indubbio.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    6
    Grazie delle risposte, ma so come si fa con Windows, non basta copiarli ma bisogna utilizzare la funzione "installa nuovi fonts" dalla cartella C:\windows\fonts. Purtroppo la funzione è disabilitata dai computer dove devo installarli e non posso neanche installare nuovi programmi. L'unico modo che ho è tramite un eseguibile o tramite vba da access.
    La domanda iniziale era appunto, si possono, e se si come, utilizzare le API in visual basic 2008 express o in vba.
    Grazie

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da camoto
    Grazie delle risposte, ma so come si fa con Windows, non basta copiarli ma bisogna utilizzare la funzione "installa nuovi fonts" dalla cartella C:\windows\fonts. Purtroppo la funzione è disabilitata dai computer dove devo installarli e non posso neanche installare nuovi programmi.
    Allora significa che l'account dell'utente ha privilegi limitati.
    L'ho vissuto in prima persona quando lavoravo alla COIN su un pc con Windows 2000 ed account limitato.
    Dovevano installare i font per i BarCode ed ho dovuto chiamare uno degli amministratori perchè il mio account non lo permetteva.
    Figurati se riesci a farlo da VBA...

    Senza i privilegi amministrativi o di super-user non vi è alcun modo di installarli, solo l'amministratore di sistema può farlo effettuando il Login con un account amministrativo, oppure avviando il setup di installazione con il RunAs che richiede di inserire username e password dell'amministratore.



  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    6
    Esattamente devo proprio installare i font dei codici a barre, ed il problema è proprio la ristrettezza dell'account.
    Da VB6 sono sicuro che ci si possa, questo è il codice:

    ________________________________________________
    Declare Function WriteProfileString Lib "Kernel" (ByVal _
    lpApplicationName As String, ByVal lpKeyName As String, _
    ByVal lpString As String) As Integer

    Declare Function CreateScalableFontResource% Lib "GDI" _
    (ByVal fHidden%, ByVal lpszResourceFile$, ByVal _
    lpszFontFile$, ByVal lpszCurrentPath$) Declare Function _
    AddFontResource Lib "GDI" (ByVal lpFilename As Any) As _
    Integer

    Declare Function SendMessage Lib "User" (ByVal hWnd As _
    Integer, ByVal wMsg As Integer, ByVal wParam As _
    Integer, lParam As Any) As Long
    Sub Install_TTF (FontName$, FontFileName$, WinSysDir$)
    Dim Ret%, Res&, FontPath$, FontRes$
    Const WM_FONTCHANGE = &H1D
    Const HWND_BROADCAST = &HFFFF

    FontPath$ = WinSysDir$ + "\" + FontFileName$
    FontRes$ = Left$(FontPath$, Len(FontPath$) - 3) + "FOT"

    Ret% = CreateScalableFontResource(0, FontRes$, _
    FontFileName$, WinSysDir$)
    Ret% = AddFontResource(FontRes$)
    Res& = SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0)
    Ret% = WriteProfileString("fonts", FontName + " " & _
    "(TrueType)", FontRes$)
    End Sub
    _________________________________________


    Ma purtroppo non ho VB6 ma solo VB 2008 Express e VBA in ACCESS.
    Quando provo il debug, anche a casa mia dove sono l'amministratore, l'applicazione mi va in errore perché non riesce a far riferimento alle librerie Kernel, User e GDI che sono tutte librerie API.
    Ritorno alla domanda iniziale quindi:

    Qualcuno sa se è possibile utilizzare le librerie API in VB 2008 Express o in VBA per ACCESS, oltre ovviamente a VB6 che le ha già preinstallate?

    Grazie comunque agli altri per l'interessamento.

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.