This is the source code the FindPorts.exe that is included in the IW Serial Port Library. The program have saved me a lot of time since the first version was made some years ago. 
I also attach a zip archive containing the program, plus the help file that did not make it into the library. 
Good luck!
'
' Findports.iwb  -  Using the IWB Comms Library v2.0
'
AutoDefine "Off"
def win:window  
def run,wstyle:int  
def csx,csy,csw,csh:int
wstyle = @MINBOX|@SIZE|@TOPMOST
OpenWindow win,0,0,320,310,wstyle,0,"  LA2PJ's Comport Finder",&messages  
SETWINDOWCOLOR(win,RGB(236,218,110))
BEGINMENU win
	MENUTITLE "Menu"
	menuitem "Open Device Manager",0,21
	SEPARATOR
	menuitem "About",0,90
	menuitem "Help",0,91
	SEPARATOR
	menuitem "Exit Program",0,99
ENDMENU
GETCLIENTSIZE win,csx,csy,csw,csh
move win, csx+6,csy+12
BACKPEN win,RGB(236,218,110)
PRINT win, "ComPorts found:" 
CONTROL win,@LISTBOX,"",csx+5,csy+30,120,csh-35,@VSCROLL,101
CONTROL win,@BUTTON,"New Search",csx+160,csy+110,100,25,0,102
FindComPorts()
run = 1  
WAITUNTIL run = 0  
CLOSEWINDOW win  
END  
SUB messages(),int 
setfocus win, 102
SELECT @class 
	CASE @idcreate  
		centerwindow win 
	CASE @idclosewindow  
		run = 0  
	CASE @IDMENUPICK
		select @MENUNUM
			case 21 							' Open Device Manager
				system "devmgmt.msc"	
	
			case 90							' About
				MESSAGEBOX(win,"       This is FREEWARE from LA2PJ"+chr$(13)+chr$(13)+_
									"  The program finds installed ComPorts"+chr$(13)+_
									"                Use at your own risk!",_
									"About Comports",@MB_OK|@MB_ICONINFORMATION)
			case 91							' Help
				system "FindPorts.chm"
			case 99 							' Exit
				run=0
		endselect
	CASE @idcontrol  
		select @controlID 
 
			case 1  
				run = 0  
			case 102
				FindComPorts()
		endselect 
ENDSELECT  
RETURN  0
EndSub
'
'----------------------------------------------------------------------------------------
' 1. Deletes all listbox contents.
' 2. Try to open all the 256 possible Windows ComPorts at 115200 baud.
' 3. Any port that opens, is added to the listbox.
'
SUB FindComPorts()
dim pp,i,j:int
dim txt$:string
	j = GETSTRINGCOUNT (win,101)	
	for i=j to 0 STEP -1
		DELETESTRING win,101,i
	next i
	for pp = 1 to 256
		if IWOpenPort(pp,115200)
			txt$="COM"+right$(str$(pp),len(str$(pp))-1)
			ADDSTRING win,101,txt$
			IWClosePort(pp)
		endif
	next pp
RETURN
ENDSUB
			
			
			
				Thanks for sharing Egil