diff --git a/winehelper b/winehelper
index 9ac4616..68dc998 100755
--- a/winehelper
+++ b/winehelper
@@ -351,6 +351,7 @@ var_ld_library_path_update () {
     return 0
 }
 
+##### CREATE DESKTOP FILE #####
 create_desktop () {
     local name_desktop="$1"
     local exe_file="$2"
@@ -382,13 +383,56 @@ create_desktop () {
     if [[ "$USE_AI_SCRIPTS" == "1" ]] \
     && [[ -f "$exe_file" ]]
     then
-        grep -e "#!" -e "export" -e "var_" "$WH_AUTOINSTALL_DIR/$AI_SCRIPT" \
+        {
+            echo '#!/usr/bin/env bash'
+            echo "# cmd_name: $AI_SCRIPT"
+        } > "$exe_file".whdb
+        grep -e "info_" -e "#####" -e "export" -e "var_" "$WH_AUTOINSTALL_DIR/$AI_SCRIPT" \
         | grep -vE "LAUNCH_PARAMETERS|AUTOINSTALL|WIN_FILE_EXEC|echo" \
-        | awk '{$1=$1;print}' > "$exe_file".ppdb
+        | awk '{$1=$1;print}' >> "$exe_file".whdb
         print_info "Создан файл настроек для $exe_file"
     fi
 }
 
+##### INSTALLED PROGRAMS #####
+check_installed_programs () {
+    for desktop_file in "$USER_WORK_PATH"/*.desktop ; do
+        if [[ ! -f "$desktop_file" ]] ; then
+            print_info "Установленные программы не найдены."
+            return 1
+        fi
+        EXE_PATH="$(grep "Exec" "$desktop_file" | awk -F'"' '{print $4}')"
+        case "$1" in
+            check_only)
+                if [[ -z $2 ]] ; then
+                    print_error "Нет аргумента для проверки файла запуска!"
+                    print_info "Список установленных программ:"
+                    check_installed_programs
+                    exit 1
+                elif [[ "$EXE_PATH" =~ ${2}$ ]] ; then
+                    export EXE_PATH
+                    return 0
+                else
+                    fatal "Не найден файл запуска для $2"
+                fi
+            ;;
+            *)
+                if [[ -f "$EXE_PATH.whdb" ]] ; then
+                    WH_INFO_RU="$(grep "info_ru:" "$EXE_PATH.whdb" | awk -F"info_ru: " '{print $2}')"
+                    printf "\E[36m%s $SCRIPT_NAME run $(basename "$EXE_PATH") - $(basename "$desktop_file") %s\e[0m\n"
+                    echo -e "$WH_INFO_RU\n"
+                fi
+            ;;
+        esac
+    done
+}
+
+run_installed_programs () {
+    if check_installed_programs check_only "$1" ; then
+        /usr/bin/env bash -c "\"$RUN_SCRIPT\" \"$EXE_PATH\"" &
+        exit 0
+    fi
+}
 
 ##### USED WINED3D LIBRARY #####
 init_opengl () {
@@ -706,24 +750,24 @@ kill_wine () {
 
 init_database () {
     if [[ -f "$WIN_FILE_EXEC" ]] ; then
-        PPDB="$(basename "$WIN_FILE_EXEC" .exe)"
-        if [[ -f "$WIN_FILE_EXEC".ppdb ]] ; then
-            PPDB_FILE="$WIN_FILE_EXEC".ppdb
+        WHDB="$(basename "$WIN_FILE_EXEC" .exe)"
+        if [[ -f "$WIN_FILE_EXEC".whdb ]] ; then
+            WHDB_FILE="$WIN_FILE_EXEC".whdb
         else
             orig_IFS="$IFS"
             IFS=$'\n'
-            WH_FIND_DB_FILE="$(grep -ilw "#$PPDB.exe" "$WH_DB_DIR"/* )"
+            WH_FIND_DB_FILE="$(grep -ilw "#$WHDB.exe" "$WH_DB_DIR"/* )"
             if [[ $(echo "$WH_FIND_DB_FILE" | wc -l) -gt 1 ]] ; then
-                print_error "Найдено более одного файла настроек: $PPDB.exe"
-                PPDB_FILE="$(echo "$WH_FIND_DB_FILE" | head -n1)"
+                print_error "Найдено более одного файла настроек: $WHDB.exe"
+                WHDB_FILE="$(echo "$WH_FIND_DB_FILE" | head -n1)"
             else
-                PPDB_FILE="$WH_FIND_DB_FILE"
+                WHDB_FILE="$WH_FIND_DB_FILE"
             fi
             IFS="$orig_IFS"
         fi
-        if [[ "$PPDB_FILE" ]] ; then
-            print_info "Используется файл настроек: $PPDB_FILE"
-            . "$PPDB_FILE"
+        if [[ "$WHDB_FILE" ]] ; then
+            print_info "Используется файл настроек: $WHDB_FILE"
+            . "$WHDB_FILE"
         else
             print_warning "Файл настроек не найден. Пропускаем."
         fi
@@ -793,6 +837,8 @@ wh_info () {
 
 Команды:
     install|-i [скрипт установки]              если без аргументов, то выводит список возможных установочных скриптов
+    installed|run                              список установленных программ
+    run [программа.exe]                        запуск программы (отладка)
 
 Параметры:
     --help                                     показать эту справку и выйти
@@ -818,6 +864,8 @@ case "${1,,}" in
     winetricks) shift ; update_winetricks ; prepair_wine ; "$WINETRICKS" -q "$@" ;;
     desktop) shift ; create_desktop "$@" ; exit 0 ;;
     install|-i) shift ; run_autoinstall "$1" ;;
+    installed) shift ; check_installed_programs "$1" ;;
+    run|-r) shift ; run_installed_programs "$1" ;;
     *)
         if [[ -f "$1" ]] ; then
             WIN_FILE_EXEC="$(readlink -f "$1")"