Visualizzazione dei risultati da 1 a 9 su 9

Hybrid View

  1. #1
    In buona sostanza è il conteggio dei byte necessari a memorizzare la stringa(compreso il carattere terminatore '\0').

    Puoi ottenerlo così:
    codice:
    (_tcslen(data) + 1) * sizeof(TCHAR)
    Esempio:
    codice:
    #include "windows.h"
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        LPCTSTR RegValue = TEXT("myKey");
        LPCTSTR data = TEXT("C:\\Windows\\prova.exe");
        HKEY hKey;
        LPCTSTR sk = TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
    
        LONG Res = RegOpenKeyEx(HKEY_CURRENT_USER, sk, 0, KEY_ALL_ACCESS , &hKey);
    
        if ( Res != ERROR_SUCCESS )
        {
            printf("Errore nell'apertura della chiave del registro.\n");
            return -1;
        }
    
        Res = RegSetValueEx(hKey, RegValue, 0, REG_SZ, (LPBYTE)data, (_tcslen(data) + 1) * sizeof(TCHAR));
    
        if ( Res != ERROR_SUCCESS )
        {
            printf("Errore nella scrittura dei dati nella chiave del registro.\n");
            return -1;
        }
    
        return 0;
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    98
    Quote Originariamente inviata da Vincenzo1968 Visualizza il messaggio
    In buona sostanza è il conteggio dei byte necessari a memorizzare la stringa(compreso il carattere terminatore '\0').

    Puoi ottenerlo così:
    codice:
    (_tcslen(data) + 1) * sizeof(TCHAR)
    Esempio:
    codice:
    #include "windows.h"
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        LPCTSTR RegValue = TEXT("myKey");
        LPCTSTR data = TEXT("C:\\Windows\\prova.exe");
        HKEY hKey;
        LPCTSTR sk = TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
    
        LONG Res = RegOpenKeyEx(HKEY_CURRENT_USER, sk, 0, KEY_ALL_ACCESS , &hKey);
    
        if ( Res != ERROR_SUCCESS )
        {
            printf("Errore nell'apertura della chiave del registro.\n");
            return -1;
        }
    
        Res = RegSetValueEx(hKey, RegValue, 0, REG_SZ, (LPBYTE)data, (_tcslen(data) + 1) * sizeof(TCHAR));
    
        if ( Res != ERROR_SUCCESS )
        {
            printf("Errore nella scrittura dei dati nella chiave del registro.\n");
            return -1;
        }
    
        return 0;
    }
    Ho alcune domande.
    Perché "tmain" e non "main"?
    "LPCTSTR" cosa indica?
    Perché il percorso è preceduto da "TEXT"?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.