Measuring specular surfaces is of importance in both scientific and industrial applications. In this paper, we present a structured light method to measure the shapes of specular surfaces with one-shot projection. This method projects a pattern of laser rays onto the specular surface. By intercepting the reflection of a projected laser pattern twice, two points of each reflected ray are obtained. Then each reflected ray is determined with an analytical solution. Further, the interception points of the projected pattern on the specular surface are obtained with the analytical solutions of the intersections between the incident rays and the reflected rays. Due to the smoothness of the specular surface, the finer surface with higher resolution can thus be reconstructed by polynomial interpolation based on these reconstructed points. To increase the measurement accuracy, we propose a pattern registration method to eliminate the noise and radial lens distortion by decreasing the degree of freedom of the projected rays to one during system calibration. Experimental results showed that this structured light method with pattern registration could achieve the femtometre measurement accuracy.