You can use the handshake lines of the comm-ports. These lines are accessible with the MSComm object. On the PC-side the plug layout:

Pin1: DCD (inp)
Pin2: RX (not used)
Pin3: TX (not used)
Pin4: DTR (out)
Pin5: GND
Pin6: DSR (inp)
Pin7: RTS (out)
Pin8: CTS (inp)
Pin9: Ring (inp)

An example how to control these lines:

VB Code:
  1. Private Sub Form_Load()
  2.     'Init CommPort
  3.     If (MSComm1.PortOpen = False) Then
  4.         MSComm1.CommPort = 1
  5.         MSComm1.Settings = "9600,N,8,1"
  6.         MSComm1.Handshaking = comNone
  7.         MSComm1.RThreshold = 1
  8.         MSComm1.PortOpen = True
  9.     End If
  10. End Sub
  11.  
  12. Private Sub Form_Unload(Cancel As Integer)
  13.     MSComm1.PortOpen = False
  14. End Sub
  15.  
  16. Private Sub cmdDTR_Click()
  17.     'Toggle DTR
  18.     If (MSComm1.DTREnable = False) Then
  19.         MSComm1.DTREnable = True
  20.     Else
  21.         MSComm1.DTREnable = False
  22.     End If
  23. End Sub
  24.  
  25. Private Sub cmdRTS_Click()
  26.     'Toggle RTS
  27.     If (MSComm1.RTSEnable = False) Then
  28.         MSComm1.RTSEnable = True
  29.     Else
  30.         MSComm1.RTSEnable = False
  31.     End If
  32. End Sub
  33.  
  34. Private Sub MSComm1_OnComm()
  35.     Select Case MSComm1.CommEvent
  36.         'Events
  37.         Case comEvReceive
  38.         Case comEvSend
  39.         Case comEvCTS
  40.             'CTS is changed. Check value
  41.             If (MSComm1.CTSHolding = True) Then
  42.                 chkCTS.Value = 1
  43.             Else
  44.                 chkCTS.Value = 0
  45.             End If
  46.            
  47.         Case comEvDSR
  48.             'DSR is changed. Check value
  49.             If (MSComm1.DSRHolding = True) Then
  50.                 chkDSR.Value = 1
  51.             Else
  52.                 chkDSR.Value = 0
  53.             End If
  54.            
  55.         Case comEvCD
  56.             'DCD is changed. Check value
  57.             If (MSComm1.CDHolding = True) Then
  58.                 chkDCD.Value = 1
  59.             Else
  60.                 chkDCD.Value = 0
  61.             End If
  62.            
  63.         Case comEvRing
  64.             'Ring is changed. Can't check value
  65.             If (chkRing.Value = 1) Then
  66.                 chkRing.Value = 0
  67.             Else
  68.                 chkRing.Value = 1
  69.             End If
  70.            
  71.         Case comEvEOF
  72.        
  73.         'Errors
  74.         Case comEventBreak
  75.         Case comEventCDTO
  76.         Case comEventCTSTO
  77.         Case comEventDCB
  78.         Case comEventDSRTO
  79.         Case comEventFrame
  80.         Case comEventOverrun
  81.         Case comEventRxOver
  82.         Case comEventRxParity
  83.         Case comEventTxFull
  84.         Case Else
  85.     End Select
  86. End Sub