100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 获取电脑上连接的USB打印机

获取电脑上连接的USB打印机

时间:2020-02-14 04:52:49

相关推荐

获取电脑上连接的USB打印机

原理:通过强大的WMI,用Win32_PnPEntit 即插即用的管理机制来搜索

function RewiseUSBPrint(): String;

var

i: integer;

Locator: OleVariant;

WMI: OleVariant;

RET: OleVariant;

Enum: IEnumVariant;

Tmp: OleVariant;

Value: Cardinal;

begin

try

Result := '';

i:=0;

Locator := CreateOleObject('WbemScripting.SWbemLocator');

WMI := Locator.ConnectServer('.', '', '', '');

Ret := WMI.ExecQuery('SELECT * FROM Win32_PnPEntity');

Enum:= IUnknown(RET._NewEnum) as IEnumVariant;

while (Enum.Next(1, Tmp, Value) = S_OK) do

begin

if Pos('USBPRINT', Tmp.DeviceID) > 0 then //USBPRINT

begin

Result := Result + Tmp.PNPDeviceID+'\';

Inc(i);

end;

end;

Result := StringReplace(Result, 'USBPRINT\', '', [rfReplaceAll]) + '--&gt'+IntToStr(i);

except on e:exception do

Result := 'RewiseUSBPrint Error??'+e.Message;

end;

end;

调用结果,本电脑连接了两台打印机:JOLIMARKCJ-222D\8&FEE0C07&0&USB002\UNKNOWNPRINTER\8&3B5B3219&0&USB004\--&gt2

来自 “ ITPUB博客 ” ,链接:/166523/viewspace-1166232/,如需转载,请注明出处,否则将追究法律责任。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。