# ProcessInfo

Import: `import com.install4j.api.ProcessInfo;`

```java
public abstract class ProcessInfo implements Serializable
```

Represents a running process on Windows and macOS.

## Methods

| Signature | Returns | Description |
|---|---|---|
| [`getModuleName()`](#getmodulename) | `String` | Retrieves the full executable path of the process. |
| [`getProcessId()`](#getprocessid) | `int` | Retrieves the process id. |
| [`getWindowTitle()`](#getwindowtitle) | `String` | Get the title of one of the visible top-level windows of this process. |
| [`toString()`](#tostring) | `String` |  |
| [`equals(Object)`](#equals-object) | `boolean` |  |
| [`hashCode()`](#hashcode) | `int` |  |

### getModuleName()

```java
public String getModuleName()
```

Retrieves the full executable path of the process.


**Returns:** the executable path

### getProcessId()

```java
public int getProcessId()
```

Retrieves the process id.


**Returns:** the process id

### getWindowTitle()

```java
public abstract String getWindowTitle()
```

Get the title of one of the visible top-level windows of this process.


**Returns:** the title

### toString()

```java
public String toString()
```

### equals(Object)

```java
public boolean equals(Object o)
```

### hashCode()

```java
public int hashCode()
```

## Constructors

| Signature | Description |
|---|---|
| [`protected ProcessInfo(int, String)`](#processinfo-int-string) | Called by implementations. |

### protected ProcessInfo(int, String)

```java
protected ProcessInfo(int processId, String moduleName)
```

Called by implementations.

