Cecken ob Com belegt ist.
-
hoe?

also ich hab da schon stundenlang versucht aber irgendwie wirds nix
is schon komisch
und irgendwie werd ich langsam voll verwirrt
-
zeig dochmal was du schon gemacht hast, nur dann können wir dir helfen.
-
oh
ich hatte viele versuche
ich poste also nur 2
char device[50]; char UserName[50]; char writedevice[50]; unsigned long lengthOfUserName = 50; (GetUserName(UserName, &lengthOfUserName)); BOOL searchName = GetPrivateProfileString (UserName, "COM-Device", "COM1", device, sizeof(device), szPathToHajoDial); if (searchName=1) { GetPrivateProfileString (UserName, "COM-Device", "COM1", device, sizeof(device), szPathToHajoDial); cout << "Username: " << UserName << endl; } GetPrivateProfileString ("Default Settings", "COM-Device", "COM1", device, sizeof(device), szPathToHajoDial); cout << "Default Settings" << endl; }char device[50]; char UserName[50]; char writedevice[50]; unsigned long lengthOfUserName = 50; unsigned long test = (GetUserName(UserName, &lengthOfUserName)); if (GetPrivateProfileString(UserName, "COM-Device", "COM1", device, sizeof(device), szPathToHajoDial)) { cout << "Username:" << UserName << endl; } else { GetPrivateProfileString ( "Default Settings", "COM-Device", "COM1", device, sizeof(device), szPathToHajoDial ); cout << "Default Settings" << endl; }
-
KlausB schrieb:
Du könntest die Werte in HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM absuchen.
Das ist nur (direkt) unter Win9X so
unter WinXP zB stimmt das nicht ganz so (etwas)Hallo KlausB,
kannst du das näher ausführen? Meine Erfahrung damit unter Windows 2000 und XP sind gut.
-
Und was wird ausgegeben?!
-
dies wäre doch ein weg
// irgendwas.ini [dafault] COM1 0-01081 [uwe] COM2 [frank] COM6int main(int argc, char *argv[]) { char szUsername[256]; char buffer[512]; int nSize = sizeof(szUsername); GetUserName(UserName, &nSize); if(GetPrivateProfileSection(szUsername, buffer, sizeof(buffer), "c:\\irgendwas.ini")) { // name nicht gefunden dann default werte laden GetPrivateProfileSection("default", buffer, sizeof(buffer), "c:\\irgendwas.ini") } char *pBuffer = buffer; char szPort[128]; char szDialPrefix[128]; strncpy(szPort, pBuffer, strlen(pBuffer)); pBuffer += strlen(pBuffer) + 1; strncpy(szPort, pBuffer, strlen(pBuffer)); std::cout << "Port: " << szPort << " Dial: " << szDialPrefix << std::endl; system("pause"); return 0; }ist ungetest und mit sicherheit nicht der pefekte code aber es müsste gehen :D[glossar]
-
if(GetPrivateProfileSection(szUsername, buffer, sizeof(buffer), "c:\\irgendwas.ini"))
{
// name nicht gefunden dann default werte laden
GetPrivateProfileSection("default", buffer, sizeof(buffer), "c:\\irgendwas.ini")
}hm du prüfst ob der username gefunden wird und so.
wenn ja führe default aus.
oda irre ich mich da?
-
natürlich wenn er nicht gefunden versuche ich die default settings zu laden.
-
ich habs nun so gehandhabt

und es geht(GetUserName(UserName, &lengthOfUserName)); if (GetPrivateProfileSection(UserName, device, sizeof(device), szPathToHajoDial)) { GetPrivateProfileString(UserName, "COM-Device", "COM1", device, sizeof(device), szPathToHajoDial); cout << "Username:" << UserName << endl; } else { GetPrivateProfileString ("Default Settings", "COM-Device", "COM1", device, sizeof(device), szPathToHajoDial); cout << "Default Settings" << endl; }aber nun will ich das mit der automatischen suche trotzdem machen.
-
war net ganz korrekt von mir
(GetUserName(UserName, &lengthOfUserName)); if (!GetPrivateProfileSection(UserName, device, sizeof(device), szPathToHajoDial)) { GetPrivateProfileString ("Default Settings", "COM-Device", "COM1", device, sizeof(device), szPathToHajoDial); cout << "Username:" << UserName << endl; }mA1k schrieb:
aber nun will ich das mit der automatischen suche trotzdem machen.
wie meinst du das ?
-
also
ich habe nun erstmal sowas
HKEY hKey; if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, "HARDWARE\\DEVICEMAP\\SERIALCOMM", 0, KEY_ALL_ACCESS, &hKey )==ERROR_SUCCESS) { DWORD dwIndex = 0; LONG Status; do { TCHAR ValueName[255]; DWORD dwLength = sizeof(ValueName)/sizeof(TCHAR); Status = RegEnumValue( hKey, dwIndex, ValueName, &dwLength, NULL, NULL, NULL, NULL ); if (Status==ERROR_SUCCESS) { TCHAR Value[30]; DWORD dwType; DWORD dwValueLength = sizeof(Value)/sizeof(TCHAR); if (RegQueryValueEx( hKey, ValueName, NULL, &dwType, (BYTE *)Value, &dwValueLength )==ERROR_SUCCESS) { BOOL bInserted = FALSE; int iPort = atoi( Value+3 ); // cut off COM } } dwIndex++; } while (Status == ERROR_SUCCESS); RegCloseKey( hKey ); }nun weiß ich wieviele comports angeschlossen sind. bzw genauer gesagt welche.
jetzt will ich checken ob an allen comports was angeschlossen ist.
dachte dabei an CreateFile
das ganze mit ner while schleife.
der comport wo das telefon angeschlossen ist soll nun in die ini eingetragen werden mittels WritePrivateProfileString.
das eintragen is kein ding. das hatte ich schonmal gehabt.
naja denn neu auslesen und gut.