插入U盘,自动运行指定程序或打开指定文件。

1.安装 AutoFlash ,下载地址为: https://download.csdn.net/download/HHT0506/15110427 (免积分)

2.U盘 根目录 下创建autorun.inf文件,内容为

[AutoRun]
OPEN=C:\Program Files\Everything\Everything.exe

3.拔除U盘,再次插入,便会直接打开C:\Program Files\Everything路径下的Everything.exe程序。

1.打开D盘根目录下的demo.pdf

[AutoRun]
OPEN=D:\demo.pdf

2.打开U盘根目录下的demo.exe

[AutoRun]
OPEN=demo.exe

3.打开U盘根目录下demo文件夹下的demo.exe

[AutoRun]
OPEN=./demo/demo.exe

注:弹出U盘时会显示AutoFlash程序正在占用U盘,解除占用并退出即可

目标插入U盘,自动运行指定程序或打开指定文件。实现1.安装AutoFlash,下载地址为:https://download.csdn.net/download/HHT0506/15110427(免积分)2.U盘根目录下创建autorun.inf文件,内容为[AutoRun]OPEN=C:\Program Files\Everything\Everything.exe3.拔除U盘,再次插入,便会直接打开C:\Program Files\Everything路径下的Everything.exe程
安装后可以自动隐藏,可以开机自动启动,按住Shift+Ctrl+Alt+Y组合键出现窗体界面,当U盘插入电脑时,会自动U盘中的数据复制到电脑的指定文件夹中,同时预先可以设置复制文件的类型,文件的尺寸限制等,如只复制小于10M的数据。 需要.net 4.0环境。如果你已经安装.Net 4.0 Framework,直接运行免安装程序就可以了。
U盘病毒又称Autorun病毒,是通过AutoRun.inf文件使对方所有的硬盘完全共享或中木马的病毒,中毒后的U盘在点击右键的时候出现auto字样,双击中毒U盘自动运行autorun.inf所指定的病毒程序U盘专杀助手是一个免费的Autorun.inf病毒专杀及免疫工具,是一个全自动的优盘杀毒软件。使用本杀毒软件可以有效避免U盘病毒侵害电脑。 U盘专杀助手主要功能: 1、插入U盘自动杀毒:当U盘插入后,U盘专杀助手立即启动扫描程序,将U盘中所有可执行文件列出,对于已知的病毒自动清除,对于未知潜在病毒可以手工选择删除或者灭活处理。 2、Autorun.inf免疫:U盘专杀助手可以自动U盘进行Autorun.inf免疫,免疫后的U盘将不会生成Autorun.inf文件,可以放心双击。 3、U盘写保护:设置U盘写保护后,U盘不能写入和删除文件,可以杜绝病毒感染U盘,保护U盘文件不丢失。 4、我的密盘:我的密盘功能可以生成一个属于自己的隐秘磁盘分区,只有正确输入密码才能查看。对于不需要经常移动的个人文件,可以暂时存在我的密盘中,避免频繁插拔U盘而造成的经常U盘修复。
U盘自动运行脚本的用处 U盘自动运行脚本,也属于是系统预留的一个接口吧。当系统忘记密码、没有debug调试线、网络进不去等等时,U盘就发挥作用了!系统预留了这个自动运行脚本,那可以解决好多问题。在这里简单罗列几点: 修改系统密码 自动升级 自动导入/导出配置文件 U盘自动运行脚本配置方法 Linux系统下是使用udev或者轻量级的类udev工具来自动自动挂载设备,这里以udev为例,来说下.
欢迎技术交流和帮助,提供IT相关服务,索要源码请联系博主QQ: 21497936,若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/88733374 autorun.inf Au...
我笔记本不知怎么的插入U盘后在资源管理器中看不到盘符,只能通过设备管理器打开,很是麻烦,所以就自己开发了小工具,U盘插入后,会自动打开U盘所在的文件夹,代码很简单,在这里分享一下。 工具是基于C#语言的WinForm程序,无界面,开机自启动。
可以使用Java提供的JNA库来实现U盘插入监控,同时使用Java的IO流来记录上传下载行为记录。具体实现可以参考以下代码: import com.sun.jna.platform.win32.*; import com.sun.jna.platform.win32.WinNT.HANDLE; import com.sun.jna.platform.win32.WinNT.HANDLEByReference; import com.sun.jna.platform.win32.WinNT.PVOID; import com.sun.jna.platform.win32.WinNT.ULONG_PTR; import com.sun.jna.platform.win32.WinUser.*; public class USBMonitor { private static final int WM_DEVICECHANGE = 0x0219; private static final int DBT_DEVICEARRIVAL = 0x8000; private static final int DBT_DEVICEREMOVECOMPLETE = 0x8004; private static final int DBT_DEVTYP_VOLUME = 0x00000002; private static final int DBT_DEVNODES_CHANGED = 0x0007; private static final int FILE_SHARE_READ = 0x00000001; private static final int FILE_SHARE_WRITE = 0x00000002; private static final int FILE_SHARE_DELETE = 0x00000004; private static final int OPEN_EXISTING = 3; private static final int GENERIC_READ = 0x80000000; private static final int GENERIC_WRITE = 0x40000000; private static final int FILE_ATTRIBUTE_NORMAL = 0x80; private static final int FILE_FLAG_BACKUP_SEMANTICS = 0x02000000; private static final String DRIVE_LETTER_PREFIX = "\\\\?\\"; private static final String VOLUME_GUID_PREFIX = "\\\\?\\Volume{"; private static final String VOLUME_GUID_SUFFIX = "}\\"; private static final String LOG_FILE_PATH = "C:\\usb_log.txt"; private static HANDLE hLogFile = null; public static void main(String[] args) { hLogFile = Kernel32.INSTANCE.CreateFile(LOG_FILE_PATH, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, null, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, null); if (hLogFile == WinBase.INVALID_HANDLE_VALUE) { System.err.println("Failed to open log file: " + LOG_FILE_PATH); return; WndProc usbWndProc = new WndProc() { @Override public LRESULT callback(HWND hWnd, int uMsg, WPARAM wParam, LPARAM lParam) { if (uMsg == WM_DEVICECHANGE) { switch (wParam.intValue()) { case DBT_DEVICEARRIVAL: DEV_BROADCAST_VOLUME vol = new DEV_BROADCAST_VOLUME(lParam); if (vol.dbcv_devicetype == DBT_DEVTYP_VOLUME) { String driveLetter = getDriveLetter(vol.dbcv_unitmask); String volumeGuid = getVolumeGuid(driveLetter); log("U盘插入: " + volumeGuid); break; case DBT_DEVICEREMOVECOMPLETE: DEV_BROADCAST_VOLUME vol2 = new DEV_BROADCAST_VOLUME(lParam); if (vol2.dbcv_devicetype == DBT_DEVTYP_VOLUME) { String driveLetter = getDriveLetter(vol2.dbcv_unitmask); String volumeGuid = getVolumeGuid(driveLetter); log("U盘拔出: " + volumeGuid); break; case DBT_DEVNODES_CHANGED: log("设备节点变化"); break; return User32.INSTANCE.DefWindowProc(hWnd, uMsg, wParam, lParam); String className = "USBMonitor"; WNDCLASS wc = new WNDCLASS(); wc.lpfnWndProc = usbWndProc; wc.hInstance = Kernel32.INSTANCE.GetModuleHandle(""); wc.lpszClassName = className; User32.INSTANCE.RegisterClass(wc); HWND hWnd = User32.INSTANCE.CreateWindowEx(0, className, className, 0, 0, 0, 0, 0, null, null, null, null); if (hWnd == null) { System.err.println("Failed to create window"); return; DEV_BROADCAST_DEVICEINTERFACE notificationFilter = new DEV_BROADCAST_DEVICEINTERFACE(); notificationFilter.dbcc_size = notificationFilter.size(); notificationFilter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE; GUID guid = new GUID(); guid.guidData1 = 0xA5DCBF10; guid.guidData2 = 0x6530; guid.guidData3 = 0x11D2; guid.guidData4 = new byte[]{(byte) 0x90, 0x1F, 0x00, (byte) 0xC0, 0x4F, (byte) 0xB9, 0x51, (byte) 0xED}; notificationFilter.dbcc_classguid = guid; HDEVNOTIFY hDevNotify = User32.INSTANCE.RegisterDeviceNotification(hWnd, notificationFilter, DEVICE_NOTIFY_WINDOW_HANDLE); if (hDevNotify == null) { System.err.println("Failed to register device notification"); return; MSG msg = new MSG(); while (User32.INSTANCE.GetMessage(msg, hWnd, 0, 0) > 0) { User32.INSTANCE.TranslateMessage(msg); User32.INSTANCE.DispatchMessage(msg); User32.INSTANCE.UnregisterDeviceNotification(hDevNotify); User32.INSTANCE.DestroyWindow(hWnd); Kernel32.INSTANCE.CloseHandle(hLogFile); private static String getDriveLetter(int unitmask) { for (char c = 'A'; c <= 'Z'; c++) { if ((unitmask & 0x01) != 0) { return DRIVE_LETTER_PREFIX + c + ":"; unitmask >>>= 1; return null; private static String getVolumeGuid(String driveLetter) { char[] volumeGuid = new char[1024]; int length = Kernel32.INSTANCE.QueryDosDevice(driveLetter, volumeGuid, volumeGuid.length); if (length == 0) { return null; String volumeGuidStr = new String(volumeGuid, 0, length); if (!volumeGuidStr.startsWith(VOLUME_GUID_PREFIX) || !volumeGuidStr.endsWith(VOLUME_GUID_SUFFIX)) { return null; return volumeGuidStr.substring(VOLUME_GUID_PREFIX.length(), volumeGuidStr.length() - VOLUME_GUID_SUFFIX.length()); private static void log(String message) { String logMessage = String.format("[%s] %s\n", new Date(), message); byte[] logBytes = logMessage.getBytes(StandardCharsets.UTF_8); ULONG_PTR bytesWritten = new ULONG_PTR(); Kernel32.INSTANCE.WriteFile(hLogFile, logBytes, logBytes.length, bytesWritten, null); 注意:这段代码只能在Windows操作系统上运行