易语言u盘操作源代码
系统结构:取逻辑驱动器属性,填写设备描述符,根据设备信息判断是否是u盘,新窗口进程,取出u盘,取出u盘独立性,用换行符连接多段文字,打开USB设备信息,取出下一个u盘,关闭USB设备信息,填写硬件信息,取u盘盘符列表,取u盘盘符个数,取u盘驱动器个数,按安全取出u盘。安全移除u盘的独立性,强制移除u盘,禁用u盘存储设备服务,将u盘设置为只读,注册USB设备更改事件,注销USB设备更改事件,取硬件信息_i,取硬件信息_t,关闭句柄,取线程退出代码,等待事件对象,取兼容文本,取移除策略文本,取设备安装状态文本,取设备类型文本,取LegacyBusType文本,dll _ getlasterror,dll _ loadlibrary,dll _ freelibrary, dll _ deviceiocontrol,dll _ createfile,dll _ closehandle,dll _ getdrivetype,dll_SetupDiGetClassDevs,DLL _ SetupDiEnumDeviceInfo,DLL _ SetupDiGetDeviceRegistryProperty,DLL _ SetupDiGetDeviceRegistryProperty _ text,DLL _ SetupDiDestroyDeviceInfoList,DLL_CM_Request_Device_Eject,DLL _ SetupDiSetClassInstallParams,DLL_SetupDiCallClassInstaller,DLL
= = = = = Assembly1
||
||| -启动子程序。
||
|||-_临时子程序
||
||
= = = = =功能汇编
||
| | |-获取逻辑驱动器属性。
||
| | |-填写设备描述符。
||
||| -根据设备信息判断u盘是否可用。
||
| | |-新窗口进程
||
| | |-取出u盘。
||
||| -移除u盘独立。
||
| | |-用换行符连接多个文本段落。
||
||
= = = = = = _接口组装
||
| | |-打开USB设备信息。
||
| | |-移除USB闪存驱动器。
||
| | |-关闭USB设备的信息。
||
| | |-填写硬件信息
||
||| -是u盘的盘符。
||
||| -取u盘的字母列表。
||
||| -取u盘上的字母数。
||
| | |-以u盘数量为例。
||
|| -安全部门移除了USB闪存驱动器。
||
||| - || -安全删除USB闪存驱动器的独立性。
||
| | |-强制移除USB闪存驱动器
||
| | |-禁用USB存储设备服务。
||
| | |-将USB闪存驱动器设置为只读。
||
| | |-注册USB设备更改事件。
||
| | |-注销USB设备更改事件。
||
| | |-获取硬件信息_i
||
| | |-获取硬件信息_t
||
| | |-关闭把手。
||
| | |-获取线程退出代码。
||
| | |-等待事件对象
||
| | |-获取兼容文本。
||
| | |-获取删除策略的文本。
||
| | |-获取设备安装状态的文本。
||
| | |-获取设备类型的文本。
||
| | |-获取LegacyBusType文本。
||
||
= = = = =调用了Dll
||
|| - [dll] - DLL_GetLastError
||
|| - [dll] - DLL_LoadLibrary
||
|| - [dll] - DLL_FreeLibrary
||
|| - [dll] - DLL_DeviceIoControl
||
|| - [dll] - DLL_CreateFile
||
|| - [dll] - DLL_CloseHandle
||
|| - [dll] - DLL_GetDriveType
||
| |-[DLL]-DLL _ SetupDiGetClassDevs
||
| |-[DLL]-DLL _ SetupDiEnumDeviceInfo
||
| |-[DLL]-DLL _ SetupDiGetDeviceRegistryProperty
||
| |-[DLL]-DLL _ SetupDiGetDeviceRegistryProperty _ text
||
| |-[DLL]-DLL _ SetupDiDestroyDeviceInfoList
||
| |-[DLL]-DLL _ CM _ Request _ Device _ Eject
||
| |-[DLL]-DLL _ SetupDiSetClassInstallParams
||
| |-[DLL]-DLL _ SetupDiCallClassInstaller
||
| |-[DLL]-DLL _ SetupDiEnumDeviceInterfaces
||
| |-[DLL]-DLL _ SetupDiGetDeviceInterfaceDetail
||
| |-[DLL]-DLL _ GetVolumeNameForVolumeMountPoint
||
|| - [dll] - DLL_CallWindowProc
||
|| - [dll] - DLL_SetWindowLong
||
| |-[DLL]-DLL _ WaitForSingleObject
||
|| - [dll] - DLL_CreateThread
||
|| - [dll] - DLL_GetExitCodeThread
= = = = =窗户装配1
||
| | |-button _ Take U disks _被点击的次数。
||
||| -按钮_获取u盘的盘符列表_被点击。
||
||| - button _取u盘字母数_ Click。
||
| | |-从掩码中取出驱动器号。
||
|||-U盘插入事件处理
||
|||-U盘弹出事件处理
||
||| - button _ registered USB闪存驱动器插入和删除事件_ clicked。
||
| | |-button _ Unregisteru盘插入和删除事件_ clicked。
||
||| - button _弹出u盘的方法1_ Click。
||
||| - button _弹出u盘的方法2_ Click。
||
||| - button _弹出u盘的方法3_ Click。
||
||| - button _弹出u盘的方法4_ Click
||
| | |-线程等待
||
|||-_ _开始窗口_已创建。
||
|||-_ _ Start window _将被销毁。
||
|||-_ _ button _ Enumerate U disk _被点击。
||
|||-_ button _ details _ clicked
||
| | |-格式化硬件信息
||
| | |-格式字节集
调用的DLL命令:
。DLL命令DLL_GetLastError,整数类型," Kernel32.dll "," GetLastError "
。DLL命令DLL_LoadLibrary,整数类型," Kernel32.dll "," LoadLibraryA "
。参数文件名,文本类型
。DLL命令DLL_FreeLibrary,逻辑类型,“Kernel32.dll”,“FreeLibrary”
参数模块句柄,整数类型
。DLL命令DLL_DeviceIoControl,逻辑类型,“Kernel32.dll”,“DeviceIoControl”
参数integration _ handle,整数类型
参数integration _ control code,整型
参数参数Set _ Input Buffer指针,整型
参数integration _ Input buffer size,整型
参数参数set _ output buffer指针,整型
参数integration _ output buffer size,整数类型
参数integration _返回字节数,整数类型,地址。
参数integration _ overlapping指针,整型
。DLL命令DLL_CreateFile,整数类型," Kernel32.dll "," CreateFileA "
参数lpFileName,文本类型。
参数dwDesiredAccess,整数类型。
参数dwShareMode,整数类型
lpSecurityAttributes参数,整数类型。
。参数dwCreationDisposition,整数类型。
。参数dwFlagsAndAttributes,整数。
。参数hTemplateFile,整数类型。
。DLL命令DLL_CloseHandle,逻辑类型,“Kernel32.dll”,“CloseHandle”
。参数句柄,整数类型
。DLL命令DLL_GetDriveType,整数类型," Kernel32.dll "," GetDriveTypeA "
参数lpRootPathName,文本类型。
。DLL命令DLL_SetupDiGetClassDevs,整数类型," setupapi.dll "," setupdigetclassdevsa "
参数ClassGuid,字节集,,指向Guid的缓冲区。
参数枚举器,文本类型
。参数hwndParent,整数类型。
参数标志,整数类型
。DLL命令DLL_SetupDiEnumDeviceInfo,逻辑类型," setupapi.dll "," SetupDiEnumDeviceInfo "
参数hDeviceInfoSet,整数类型,,设备信息句柄。
。参数MemberIndex,integer,,Index。
参数deviceinfoodata,_设备信息数据,,_设备信息数据
。DLL命令dll _ setupdigetdeviceregistry属性,逻辑类型," setupapi.dll "," setupdigetdeviceregistry属性a "
参数hDeviceInfoSet,整数类型
。参数deviceinfoodata,_设备信息数据
参数属性,整数类型。
。参数PropertyRegDataType,整数类型。
参数PropertyBuffer,整数类型。
参数PropertyBufferSize,整数类型。
参数需要大小,整数类型,地址。
。DLL命令dll _ setupdigetdeviceregistry属性_ text,逻辑类型," setupapi.dll "," setupdigetdeviceregistry属性a "
参数hDeviceInfoSet,整数类型
。参数deviceinfoodata,_设备信息数据
参数属性,整数类型。
。参数PropertyRegDataType,整数类型。
参数PropertyBuffer,文本类型。
参数PropertyBufferSize,整数类型。
参数需要大小,整数类型,地址。
。DLL命令DLL _ setupdidesteroydeviceinfolist,逻辑类型," setupapi.dll "," setupdidesteroydeviceinfolist "
参数hDeviceInfoSet,整数类型
。DLL命令DLL_CM_Request_Device_Eject,整数类型,“setupapi.dll”,“CM_Request_Device_Eject”。
参数dnDevInst,整数类型
参数pVetoType,整数类型,地址
参数pszVetoName,文本类型
参数尺骨长度,整数类型
参数ulFlags,整数类型。
。DLL命令DLL _ setupdiskclassinstallparams、" setupapi.dll "、" setupdiskclassinstallparamsa "
参数hDeviceInfoSet,整数类型
参数DeviceInfoData,,,是可选的。
参数ClassInstallParams,,,可选。
。参数ClassInstallParamsSize
。DLL命令dll _ setupdicallclassinstaller," setupapi.dll "," setupdicallclassinstaller "
。参数安装函数
。参数DeviceInfoSet
参数DeviceInfoData,,,是可选的。
。DLL命令DLL _ setupdienumdeviceinterfaces,逻辑类型," setupapi.dll "," setupdienumdeviceinterfaces "
参数hDeviceInfoSet,整数类型
参数DeviceInfoData,整数类型。
。参数InterfaceClassGuid,字节集
参数MemberIndex,整数类型。
。参数DeviceInterfaceData,整数类型
。DLL命令DLL _ setupdigetdeviceInterfaceDetail,逻辑类型," setupapi。dll "," setupdigetdeviceInterfaceDetail "
参数hDeviceInfoSet,整数类型
。参数DeviceInterfaceData,整数类型
。参数DeviceInterfaceDetailData,整数类型。
。参数DeviceInterfaceDetailDataSize,整数类型。
参数需要大小,整数类型,地址。
参数DeviceInfoData,整数类型。
。DLL命令DLL _ getvolumenameforvolumemount point,逻辑类型," kernel32.dll "," getvolumenameforvolumemount point ",,w2kxp。
参数lpszVolumeMountPoint,文本类型。
参数lpszVolumeName,文本类型,,预先分配内存空间一般为51
。参数cchBufferLength,整数类型,,51。
。DLL命令DLL_CallWindowProc,整数类型,“user32.dll”,“CallWindowProcA”
参数过程,子程序指针
。参数hwnd,整数类型
参数消息,整数类型
参数wp,整数类型
参数lp,整数类型
。DLL命令DLL_SetWindowLong,子程序指针,“User32.dll”,“SetWindowLongA”
。参数hWnd,整数类型
。参数nIndex,整数类型
参数dwNewLong,子程序指针
。DLL命令DLL_WaitForSingleObject,整数类型,“kernel32.dll”,“WaitForSingleObject”
参数hHandle,整数类型。
参数dwMilliseconds,整数类型。
。DLL命令DLL_CreateThread,整数类型,“Kernel32.dll”,“CreateThread”
参数lpThreadAttributes,整数类型。
参数dwStackSize,整数类型。
参数lpStartAddress,子程序指针
参数lpParameter,整数类型。
参数dwCreationFlags,整数类型
参数lpThreadId,整数类型,地址
。DLL命令DLL_GetExitCodeThread,逻辑类型," kernel32.dll "," GetExitCodeThread "
。参数hThread,整数类型
参数lpExitCode,整数类型,地址。
网友评论