谁有DELPHI中对USB口进行操作的那个usb.pas文件? 谁有DELPHI中对USB口进行操作的那个usb.pas文件?请转发给我,,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也要UP[email protected] unit USB;(**********************************)(* usb.pas *)(* *)(* *)(* nach USB.C von *)(* Kai-Uwe Mrkor / c't *)(* Delphi-version v. A.Stiller *)(* (C) 2002 *)(* www.heise.de/ct *)(**********************************)interface Function USBOpenDriver:boolean; Function USBCloseDriver:boolean; Function USBWritePort(Port:Word; Value:Byte):boolean; Function USBReadPort(Port:Word; Var Value:Byte):boolean;implementationuses Windows;const COMPULAB_IOCTL= 4;(* alle Funktionen liefern im Fehlerfalle FALSE, bei Erfolg einen Wert ungleich 0 *)(* Handle auf Ger鋞eTreiber *)const hgDriver:Thandle = INVALID_HANDLE_VALUE;(**********************)(* USB-Treiber 鰂fnen *)(**********************)Function USBOpenDriver:boolean;begin // Ger鋞etreiber mit passenden Dateinamen 鰂fnen hgDriver:= CreateFile('\\.\CompuLABusb_0',GENERIC_WRITE or GENERIC_READ, FILE_SHARE_WRITE or FILE_SHARE_READ, NIL, OPEN_EXISTING, 0, 0); USBOpenDriver:= hgDriver <> INVALID_HANDLE_VALUEend;(*************************)(* USB-Treiber schlie遝n *)(*************************)Function USBCloseDriver:boolean;begin USBCloseDriver := CloseHandle(hgDriver); hgDriver := INVALID_HANDLE_VALUE;end;(****************************)(* Port setzen *)(* *)(* Port: Ausgabeport (0,1) *)(* Wert: auszugebender Wert *)(****************************)Function USBWritePort(Port:Word; Value:Byte):boolean;var command, inDummy, count:longword;begin (* Befehl f黵 Treiber berechnen: *) (* 21: Port setzen *) command := (Longword(Value) shl 16) + Port * 256 + 21; inDummy := 0; (* Ausgabe *) USBWritePort := DeviceIoControl(hgDriver, COMPULAB_IOCTL, @command, sizeof(command), @inDummy, sizeof(inDummy), count, NIL);end;(****************************)(* Port auslesen *)(* *)(* Port: Einleseport (0,1) *)(* Wert: eingelesener Wert *)(****************************)Function USBReadPort(Port:Word; Var Value:Byte):boolean;var command, count:longword;var inBytes:word;begin (* Befehl f黵 den Treiber berechnen *) (* 20: Port auslesen *) command := 20 + Port*256; USBReadPort := DeviceIoControl(hgDriver, COMPULAB_IOCTL, @command, sizeof(command), @inBytes, sizeof(inBytes), count, NIL); Value:= hi(inBytes);end;end. delphi 6 运行问题 文件夹内所有文件下载问题,如果解决 关于DBChart的问题,在线等待,急急急急急急急急急急急急急急!!!!!!!! 急!! 高分求助! 一个MDI问题 如何让焦点载第一个单元格上? 为什么我用IEhelper,地址栏会被3721抢先拦截了? 想要选出表中某字段排行前十位的行,用select如何实现? Delphi新手请教一个关于字符串的问题。 如何自定义线程数并同步?急!急! 怎样在程序里给生成的html页面中的输入框赋值? 有没有使用以下代码恢复数据库的?那备份呢? 偶要真的可以实现的!
UP
[email protected]
(**********************************)
(* usb.pas *)
(* *)
(* *)
(* nach USB.C von *)
(* Kai-Uwe Mrkor / c't *)
(* Delphi-version v. A.Stiller *)
(* (C) 2002 *)
(* www.heise.de/ct *)
(**********************************)
interface
Function USBOpenDriver:boolean;
Function USBCloseDriver:boolean;
Function USBWritePort(Port:Word; Value:Byte):boolean;
Function USBReadPort(Port:Word; Var Value:Byte):boolean;implementation
uses Windows;const COMPULAB_IOCTL= 4;
(* alle Funktionen liefern im Fehlerfalle FALSE, bei Erfolg einen Wert ungleich 0 *)(* Handle auf Ger鋞eTreiber *)
const hgDriver:Thandle = INVALID_HANDLE_VALUE;
(**********************)
(* USB-Treiber 鰂fnen *)
(**********************)
Function USBOpenDriver:boolean;
begin
// Ger鋞etreiber mit passenden Dateinamen 鰂fnen
hgDriver:= CreateFile('\\.\CompuLABusb_0',GENERIC_WRITE or GENERIC_READ,
FILE_SHARE_WRITE or FILE_SHARE_READ, NIL, OPEN_EXISTING, 0, 0);
USBOpenDriver:= hgDriver <> INVALID_HANDLE_VALUE
end;(*************************)
(* USB-Treiber schlie遝n *)
(*************************)Function USBCloseDriver:boolean;
begin
USBCloseDriver := CloseHandle(hgDriver);
hgDriver := INVALID_HANDLE_VALUE;
end;(****************************)
(* Port setzen *)
(* *)
(* Port: Ausgabeport (0,1) *)
(* Wert: auszugebender Wert *)
(****************************)Function USBWritePort(Port:Word; Value:Byte):boolean;var command, inDummy, count:longword;begin
(* Befehl f黵 Treiber berechnen: *)
(* 21: Port setzen *)
command := (Longword(Value) shl 16) + Port * 256 + 21;
inDummy := 0; (* Ausgabe *)
USBWritePort := DeviceIoControl(hgDriver,
COMPULAB_IOCTL,
@command,
sizeof(command),
@inDummy,
sizeof(inDummy),
count,
NIL);end;
(****************************)
(* Port auslesen *)
(* *)
(* Port: Einleseport (0,1) *)
(* Wert: eingelesener Wert *)
(****************************)
Function USBReadPort(Port:Word; Var Value:Byte):boolean;
var command, count:longword;
var inBytes:word;
begin
(* Befehl f黵 den Treiber berechnen *)
(* 20: Port auslesen *)
command := 20 + Port*256; USBReadPort := DeviceIoControl(hgDriver,
COMPULAB_IOCTL,
@command,
sizeof(command),
@inBytes,
sizeof(inBytes),
count,
NIL);
Value:= hi(inBytes);end;end.