On PC priter port will have Base Address 378Hex or 278Hex it is an output port in SPP mode.
There are 2 more ports Status port at address Base + 1 and a control port at Adrress Base + 2.
I would select the output port at 378H (or 278H) for this purpose.
In VB there is no command to directly access Ports.
The solution is to use a DLL file (freely availible) INPOUT.DLL. This file is to be present in the current program folder or windows\command folder. This file supports two input and output commands. for output the syntax is:
Out (&H378), &H0D
&H378 is the port address 378Hex and &H0D is the value 0D Hex that is sent to the port address 378H.
for reading the current status of this port the syntax is:
a = Inp(&H378)
a is a variable that holds the value read (Inputed) from port address 378Hex.
Using this DLL file and these two commands you can read or write to the output port.
As you need only one output line say you are using bit 0 of the output port this has pin number 2 on the 25 pin Female D-type shell connector (you can even read the number on the connector or start counting from right hand side )
to make the pin high the command could look like:
Out (&H378), 1 or Out (&H278), 1
the output value here is in decimal so '&H' not used.
to make it low the command could look like:
Out (&H378), 0 or Out (&H278), 0
The two port addresses are shown because the port address could differ tha you can find from device manager or otherwise.
Now for timeing putpose, you would like to generate a delay for the time it is to remain HIGH and another delay for the time for which it has to remain LOW. This will allow you to generate a pulse train of desired frequency at pin 2 of the Printer port D-type shell connector.
For this purpose you can use VB timer control.
Hope this suffices and serve your purpose.