Delphi7控制HT660传输文件

    供应商给的HT660开发包中,提供了.net的相关文件传输类库。由于我的管理系统是用Delphi7开发的。需要的是原生的文件传输控制API。

    Windows提供了RAPI库,实际可以控制HT660的文件传输。

    举例如下:

    function THT660Comm.CopyFileFromDevice(strHTFilename,
  strPCFilename: string; bExistFile: Boolean): Boolean;
var
  fFile, fPCFile: THandle;
  bstr: PWideChar;
  cTemp: array[1..BUFFER_SIZE] of Char;
  nNumberOfBytesToRead: DWORD;
  //lpNumberOfBytesRead: PDWORD;
begin
  if not FConnected then
  begin
    Result := False;
    Exit;
  end;
  GetMem(bstr, Length(strHTFilename) * 2 + 2);
  SetThreadLocale(LOCALE_SYSTEM_DEFAULT);
  StringToWideChar(strHTFilename, bstr, Length(strHTFilename) * 2 + 2);
  fFile := CeCreateFile(bstr, GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  FreeMem(bstr);
  if fFile = INVALID_HANDLE_VALUE then
  begin
    Result := False;
    Exit;
  end;
  nNumberOfBytesToRead := BUFFER_SIZE;
  if not bExistFile then
  begin
    if FileExists(strPCFilename) then
    begin
      Result := False;
      Exit;
    end;

  end;
  fPCFile := CreateFile(PChar(strPCFilename), GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
  if fPCFile = INVALID_HANDLE_VALUE then
  begin
    Result := False;
    Exit;
  end;
  while CeReadFile(fFile, @cTemp[1], nNumberOfBytesToRead, @nNumberOfBytesToRead, nil) and (nNumberOfBytesToRead > 0) do
  begin
    WriteFile(fPCFile, cTemp, nNumberOfBytesToRead, nNumberOfBytesToRead, nil);
    ZeroMemory(@cTemp[1], BUFFER_SIZE);
  end;
  CeCloseHandle(fFile);
  CloseHandle(fPCFile);
  Result := True;
end;

一些Delphi7的例子,包含下面内容:(高手就别看了,新手可看看,也是好多年没做了,又要做个小东西,练手做的例子) 有的是本人练习做的,少数是下载别人的或修改过的,也有1个似乎是明日科技的配套代码-此处没有删除,懒得删除直接打包了。 用这些分,只是用来备用下载其他东西而用,你觉得不值得,你留言分退给你(我来也不是常来这里),我认为是值得的。 还有一些其他的清单没罗列出来 如数据库表结构找不到,根据名字找这个文件名:EquipmentSQL_20170528_ok, 如果没就是没有了,因为一个连接服务器,一个是本机上的练习数据库,如没有请见谅 大致类型: cxGrid的几个例子、ini连接数据库、明日科技配套代码(文件上传下载)、 时间差相减(可参考Delphi函数里面的综合运用)、基本控件应用 cxGrid查找功能 cxGrid的列属性 cxGrid应用交流实例一_ok eg_Add_cbbValue_IntoMemo_test_20170401 eg_Check_Checkbox_Change eg_counter eg_cxGrid_Right_2 eg_cxGrid_Right_更细权限的bit值到表中 eg_cxGrid_SumRecord_1 eg_DCom_connection_20170606 eg_ImportToSQL eg_LoadRecord_Improve_Original eg_LoadRZCheckTree_1 eg_LoadRZCheckTree_连带设置_2 eg_LoadRZCheckTree_双击用户设置_del eg_LoadTree_1 eg_ReadIni_独立数据模块 eg_test_ImportExcelToSQL_ComOBJ_2 eg_update_bit_20170528 eg_报废时间月日格式只有1位时问题_20170609 eg_测试某列的条件改变另外列的Edit属性(cxGrid的例子) eg_对BoolToStr后的值进行再次转换_最后循环取bit值 eg_时间差计算_2 FileMS(明日科技的配套代码,关于文件上传下载的那个) EquipmentSQL_20170528_ok(如没数据库的,在这里查表结构,有的表结构不在这里,只能参考一下了)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值