使用C#查找最近打开的文件 - 针对不支持ABOUT:CACHE的浏览器
"要使用C#查找最近使用不支持ABOUT:CHACHE的浏览器打开的文件,您可以尝试以下步骤:\n\n1. 首先,确定您要查找的浏览器的进程名称。常见的浏览器进程名称包括"chrome.exe"(Google Chrome)和"firefox.exe"(Mozilla Firefox)。\n\n2. 使用System.Diagnostics命名空间中的Process类,通过进程名称获取正在运行的浏览器进程的进程ID。\n\ncsharp\nProcess[] processes = Process.GetProcessesByName(\"chrome\");\n// 或者\nProcess[] processes = Process.GetProcessesByName(\"firefox\");\n\nforeach (Process process in processes)\n{\n int processId = process.Id;\n // 进一步处理进程\n}\n\n\n3. 对于找到的每个浏览器进程,使用Windows API函数OpenProcess和ReadProcessMemory来读取浏览器进程的内存。\n\ncsharp\n[DllImport(\"kernel32.dll\")]\npublic static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);\n\n[DllImport(\"kernel32.dll\", SetLastError = true)]\npublic static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, int dwSize, out int lpNumberOfBytesRead);\n\n// 读取浏览器进程内存\nIntPtr processHandle = OpenProcess(PROCESS_VM_READ, false, processId);\nbyte[] buffer = new byte[4096];\nint bytesRead;\nReadProcessMemory(processHandle, (IntPtr)address, buffer, buffer.Length, out bytesRead);\n\n\n4. 在浏览器进程的内存中搜索文件路径或文件名的字符串。可以使用Encoding类将读取的字节数组转换为字符串,并使用String.Contains或其他字符串搜索方法来搜索特定的文件路径或文件名。\n\ncsharp\nstring memoryString = Encoding.Default.GetString(buffer);\nif (memoryString.Contains(\"文件路径或文件名\"))\n{\n // 找到匹配的文件路径或文件名\n}\n\n\n请注意,这是一种较为复杂的方法,并且可能会因为浏览器版本或操作系统的变化而失效。此外,这种方法需要对操作系统和进程的了解,并且可能会涉及到一些安全性问题。因此,在实际应用中,请确保遵循相关的法律和隐私规定,并谨慎处理用户的数据和信息。\n
原文地址: https://www.cveoy.top/t/topic/p5cv 著作权归作者所有。请勿转载和采集!