将数据写入I / O地址

时间:2011-08-01 13:14:04

标签: delphi io

我有一个设备(现金抽屉),我想直接与设备通信。我知道它的地址为f1。 openbit是01.

据我所知,到目前为止,我需要将1发送到内存地址f1,现金抽屉应该打开。虽然使用asm,但我得到访问冲突。然后我再次读到Windows不允许您直接与设备I / O地址通信(需要使用win)。将数据发送到该地址的正确方法是什么。 请注意,我无法使用驱动程序,因为我无法与我的应用程序内的驱动程序通信。 欧普。系统是win7。

提前致谢!

3 个答案:

答案 0 :(得分:3)

有一个名为inpout32.dll的库允许直接访问端口,你可以在这里找到它

http://logix4u.net/Inpout32.dll_Discussion/write_DELPHI_for_inpout32.dll.html

但我不知道是否支持Windows 7.

答案 1 :(得分:1)

除了上述优秀建议外,请查看this delphi code for writing and reading I/O。我们已经使用GWIOPM来做你要求的事情,但请注意,对于W7等32位版本的Windows是可以的(大多数“免费”驱动程序都是如此)。对于64位Windows,您需要一个签名的内核驱动程序。为此,目前几乎没有可用的东西。我们必须写自己的。

答案 2 :(得分:0)

为什么不能通过应用程序与驱动程序通信?这是第3环应用以安全方式与硬件通信的最佳方式。

但是,如果你真的坚持使用驱动程序,你可以尝试拨打0并直接访问。它比以前的Windows版本(XP和之前版本)要难得多,但它有可能。我没有自己做过,因为我没有Windows 7,但你可以尝试在任何地方的asm编程论坛中提问。