DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: jeff1314
今日帖子: 10
在线用户: 13
导航: 论坛 -> 发布代码 斑竹:liumazi,ruralboy  
作者:
男 hsj (hsj) ★☆☆☆☆ -
盒子活跃会员
2017/9/7 10:30:26
标题:
fortran获取硬盘序列号/cpu/mac/ip/显卡/主板等硬件信息 浏览:2405
加入我的收藏
楼主: 以前写了个获取硬盘序列号的dll,delphi7开发,前几天碰到个朋友想在fortran上用,就研究了下,开发包可以到http://www.dxmylove.com/download/jyharddisk.zip下载,这里是fortran的代码
program FortranDemo

    Use Kernel32
    
         Implicit None 
         
         Interface
         
          SUBROUTINE GetDiskSerialNumber1(drive,  pout,  poutsize)
          !DEC$ ATTRIBUTES STDCALL :: GetDiskSerialNumber1
         !DEC$ ATTRIBUTES Alias:'GetDiskSerialNumber1':: GetDiskSerialNumber1
          !DEC$ ATTRIBUTES REFERENCE:: pout,  poutsize
          INTEGER :: poutsize
          CHARACTER(len=1) :: drive
          CHARACTER :: pout(*)
          End SUBROUTINE
          SUBROUTINE DoReg(user,userlen,regid,regidlen)
          !DEC$ ATTRIBUTES STDCALL :: DoReg
         !DEC$ ATTRIBUTES Alias:'DoReg':: DoReg
          !DEC$ ATTRIBUTES REFERENCE:: pout,  poutsize
          INTEGER :: userlen,regidlen          
          CHARACTER :: user(*),regid(*)
          End SUBROUTINE
       
         End Interface
          
         CHARACTER(len=20)  dllname
         Logical RetLog
         INTEGER poutsize
         CHARACTER  drive
         CHARACTER :: pout(100)
         CHARACTER(len=100) :: user
         CHARACTER(len=300) :: regid
         INTEGER userlen,regidlen
         Pointer (fGetDiskSerialNumber1, GetDiskSerialNumber1)
         Pointer (fDoReg, DoReg)
          !32位下INTEGER(4),64位下INTEGER(8)
         !INTEGER(4) hLib
         !DEC$ IF DEFINED (_X86_)          
          INTEGER(4) hLib
          dllname="jydisk.DLL"C
          print *,'win32'
         !DEC$ ELSE          
          INTEGER(8) hLib
          dllname="jydisk64.DLL"C
          print *,'win64 '
         !DEC$ ENDIF         
         
         hLib = LoadLibrary(dllname)

         fDoReg = GetProcAddress(hLib, 'DoReg'C)
     print *,'DoReg= ',fDoReg
         
         fGetDiskSerialNumber1 = GetProcAddress(hLib, 'GetDiskSerialNumber1'C)         
     print *,'GetDiskSerialNumber1= ',fGetDiskSerialNumber1
     
         user="171833017@qq.com"
         regid="telme"
         userlen=len(trim(user))
         regidlen=len(trim(regid))
         call DoReg(user,userlen, regid,regidlen)
         
         drive="c"
         PRINT *, 'in= ',drive
         call GetDiskSerialNumber1(drive, pout,poutsize)
     !print *,'RetLog= ',Retlog

     PRINT *, 'OUTPUT(1)= ',poutsize
         PRINT *, 'OUTPUT(2)= ',pout

         RetLog = FreeLibrary(hLib)


    end program FortranDemo
----------------------------------------------
qq:171833017,靖源软件http://www.dxmylove.com
作者:
男 a88888 (德玛西亚) ▲▲▲△△ -
普通会员
2017/9/7 15:40:15
1楼: 像这种调用DLL获取的很容易被HOOK修改吧,始终觉得不安全
----------------------------------------------
-
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2017/9/9 11:33:53
2楼: 您能够升级到Delphixe以上版本吗?





1、《Delphi XE6 android 编程入门教程》实体出版书和光盘,
最后59本(所有demo升级到最新版本),还有需要的兄弟吗?
原价包邮
https://item.taobao.com/item.htm?id=547695051986

2、Delphi界面设计集合,今天推广特惠,欢迎购买。
推广优惠:https://item.taobao.com/item.htm?id=522707335329 ;

详情:http://blog.163.com/you888@188/blog/static/6723961920159271412582/
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
女 google220 (google220) ★☆☆☆☆ -
普通会员
2017/9/11 19:24:54
3楼: 不是有现成的控件?
----------------------------------------------
菩提本无树,明镜亦非台,本来无一物,何处惹尘埃
作者:
男 hsj (hsj) ★☆☆☆☆ -
盒子活跃会员
2017/9/12 8:57:49
4楼: 代码本身就支持,win64版本的就是基于xe5编译的
----------------------------------------------
qq:171833017,靖源软件http://www.dxmylove.com
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS