any way to disable error messages?

Post Reply
maximus4

Posts: 37
Joined: Sun Feb 19, 2012 5:04 am
Location:

HTPC Specs: Show details

any way to disable error messages?

#1

Post by maximus4 » Mon Aug 27, 2012 6:01 pm

hey all. i have a pci infinitv4 which has been nothing but headaches for well over a year. constant errors, on multiple computers, ive had the cable guys here several times, and ive been playing the ceton support ticket game for a year with no luck as of yet. basically the problem is losing service a lot and then getting these "no tv signal" errors from WMC. they make me choose either "cancel" or "recorded tv" to make them go away, and the computer is unusable until either one is picked. this happens whether im watching netflix, listening to music, or doing anything in WMC. since i havent been able to fix the actual problem i want to turn off error messages from WMC. is there any way possible to do this? i am still trying to fix the main problem with ceton thru there support system but in the mean time i need to get rid of these error messages before i lose my mind. again, this is not to complain about ceton or request ceton support, but specifically remove error messages from WMC to make this computer less rage inducing in the mean time. thanks.

barnabas1969

Posts: 5738
Joined: Tue Jun 21, 2011 7:23 pm
Location: Titusville, Florida, USA

HTPC Specs: Show details

#2

Post by barnabas1969 » Mon Aug 27, 2012 6:41 pm

Just out of curiosity, have you tried this fix:

http://support.microsoft.com/kb/2708283

06g35meister

Posts: 3
Joined: Fri Aug 31, 2012 7:23 pm
Location:

HTPC Specs: Show details

#3

Post by 06g35meister » Fri Aug 31, 2012 7:35 pm

What is your signal strength. I had the same problem but had to add an in-line power increaser (forget the technical name). I found that anything under +10dB is not sufficient for the ceton to work 100%. Since I added the devie I have had over 99% uptime.

User avatar
WhatHappend

Posts: 69
Joined: Mon Jun 06, 2011 8:00 pm
Location:

HTPC Specs: Show details

#4

Post by WhatHappend » Sun Sep 02, 2012 4:56 am

barnabas1969 wrote:Just out of curiosity, have you tried this fix:

http://support.microsoft.com/kb/2708283
That fix is for a different issue and has no effect on these recording popups. I don't know why Ceton quit all communications with me on my tickets about this. It is the most annoying thing. I bought a HDhomerun Prime and it never has this issue.

I am about to buy a 2nd HDHR Prime and leave these issues behind.

barnabas1969

Posts: 5738
Joined: Tue Jun 21, 2011 7:23 pm
Location: Titusville, Florida, USA

HTPC Specs: Show details

#5

Post by barnabas1969 » Sun Sep 02, 2012 12:56 pm

WhatHappend wrote:I bought a HDhomerun Prime and it never has this issue.

I am about to buy a 2nd HDHR Prime and leave these issues behind.
That's what I did, and my problems went away too.

maximus4

Posts: 37
Joined: Sun Feb 19, 2012 5:04 am
Location:

HTPC Specs: Show details

#6

Post by maximus4 » Mon Sep 03, 2012 1:12 pm

thanks guys, ive been eyeballing the prime too because ive been reading it fixes all the ceton's issues, but i spent so much money on this card and the potential seems there... but it has been over a year of consistant errors. im almost ready to admit defeat. so disappointed.

what kind of signal booster did you get? i cant get a straight answer about these things out of anyone.

i did do 4-5 hotfixs recommended by ceton, they havent abandoned my tickets yet but the replys are getting more spaced out, i must say overall the support has been courteous but i dont think theres a fix for the issue to be found. so, self-bump - anyone know how to stop the "no tv signal" errors or shut them off? just have everything work or not work and not report the errors to me?

kingpinjimi

Posts: 10
Joined: Sun Aug 28, 2011 5:21 pm
Location:

HTPC Specs: Show details

#7

Post by kingpinjimi » Mon Sep 03, 2012 1:40 pm

I know this is slightly off topic, but I recently got a PPC EVO1-5-U/U drop amp and it has greatly improved my signal levels... Im also getting FAR fewer no tv signal errors..
You can get one off eBay for pretty cheap.
http://www.ebay.com/sch/i.html?_nkw=EVO1-5-U%2FP
Or get one for free from a cable tech if your nice like I was ;)

barnabas1969

Posts: 5738
Joined: Tue Jun 21, 2011 7:23 pm
Location: Titusville, Florida, USA

HTPC Specs: Show details

#8

Post by barnabas1969 » Tue Sep 04, 2012 4:46 pm

My signal amplifier came free from my cable company. If you insist, they will install it for free. If memory serves, mine boosts the signal 7dB.

You've got nothing on me... I paid $525.00 on e-bay for my Ceton card because I didn't want to wait for the three-month backlog at the time (I was an early adopter). I sold it on e-bay for more than I paid for one of my HDHR Primes, so I wasn't too upset to see it go.

What are you signal levels? What about the SNR? Try it on several different channels to see how different frequencies affect it.

maximus4

Posts: 37
Joined: Sun Feb 19, 2012 5:04 am
Location:

HTPC Specs: Show details

#9

Post by maximus4 » Fri Sep 07, 2012 12:17 pm

tested at the wall, signal levels are -.05, ceton is reporting -18db. this is even with the wire going directly into the pc with no splitters or anything. i had cable company here a few times and they will not give me a signal amplifier because it tests correct at the wire coming into the house. i ended up having to pay for one and it should be on its way now... this is the last attempt im making with this card. i didnt pay $525 thankfully but i did take a $300 hit on this and i promise it still hurts.

barnabas1969

Posts: 5738
Joined: Tue Jun 21, 2011 7:23 pm
Location: Titusville, Florida, USA

HTPC Specs: Show details

#10

Post by barnabas1969 » Fri Sep 07, 2012 12:37 pm

Signal level can change with variations in frequency. The -.05 that you wrote about... is that what the cable tech told you? At what frequency was that? Typically, signal levels are lower in the upper frequencies. Have you tried tuning various channels on the Ceton, and see if you have low signal on some frequencies, and better signal on others? If so, you may need to ask your cable tech to "balance" the signals. He can do that up on the pole (or in the utility box near the street).

At $525.00, maybe now some people can understand why I was screaming so loud about my problems.

maximus4

Posts: 37
Joined: Sun Feb 19, 2012 5:04 am
Location:

HTPC Specs: Show details

#11

Post by maximus4 » Fri Sep 07, 2012 12:49 pm

Oh, I understand at almost half that price. Bump me up $50 tho for the signal amplifier I just bought lol. Not sure about frequency... I can do computers but cable stuff is beyond me. I figured I'd just be messing with drivers when I got this thing, seeing as my cable and internet has always been rock solid, and continues to be.... just as long as I don't use the PC with the ceton in it.

barnabas1969

Posts: 5738
Joined: Tue Jun 21, 2011 7:23 pm
Location: Titusville, Florida, USA

HTPC Specs: Show details

#12

Post by barnabas1969 » Fri Sep 07, 2012 1:05 pm

When you tune a channel, the Ceton diagnostic page shows the frequency. Try some different channels and see what frequencies are displayed. Make a chart of the signal strength, SNR, and frequency. You may see a pattern. The cable company assigns all kinds of crazy channel numbers, so the frequency may not be higher for higher channel numbers. For example, it's possible for channel 300 to be at a higher frequency than channel 1000. This is because the channel numbers assigned by the cable company (the ones you see in the guide) have no relation to the frequencies that are being transmitted.

User avatar
WhatHappend

Posts: 69
Joined: Mon Jun 06, 2011 8:00 pm
Location:

HTPC Specs: Show details

#13

Post by WhatHappend » Sun Sep 09, 2012 6:07 pm

With the Ceton tuner you don't have to do trial and error to find the highest and lowest frequency channels on your Cable system.

Just use this line: http://192.168.200.1/Services/ChannelMap.html ( If you have changed your Ceton's IP address, Replace the 192.168.200.1 )

You will want to click the "All" link.

This will show a list of all your provider's cable card channels and their frequencies like this:

Code: Select all

Channel	Name		Modulation	Frequency (kHz)	Program	EIA
1			VOD    	QAM256		651000					1		100.1
2			KTCA		QAM256		711000					2		110.2
3			KPXM		QAM256		711000					4		110.4

User avatar
WhatHappend

Posts: 69
Joined: Mon Jun 06, 2011 8:00 pm
Location:

HTPC Specs: Show details

#14

Post by WhatHappend » Sun Sep 09, 2012 10:40 pm

Here is a html / vbcript that will run in IE and show your 10 largest and 10 smallest frequencies in your cable card's channel map (for Ceton tuners):

Save this to a file with html extension and open it in IE:

Code: Select all

<html>
<head>
</head>
<body>

<script type="text/vbscript">
const CetonChannelXMLUrl = "http://192.168.200.1/view_channel_map.cgi?page=0&xml=1"

Function EncodeBase64( binary ) 
 
	Dim objXML
	Dim objNode

    ' help from MSXML
    Set objXML = CreateObject("MSXml2.DOMDocument")
    
    ' byte array to base64
    Set objNode = objXML.createElement("b64")
    objNode.dataType = "bin.base64"
    objNode.nodeTypedValue = binary
    EncodeBase64 = objNode.Text
 
    Set objNode = Nothing
    Set objXML = Nothing
 
End Function
 
Function SimpleBinaryToString(Binary)
  'SimpleBinaryToString converts binary data (VT_UI1 | VT_ARRAY Or MultiByte string)
  'to a string (BSTR) using MultiByte VBS functions
  Dim I, S
  For I = 1 To LenB(Binary)
    S = S & Chr(AscB(MidB(Binary, I, 1)))
  Next
  SimpleBinaryToString = S
End Function

Function DecodeBase64( Text ) 
 
    Dim objXML
    Dim objNode
    
    ' help from MSXML
    Set objXML = CreateObject("MSXml2.DOMDocument")
    Set objNode = objXML.createElement("b64")
    objNode.dataType = "bin.base64"
    objNode.Text = Text
    DecodeBase64 = (objNode.nodeTypedValue)
    
    Set objNode = Nothing
    Set objXML = Nothing
 
End Function

Class Channel
	Public name
	Public names
	Public frequency
	Public number	
End Class

Const NumMinMaxToTrack = 10
Class ChannelList

	'Public channels
	Public LargestFreqChannels()
	Public sizeOfLargestFreqChannels
	Public SmallestFreqChannels()
	Public sizeOfSmallestFreqChannels
	
	Public Sub Class_Initialize()

		ReDim LargestFreqChannels(NumMinMaxToTrack)
		ReDim SmallestFreqChannels(NumMinMaxToTrack)
		
		sizeOfLargestFreqChannels = 0
		sizeOfSmallestFreqChannels = 0
	End Sub
	
	Public Sub AddChannel( chan )
		Dim i,x
		For i = 1 To sizeOfLargestFreqChannels
			If chan.frequency = LargestFreqChannels(i).frequency Then
				LargestFreqChannels(i).names = LargestFreqChannels(i).names & ", ("&chan.number&","&chan.name&")"
				Exit For
			ElseIf chan.frequency > LargestFreqChannels(i).frequency Then
				'  Shift all values to make room for new value
				For x = sizeOfLargestFreqChannels to i + 1 Step -1
					Set LargestFreqChannels(x) = LargestFreqChannels(x-1)
				Next

				Set LargestFreqChannels(i) = chan	
				LargestFreqChannels(i).names = "("&chan.number&","&chan.name&")"				
				Exit For
			End If
		Next
		If i < NumMinMaxToTrack+1 And sizeOfLargestFreqChannels < NumMinMaxToTrack Then
			sizeOfLargestFreqChannels = sizeOfLargestFreqChannels + 1
			Set LargestFreqChannels(sizeOfLargestFreqChannels) = chan
		End If

		For i = 1 To sizeOfSmallestFreqChannels
			If chan.frequency = SmallestFreqChannels(i).frequency Then
				SmallestFreqChannels(i).names = SmallestFreqChannels(i).names & ", ("&chan.number&","&chan.name&")"
				Exit For
			ElseIf chan.frequency < SmallestFreqChannels(i).frequency Then
				'  Shift all values to make room for new value
				For x = sizeOfSmallestFreqChannels to i + 1 Step -1
					Set SmallestFreqChannels(x) = SmallestFreqChannels(x-1)
				Next
								
				Set SmallestFreqChannels(i) = chan
				SmallestFreqChannels(i).names = "("&chan.number&","&chan.name&")"		
				Exit For
			End If
		Next
		If i < NumMinMaxToTrack+1 And sizeOfSmallestFreqChannels < NumMinMaxToTrack Then
			sizeOfSmallestFreqChannels = sizeOfSmallestFreqChannels + 1
			Set SmallestFreqChannels(sizeOfSmallestFreqChannels) = chan
		End If
	End Sub
End Class

Set xmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"

xmlDoc.load(CetonChannelXMLUrl)
Dim objDocElem, strNode, strSubNode, xmlnn, xmlnv, xmlnc, xmldd, xmlfd, xmlfv, nodeName, nodeValue

Dim channel_list, chan
Set channel_list = New ChannelList
Dim i,z

Set objDocElem=xmlDoc.documentElement

Set y = objDocElem.childNodes
i=0
Do While i < y.length 
If y(i).nodeType <> 3 Then
	if y(i).nodeName = "channel" Then
		xmlnc = xmlnc + 1
		  
		Set chan = New Channel
		z=0
		Do While z < y(i).childNodes.length
			If y(i).childNodes(z).nodeType <> 3 Then

				nodeName = y(i).childNodes(z).nodeName
				nodeValue = y(i).childNodes(z).text
				If nodeName = "name" Then
					nodeValue = SimpleBinaryToString(DecodeBase64(nodeValue))
					chan.name = nodeValue
				ElseIf nodeName = "frequency" Then
					chan.frequency = CLng(nodeValue)
				ElseIf nodeName = "number" Then
					chan.number = CInt(nodeValue)
				End If
							
			End If
		z=z+1
		Loop
		channel_list.AddChannel chan
	End if
End If
i=i+1  
Loop

document.write("Information read from: "&CetonChannelXMLUrl& "<br />"& "<br />")

document.write( "Largest Frequency Channels (Freqency (channel#,Name), (channel#,Name), ...: <br />" )
For i= 1 To channel_list.sizeOfLargestFreqChannels
	document.write( channel_list.LargestFreqChannels(i).frequency & chr(9)&_
					channel_list.LargestFreqChannels(i).names & "<br />")
Next

document.write("<br />")

document.write( "Smallest Frequency Channels (Freqency (channel#,Name), (channel#,Name), ...: <br />" )
For i= 1 To channel_list.sizeOfSmallestFreqChannels
	document.write( channel_list.SmallestFreqChannels(i).frequency & chr(9) &_
					channel_list.SmallestFreqChannels(i).names & "<br />")
Next

document.write("<br />Channel List count: " & xmlnc & "<br />")

</script>
</body>
</html>
Here is the output for my cable system:
Information read from: http://192.168.200.1/view_channel_map.cgi?page=0&xml=1

Largest Frequency Channels (Freqency (channel#,Name), (channel#,Name), ...:
759000 (107,COOL), (208,NGC), (212,FSC), (601,MUN2), (603,CINEL), (604,VeMove), (605,FOXDEP), (606,CNNESP), (607,ESPNDEP), (609,HISTe)
753000 (108,WUCWD3), (821,WUCWHD), (825,WGNHD)
747000 (105,KSTCD3), (106,KSTCD2), (113,KPXMDT2), (114,KPXMDT3), (806,KSTCHD), (822,KPXMHD)
741000 (4,WCCO), (5,KSTP), (5,KSTP), (6,KSTC), (6,KSTC), (9,KMSP), (9,KMSP), (10,WFTC), (10,WFTC), (11,KARE), (11,KARE), (13,KTCID3), (13,KTCID3), (21,WUCW), (21,WUCW), (23,WUMN), (23,WUMN), (103,KTCID3)
735000 (14,HSN), (18,QVC), (18,QVC), (78,WGN), (87,CSPAN2), (88,CSPAN3), (90,3ABN), (91,TCCD), (92,TBN), (93,INSP), (94,EWTN), (96,ShopNBC), (97,CSPAN), (814,QVC), (997,Pace), (1001,VOD49)
729000 (804,WCCOHD), (805,KSTPHD)
723000 (101,KTCID4), (102,KTCAD2), (111,KARED2), (802,KTCADT), (811,KAREHD), (999,DIGEAS)
717000 (215,Youtoo), (275,TVG), (701,MC-HitList), (702,MC-HH&RB), (703,MC-MixTape), (704,MC-D/E), (705,MC-Rap), (706,MC-HHClass), (707,MC-Jamz), (708,MC-RBClass), (709,MC-RBSoul), (710,MC-Gospel), (711,MC-Reggae), (712,MC-ClasRock), (713,MC-RetRock), (714,MC-Rock), (715,MC-Metal), (716,MC-Altern), (717,MC-ClasAlt), (718,MC-AdlAlt), (719,MC-SoftRock), (720,MC-PopHits), (721,MC-90's), (722,MC-80's), (723,MC-70's), (724,MC-GoldOld), (725,MC-Party), (726,MC-Stage), (727,MC-Kidz), (728,MC-Toddler), (729,MC-TodayCo), (730,MC-TrueCo), (731,MC-ClasCO), (732,MC-Christian), (733,MC-SoofSea), (734,MC-Soscape), (735,MC-SmoJazz), (736,MC-Jazz), (737,MC-Blues), (738,MC-Swing), (739,MC-Easy), (740,MC-Master), (741,MC-LtClass), (742,MC-Urbana), (743,MC-PopLat), (744,MC-Trop), (745,MC-Mexi), (981,SeaChange Barker #1)
711000 (2,KTCA), (3,KPXM), (3,KPXM), (12,KEYC), (12,KEYC), (22,MC5), (22,MC5)
711000 (2,KTCA), (3,KPXM), (3,KPXM), (12,KEYC), (12,KEYC), (22,MC5), (22,MC5)

Smallest Frequency Channels (Freqency (channel#,Name), (channel#,Name), ...:
99000 (8,LOCAL)
135000 (991,HIC2), (992,HIC2), (993,HIC2), (994,HIC2), (995,HIC2)
153000 (812,KEYCHD), (813,KOZJ)
213000 (98,KTCI (Hutheinson))
225000 (830,ESPNHD), (831,ESN2HD)
231000 (833,BTNMNHD), (836,TBSHDe)
237000 (766,NFLHD), (767,NFLRZHD)
243000 (838,USA HD), (856,FNCHD), (863,LIFEHDe)
249000 (839,SYFYHDe), (847,A&EHD), (848,HISHD)
255000 (835,TNTHDe), (857,HGTVHD), (858,FOODHD)

Channel List count: 402

User avatar
WhatHappend

Posts: 69
Joined: Mon Jun 06, 2011 8:00 pm
Location:

HTPC Specs: Show details

#15

Post by WhatHappend » Mon Sep 10, 2012 4:16 am

Here is an update that Will use Tuner Instance 0 and display signal levels and SNR for the 10 lowest and highest frequency channels in your cable card lineup.
This should be useful for any one wanting to double check their signal levels.

Note: Don't run this script when recordings or liveTV are using tuner instance 0.

Save this code as CetonChannelExtremes.html and then open it in IE.

Code: Select all

<html>
<head>
</head>
<body>

<script type="text/vbscript">

const BaseCetonUrl = "http://192.168.200.1"
DIM CetonChannelXMLUrl 
CetonChannelXMLUrl = BaseCetonUrl & "/view_channel_map.cgi?page=0&xml=1"
const MaxLenChanNums = 160

Function EncodeBase64( binary ) 
 
	Dim objXML
	Dim objNode

    ' help from MSXML
    Set objXML = CreateObject("MSXml2.DOMDocument")
    
    ' byte array to base64
    Set objNode = objXML.createElement("b64")
    objNode.dataType = "bin.base64"
    objNode.nodeTypedValue = binary
    EncodeBase64 = objNode.Text
 
    Set objNode = Nothing
    Set objXML = Nothing
 
End Function
 
Function SimpleBinaryToString(Binary)
  'SimpleBinaryToString converts binary data (VT_UI1 | VT_ARRAY Or MultiByte string)
  'to a string (BSTR) using MultiByte VBS functions
  Dim I, S
  For I = 1 To LenB(Binary)
    S = S & Chr(AscB(MidB(Binary, I, 1)))
  Next
  SimpleBinaryToString = S
End Function

Function DecodeBase64( Text ) 
 
    Dim objXML
    Dim objNode
    
    ' help from MSXML
    Set objXML = CreateObject("MSXml2.DOMDocument")
    Set objNode = objXML.createElement("b64")
    objNode.dataType = "bin.base64"
    objNode.Text = Text
    DecodeBase64 = (objNode.nodeTypedValue)
    
    Set objNode = Nothing
    Set objXML = Nothing
 
End Function

Class Channel
	Public name
	Public CH_numbers
	Public frequency
	Public number	
	Public modulation
	
	Public Function Clone()
		Set Clone = New Channel
		Clone.name = name
		Clone.CH_numbers = CH_numbers
		Clone.frequency = frequency
		Clone.number = number
		Clone.modulation = modulation
	End Function
End Class

Const NumMinMaxToTrack = 10
Class ChannelList

	'Public channels
	Public LargestFreqChannels()
	Public sizeOfLargestFreqChannels
	Public SmallestFreqChannels()
	Public sizeOfSmallestFreqChannels
	
	Public Sub Class_Initialize()

		ReDim LargestFreqChannels(NumMinMaxToTrack)
		ReDim SmallestFreqChannels(NumMinMaxToTrack)
		
		sizeOfLargestFreqChannels = 0
		sizeOfSmallestFreqChannels = 0
	End Sub
	
	Public Sub AddChannel( chan )
		Dim i,x,added
		chan.CH_numbers = CStr(chan.number)

		' Make a Deep chopy of Chan for the Smallest Freq tracking
		Dim lowChan 
		Set lowChan = chan.Clone()

		added = False
		For i = 1 To sizeOfLargestFreqChannels
			If chan.frequency = LargestFreqChannels(i).frequency Then
				' This Frequency already exists, add this channel number to the list 
				' cap channel number list len to MaxLenChanNums
				If (Len(LargestFreqChannels(i).CH_numbers) < MaxLenChanNums ) Then
					LargestFreqChannels(i).CH_numbers = LargestFreqChannels(i).CH_numbers & "," & chan.CH_numbers
				End If
				added = True
				Exit For
			ElseIf chan.frequency > LargestFreqChannels(i).frequency Then
				' Increment Count to indicate the new inserted frequency.
				If sizeOfLargestFreqChannels < NumMinMaxToTrack Then
					sizeOfLargestFreqChannels = sizeOfLargestFreqChannels + 1
				End If
				
				'  Shift all values down one to make room for new value
				For x = sizeOfLargestFreqChannels to i + 1  Step -1
					Set LargestFreqChannels(x) = LargestFreqChannels(x-1)
				Next

				Set LargestFreqChannels(i) = chan
				added = True
				Exit For
			End If
		Next
		If Not added And sizeOfLargestFreqChannels < NumMinMaxToTrack Then
			sizeOfLargestFreqChannels = sizeOfLargestFreqChannels + 1
			Set LargestFreqChannels(sizeOfLargestFreqChannels) = chan
		End If
		
		added = False
		For i = 1 To sizeOfSmallestFreqChannels
			If lowChan.frequency = SmallestFreqChannels(i).frequency Then
				' This Frequency already exists, add this channel number to the list 
				' cap channel number list len to MaxLenChanNums			
				If Len(SmallestFreqChannels(i).CH_numbers) < MaxLenChanNums Then
					SmallestFreqChannels(i).CH_numbers = SmallestFreqChannels(i).CH_numbers & "," & lowChan.CH_numbers
				End If
				added = True
				Exit For
			ElseIf lowChan.frequency < SmallestFreqChannels(i).frequency Then
				' Increment Count to indicate the new inserted frequency.
				If sizeOfSmallestFreqChannels < NumMinMaxToTrack Then
					sizeOfSmallestFreqChannels = sizeOfSmallestFreqChannels + 1
				End If
				
				'  Shift all values to make room for new value
				For x = sizeOfSmallestFreqChannels to i + 1 Step -1
					Set SmallestFreqChannels(x) = SmallestFreqChannels(x-1)
				Next
								
				Set SmallestFreqChannels(i) = lowChan
				added = True
				Exit For
			End If
		Next
		If Not added And sizeOfSmallestFreqChannels < NumMinMaxToTrack Then
			sizeOfSmallestFreqChannels = sizeOfSmallestFreqChannels + 1
			Set SmallestFreqChannels(sizeOfSmallestFreqChannels) = lowChan
		End If
	End Sub
End Class

'
'	Retreive the Signal, SNR, & Frequency for the passed in channel#
'
Sub WriteFrequencyTable( in_channel )
	Dim oHF , objHTTP

	Set objHTTP = CreateObject("Microsoft.XMLHTTP")
	objHTTP.open "POST", BaseCetonUrl & "/channel_request.cgi", False
	 
	objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
	objHTTP.send "instance_id=0"& Chr(38) & "channel=" & in_channel
	 
	If objHTTP.Status = 200 Then
		Do
			objHTTP.open "GET", BaseCetonUrl & "/get_var?i=0&s=cas&v=VirtualChannelNumber", False 
			objHTTP.send 
			Set oHF = CreateObject("HTMLFILE")
			oHF.write objHTTP.responseText
		Loop Until ( CInt(oHF.body.innerHTML) = CInt(in_channel) )
		
		objHTTP.open "GET", BaseCetonUrl & "/get_var?i=0&s=diag&v=Signal_Level", False 
		objHTTP.send 
		Set oHF = CreateObject("HTMLFILE")
		oHF.write objHTTP.responseText
		Signal = CStr(oHF.body.innerHTML)
		objHTTP.open "GET", BaseCetonUrl & "/get_var?i=0&s=diag&v=Signal_SNR", False 
		objHTTP.send 
		Set oHF = CreateObject("HTMLFILE")
		oHF.write objHTTP.responseText		
		SNR = CStr(oHF.body.innerHTML)
		objHTTP.open "GET", BaseCetonUrl & "/get_var?i=0&s=tuner&v=Frequency", False 
		objHTTP.send 
		Set oHF = CreateObject("HTMLFILE")
		oHF.write objHTTP.responseText		
		Frequency = CStr(oHF.body.innerHTML)
		document.write( "<tr><td>" & Signal & "</td><td>" & SNR & "</td><td>" & Frequency & "</td></td>" )
 	End If
	Set objHTTP = Nothing			
End Sub

Set xmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"

xmlDoc.load(CetonChannelXMLUrl)
Dim objDocElem, strNode, strSubNode, xmlnn, xmlnv, xmlnc, xmldd, xmlfd, xmlfv, nodeName, nodeValue
Dim SNR, Signal, Frequency
Dim channel_list, chan
Set channel_list = New ChannelList
Dim i,z

Set objDocElem=xmlDoc.documentElement

Set y = objDocElem.childNodes

For i=0 to y.length - 1
	If y(i).nodeType <> 3 Then
		if y(i).nodeName = "channel" Then
			xmlnc = xmlnc + 1
			  
			Set chan = New Channel
			z=0
			Do While z < y(i).childNodes.length
				If y(i).childNodes(z).nodeType <> 3 Then

					nodeName = y(i).childNodes(z).nodeName
					nodeValue = y(i).childNodes(z).text
					If nodeName = "name" Then
						nodeValue = SimpleBinaryToString(DecodeBase64(nodeValue))
						chan.name = nodeValue
					ElseIf nodeName = "frequency" Then
						chan.frequency = CLng(nodeValue)
					ElseIf nodeName = "number" Then
						chan.number = CInt(nodeValue)
					ElseIf nodeName = "modulation" Then
						chan.modulation = CStr(nodeValue)
					End If
								
				End If
			z=z+1
			Loop
			' Skip NTSC Channels as the Ceton can't tune these....
			If chan.modulation <> "NTSC" Then
				channel_list.AddChannel chan
			End If
		End if
	End If
Next

document.write("<b>Information From Ceton Card at: "&BaseCetonUrl& "</b><br \><br \>")

' Output a Table that shows Signal Level, SNR and Frequency	
document.write( "<table style="&chr(34)&"border=5px solid;display: inline-block; float: left;"&chr(34)&"><caption>Smallest Frequency Table</caption><tr><th>Signal</th><th>SNR</th><th>Frequency</th></tr>")
For i= 1 To channel_list.sizeOfSmallestFreqChannels
	WriteFrequencyTable channel_list.SmallestFreqChannels(i).number
Next
document.write("</table>")

' Output a Table that shows Signal Level, SNR and Frequency	
document.write( "<table style="&chr(34)&"border=5px solid;display: inline-block;"&chr(34)&"><caption>Largest Frequency Table</caption><tr><th>Signal</th><th>SNR</th><th>Frequency</th></tr>")
For i= 1 To channel_list.sizeOfLargestFreqChannels
	WriteFrequencyTable channel_list.LargestFreqChannels(i).number
Next
document.write("</table>")

' Output a Table that shows Smallest Freq Channel numbers
document.write( "<table style="&chr(34)&"border=5px solid;display: inline-block; float: left;"&chr(34)&"><caption>Smallest Frequency Table</caption><tr><th>Frequency</th><th>channel#,channel#,...</th></tr>")
For i= 1 To channel_list.sizeOfSmallestFreqChannels
	document.write( "<tr><td>" & channel_list.SmallestFreqChannels(i).frequency & "</td><td>" &_
					channel_list.SmallestFreqChannels(i).CH_numbers & "</td></tr>")
Next
document.write("</table>")

' Output a Table that shows LargestFreq Channel numbers
document.write( "<table style="&chr(34)&"border=5px solid;display: inline-block;"&chr(34)&"><caption>Largest Frequency Table</caption><tr><th>Frequency</th><th>channel#,channel#,...</th></tr>")
For i= 1 To channel_list.sizeOfLargestFreqChannels
	document.write( "<tr><td>" & channel_list.LargestFreqChannels(i).frequency & "</td><td>" &_
					channel_list.LargestFreqChannels(i).CH_numbers & "</td></tr>")
Next
document.write("</table>")


document.write("<br />Channel List count: " & xmlnc & "<br />")

</script>
</body>
</html>
Here is a sample of the output:
Attachments
Capture.PNG

barnabas1969

Posts: 5738
Joined: Tue Jun 21, 2011 7:23 pm
Location: Titusville, Florida, USA

HTPC Specs: Show details

#16

Post by barnabas1969 » Mon Sep 10, 2012 2:39 pm

Good info, Whathappend. It would be a good idea to collect the signal level and SNR for a high, middle, and low frequency... not just the upper and lower ends.

User avatar
WhatHappend

Posts: 69
Joined: Mon Jun 06, 2011 8:00 pm
Location:

HTPC Specs: Show details

#17

Post by WhatHappend » Tue Sep 11, 2012 2:47 am

Here is an update that adds Center Frequencies.
A progress window was also added, but it might get hidden behind the current window if you have to ok an ActiveX popup permission dialog.

Hope someone finds this useful :)

Update!!! Save the code contents to a text file named CetonChannelExtremes.hta The HTA extension runs it as an application and you don't have to confirm any security pop-ups and the progress display works great! (See attached image)

Code: Select all

<html>
<head>
</head>
<body>

<script type="text/vbscript">

const BaseCetonUrl = "http://192.168.200.1"
DIM CetonChannelXMLUrl 
CetonChannelXMLUrl = BaseCetonUrl & "/view_channel_map.cgi?page=0&xml=1"
const MaxLenChanNums = 120

 Class ProgressBar
    Private m_PercentComplete
    Private m_CurrentStep
    Private m_ProgressBar
    Private m_Title
    Private m_Text
    Private m_StatusBarText
 
    'Initialize defaults
    Private Sub ProgessBar_Initialize
        m_PercentComplete = 0
        m_CurrentStep = 0
        m_Title = "Progress"
        m_Text = ""
    End Sub
 
    Public Function SetTitle(pTitle)
        m_Title = pTitle
    End Function
 
    Public Function SetText(pText)
        m_Text = pText
    End Function
 
    Public Function Update(percentComplete)
        m_PercentComplete = Int(percentComplete)
        UpdateProgressBar()
    End Function
 
    Public Function Show()
        Set m_ProgressBar = CreateObject("InternetExplorer.Application")
        'in code, the colon acts as a line feed
        m_ProgressBar.navigate2 "about:blank" : m_ProgressBar.width = 315 : m_ProgressBar.height = 40 : m_ProgressBar.toolbar = false : m_ProgressBar.menubar = false : m_ProgressBar.statusbar = false : m_ProgressBar.visible = True
        m_ProgressBar.document.write "<body Scroll=no style='margin:0px;padding:0px;'><div style='text-align:center;'><span name='pc' id='pc'>0</span></div>"
        m_ProgressBar.document.write "<div id='statusbar' name='statusbar' style='border:1px solid blue;line-height:10px;height:10px;color:blue;'></div>"
        m_ProgressBar.document.write "<div style='text-align:center'><span id='text' name='text'></span></div>"
		m_ProgressBar.document.focus() 
    End Function
 
    Public Function Close()
        m_ProgressBar.quit
        Set m_ProgressBar = Nothing
    End Function
 
    Private Function UpdateProgressBar()
        If m_PercentComplete = 0 Then
            m_StatusBarText = ""
        End If
        For n = m_CurrentStep to m_PercentComplete - 1
            m_StatusBarText = m_StatusBarText & "|"
            m_ProgressBar.Document.GetElementById("statusbar").InnerHtml = m_StatusBarText
            m_ProgressBar.Document.title = n & "% Complete : " & m_Title
            m_ProgressBar.Document.GetElementById("pc").InnerHtml = n & "% Complete : " & m_Title
            'wscript.sleep 10
        Next
        m_ProgressBar.Document.GetElementById("statusbar").InnerHtml = m_StatusBarText
        m_ProgressBar.Document.title = m_PercentComplete & "% Complete : " & m_Title
        m_ProgressBar.Document.GetElementById("pc").InnerHtml = m_PercentComplete & "% Complete : " & m_Title
        m_ProgressBar.Document.GetElementById("text").InnerHtml = m_Text
        m_CurrentStep = m_PercentComplete
		m_ProgressBar.document.focus() 
    End Function
 
 End Class
 
Class Channel
	Public CH_numbers
	Public frequency
	Public number	
	Public modulation
	
	Public Function Clone()
		Set Clone = New Channel
		Clone.CH_numbers = CH_numbers
		Clone.frequency = frequency
		Clone.number = number
		Clone.modulation = modulation
	End Function
End Class

Const NumMinMaxToTrack = 10
Class ChannelList

	Public LargestFreqChannels()
	Public sizeOfLargestFreqChannels
	Public SmallestFreqChannels()
	Public sizeOfSmallestFreqChannels
	Public MiddleFreqChannels()
	Public sizeOfMiddleFreqChannels
	
	Public AllFreqChannels()
	Public NumberOfChannels
	
	Public Sub Class_Initialize()

		ReDim LargestFreqChannels(NumMinMaxToTrack)
		ReDim SmallestFreqChannels(NumMinMaxToTrack)
		ReDim MiddleFreqChannels(NumMinMaxToTrack)
		
		sizeOfLargestFreqChannels = 0
		sizeOfSmallestFreqChannels = 0
		sizeOfMiddleFreqChannels = 0
		NumberOfChannels = 0
	End Sub
	
	Public Sub LocateCenterFreqChannels
		' Calculate Center Freq
		centerFreq = (LargestFreqChannels(1).frequency + SmallestFreqChannels(1).frequency) / 2
		
		For Each chan In AllFreqChannels
			
			FreqDelta = Abs(chan.frequency - centerFreq)
			added = False
			For i = 1 To sizeOfMiddleFreqChannels
				set midChan = MiddleFreqChannels(i)
				If midChan.frequency = chan.frequency Then
					midChan.CH_numbers = midChan.CH_numbers & "," & chan.CH_numbers
					Exit For
				ElseIf FreqDelta < Abs(midChan.frequency - centerFreq) Then
					' Insert this lower delta channel
					' Increment Count to indicate the new inserted frequency.
					If sizeOfMiddleFreqChannels < NumMinMaxToTrack Then
						sizeOfMiddleFreqChannels = sizeOfMiddleFreqChannels + 1
					End If
					
					'  Shift all values down one to make room for new value
					For x = sizeOfMiddleFreqChannels to i + 1  Step -1
						Set MiddleFreqChannels(x) = MiddleFreqChannels(x-1)
					Next

					Set MiddleFreqChannels(i) = chan
					added = True
					Exit For
				End If
			Next
			
			If Not added Then
				' See if out Middle Frequency List has room to add one.
				If sizeOfMiddleFreqChannels < NumMinMaxToTrack Then
					' Increment Count to indicate the new Added frequency.
					sizeOfMiddleFreqChannels = sizeOfMiddleFreqChannels + 1
					Set MiddleFreqChannels(sizeOfMiddleFreqChannels) = chan
				End If
			End if
		Next
	End Sub
	
	Public Sub AddChannel( chan )
		Dim i,x,added
		chan.CH_numbers = CStr(chan.number)

		' Make a Deep copies of Chan for the Smallest Freq and all Freq tracking
		Dim lowChan 
		Set lowChan = chan.Clone()
		
		ReDim Preserve AllFreqChannels(NumberOfChannels)
		Set AllFreqChannels(NumberOfChannels) = chan.Clone()  ' Save Deep Copy of Channel in All list
		NumberOfChannels = NumberOfChannels + 1

		added = False
		For i = 1 To sizeOfLargestFreqChannels
			If chan.frequency = LargestFreqChannels(i).frequency Then
				' This Frequency already exists, add this channel number to the list 
				' cap channel number list len to MaxLenChanNums
				If (Len(LargestFreqChannels(i).CH_numbers) < MaxLenChanNums ) Then
					LargestFreqChannels(i).CH_numbers = LargestFreqChannels(i).CH_numbers & "," & chan.CH_numbers
				End If
				added = True
				Exit For
			ElseIf chan.frequency > LargestFreqChannels(i).frequency Then
				' Increment Count to indicate the new inserted frequency.
				If sizeOfLargestFreqChannels < NumMinMaxToTrack Then
					sizeOfLargestFreqChannels = sizeOfLargestFreqChannels + 1
				End If
				
				'  Shift all values down one to make room for new value
				For x = sizeOfLargestFreqChannels to i + 1  Step -1
					Set LargestFreqChannels(x) = LargestFreqChannels(x-1)
				Next

				Set LargestFreqChannels(i) = chan
				added = True
				Exit For
			End If
		Next
		If Not added And sizeOfLargestFreqChannels < NumMinMaxToTrack Then
			sizeOfLargestFreqChannels = sizeOfLargestFreqChannels + 1
			Set LargestFreqChannels(sizeOfLargestFreqChannels) = chan
		End If
		
		added = False
		For i = 1 To sizeOfSmallestFreqChannels
			If lowChan.frequency = SmallestFreqChannels(i).frequency Then
				' This Frequency already exists, add this channel number to the list 
				' cap channel number list len to MaxLenChanNums			
				If Len(SmallestFreqChannels(i).CH_numbers) < MaxLenChanNums Then
					SmallestFreqChannels(i).CH_numbers = SmallestFreqChannels(i).CH_numbers & "," & lowChan.CH_numbers
				End If
				added = True
				Exit For
			ElseIf lowChan.frequency < SmallestFreqChannels(i).frequency Then
				' Increment Count to indicate the new inserted frequency.
				If sizeOfSmallestFreqChannels < NumMinMaxToTrack Then
					sizeOfSmallestFreqChannels = sizeOfSmallestFreqChannels + 1
				End If
				
				'  Shift all values to make room for new value
				For x = sizeOfSmallestFreqChannels to i + 1 Step -1
					Set SmallestFreqChannels(x) = SmallestFreqChannels(x-1)
				Next
								
				Set SmallestFreqChannels(i) = lowChan
				added = True
				Exit For
			End If
		Next
		
		If Not added And sizeOfSmallestFreqChannels < NumMinMaxToTrack Then
			sizeOfSmallestFreqChannels = sizeOfSmallestFreqChannels + 1
			Set SmallestFreqChannels(sizeOfSmallestFreqChannels) = lowChan
		End If
		
	End Sub
End Class

'
'	Retreive the Signal, SNR, & Frequency for the passed in channel#
'
Sub WriteFrequencyTable( in_channel )
	Dim oHF , objHTTP

	Set objHTTP = CreateObject("Microsoft.XMLHTTP")
	objHTTP.open "POST", BaseCetonUrl & "/channel_request.cgi", False
	 
	objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
	objHTTP.send "instance_id=0"& Chr(38) & "channel=" & in_channel
	 
	If objHTTP.Status = 200 Then
		Do
			objHTTP.open "GET", BaseCetonUrl & "/get_var?i=0&s=cas&v=VirtualChannelNumber", False 
			objHTTP.send 
			Set oHF = CreateObject("HTMLFILE")
			oHF.write objHTTP.responseText
		Loop Until ( CInt(oHF.body.innerHTML) = CInt(in_channel) )
		
		objHTTP.open "GET", BaseCetonUrl & "/get_var?i=0&s=diag&v=Signal_Level", False 
		objHTTP.send 
		Set oHF = CreateObject("HTMLFILE")
		oHF.write objHTTP.responseText
		Signal = CStr(oHF.body.innerHTML)
		objHTTP.open "GET", BaseCetonUrl & "/get_var?i=0&s=diag&v=Signal_SNR", False 
		objHTTP.send 
		Set oHF = CreateObject("HTMLFILE")
		oHF.write objHTTP.responseText		
		SNR = CStr(oHF.body.innerHTML)
		objHTTP.open "GET", BaseCetonUrl & "/get_var?i=0&s=tuner&v=Frequency", False 
		objHTTP.send 
		Set oHF = CreateObject("HTMLFILE")
		oHF.write objHTTP.responseText		
		Frequency = CStr(oHF.body.innerHTML)
		document.write( "<tr><td>" & Signal & "</td><td>" & SNR & "</td><td>" & Frequency & "</td></td>" )
 	End If
	Set objHTTP = Nothing			
End Sub

Set xmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"

xmlDoc.load(CetonChannelXMLUrl)
Dim objDocElem, strNode, strSubNode, xmlnn, xmlnv, xmlnc, xmldd, xmlfd, xmlfv, nodeName, nodeValue
Dim SNR, Signal, Frequency
Dim channel_list, chan
Set channel_list = New ChannelList
Dim i,z

Set objDocElem=xmlDoc.documentElement

Set y = objDocElem.childNodes

 'Declare progressbar and percentage complete
 Dim pb
 Dim percentComplete
 'Setup the initial progress bar
 Set pb = New ProgressBar
 percentComplete = 0
 pb.SetTitle("Step 1 of 5")
 pb.SetText("Parsing Channel Map..")
 pb.Show()

For i=0 to y.length - 1
	If y(i).nodeType <> 3 Then
		if y(i).nodeName = "channel" Then
			xmlnc = xmlnc + 1
			  
			Set chan = New Channel
			z=0
			Do While z < y(i).childNodes.length
				If y(i).childNodes(z).nodeType <> 3 Then

					nodeName = y(i).childNodes(z).nodeName
					nodeValue = y(i).childNodes(z).text
					If nodeName = "frequency" Then
						chan.frequency = CLng(nodeValue)
					ElseIf nodeName = "number" Then
						chan.number = CInt(nodeValue)
					ElseIf nodeName = "modulation" Then
						chan.modulation = CStr(nodeValue)
					End If
								
				End If
			z=z+1
			Loop
			' Skip NTSC Channels as the Ceton can't tune these....
			If chan.modulation <> "NTSC" Then
				channel_list.AddChannel chan
			End If
		End if
	End If
Next

'Locate the Center Frequencies
channel_list.LocateCenterFreqChannels

document.write("<b>Information From Ceton Card at: "&BaseCetonUrl& "</b><br \><br \>")
pb.SetTitle("Step 2 of 5")
pb.SetText("Tuning Smallest Frequency Channels..")
pb.Update(percentComplete)

' Output a Table that shows Signal Level, SNR and Frequency	
document.write( "<table style="&chr(34)&"border=5px solid;display: inline-block; float: left;"&chr(34)&"><caption>Smallest Frequency Table</caption><tr><th>Signal</th><th>SNR</th><th>Frequency</th></tr>")
For i= 1 To channel_list.sizeOfSmallestFreqChannels
	percentComplete=percentComplete+3.3
	pb.Update(percentComplete)
	WriteFrequencyTable channel_list.SmallestFreqChannels(i).number
Next
document.write("</table>")
' Output a Table that shows Smallest Freq Channel numbers
document.write( "<table style="&chr(34)&"border=5px solid;display: inline-block; "&chr(34)&"><caption>Smallest Frequency Table</caption><tr><th>Frequency</th><th>channel#,channel#,...</th></tr>")
For i= 1 To channel_list.sizeOfSmallestFreqChannels
	document.write( "<tr><td>" & channel_list.SmallestFreqChannels(i).frequency & "</td><td>" &_
					channel_list.SmallestFreqChannels(i).CH_numbers & "</td></tr>")
Next
document.write("</table>")

pb.SetTitle("Step 3 of 5")
pb.SetText("Tuning Center Frequency Channels..")
pb.Update(percentComplete)

' Output a Table that shows Signal Level, SNR and Frequency	
document.write( "<table style="&chr(34)&"border=5px solid;display: inline-block;float: left;"&chr(34)&"><caption>Center Frequency Table</caption><tr><th>Signal</th><th>SNR</th><th>Frequency</th></tr>")
For i= 1 To channel_list.sizeOfMiddleFreqChannels
	percentComplete=percentComplete+3.3
	pb.Update(percentComplete)
	WriteFrequencyTable channel_list.MiddleFreqChannels(i).number
Next
document.write("</table>")

' Output a Table that shows CenterFreq Channel numbers
document.write( "<table style="&chr(34)&"border=5px solid;display: inline-block;"&chr(34)&"><caption>Center Frequency Table</caption><tr><th>Frequency</th><th>channel#,channel#,...</th></tr>")
For i= 1 To channel_list.sizeOfMiddleFreqChannels
	document.write( "<tr><td>" & channel_list.MiddleFreqChannels(i).frequency & "</td><td>" &_
					channel_list.MiddleFreqChannels(i).CH_numbers & "</td></tr>")
Next
document.write("</table>")

pb.SetTitle("Step 4 of 5")
pb.SetText("Tuning Largest Frequency Channels..")
pb.Update(percentComplete)

' Output a Table that shows Signal Level, SNR and Frequency	
document.write( "<table style="&chr(34)&"border=5px solid;display: inline-block;float: left;"&chr(34)&"><caption>Largest Frequency Table</caption><tr><th>Signal</th><th>SNR</th><th>Frequency</th></tr>")
For i= 1 To channel_list.sizeOfLargestFreqChannels
	percentComplete=percentComplete+3.3
	pb.Update(percentComplete)
	WriteFrequencyTable channel_list.LargestFreqChannels(i).number
Next
document.write("</table>")

pb.SetTitle("Step 5 of 5")
pb.SetText("Outputting Frequency to Channel Tables..")

pb.Update(percentComplete)	

' Output a Table that shows LargestFreq Channel numbers
document.write( "<table style="&chr(34)&"border=5px solid;display: inline-block;"&chr(34)&"><caption>Largest Frequency Table</caption><tr><th>Frequency</th><th>channel#,channel#,...</th></tr>")
For i= 1 To channel_list.sizeOfLargestFreqChannels
	document.write( "<tr><td>" & channel_list.LargestFreqChannels(i).frequency & "</td><td>" &_
					channel_list.LargestFreqChannels(i).CH_numbers & "</td></tr>")
Next
document.write("</table>")


document.write("<br />Channel List count: " & xmlnc & "<br />")
pb.SetTitle("Step 5 of 5")
pb.SetText("Done")
percentComplete=100
pb.Update(percentComplete)
pb.Close()
</script>
</body>
</html>
Attachments
StatusCapture.PNG
StatusCapture.PNG (7.23 KiB) Viewed 2935 times
SignalCapture.PNG
Last edited by WhatHappend on Tue Sep 11, 2012 6:07 pm, edited 1 time in total.

User avatar
CyberSimian

Posts: 516
Joined: Mon Jun 20, 2011 5:52 pm
Location: Southampton, UK

HTPC Specs: Show details

#18

Post by CyberSimian » Tue Sep 11, 2012 8:08 am

WhatHappend wrote:pb.SetText("Tunning Smallest Frequency Channels..")
pb.SetText("Tunning Center Frequency Channels..")
pb.SetText("Tunning Largest Frequency Channels..")
"Tunning"?

-- from Cyber "I went to a grammar school" Simian in the UK

User avatar
WhatHappend

Posts: 69
Joined: Mon Jun 06, 2011 8:00 pm
Location:

HTPC Specs: Show details

#19

Post by WhatHappend » Sat Sep 15, 2012 6:50 am

FYI - I posted an updated version here: http://experts.windows.com/frms/windows ... spx#554438

maximus4, Did you ever run the script? What were your results?

User avatar
Crash2009

Posts: 4357
Joined: Thu May 17, 2012 12:38 am
Location: Ann Arbor, Michigan

HTPC Specs: Show details

#20

Post by Crash2009 » Sat Nov 29, 2014 4:33 am

WhatHappend wrote:FYI - I posted an updated version here: http://experts.windows.com/frms/windows ... spx#554438

maximus4, Did you ever run the script? What were your results?
you gotta hate that, when that happens. Thanks for the code.

Post Reply