日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java弹出U盘

發布時間:2023/12/31 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java弹出U盘 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

功能描述:java調用exe,根據檢測到的盤符進行U盤彈出。? ?

?exe地址:https://download.csdn.net/download/weixin_38959210/14503393

cmd調用,模擬要彈出的U盤盤符為E

自動彈出U盤.exe E

java調用,模擬要彈出的U盤盤符為E

public static void main(String[] args) throws IOException {String[] cmd = {"D:\\自動彈出U盤.exe","E"};Runtime.getRuntime().exec(cmd);}

C語言寫的執行文件?也就是上面的exe 。推薦簡單的代碼編寫工具Dev-C++?以及?CodeBlocks

#include <windows.h> #include <dbt.h> #include <stdio.h> #include <math.h>#define LOCK_TIMEOUT 10000 // 10 Seconds #define LOCK_RETRIES 20 /*************** Function: UninstallUsb Description: 根據盤符將usb設備彈出 Parameters: discId 要彈出的盤符 Returns: -1 失敗 0 成功 ***************/ static int UninstallUsb(char *discId) {DWORD accessMode = GENERIC_WRITE | GENERIC_READ;DWORD shareMode = FILE_SHARE_READ | FILE_SHARE_WRITE;HANDLE hDevice;long bResult = 0;DWORD retu = 0;DWORD dwError;DWORD dwBytesReturned;DWORD dwSleepAmount;int nTryCount;char szDriv[10];if(discId == NULL){return 0;}dwSleepAmount = LOCK_TIMEOUT/LOCK_RETRIES;sprintf(szDriv,"\\\\.\\%s:",discId);hDevice = CreateFile(szDriv,accessMode,shareMode,NULL,OPEN_EXISTING,0,NULL);if(hDevice == INVALID_HANDLE_VALUE){printf("uninstallusb createfile failed error:%d\n",GetLastError());return -1;} #if 0//此循環是用于鎖定要彈出的U盤設備,如果U盤在使用,則循環等待// Do this in a loop until a timeout period has expiredfor(nTryCount = 0;nTryCount < LOCK_RETRIES;nTryCount++){if(DeviceIoControl(hDevice,FSCTL_LOCK_VOLUME,NULL,0,NULL,0,&dwBytesReturned,NULL)){break;}}//卸載U盤卷,不論是否在使用dwBytesReturned = 0;if(!DeviceIoControl(hDevice,FSCTL_DISMOUNT_VOLUME,NULL,0,NULL,0,&dwBytesReturned,NULL)){printf("deviceIoConrol FSCTL_DISMOUNT_VOLUME failed\n");} #endifdwBytesReturned = 0;PREVENT_MEDIA_REMOVAL PMRBuffer;PMRBuffer.PreventMediaRemoval = FALSE;if(!DeviceIoControl(hDevice,IOCTL_STORAGE_MEDIA_REMOVAL,&PMRBuffer,sizeof(PREVENT_MEDIA_REMOVAL),NULL,0,&dwBytesReturned,NULL)){printf("DeviceIoControl IOCTL_STORAGE_MEDIA_REMOVAL failed:%d\n",GetLastError());}bResult = DeviceIoControl(hDevice,IOCTL_STORAGE_EJECT_MEDIA,NULL,0,NULL,0,&retu,NULL);if(!bResult){CloseHandle(hDevice);printf("uninstallusb DeviceIoControl failed error:%d\n",GetLastError());return -1;}CloseHandle(hDevice);return 0; }int main(int argc, char ** argv) {int i;for (i=1; i < argc; i++)UninstallUsb(argv[1]);return 0; }

?

總結

以上是生活随笔為你收集整理的java弹出U盘的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。