Buenas,
Para Windows puedes obtener la lista de procesos:
Mediante el comando taskList.exe
Código Java:
Ver originaltry {
(System.
getenv("windir") +"\\system32\\"+"tasklist.exe"); while ((line = input.readLine()) != null) {
System.
out.
println(line
); //<-- Parse data here. }
input.close();
err.printStackTrace();
}
O invocando la API Win32 mediante JNI o JNA:
Con JNA:
https://github.com/twall/jna
Código Java:
Ver originalWinNT winNT = (WinNT) Native.loadLibrary(WinNT.class, W32APIOptions.UNICODE_OPTIONS);
WinNT.HANDLE snapshot = winNT.CreateToolhelp32Snapshot(Tlhelp32.TH32CS_SNAPPROCESS, new WinDef.DWORD(0));
Tlhelp32.PROCESSENTRY32.ByReference processEntry = new Tlhelp32.PROCESSENTRY32.ByReference();
while (winNT.Process32Next(snapshot, processEntry)) {
System.
out.
println(processEntry.
th32ProcessID + "\t" + Native.
toString(processEntry.
szExeFile)); }
winNT.CloseHandle(snapshot);
Respecto al historial del navegador, eso dependerá del navegador que quieras utilizar.
Por ejemplo, para Chrome, el historial está almacenado en una base de datos SQLite ubicada normalmente en: C:\Users\YourUserName\AppData\Local\Google\Chrome\ User Data\Default\History
Puedes acceder a ella de la forma habitual mediante JDBC
Dicho esto, no deja de parecerme absurdo utilizar un lenguaje multiplataforma como Java para hacer un desarrollo específico de Windows perdiendo así toda la portabilidad.
Para hacer este tipo de cosas hay lenguajes y plataformas de desarrollo mucho más adaptadas como .Net con C# o C++.
Un saludo