Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Arjun Mini JLI'ler
Anmeldedatum: 29.10.2006 Beiträge: 8
Medaillen: Keine
|
Verfasst am: 29.10.2006, 11:06 Titel: Windowsfunktionen zu Systeminformationen |
|
|
Hallo!
Ich möchte ein Tool programmieren welches mir hilft wichtige Daten regelmäßig zu sichern und mir das Arbeiten mit Windows erleichtert.
Zuerst wollte ich den Accountname des angemeldeten Benutzer herausbekommen. Klappt aber nicht... Wenn dann hab ich nur eine ca. 8 stellige Zahlenfolge erhalten...
und folgender Code den ich hier im Forum gefunden haben funktioniert bei mir auch nicht:
Code: | char Computername[256], Username[256]; // aktuell angemeldeten
DWORD nSize = 256; // User abfragen
GetComputerName(Computername, &nSize);
GetUserName(Username, &nSize); |
Ich kriege nur das als Fehlermeldung in Visual C++ Express Edition:
Code: | Compiling...
main.cpp
e:\c++ projects\test\test\main.cpp(57) : error C2664: 'GetComputerNameW' : cannot convert parameter 1 from 'char [256]' to 'LPWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
e:\c++ projects\test\test\main.cpp(58) : error C2664: 'GetUserNameW' : cannot convert parameter 1 from 'char [256]' to 'LPWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Build log was saved at "file://e:\c++ projects\test\test\Debug\BuildLog.htm"
test - 2 error(s), 0 warning(s) |
Ich hoffe dass mir jemand damit helfen kann... _________________ See you.. Arjun |
|
Nach oben |
|
|
SteveKr Mini JLI'ler
Anmeldedatum: 21.07.2006 Beiträge: 8
Medaillen: Keine
|
Verfasst am: 29.10.2006, 12:19 Titel: |
|
|
So müsste es funktionieren:
Code: | char Computername[256], Username[256]; // aktuell angemeldeten
DWORD nSize = 256; // User abfragen
GetComputerName(&Computername, &nSize);
GetUserName(&Username, &nSize); |
mfg SteveKr _________________ XNA.mag - Deutsche XNA-Community |
|
Nach oben |
|
|
Chriss Senior JLI'ler
Anmeldedatum: 18.08.2004 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 29.10.2006, 12:20 Titel: |
|
|
Hi Arjun,
dein Fehler kommt daher das der Code aus dem Forum für ANSI ist und deine IDE als Standard Unicode eingestellt hat.
Du kannst dein Problem lösen wenn du anstelle der Funktion GetComputerName die Funktion GetComputerNameA verwendest. Diese ist für ANSI gedacht.
Du solltest dir aber auf jeden Fall folgenden Thread hier im Forum ansehen!
http://www.jliforum.de/board/viewtopic.php?t=4776
Grüße |
|
Nach oben |
|
|
Arjun Mini JLI'ler
Anmeldedatum: 29.10.2006 Beiträge: 8
Medaillen: Keine
|
Verfasst am: 30.10.2006, 11:11 Titel: |
|
|
@SteveKr: Nein, der eigentliche Code war schon korrekt.
@Chriss: Vielen Dank! Hab jetzt auf Multi-Byte umgestellt, ich brauch eh kein Unicode - im Moment auf jeden Fall noch nicht.
Kennt ihr auch noch Windowsfunktionen wie man leicht ganze Ordner leeren kann, auch wenn da sehr viele Dateien und Ordner drinnen sind? Und wie man die gesamten Inhalte von Ordnern woanders hin kopiert?
In der MSDN find ich mich noch nicht so gut zurecht.. _________________ See you.. Arjun |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
|
Nach oben |
|
|
Arjun Mini JLI'ler
Anmeldedatum: 29.10.2006 Beiträge: 8
Medaillen: Keine
|
Verfasst am: 30.10.2006, 14:58 Titel: |
|
|
@Fallen:
Danke für die Links! Könntest du mir aber sagen, wie ich die Funktion aufrufe? Ich weiß nicht von welchem Typ meine Zeichenkette sein muss, wenn der Parameter vom Typ LPCTSTR sein muss. _________________ See you.. Arjun |
|
Nach oben |
|
|
manu Super JLI'ler
Alter: 35 Anmeldedatum: 09.03.2006 Beiträge: 327 Wohnort: allgäu (DE) Medaillen: Keine
|
Verfasst am: 30.10.2006, 15:04 Titel: |
|
|
Arjun hat Folgendes geschrieben: | Ich weiß nicht von welchem Typ meine Zeichenkette sein muss, wenn der Parameter vom Typ LPCTSTR sein muss. |
Na auch vom Typ LPCTSTR
und da LPCTSTR eigentlich ein LPCSTR ist:
CPP: | typedef LPCSTR PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR; |
und da LPCSTR eigentlich ein CONST CHAR ist CPP: | typedef __nullterminated CONST CHAR *LPCSTR, *PCSTR; |
CONST und CHAR wiederum aus dem entstanden ist
CPP: | #define CONST const
typedef char CHAR;
|
kannst du auch gleich const char als typ für die Zeichenkette nehmen |
|
Nach oben |
|
|
Arjun Mini JLI'ler
Anmeldedatum: 29.10.2006 Beiträge: 8
Medaillen: Keine
|
Verfasst am: 01.11.2006, 10:48 Titel: |
|
|
Vielen Dank, manu! Jetzt klappt es. _________________ See you.. Arjun |
|
Nach oben |
|
|
|