본문 바로가기

RPA

[UiPath] Activate가 안될 때

작업 중이던 Window가 다른 Window 뒤로 숨어버릴 때가 있습니다.
Activate 액티비티도 먹지 않고 내부 셀렉터도 잡히지 않는 경우였는데요. (XPlatform)

그럴 때 종종 사용하는 방법입니다.

Activate Window

일반적인 경우에는 위의 Activate 액티비티 또는 Invoke Code 둘 중 하나만 사용해도 상관없습니다.
근데 XPlatform은 둘 중 하나만 사용하면 제대로 되지 않아서 둘 다 사용했습니다.

Invoke Code Source

For Each procc As Process In Process.GetProcesses()
    If procc.ToString.Contains("notepad") Then // 해당 코드의 notepad는 가져와야 하는 Window의 프로세스 명으로 대치
        Console.WriteLine(procc) // 제대로 진입했는지 확인하기 위한 로그입니다. 없어도 상관없습니다.
        AppActivate(procc.Id) // 프로세스 ID로 Activate
        UiPath.Core.Window.FromActiveWindow.BringToForeground() //활성화된 Window를 맨 앞으로 가져오기
    End If
Next

가져올 프로세스 명은 작업 관리자 - 세부 정보에서 알 수 있습니다.
확장자는 빼고 넣어주시면 됩니다.

끝입니다~!