Gå til innhold

opprette/slette/endre en fil i Regedit


Anbefalte innlegg

Skrevet (endret)

Hei hvordan kan jeg opprette/slette/endre en fil i Regedit som f.eks REG_SZ eller REG_DWORD i c++

Endret av h3rmn
Videoannonse
Annonse
Skrevet
Hei hvordan kan jeg lage og sette en registre fil i c++?

7154684[/snapback]

 

registre fil?

7154703[/snapback]

 

Beklager dårlig ord bruk....

Skrevet
bruk av registeret:

http://msdn.microsoft.com/library/default....he_registry.asp

 

oppslagsverk eller API-dokumentasjon for registeret:

http://msdn.microsoft.com/library/default....y_reference.asp

7154862[/snapback]

 

 

De måtene der var jo på en haug med sider fins det ikke noen letter måte og gjøre det på? Har drevet på med litt .NET VB og der var koden bare dette:

 

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

       Registry.SetValue("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Test", "Test9999", 1)

   End Sub

 

Klikk på knappen og den oppretter Test9999 i mappen Test under HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion.

Skrevet
uhm .. har du tittet?

 

`RegSetValueEx':

http://msdn.microsoft.com/library/default....gsetvalueex.asp

7155164[/snapback]

 

Prøvde med dette men det funket ikke så bra. Men jeg skulle jo lage en men denne bare satte keyen på en som var som jeg forstod det. Så jeg prøvde begge. Men den som står her er den som satte den.

 

#include <windows.h>

int main ()

{
LONG RegSetValueEx(HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\, Test999, 0, REG_DWORD, test);
}

 

Hva gjør jeg feil? Kan du skrive et eksempel til deg?

Skrevet

hm .. det der er ikke gyldig C/C++ og matcher ikke signaturen til funksjonskallet

 

jeg får ikke testet det jeg eventuelt skriver selv da jeg ikke bruker Windows (og har ikke tilgang til vmware+winxp ATM) - noen andre får ta seg av dette

 

btw. om du får til dette i VB - hvorfor gjøre dette i C/C++ når du i utgangspunktet ikke kan språket?

 

om du ser på eksemplet her http://msdn.microsoft.com/library/default....he_registry.asp

så ser du at du først må kalle `RegCreateKeyEx' så `RegSetValueEx' så `RegCloseKey' på det `RegCreateKeyEx' returnerte ..

 

..det er en del pointer-tukling; om du ikke kan C/C++ og får til dette i VB så forstår jeg ikke hvorfor du ønsker å gjøre dette v.h.a. C/C++

Skrevet

Hvorfor c++? Tja, har mere lyst til og lære dette når jeg da er lei av VB og synes c++ så gøyere ut. Og bedre måte og lære noe på enn og spørr eog prøve fins ikke. Takk for hjelpen. ;)

Skrevet

Har nå prøvd dette:

 

#include <windows.h>
#include <iostream>


int main ()

{
   HKEY hKey;
      DWORD dwDisp = 0;
      LPDWORD lpdwDisp = &dwDisp;
      CString l_strExampleKey = "SOFTWARE\\Microsoft\\Exchange\\MSExchangeAdminCommon";
      CString l_strDWordSample = "DWORDSample";
      DWORD dwVal = 100;

      LONG iSuccess = RegCreateKeyEx( HKEY_CURRENT_USER, l_strExampleKey, 0L,NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey,lpdwDisp);

      if(iSuccess == ERROR_SUCCESS)
      {
           RegSetValueEx (hKey, l_strDWordSample, 0L, REG_DWORD,(CONST BYTE*) &dwVal, sizeof(DWORD));
      }
}

 

Men får bare dette i feilmelding:

 

------ Rebuild All started: Project: Test Prog, Configuration: Debug Win32 ------

Deleting intermediate and output files for project 'Test Prog', configuration 'Debug|Win32'

Compiling...

main.cpp

c:\documents and settings\hast5\mine dokumenter\visual studio 2005\projects\test prog\test prog\main.cpp(11) : error C2065: 'CString' : undeclared identifier

c:\documents and settings\hast5\mine dokumenter\visual studio 2005\projects\test prog\test prog\main.cpp(11) : error C2146: syntax error : missing ';' before identifier 'l_strExampleKey'

c:\documents and settings\hast5\mine dokumenter\visual studio 2005\projects\test prog\test prog\main.cpp(11) : error C2065: 'l_strExampleKey' : undeclared identifier

c:\documents and settings\hast5\mine dokumenter\visual studio 2005\projects\test prog\test prog\main.cpp(12) : error C2146: syntax error : missing ';' before identifier 'l_strDWordSample'

c:\documents and settings\hast5\mine dokumenter\visual studio 2005\projects\test prog\test prog\main.cpp(12) : error C2065: 'l_strDWordSample' : undeclared identifier

Build log was saved at "file://c:\Documents and Settings\Hast5\Mine dokumenter\Visual Studio 2005\Projects\Test Prog\Test Prog\Debug\BuildLog.htm"

Test Prog - 5 error(s), 0 warning(s)

========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

Skrevet

Du MÅ lære deg å tolke feilene din IDE gir deg.

 

error C2065: 'CString' : undeclared identifier

I VC hvis du ikke har noen ide om hva feilen betyr så slå opp error koden (her C2065)

 

her står det

...

A variable's type must be specified in a declaration before it can be used. The parameters that a function uses must be specified in a declaration, or prototype, before the function can be used.

...

 

Så med andre ord så har du ikke deklarer CString.

Dette er Alpha Omega når du programmerer.

 

PS: det er ikke alltid feil nr 1 har skylden i feilene, men det pleier å være det. Og det er det i dette tilfellet

 

Denne koden bruker std::basic_string istede for CString (MFC kode eller no)

PS: Her bruker UNICODE!

 

#include <windows.h>
#include <string>

int main ()
{
HKEY hKey;
DWORD dwDisp = 0;
LPDWORD lpdwDisp = &dwDisp;
std::basic_string <wchar_t> l_strExampleKey = L"SOFTWARE\\Microsoft\\Exchange\\MSExchangeAdminCommon";
std::basic_string <wchar_t> l_strDWordSample = L"DWORDSample";
DWORD dwVal = 100;

LONG iSuccess = RegCreateKeyEx( HKEY_CURRENT_USER, l_strExampleKey.c_str(), 0L,NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey,lpdwDisp);

if(iSuccess == ERROR_SUCCESS)
{
 RegSetValueEx (hKey, l_strDWordSample.c_str(), 0L, REG_DWORD,(CONST BYTE*) &dwVal, sizeof(DWORD));
}
}

 

lykke tid videre

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...