Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Skapa nyklar i registret - hur?

Postades av 2007-10-01 17:57:46 - Alexander Av Ekenstam, i forum c++, Tråden har 3 Kommentarer och lästs av 1441 personer

Hej

Har förljande kod som delvis fungerar

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

using namespace std;

int main()
{
	HKEY reg;
	
	if( RegCreateKeyEx(HKEY_LOCAL_MACHINE, TEXT("Software\\My Company\\My Application"), 0, NULL, 0, REG_OPTION_NON_VOLATILE, NULL, &reg, NULL) == ERROR_SUCCESS)
	{
		cout << "Error Creating The Key" << endl;
		return 0;
	}
	
	char lpdata[] = "Value";
	if( RegSetValueEx (reg, "Test", 0, REG_SZ, (LPBYTE)lpdata, sizeof(lpdata)) )
	{
		cout << "Error Setting The Value" << endl;
		return 0;
	}

	RegCloseKey(reg);

	return 0;
}

Nyklen skapas - Men när man ska sätta värdet så går det inte. Hur ska jag lösa det?

Har googlat men inte lyckas hitta någon enkel lösning =/


Svara

Sv: Skapa nyklar i registret - hur?

Postades av 2007-10-02 06:58:35 - Björn Gåvefeldt

det kan finnas en lösning här...

http://www.cprogramming.com/tutorial.html


Svara

Sv:Skapa nyklar i registret - hur?

Postades av 2007-10-02 19:33:21 - Alexander Av Ekenstam

Löste det och har nu gjort en liten enkel fungerande klass istället. Delar med mig den ifall andra kan ha nytta av det.

const int CHAR_LIMIT = 255;

class regedit
{
	private:
		HKEY regKey;
		LONG keyStatus;
	public:
		void CreateStringItem(LPCSTR keyPath, LPCSTR itemName, string itemValue);
		void CreateDwordItem(LPCSTR keyPath, LPCSTR itemName, int itemValue);

		string GetStringValue(LPCSTR keyPath, LPCSTR itemName);
		DWORD GetDwordValue(LPCSTR keyPath, LPCSTR itemName);

		void DeleteItem(LPCSTR keyPath, LPCSTR itemName);
		void DeleteKey(LPCSTR keyPath);
};


void regedit::CreateStringItem(LPCSTR keyPath, LPCSTR itemName, string itemValue)
{
	keyStatus = RegCreateKeyEx(HKEY_LOCAL_MACHINE, keyPath, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &regKey, NULL);

	if(keyStatus == ERROR_SUCCESS)
	{
		char lpdata[CHAR_LIMIT];
		strcpy_s(lpdata, itemValue.c_str());
		RegSetValueEx (regKey, itemName, 0, REG_SZ, (LPBYTE)lpdata, sizeof(lpdata));
		RegCloseKey(regKey);
	}
}
void regedit::CreateDwordItem(LPCSTR keyPath, LPCSTR itemName, int itemValue)
{
	keyStatus = RegCreateKeyEx(HKEY_LOCAL_MACHINE, keyPath, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &regKey, NULL);

	if(keyStatus == ERROR_SUCCESS)
	{
		DWORD dwVal = itemValue;
		RegSetValueEx (regKey, itemName, 0, REG_DWORD, (BYTE*)&dwVal, sizeof(DWORD));
		RegCloseKey(regKey);
	}
}



string regedit::GetStringValue(LPCSTR keyPath, LPCSTR itemName)
{
	char lszValue[CHAR_LIMIT];
	DWORD dwType = REG_SZ;
	DWORD dwSize = CHAR_LIMIT;

	keyStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, keyPath, 0,  KEY_ALL_ACCESS, &regKey);
	if (keyStatus == ERROR_SUCCESS)
	{
		keyStatus = RegQueryValueEx(regKey, itemName, NULL, &dwType,(LPBYTE)&lszValue, &dwSize);
		if (keyStatus == ERROR_SUCCESS)
		{
			return lszValue;
		}
		RegCloseKey(regKey);
	}
	return false;
}
DWORD regedit::GetDwordValue(LPCSTR keyPath, LPCSTR itemName)
{
	DWORD dwVersion;
	DWORD dwType = REG_DWORD;
	DWORD dwSize = sizeof(DWORD);
	keyStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, keyPath, 0, KEY_ALL_ACCESS, &regKey);

	if (keyStatus  == ERROR_SUCCESS)
	{
		keyStatus = RegQueryValueEx(regKey, itemName, NULL, &dwType, (LPBYTE)&dwVersion, &dwSize);
		if (keyStatus == ERROR_SUCCESS)
		{
			return dwVersion;
		}
		RegCloseKey(regKey);
	}
	return false;
}



void regedit::DeleteItem(LPCSTR keyPath, LPCSTR itemName)
{
	keyStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, keyPath, 0,  KEY_ALL_ACCESS, &regKey);
	if (keyStatus == ERROR_SUCCESS)
	{
		RegDeleteValue(regKey, itemName);
	}
}
void regedit::DeleteKey(LPCSTR keyPath)
{
	RegDeleteKey(HKEY_LOCAL_MACHINE, keyPath);
}


Svara

Sv: Skapa nyklar i registret - hur?

Postades av 2007-10-03 06:55:13 - Björn Gåvefeldt

då kan du sätta statusen för tråden till löst ;)


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
802
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies