hi chinsoon,
You say you are using pin #1 as the signal and pin #25 as gnd.
Pin#1 is internally hardware inverted, so if your PC program sets it low there will be about +3v on pin #1.
[ after the PC power up initialise state pin #1 is high approx +3v.]
There are also internal pullup resistors on most of the port pins.
The diodes are not necessary, connect a 10K resistor from the transistor base to gnd,
leave the series 4K7 resistor connected as shown.
If you are using Win XP, you will most likely need the inpout32.dll in your windows/system directory,
else you will not be able to control the parallel port.
Eric