Cecken ob Com belegt ist.
-
Hi
Mal ne frage
und zwar
gibt es einen Befhel in der WinApi der testet wieviele Comports angeschlossen sind.
und als 2. noch einen der testen ob an dem Comport was angeschlossen ist?
-
mA1k schrieb:
gibt es einen Befhel in der WinApi der testet wieviele Comports angeschlossen sind.
Du könntest die Werte in HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM absuchen.
und als 2. noch einen der testen ob an dem Comport was angeschlossen ist?
Definiere "angeschlossen". Du kannst jedenfalls nicht feststellen, ob ein Kabel im Anschluss steckt.
-
naja
da soll ne telefon angeschlossen sein.
und ich will prüfen an welchem comport es is
-
MFK schrieb:
Du kannst jedenfalls nicht feststellen, ob ein Kabel im Anschluss steckt.
würde es nicht gehen mit createfile den port öffnen und wenn was dran hängt gibt er ne fehlermeldung (nur ins blaue geraten
)
-
so dachte ich auch erst
habs aber so nich hinbekommen.
-
miller_m schrieb:
würde es nicht gehen mit createfile den port öffnen und wenn was dran hängt gibt er ne fehlermeldung (nur ins blaue geraten
)Wenn CreateFile auf einem COM-Port fehlschlägt, liegt das fast immer daran, dass dieser COM-Port bereits von einem anderen Programm geöffnet wurde. Darüber, ob ein Gerät an diesem Port hängt, sagt das nichts aus.
@mA1k:
Hast du eine Protokollspezifikation für dieses Telefon?
-
nein
aber ich werds so sowieso nich regeln können.
weil zb nen modem liefert auch ein at signal zurück und da würde er denn denken das sei das telefon.
-
MFK schrieb:
Wenn CreateFile auf einem COM-Port fehlschlägt, liegt das fast immer daran, dass dieser COM-Port bereits von einem anderen Programm geöffnet wurde. Darüber, ob ein Gerät an diesem Port hängt, sagt das nichts aus.
war ne idee wert

-
mA1k schrieb:
nein
weil zb nen modem liefert auch ein at signal zurück und da würde er denn denken das sei das telefon.Versuch mal, ob du als Antwort auf ATI3 oder ATI4 etwas Eindeutiges bekommst.
-
Hallo
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)MfG
Klaus
-
scheinbar musst du quasi einfach ein commando senden und wenn was zurückkommt, ist das telefon angeschlossen, wenn nicht dann halt nich
-
Ich mach das erstmal ganz anders.
und zwar
eine ini datei wo ich standartwerte eintrage
und denn noch benutzerdeffinierte werte
zb so
[Default Settings]
COM-Device=COM1
DialPrefix=0-01081[uwe]
COM-Device=COM2[frank]
COM-Device=COM6Denn hole ich mir mittels GetUserName den Angemeldeten Benutzer.
Überprüfe ob der jenige in der ini ist.
wenn ja nimm seine einstellung.
wenn nein nimm Default Setting.nur hab ka wie ich die datei durchsuchen soll.
dachte dabei an GetPrivateProfileStringhat einer nen Tip?
-
GetPrivateProfileSection nach dem namen suchen wenn dies fehl schlägt default setting's laden.
bsp: http://www.c-plusplus.net/forum/viewtopic.php?t=73985&highlight=getprivateprofilesection
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/getprivateprofilestring.asp
-
hm
so richtig hilft mir das aber nich
-
mA1k schrieb:
hm
so richtig hilft mir das aber nich
warum

-
Du kannst doch bei GetPrivateProfileString über lpDefault den Wert bestimmen, den du bekommen willst, wenn der Eintrag nicht existiert. Du könntest also z.B. erst die Default-Einstellungen einlesen, und dann die des Users, wobei du bei lpDefault einfach den zuvor ausgelesenen Default-Wert angibst

-
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.