Du skal huske at en string er et objekt, ikke et array af char, og omvendt.
Det er det, som du roder rundt i med proxy og proxy2.
Derfor (jeg har lige tilladt mig at ændre proxy2's størrelse, da du jo alligevel kun bruger 2 bytes, en til mellemrum og en til null-terminering, hvilket ALTID bliver tilføjet, hvis du bruger "", så ved du det ;-)):
#include <windows.h>
#include <iostream>
#include <string>
int main()
{
char valg[3];
string proxy = "213.121.209.14:80";
char proxy2[2] = " ";
HKEY key;
cout << "Slå proxyen til eller fra:" << endl;
cin >> valg;
if(valg == "til")
{
RegOpenKeyEx(HKEY_CURRENT_USER, "\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ProxyServer", 0, KEY_ALL_ACCESS, &key);
RegSetValueEx(key, "proxy", 0, REG_SZ, (BYTE *)proxy.c_str(), proxy.size());
}
else if(valg == "fra")
{
RegOpenKeyEx(HKEY_CURRENT_USER, "\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ProxyServer", 0, KEY_ALL_ACCESS, &key);
RegSetValueEx(key, "proxy2", 0, REG_SZ, (BYTE *)proxy2, 2);
}
else
{
cout << "Forkert valg! Man skal skrive til eller fra!" << endl;
}
return 0;
}
I øvrigt godtager mange compilere ikke void main (og resten burde egentlig ikke hvis de vil følge standarden, men de laver den da også selv om til int main ved kompilering), så du bør skrive int main og så også en return 0 til sidst.
Jeg har selv oplevet problemet ved at skifte compiler, så jeg vil bare forberede dig på, at hvis ikke du følger standarden, altså koder uden om de forskellige compileres genveje, så kan du hurtigt komme på overarbejde ;-)
1101110100010110000101000001
[Redigeret d. 02/03-05 23:25:54 af Nicolai Lyster Fersner]