Do you use Bloglines? 
One of my friends recommended instead of my desktop RSS reader. is a great site, where you can know who subscribed the same blog. But I can't subscribe my own site via It is strange that my site is powered by Simple PHP Blog and I can subscribe some blogs used Simple PHP Blog in Bloglines. I tried to use Atom link,, and it worked well. I think it is a bug of

[ 1 comment ] ( 13 views )   |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 2.9 / 646 )
How to get the BIOS serial number under Windows XP 
One customer asked: "I have problem regarding bios, I want to get bios number using WINXP. Once I had found vbio32.dll that only work on 98 but not in XP. Is there any other dll for that?"

You can use MemAccess Library to read the BIOS number from the memory starting from &HFEc71. Following is an example in Visual Basic 6.0.

Private Sub btnGet_Click()
    Dim i As Integer
    Dim nAddress As Integer
    Dim sError As String

    sError = Space(255)
    ' Open the library
    If maOpenLibrary() = False Then
        maGetLastState sError
        MsgBox "Error: " + sError, vbCritical
        Exit Sub
    End If
    Label2.Caption = "BIOS serial number:" & GetBIOSSN()
    ' Close the library
End Sub

' Get the BIOS serial number
Public Function GetBIOSSN() As String
    Dim i As Integer, b As Byte
    Dim s As String
    s = ""
    For i = 1 To 50
        b = maPeekB(V86_To_PhyAddress(&HFEC7, i))
        If b = 0 Then Exit For
        s = s + Chr(b)
    GetBIOSSN = s
End Function

But this BIOS number is not unique for each monther board, and not applied to all BIOS vendors. You'd better use Ernesto De Spirito's algorithm to read BIOS check sum using MemAccess Library.

[ add comment ] ( 18 views )   |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 2.9 / 1415 )
NTPort Library 2.6 is released! 
We release NTPort Library 2.6 today.

Some users reported GetLPTPortAddress function can't find their external parallel ports cards. We supports MosChip/NetMos PCI parallel ports chips, which are used in most PCI parallel ports cards.

We are a Borland Technology Partner (BTP), so we always provide first class support to Borland's development tools. We add Delphi for .NET and C#Builder samples for .NET platform. Java is also supported in this version, and we write a JNI wrapper DLL and JBuilder samples.

PowerBASIC is a popular BASIC compiler. We also include PowerBASIC samples.

A stand-alone driver setup program is designed for the registered users only, which can simplify the deployment process.

A print manual(.pdf) is shipped to meet our users' demand.

FastMode sample is updated. We use QueryPerformanceCounter and QueryPerformanceFrequency to get more precise result.

This version doesn't support Windows x64 (AMD64 and Intel EM64T) version. We add IsWin64 function to detect whether your program are running on Windows x64 system. If you want to support x64, please join our x64 Beta program.

[ add comment ] ( 3 views )   |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 3 / 616 )
How to make the most recent added item visible 
One customer asked, "I am using your listcheckbox and want the most recent added item to remain visible, in other words I want the scroll bar to scroll down one automatically. How can I do This?"

To programmatically scroll your CheckListBox, you can use the TopIndex property. This property determines which entry is the first visible entry in the CheckListBox.

To make the first entry visible at the top of the ListBox, use

CheckListBox1.TopIndex = 0

You can show the last entry. Using code like this

CheckListBox1.TopIndex = CheckListBox1.ListCount - 1

will make the last entry visible, but it will be at the bottom of the ListBox, not the top.

[ 1 comment ] ( 3 views )   |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 3 / 998 )
Join Our Affiliate Program 
Sell our products and get paid immediately!

By promoting our award winning software on your website or your newseletter and earn some money.

By selling our products, your website can quickly be turned into a profitable online business.

Just sign up now and wait for our email (within 24 hours).

[ 1 comment ] ( 11 views )   |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 3 / 755 )
CheckListBox ActiveX version 2.6 SP5 is released 
A maintenance version of CheckListBox, Version 2.6 Service Pack 5, is released.

CheckListBox ActiveX Control provides support for listbox containing checkboxes, which is like the control that is built into Microsoft Word and Excel. In this control, each item's font, color, enabled and checked state can be individually modified. The control also supports 3D look, picture items and custom check mark. This package includes samples written in Visual Basic, Visual Basic .NET, Visual C#, Visual C++, Microsoft Access and Internet Explorer. CheckListBox is also called Check List.

In this version, WordWrap property is implemented. If WordWrap property is set to True, the control will automatically wraps words to the beginning of the next line when necessary. Following is snapshot of WordWrap sample.

FindString and FindStringExact methods are added, so you can easily search items in the listbox.

We also tested Visual Basic .NET, Visual C# and Visual C++ samples in Visual Studio 2005 Beta 2, and modified Prop sample and Color sample to make them compatible with this beta version.

Two small bugs are fixed:
  • Fix the bug that List Box appears without any border if the Appearance property set to claFlat(#10027).
  • Fix the bug that setting ListIndex will cause invalid property array index error in single selection mode(#10028).

    Please download full-feature evaluation version from

    Registered user can download the upgrade version from

    [ 1 comment ] ( 4 views )   |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 3 / 1006 )
    Vbio and Foxpro 
    I received a mail from Alberto O. Compagnucci. He told me his experience on VBIO and FoxPro. I want to share his idea with all our users. His mail is as follows:

    Dear Mr. Hai Li. I must thank you for vbio16.dll and vbio32.dll development, specially vbio16.dll because it is exactly what I was searching since a cop of months. I use Foxpro 2.6 Windows and I guess it is the only one Foxpro Windows (not Visual) 16 bits mode version and it's running in my PC under Windows 98. It runs under Windows 3.1 and Windows 95 too. Here is an example of how to use vbio16.dll with Foxpro 2.6 Windows. If you want, you can add it to others examples published in your Web page.

    Foxpro 2.6 Windows uses foxtools.fll special Foxpro library. It contains many functions but specially provides a special way to use external libraries. It is by using RegFn and CallFn functions. RegFn is to declare a external library function and CallFn executes it.

    Program example.

    SET LIBRARY TO SYS(2004)+"foxtools.fll" ADDITIVE

    **sys(2004) is a Foxpro System Function that provides the complete path to Foxpro directory.
    **ADDITIVE avoid others libraries to be disabled.

    inpuerto=RegFn("inport", "I", "I", "vbio16.dll")

    **This will return an integer to identify this declaration and wil be stored on the user memory variable "inpuerto".
    **"inport" is a vbio16.dll function to read a port.
    **First "I" is the parameter will be passed to the function, in this case it is port address as integer. Port address can be obtained from Windows 98 Pannel Control System Information or using DOS function DEBUG running Windows 98 in DOS mode. Some functions requires more than one parameter and the number of parameters required will be indicated with the same number of I. It is "II" or "III" and so on.
    **Second "I" specifies type of value will return RegFn. In this case it will be an integer. Foxpro will return zero for the first function declared, one for the second and so on; all of them stored at the desired user memory variable.
    **"vbio16.dll" is the library where Foxpro will search for the specified function.
    **You can declare all functions you want and Foxpro will return a handle integer for each one.
    **"Vbio16 function "inportw" can be declared in the same way.

    wpuerto=RegFn("outport", "II","I","vbio16.dll")

    **Same considerations listed for inpuerto but, note that in this case parameters to pass are two integers ("II"). First is port address, second is the byte to be written as integer.
    **"outportw" can be declared in the same way.

    readpuerto=CallFn(inpuerto, port address)

    **This will read a byte form the specified port and will be stored at "readpuerto" user memory variable.

    writepuerto=CallFn(wpuerto, port address, byte to be written as integer)

    **This will return the written byte as integer.


    **This releases all memory variables.

    RELEASE LIBRARY SYS(2004)+"foxtools.fll"

    **This releases "foxtools.fll" from memory.

    Reading about paralell port addresses is recommended.
    For further information about foxtools.fll using refer to an installed Foxpro 2.6; path C:\Fpw26\Goodies \Foxtools\foxtools.wri

    Congratulations Hai for your job. Special regards.

    Alberto O. Compagnucci

    [ 1 comment ] ( 4 views )   |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 2.9 / 107 )
    NTPort Library x64 Edition beta test 
    NTPort Library x64 Edition beta test starts.

    The x64 Edition supports AMD64 and Intel EM64T (IA32e) technology. The AMD Opteron™ processor, the AMD Athlon™ 64 processor, and AMD Turion™ 64 mobile technology comprise the AMD64 family.

    We supports both Windows XP Pro x64 and Windows Server 2003 x64. Under Windows x64 Edition, both 32-bit and 64-bit applications require 64-bit kernel drivers to access hardware devices. So even you are using 32-bit applications with NTPort Library, you still need x64 driver.

    In this beta version, fast mode is not supported yet. Because we use some undocumented kernel APIs in fast mode, and they are removed in Windows x64 Edition, so the fast mode is disabled in this beta test.

    If you are registered users of NTPort Library and interest in this beta test, please feel free to contact us.

    [ add comment ] ( 9 views )   |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 2.8 / 125 )

    Back Next