相关疑难解决方法(0)

如何列出物理磁盘?

如何在Windows中列出物理磁盘?为了获得"\\\\.\PhysicalDrive0"可用的列表.

c windows winapi hard-drive

70
推荐指数
9
解决办法
16万
查看次数

如何使用CreateFile访问物理磁盘?

我在Lazarus编程论坛上询问如何打开物理磁盘.我想允许用户在单击"选择磁盘"按钮时从系统中选择物理磁盘.Stack Overflow中有一些类似但不完全相同的示例(例如Delphi - 使用DeviceIoControl传递IOCTL_DISK_GET_LENGTH_INFO来获取闪存介质的物理大小(非分区)).

有很多C和C++使用的例子CreateFile(在文档中,特别是调用的例子DeviceIoControl)但我找不到任何Free Pascal或Delphi,我还不够好,我还没有找到如何做到这一点.

任何人都可以指向我解释它的链接的方向或更好仍然是用Delphi或Free Pascal编写的实际示例?任何人都可以帮我理解如何使用它吗?

delphi freepascal lazarus fpc

4
推荐指数
1
解决办法
6421
查看次数

使用SetupDiGetClassDevs在Delphi中进行串行端口枚举

我正在尝试枚举COM端口的"友好名称".随着USB串行设备在运行时连接和断开,端口可能会动态变化.

基于此问题中描述的可能方法,我尝试使用SetupDiGetClassDevs方法.

我找到了这个示例代码,但它是为旧版本的setupapi单元编写的(homepages.borland.com的原始链接当然不起作用).

我尝试使用当前JVCL(JVCL340CompleteJCL221-Build3845)中的setupapi单元,但它似乎与Delphi 7不兼容.我收到编译器错误:

if SetupDiGetDeviceRegistryProperty(DevInfoHandle,DeviceInfoData,
    RegProperty,
    @PropertyRegDataType,
    @S1[1],RequiredSize,@RequiredSize) then begin
Run Code Online (Sandbox Code Playgroud)

在函数SetupDiGetDeviceRegistryProperty的调用中,我在参数@PropertyRegDataType@RequiredSize上得到错误"实际和形式参数的类型必须相同" .

Delphi3000站点说该代码是在2004年编写的,适用于Delphi 7,所以我不知道为什么它现在不适用于Delphi 7,除非setupapi已经改变.是否有人熟悉setupapi可能导致这些问题的更改?

我正在测试一个简单的控制台程序.uses语句是"windows,sysutils,classes,setupAPI,Registry;"

主要计划是:

  begin
  ComPortStringList := SetupEnumAvailableComPorts;
  for Index := 0 to ComPortStringList.Count - 1 do
      writeln(ComPortStringList[Index]);
  end;
  end.
Run Code Online (Sandbox Code Playgroud)

delphi serial-port enumerate

3
推荐指数
2
解决办法
1万
查看次数

标签 统计

delphi ×2

c ×1

enumerate ×1

fpc ×1

freepascal ×1

hard-drive ×1

lazarus ×1

serial-port ×1

winapi ×1

windows ×1