JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=107e5346b752e0ed9c80cb4be2963f8dMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Windowsfunktionen zu Systeminformationen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Arjun
Mini JLI'ler



Anmeldedatum: 29.10.2006
Beiträge: 8

Medaillen: Keine

BeitragVerfasst am: 29.10.2006, 11:06    Titel: Windowsfunktionen zu Systeminformationen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
SteveKr
Mini JLI'ler



Anmeldedatum: 21.07.2006
Beiträge: 8

Medaillen: Keine

BeitragVerfasst am: 29.10.2006, 12:19    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Chriss
Senior JLI'ler



Anmeldedatum: 18.08.2004
Beiträge: 267

Medaillen: Keine

BeitragVerfasst am: 29.10.2006, 12:20    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Arjun
Mini JLI'ler



Anmeldedatum: 29.10.2006
Beiträge: 8

Medaillen: Keine

BeitragVerfasst am: 30.10.2006, 11:11    Titel: Antworten mit Zitat

@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.. Sad
_________________
See you.. Arjun
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 30.10.2006, 12:57    Titel: Antworten mit Zitat

Zum kopieren der Dateien:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/copyfile.asp

Zum löschen der Dateien:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/deletefile.asp

Und zum durchlaufen von dateien in einem Ordner:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesdkr/html/_wcesdk_win32_findfirstfile.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesdkr/html/_wcesdk_win32_findnextfile.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesdkr/html/_wcesdk_win32_findclose.asp
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Arjun
Mini JLI'ler



Anmeldedatum: 29.10.2006
Beiträge: 8

Medaillen: Keine

BeitragVerfasst am: 30.10.2006, 14:58    Titel: Antworten mit Zitat

@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
Benutzer-Profile anzeigen Private Nachricht senden
manu
Super JLI'ler


Alter: 35
Anmeldedatum: 09.03.2006
Beiträge: 327
Wohnort: allgäu (DE)
Medaillen: Keine

BeitragVerfasst am: 30.10.2006, 15:04    Titel: Antworten mit Zitat

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 Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Arjun
Mini JLI'ler



Anmeldedatum: 29.10.2006
Beiträge: 8

Medaillen: Keine

BeitragVerfasst am: 01.11.2006, 10:48    Titel: Antworten mit Zitat

Vielen Dank, manu! Jetzt klappt es. Smile
_________________
See you.. Arjun
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum