Attribute VB_Name = "autodial_util" Option Explicit ' Autodial - Andrew Bedno - 1995.07.28 ' Dials a phone number specified on the command line, ' then prompts the user to pick up the phone. ' Use to make speed dial icons. Public Const ProgName = "AUTODIAL" Public DialNum As String Public DialPort As String Public DialPrefix As String Public DialCurrAC As String Public DialSpeed As String Public DialPause1 As Integer Public DialPause2 As Integer Public DialModemInit As String Public DialModemReset As String Public DialAbort As Integer Public Declare Function GetPrivateProfileString Lib "Kernel" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer Public Declare Function WritePrivateProfileString Lib "Kernel" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lplFileName As String) As Integer Private Sub Dial() Dim OpenCom As Integer Dim ComResult As Integer Dim ModemCmd As String DialAbort = False If Trim$(DialNum) = "" Then MsgBox "No phone number specified." Exit Sub End If DialPort = UCase$(Trim$(DialPort)) If (Left(DialPort, 3) <> "COM") Or (Len(DialPort) <> 4) Then MsgBox "Port must be Com1..Com4." Exit Sub End If If (Right(DialPort, 1) > "4") Or (Right(DialPort, 1) < "1") Then MsgBox "Port must be Com1..Com4." Exit Sub End If autodial.ComTool.CommPort = Asc(Right(DialPort, 1)) - Asc("0") autodial.ComTool.Settings = DialSpeed & ",N,8,1" autodial.ComTool.InputLen = 0 autodial.ComTool.PortOpen = True ' Strip leading 1, strip leading current area code, add prefix. If Left(DialNum, Len(DialPrefix)) = DialPrefix Then DialNum = Right(DialNum, Len(DialNum) - Len(DialPrefix)) End If If Left(DialNum, 1) = "1" Then DialNum = Right(DialNum, Len(DialNum) - 1) End If If Left(DialNum, Len(DialCurrAC)) = DialCurrAC Then DialNum = Right(DialNum, Len(DialNum) - Len(DialCurrAC)) End If DialNum = DialPrefix & DialNum ' Initialize if necessary. If Trim$(DialModemInit) <> "" Then ModemCmd = DialModemInit & Chr(13) autodial.ComTool.Output = ModemCmd autodial.CallTimer.Interval = 1000 autodial.CallTimer.Enabled = True While autodial.CallTimer.Enabled And (Not DialAbort) DoEvents Wend End If ' Dial the number. If Not DialAbort Then ModemCmd = "ATDT" + DialNum & Chr(13) autodial.txtDial.Caption = DialNum autodial.ComTool.Output = ModemCmd ' Pause for dial. If DialPause1 < 0 Then DialPause1 = 0 If DialPause1 > 30 Then DialPause1 = 30 autodial.CallTimer.Interval = DialPause1 * 1000 autodial.CallTimer.Enabled = True While autodial.CallTimer.Enabled And (Not DialAbort) DoEvents Wend ' Display pick up phone message. autodial.msgPickUp.Visible = True autodial.msgPickUp.ZOrder 0 ' Pause for pickup. If DialPause2 < 0 Then DialPause2 = 0 If DialPause2 > 30 Then DialPause2 = 30 autodial.CallTimer.Interval = DialPause2 * 1000 autodial.CallTimer.Enabled = True While autodial.CallTimer.Enabled And (Not DialAbort) DoEvents Wend End If ' Reset (hang up) if necessary. If Trim$(DialModemReset) <> "" Then ModemCmd = DialModemReset & Chr(13) autodial.ComTool.Output = ModemCmd End If ' Close port. autodial.ComTool.PortOpen = False Exit Sub End Sub Private Sub DoHelp() Dim HelpMsg As String Dim NL As String Dim TabChr As String TabChr = Chr(9) NL = Chr(13) & Chr(10) HelpMsg = ProgName & " - Ver 1.0 Rev 1995.02.26" & NL HelpMsg = HelpMsg & "By Andrew Bedno - Chicago" & NL HelpMsg = HelpMsg & NL HelpMsg = HelpMsg & "Specify phone number on command line." & NL HelpMsg = HelpMsg & TabChr & "Leading 1 will be stripped." & NL HelpMsg = HelpMsg & TabChr & "Leading area code stripped if same as current." & NL HelpMsg = HelpMsg & TabChr & "Leading 1 added if still over seven digits." & NL HelpMsg = HelpMsg & TabChr & "Leading prefix added." & NL HelpMsg = HelpMsg & "Reads " & ProgName & ".INI for settings:" & NL HelpMsg = HelpMsg & TabChr & "[" & ProgName & "]" & NL HelpMsg = HelpMsg & TabChr & "PORT=Com1/Com2/Com3/Com4" & NL HelpMsg = HelpMsg & TabChr & "SPEED=9600/2400/..." & NL HelpMsg = HelpMsg & TabChr & "CURRAC=Area code of current location." & NL HelpMsg = HelpMsg & TabChr & "PREFIX=Outgoing line prefix." & NL HelpMsg = HelpMsg & TabChr & "PAUSE1=Seconds to dial." & NL HelpMsg = HelpMsg & TabChr & "PAUSE2=Seconds before hangup." & NL HelpMsg = HelpMsg & TabChr & "MODEMINIT=Modem pre-dial init string." & NL HelpMsg = HelpMsg & TabChr & "MODEMRESET=Modem hang up string." & NL HelpMsg = HelpMsg & "Any keypress or click interrupts." MsgBox HelpMsg End End Sub Private Function FixTrim(ByVal In_Str As String) As String Dim FixOut As String Dim FixLoop As Integer FixOut = "" For FixLoop = 1 To Len(In_Str) If (Mid$(In_Str, FixLoop, 1) >= " ") And (Mid$(In_Str, FixLoop, 1) <= Chr(127)) Then FixOut = FixOut & Mid$(In_Str, FixLoop, 1) End If Next FixLoop FixTrim = Trim$(FixOut) End Function Sub AutoDial_Main() Dim IniFileName As String Dim IniAppName As String Dim IniKeyName As String Dim IniDefault As String Dim IniReadStr As String * 30 'make fixed length because of DLL return Dim IniReadSize As Integer Dim IniResult As Integer IniAppName = ProgName IniFileName = ProgName & ".INI" IniReadSize = 31 IniKeyName = "PORT" IniDefault = "COM2" IniReadStr = "" IniResult = GetPrivateProfileString(IniAppName, IniKeyName, IniDefault, IniReadStr, IniReadSize, IniFileName) DialPort = FixTrim$(IniReadStr) If Trim$(DialPort) = "" Then MsgBox "Cannot find initialization file." End End If IniKeyName = "SPEED" IniDefault = "9600" IniReadStr = "" IniResult = GetPrivateProfileString(IniAppName, IniKeyName, IniDefault, IniReadStr, IniReadSize, IniFileName) DialSpeed = FixTrim$(IniReadStr) IniKeyName = "PREFIX" IniDefault = "" IniReadStr = "" IniResult = GetPrivateProfileString(IniAppName, IniKeyName, IniDefault, IniReadStr, IniReadSize, IniFileName) DialPrefix = FixTrim$(IniReadStr) IniKeyName = "CURRAC" IniDefault = "" IniReadStr = "" IniResult = GetPrivateProfileString(IniAppName, IniKeyName, IniDefault, IniReadStr, IniReadSize, IniFileName) DialCurrAC = FixTrim$(IniReadStr) IniKeyName = "PAUSE1" IniDefault = "2" IniReadStr = "" IniResult = GetPrivateProfileString(IniAppName, IniKeyName, IniDefault, IniReadStr, IniReadSize, IniFileName) DialPause1 = Val(FixTrim$(IniReadStr)) IniKeyName = "PAUSE2" IniDefault = "5" IniReadStr = "" IniResult = GetPrivateProfileString(IniAppName, IniKeyName, IniDefault, IniReadStr, IniReadSize, IniFileName) DialPause2 = Val(FixTrim$(IniReadStr)) IniKeyName = "MODEMINIT" IniDefault = "" IniReadStr = "" IniResult = GetPrivateProfileString(IniAppName, IniKeyName, IniDefault, IniReadStr, IniReadSize, IniFileName) DialModemInit = FixTrim$(IniReadStr) IniKeyName = "MODEMRESET" IniDefault = "+++~~~ATH" IniReadStr = "" IniResult = GetPrivateProfileString(IniAppName, IniKeyName, IniDefault, IniReadStr, IniReadSize, IniFileName) DialModemReset = FixTrim$(IniReadStr) If (Trim$(Command$) = "") Or (Trim$(Command$) = "?") Then DoHelp End End If autodial.Show DialNum = FixTrim$(Command$) Dial End End Sub