易語言源碼網(易語言自動更新源碼)
易語言源碼網
易語言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,整數類型,地址。