Gå til innhold

Endre regedit value Visual C++


Anbefalte innlegg

Hei.

 

Var litt usikker på hvor jeg skulle legge dette, men holder på å lære meg Visual C++ og skulle gjerne hatt litt hjelp :)

 

Dette er en del av min form idag

private: System::Void Form1_KeyDown(System::Object^  sender, system::Windows::Forms::KeyEventArgs^  e) {
			 if ( e->KeyCode == Keys::Enter) {
				lblMessage->Text = "key changed";


			 }

 

kort sagt, har jeg en "status" label, når jeg trykker Enter vil label tekst bli "key changed". Så det store problemet.. Jeg skulle gjerne til å starte med få endret en DWORD under "HKEY_LOCAL_MACHINE\SOFTWARE\My Software\" DWORDen heter "Mode" og har value 0. Denne skulle jeg ha byttet til value 1 ved enter press. Noen som kan hjelpe :) ?

 

Evt om jeg lager en reg fil på det, men da sitter jeg like langt, vet ikke hvordan jeg kan få Visual C++ til å kjøre eksterne filer :(

Lenke til kommentar
Videoannonse
Annonse

Du finner mer info på MSDN:

RegistryKey Class

 

Jeg kjører Windows Forms Application, evt må jeg vel lage en Console Application jeg kan gjøre et kall mot? Som sagt har jeg nå ganske nøyaktig 24t erfaring med c++ når jeg sitter og skriver i cpp i WFA vet jeg ikke hvordan jeg skal hente det opp under en IF statement i en header file. Er det noen mulighet for å gjøre dette direkte i IF statementen i header filen? Evt om det er mulig og hente inn en ekstern bat fil som jeg legger i Source files som kan kjøres i IF statementen?

Endret av TobiasG
Lenke til kommentar
Gjest Slettet-Pqy3rC

Inkludering av .h filer er "basic" C/C++.

 

Før du begynner med andre ting som lite med C++ å gjøre (som Registry, WFA og .NET) bør du sette av litt tid til de grunnleggende tingene ellers blir du bare forvirret.

 

Start med en enkel Console app og sjekk ut f.eks www.cplusplus.com tutorial

Lenke til kommentar

Nei, nei :) Liker å kaste meg rett i det. Greit det finnes masse annen basic jeg burde kunne, men når jeg ser fremover, som gjelder litt andre funksjoner i .NET er det jo svært få med kunnskap om det. Jeg har også klart å google meg frem til alle svar som er blitt gjort på denne posten, men fortsatt ingen som har faktisk kommet meg svar på om det er mulig å endre en regedit dword value gjennom en IF statement, eller kjøre en ekstern fil. Så selv om det finnes mange som kan basics så er det vel ikke mange som vet hva de snakker om like vel :)

Lenke til kommentar

I og med at faktisk ingen vet hvordan man setter eller endrer en regitry value gjennom en IF statement så kan jeg kanskje stille et annet spørsmål.

 

Dersom man legger til en bat fil i Source Files, hvordan kan man gjøre et kall på denne gjennom en IF statement? Da er jo saken "enkel", gjøre regedit prosessen via bat i stedet.

Lenke til kommentar

Nå er det en stund siden jeg har drevet med C++/CLI, så jeg får gjøre det fort og gæli.

 

Det man ser fort i dokumentasjonen er at Registry klassen har en static funksjon som geter GeValue() og en static funksjon heter SetValue().

 

Det står forøvrig eksempler i dokumentasjonen også.

 

String^ key = "HKEY_LOCAL_MACHINE\Software\MinSoftware";
String^ name = "VerdiNavn";
String^ my_value = Microsoft::Win32::Registry::GetValue(key, name, String::Empty)->ToString();
String^ new_value;
if(String::IsNullOrEmpty(my_value))
 new_value = "Noe";
else
 new_value = String::Concat(my_value, " og noe annet");
Microsoft::Win32::Registry::SetValue(key, name, new_value);

Lenke til kommentar
  • 2 uker senere...

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...