API: Prosessit
Funktioita Windows-prosessien etsimiseen, seurantaan ja hallintaan.
C++-rekisteröinti: regManager(js) ja regProcesses(js).
proc_find
proc_find(name: string) → object
Etsi prosesseja .exe-nimen perusteella (kirjainkoko ei merkitse).
Jos useita instansseja on käynnissä — palauttaa kaikki PID:t.
Parametrit:
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
name |
merkkijono | Prosessitiedoston nimi, esim. "notepad.exe" |
Tulos:
| Kenttä | Tyyppi | Kuvaus |
|---|---|---|
found |
totuusarvo | true — vähintään yksi instanssi löytyi |
pid |
numero | Ensimmäisen löydetyn prosessin PID (0 jos ei löydy) |
pids |
numero[] | Taulukko kaikista kyseisen nimisten prosessien PID:istä |
error |
merkkijono | Virheilmoitus tai "" |
Esimerkki:
let f = proc_find("notepad.exe");
if (!f.found) {
console.log("Prosessia ei löytynyt");
} else {
console.log("Ensimmäinen PID:", f.pid);
if (f.pids.length > 1) {
console.log("Useita instansseja:", JSON.stringify(f.pids));
}
}
proc_cpu
proc_cpu(pid: number) → object
Prosessin prosessorin käyttöaste prosentteina.
Huomio: Funktio tekee kaksi mittauskertaa 200 ms tauolla — suoritus pysähtyy tänä aikana.
Parametrit:
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
pid |
numero | Prosessin PID |
Tulos:
| Kenttä | Tyyppi | Kuvaus |
|---|---|---|
cpu |
numero | Prosessorin käyttöaste prosentteina (−1 virhetilanteessa) |
error |
merkkijono | Virheilmoitus tai "" |
Esimerkki:
let r = proc_cpu(1234);
if (r.error) {
console.log("Virhe:", r.error);
} else {
console.log("CPU:", r.cpu.toFixed(1) + "%");
}
proc_ram
proc_ram(pid: number) → object
Muistinkulutus (Working Set).
Parametrit:
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
pid |
numero | Prosessin PID |
Tulos:
| Kenttä | Tyyppi | Kuvaus |
|---|---|---|
ram_mb |
numero | Megatavua (−1 virhetilanteessa) |
ram_bytes |
numero | Tavua |
error |
merkkijono | Virheilmoitus tai "" |
Esimerkki:
let r = proc_ram(1234);
console.log("RAM:", r.ram_mb.toFixed(1), "Mt");
console.log("RAM (tavua):", r.ram_bytes);
proc_alive
proc_alive(pid: number) → object
Onko prosessi elossa ja vastaa viesteihin.
Toiminta:
- GUI-prosessi (näkyvä ikkuna): tarkistetaan
SendMessageTimeout-funktiolla 1 sekunnin aikakatkaisulla. - Taustaprosessi (ei ikkunaa):
responding = alive.
Parametrit:
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
pid |
numero | Prosessin PID |
Tulos:
| Kenttä | Tyyppi | Kuvaus |
|---|---|---|
alive |
totuusarvo | true — prosessi on olemassa eikä ole päättynyt |
responding |
totuusarvo | true — prosessi vastaa viesteihin |
error |
merkkijono | Virheilmoitus tai "" |
Esimerkki:
let r = proc_alive(1234);
console.log("Elossa:", r.alive);
console.log("Vastaava:", r.responding);
if (r.alive && !r.responding) {
console.log("Prosessi on jumissa!");
}
proc_service
proc_service(pid: number) → object
Kuuluuko prosessi Windows-palveluun.
Parametrit:
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
pid |
numero | Prosessin PID |
Tulos:
| Kenttä | Tyyppi | Kuvaus |
|---|---|---|
is_service |
totuusarvo | true — prosessi on Windows-palvelu |
service_name |
merkkijono | Palvelun nimi tai "" |
error |
merkkijono | Virheilmoitus tai "" |
Esimerkki:
let r = proc_service(1234);
if (r.is_service) {
console.log("Palvelu:", r.service_name);
}
proc_kill
proc_kill(pid: number) → object
Pakota prosessin lopettaminen (TerminateProcess).
Parametrit:
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
pid |
numero | Prosessin PID |
Tulos:
| Kenttä | Tyyppi | Kuvaus |
|---|---|---|
ok |
totuusarvo | true — prosessi lopetettiin |
error |
merkkijono | Virheilmoitus tai "" |
Esimerkki:
let r = proc_kill(1234);
if (r.ok) {
console.log("Prosessi lopetettu");
} else {
console.log("Virhe:", r.error);
}
proc_run
proc_run(path: string, args?: string) → object
Käynnistä uusi prosessi (CreateProcess).
Parametrit:
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
path |
merkkijono | Täysi polku .exe-tiedostoon |
args |
merkkijono | (valinnainen) Komentoriviparametrit |
Tulos:
| Kenttä | Tyyppi | Kuvaus |
|---|---|---|
ok |
totuusarvo | true — prosessi käynnistettiin |
pid |
numero | Uuden prosessin PID (0 virhetilanteessa) |
error |
merkkijono | Virheilmoitus tai "" |
Esimerkkejä:
// Ilman argumentteja
let r = proc_run("C:\\Windows\\notepad.exe");
console.log("PID:", r.pid);
// Argumenteilla
let r2 = proc_run("C:\\tools\\app.exe", "--config app.json --verbose");
if (r2.ok) {
console.log("Käynnistetty, PID:", r2.pid);
} else {
console.log("Virhe:", r2.error);
}
Täydellinen esimerkki: yksittäisen prosessin seuranta
let name = "myapp.exe";
// 1. Etsi prosessi
let f = proc_find(name);
if (!f.found) {
console.log("[VAROITUS] Prosessia ei löytynyt:", name);
} else {
let pid = f.pid;
// 2. Kerää mittatietoja
let cpu = proc_cpu(pid); // pysähtyy 200 ms:ksi
let ram = proc_ram(pid);
let live = proc_alive(pid);
let svc = proc_service(pid);
console.log("PID:", pid);
console.log("CPU:", cpu.cpu.toFixed(1) + "%");
console.log("RAM:", ram.ram_mb.toFixed(1) + " Mt");
console.log("Elossa:", live.alive, "| Vastaava:", live.responding);
if (svc.is_service) {
console.log("Palvelu:", svc.service_name);
}
}