1. 获得Modem的状态、如何知道Modem接在哪个COM 1.1 获得Modem的状态var CommPort : string; hCommFile : THandle; ModemStat : DWord; begin CommPort := 'COM2';{打开端口} hCommFile := CreateFile(PChar(CommPort),GENERIC_READ,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); if hCommFile = INVALID_HANDLE_VALUE then begin ShowMessage('无法打开端口:'+ CommPort); exit; end;{获取Modem状态} if GetCommModemStatus(hCommFile, ModemStat) <> false then begin if ModemStat and MS_CTS_ON <>0 then ShowMessage('The CTS (clear-to-send) is on.'); if ModemStat and MS_DSR_ON <>0 then ShowMessage('The DSR (data-set-ready) is on.'); if ModemStat and MS_RING_ON <>0 then ShowMessage('The ring indicator is on.'); if ModemStat and MS_RLSD_ON <>0 then ShowMessage('The RLSD (receive-line-signal-detect) is on.'); end;{关闭端口} CloseHandle(hCommFile);end;1.2 如何知道Modem接在哪个COMHKEY_CURRENT_USERMonitor其中有modem的名字和com口
2. 通过Modem拨号
var hCommFile : THandle;var PhoneNumber : string; CommPort : string; NumberWritten : LongInt; begin PhoneNumber := 'ATDT 1-555-555-1212' + #13 + #10; CommPort := 'COM2';{打开端口} hCommFile := CreateFile(PChar(CommPort),GENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); if hCommFile=INVALID_HANDLE_VALUE then begin ShowMessage('无法打开端口:'+ CommPort); exit; end;{拨号} NumberWritten:=0; if WriteFile(hCommFile,PChar(PhoneNumber)^,Length(PhoneNumber),NumberWritten,nil) = false then begin ShowMessage('无法写入端口:' + CommPort); end; end; {关闭端口} begin CloseHandle(hCommFile); end;
CommPort : string;
hCommFile : THandle;
ModemStat : DWord;
begin
CommPort := 'COM2';{打开端口}
hCommFile := CreateFile(PChar(CommPort),GENERIC_READ,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if hCommFile = INVALID_HANDLE_VALUE then
begin
ShowMessage('无法打开端口:'+ CommPort);
exit;
end;{获取Modem状态}
if GetCommModemStatus(hCommFile, ModemStat) <> false then
begin
if ModemStat and MS_CTS_ON <>0 then
ShowMessage('The CTS (clear-to-send) is on.');
if ModemStat and MS_DSR_ON <>0 then
ShowMessage('The DSR (data-set-ready) is on.');
if ModemStat and MS_RING_ON <>0 then
ShowMessage('The ring indicator is on.');
if ModemStat and MS_RLSD_ON <>0 then
ShowMessage('The RLSD (receive-line-signal-detect) is on.');
end;{关闭端口}
CloseHandle(hCommFile);end;1.2 如何知道Modem接在哪个COMHKEY_CURRENT_USERMonitor其中有modem的名字和com口
var
hCommFile : THandle;var
PhoneNumber : string;
CommPort : string;
NumberWritten : LongInt;
begin
PhoneNumber := 'ATDT 1-555-555-1212' + #13 + #10;
CommPort := 'COM2';{打开端口}
hCommFile := CreateFile(PChar(CommPort),GENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if hCommFile=INVALID_HANDLE_VALUE then
begin
ShowMessage('无法打开端口:'+ CommPort);
exit;
end;{拨号}
NumberWritten:=0;
if WriteFile(hCommFile,PChar(PhoneNumber)^,Length(PhoneNumber),NumberWritten,nil) = false then begin
ShowMessage('无法写入端口:' + CommPort);
end;
end;
{关闭端口}
begin
CloseHandle(hCommFile);
end;