[snap] GRIP调用API

[复制链接]
梅雷工具箱发表于 2015-6-25 10:36:42 | 显示全部楼层 |阅读模式
GRIP调用API


以下grip代码


number / nnm(3)
string / str(32),f(132)
nnm(1)=2
f='C:\UF_XLH\Debug\UF_XLH.dll' $$ UF_XLH.dll文件路径不能含空格和中文
grargs / str,nnm
xspawn / ufun,f,iferr,LMM0:
IF/nnm(1)==2,JUMP/LMM0:
JUMP/LMM1:
LMM0:
messg/'UF_XLH.dll文件丢失。'
HALT
LMM1:
ifthen/lenf(str)<8
messg/'错误的序列号'
halt
endif

PRINT/'C盘序列号:'+str

halt



以下api代码



#include <Windows.h>

//获取硬盘序号, 硬盘序号由8个十六进制数字组成 转成十六进制最大值为10位 [FFFFFFFF=4294967295]
    LPTSTR namebuf=new char[12];
DWORD namesize=12;
DWORD serialnumber;
DWORD maxlen;
DWORD fileflag;
LPTSTR sysnamebuf=new char[10];
DWORD sysnamesize=10;






/* TODO: Add your application code here */


  char buffer[32]="";  
                double pick_ga[3];    //数组
                UF_args_t grip_arg_list[2];
                grip_arg_list[0].type    = UF_TYPE_CHAR;        //字符串类型  【UF_TYPE_CHAR_ARRAY;字符串数组类型】
        grip_arg_list[0].length  = 0;   
                grip_arg_list[0].address = buffer;
                grip_arg_list[1].type   = UF_TYPE_DOUBLE_ARRAY; //数组类型
        grip_arg_list[1].length = 3;                    //数组个数;如果不是数组,值=0就行
                grip_arg_list[1].address = pick_ga;
       
/* GRIP 向 API 返回参数 */
int error_status=UF_ask_grip_args(2,grip_arg_list);
if (pick_ga[0]==2)
{
::GetVolumeInformation("c:\\",namebuf,namesize,&serialnumber,&maxlen,&fileflag,sysnamebuf,sysnamesize);
  //cout<< "十进制:" << serialnumber <<endl;      
// cout<< "十六进制:" << hex << serialnumber<<endl;   //16进制输出
   _itoa( serialnumber, buffer, 16 );   // DWORD 转换成 char //头文件 #include <stdlib.h>  
// buffer为 获得的 C盘序列号

pick_ga[0]=1;

/* API 向GRIP 返回参数 */
UF_set_grip_args(2,grip_arg_list);
}

        /* Terminate the API environment */






_____________________________________________________________________________ _

中磊UG二次开发教程 梅雷著 qq1821117007
学UG就上UG网 http://www.9sug.com/


       
就上UG网淘宝直营店
您需要登录后才可以回帖 登录 | 注册UG网 用百度帐号登录

本版积分规则