Для удаления элементов из начала и конца массива в AHK можно использовать функцию `Remove()` и передать ей индексы элементов, которые нужно удалить.
Вот как код будет выглядеть с использованием функции `Remove()`:
```ahk
str := Clipboard
strArr := StrSplit(str, "_")
strArr.Remove(1, 2) ; удалить два элемента из начала
strArr.Remove(strArr.Length() - 2, 3) ; удалить три элемента из конца
new := strArr.Join("-") ; объединить элементы массива через "-"
Clipboard := new
return
```
Операция `Remove()` изменяет исходный массив, поэтому после вызова функции на повторное присвоение переменной `strArr` нет необходимости. Вместо этого можно сразу объединить оставшиеся элементы массива через функцию `Join()`, чтобы получить новую строку.
Теперь код удалит два элемента из начала и три элемента из конца, независимо от их количества между вторым и последним элементами.