Inno Setup 获取宽字节类型的字符串

因为 Inno Setup 没有提供 PWideChar 类型(Dephi 中有?),而只提供了 PAnsiChar,如果需要接收第三方 dll 返回的宽字节类型(如: C++ 的 wchar_t * 或者 LPWSTR 类型),使用 PAnsiChar 只能接收到第一个字符,如果需要获取完整的字符串内容,就我们需要自己处理。 处理的思路也很简单: 第一步:获取到字符串首字符的地址; 用 Cardinal 类型来接收字符串的首地址,为了方便理解,直接把 Cardinal 定义为 PWideChar 类型,如 第二步:获取字符串的长度; 通过调用 windows 系统 api 中的 lstrlenW() 方法来获取字符串的长度,返回类型也是 Cardinal: 第三步:生成一个长度为上述获取到的字符串长度的字符串变量; 通过 SetLength() 方法,设定字符串变量的长度; 第四步:把获取到的字符串的内容拷贝到这个新的字符串变量中; 通过调用 lstrcpyW() 方法: 实现例子: 这里通过 GetCommandLineW() 方法来测试 参考: How can I dereference a […]

C# 获取硬盘序列号

1.通过访问 Win32_DiskDrive 来获取: 1.1.直接 wmi 的方式: 1.2.通过执行 cmd 命令的方式: 2.通过访问 Win32_PhysicalMedia 来获取: 2.1.直接 wmi 的方式: 2.2.通过执行 cmd 命令的方式: 上述中使用到的 ExecuteCommand() 方法: 参考: https://community.spiceworks.com/topic/671307-retrieving-hard-drive-serial-number-via-wmic https://www.cnblogs.com/tommy-huang/p/10682660.html How To Get The Serial Number Of Hard Drive By C# Get Volume number in c# http://netcode.ru/dotnet/?artID=7284 Get Physical HDD Serial Number without WMI Get Hard Drive Serial Number

cmd 命令结果去除标题内容

如执行命令,才开电脑的硬盘序列号: 结果如下: 现在我不需要字段名 SerialNumber, 只需要在命令后面使用 more 命令: 后面的 “| more +1”, | 类似 Linux 命令的管道,more +1 表示从结果的第几行开始返回。 参考: WMIC output property value without property name more 命令

c# 执行 cmd 命令并获取返回结果

一次性返回结果: 使用: 将结果按行返回: 这里将返回结果按行存放到 list 里; 使用: 参考: https://stackoverflow.com/questions/4084402/get-hard-disk-serial-number https://blog.csdn.net/sinat_25185707/article/details/82467588