.ini benutzen
-
Hallo,
wie kann ich Funktionen wie WritePrivateProfileString auch unter .Net benutzen, konnte nach 1 Stunde googeln nichts finden.
Mfg. AD12ka
-
Vielleicht hilft das weiter:
http://msdn.microsoft.com/en-us/library/ms725501(VS.85).aspx
(Müsste meines erachtens auch mit .NET funktionieren)Auszug aus der oben genannten Seite:
#include <windows.h> #include <tchar.h> #include <stdio.h> int main() { TCHAR inBuf[80]; HKEY hKey1, hKey2; DWORD dwDisposition; LONG lRetCode; TCHAR szData[] = TEXT("USR:App Name\\Section1"); // Create the .ini file key. lRetCode = RegCreateKeyEx ( HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\" "IniFileMapping\\appname.ini"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey1, &dwDisposition); if (lRetCode != ERROR_SUCCESS) { printf ("Error in creating appname.ini key (%d).\n", lRetCode); return (0) ; } // Set a section value lRetCode = RegSetValueEx ( hKey1, TEXT("Section1"), 0, REG_SZ, (BYTE *)szData, sizeof(szData)); if (lRetCode != ERROR_SUCCESS) { printf ("Error in setting Section1 value\n"); // Close the key lRetCode = RegCloseKey( hKey1 ); if( lRetCode != ERROR_SUCCESS ) { printf("Error in RegCloseKey (%d).\n", lRetCode); return (0) ; } } // Create an App Name key lRetCode = RegCreateKeyEx ( HKEY_CURRENT_USER, TEXT("App Name"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey2, &dwDisposition); if (lRetCode != ERROR_SUCCESS) { printf ("Error in creating App Name key (%d).\n", lRetCode); // Close the key lRetCode = RegCloseKey( hKey2 ); if( lRetCode != ERROR_SUCCESS ) { printf("Error in RegCloseKey (%d).\n", lRetCode); return (0) ; } } // Force the system to read the mapping into shared memory // so that future invocations of the application will see it // without the user having to reboot the system WritePrivateProfileStringW( NULL, NULL, NULL, L"appname.ini" ); // Write some added values WritePrivateProfileString (TEXT("Section1"), TEXT("FirstKey"), TEXT("It all worked out OK."), TEXT("appname.ini")); WritePrivateProfileString (TEXT("Section1"), TEXT("SecondKey"), TEXT("By golly, it works!"), TEXT("appname.ini")); WritePrivateProfileString (TEXT("Section1"), TEXT("ThirdKey"), TEXT("Another test..."), TEXT("appname.ini")); // Test GetPrivateProfileString (TEXT("Section1"), TEXT("FirstKey"), TEXT("Error: GPPS failed"), inBuf, 80, TEXT("appname.ini")); _tprintf (TEXT("Key: %s\n"), inBuf); // Close the keys lRetCode = RegCloseKey( hKey1 ); if( lRetCode != ERROR_SUCCESS ) { printf("Error in RegCloseKey (%d).\n", lRetCode); return(0); } lRetCode = RegCloseKey( hKey2 ); if( lRetCode != ERROR_SUCCESS ) { printf("Error in RegCloseKey (%d).\n", lRetCode); return(0); } return(1); }
-
Einfach
#include <windows.h>
und dann einfach verwenden! Oder was hast Du für Probleme damit?
-
Jedoch spukt der Compiler das aus wenn ich die Funktion einfach so benutze und <windows.h> einbinde:
: error C2664: 'WritePrivateProfileStringW': Konvertierung des Parameters 1 von 'const char [5]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.: error C2664: 'WritePrivateProfileStringW': Konvertierung des Parameters 1 von 'const char [5]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.So hab ich es eingesetzt:
void SaveSettingsINI() { WritePrivateProfileString("BEREICH","NAME","INHALT","c:\\test.ini"); }
-
Probier mal:
WritePrivateProfileString(TEXT("BEREICH"),TEXT("NAME"),TEXT("INHALT"),TEXT("c:\\test.ini"));
Angaben ohne Gewähr das ich grad keine Möglichkeit zum ausprobieren hab
P.S Noch ne Frage: Wie kann man das wieder auslesen?
-
Danke hat funktioniert!
GetPrivateProfileString - (http://msdn.microsoft.com/en-us/library/ms724353(VS.85).aspx)