Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Поиск папки пользователя C:\Users\%USERPROFILE%\ средствами пилота.
sel
сообщение 4.7.2018, 5:41
Сообщение #1


**

Neophyte
Сообщений: 32
Регистрация: 4.7.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.986
Возраст: 27



Всем доброго времени суток,
Довольно долго искал на форуме и в интернете, но такой темы не нашёл.
Вопрос в следующем, хочу что бы пилот запускал программу которая находится в AppData, если в ручную прописать название профиля пользователя то всё работает, но проблема в том, что тогда каждому пользователю моей "чудесной" программы придётся лезть во все скрипты, что бы исправлять путь.
Есть вариант кустарно через средства винды, запускать окно "выполнить" через Win+R и вводом туда "%USERPROFILE%\AppData\", но вопрос такой, пилот умеет как то сам находить имя профайла?
Буду благодарен за любой ответ.
Спасибо.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 4.7.2018, 13:16
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Код
set $path1 "C:\Windows\Temp\tmp.txt"   // путь к файлу, в котором будет имя папки
set $path2 "C:\Windows\Temp\tmp.bat"   // путь к батнику, который получит имя папки
set %tmp [1] echo %username% > $path1  

if  fileexists($path1) = 0       // если файл не существует
    if  fileexists($path2) = 0   // если файл не существует
        save_array %tmp $path2
        wait 500
        exec $path2
        wait 1000
    end_if
end_if

load_array %a $path1
log %a [1]   // имя папки
end_script

При первом запуске будет появляться окно cmd.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sel
сообщение 5.7.2018, 0:22
Сообщение #3


**

Neophyte
Сообщений: 32
Регистрация: 4.7.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.986
Возраст: 27



Благодарю, буду пробовать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sel
сообщение 6.7.2018, 22:01
Сообщение #4


**

Neophyte
Сообщений: 32
Регистрация: 4.7.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.986
Возраст: 27



Появился ещё один вопрос, что делать если у пользователя русскоязычное название профиля?
Например профиль Мария скрипт записывает в массив как: Њ аЁп

Скрипт:
Код
set $path1 "C:\Windows\Temp\tmp.txt"   // путь к файлу, в котором будет имя папки
set $path2 "C:\Windows\Temp\tmp.bat"   // путь к батнику, который получит имя папки
set %tmp [1] echo %username% > $path1

if fileexists($path1) = 0       // если файл не существует
    if fileexists($path2) = 0   // если файл не существует
        save_array %tmp $path2
        wait 500
        exec $path2
        wait 1000
    end_if
end_if

load_array %a $path1
log %a [1]
set %a [1] rtrim(%a [1])
set $b C:\Users\%a [1]\AppData\Local\*\*\*.exe
exec cmd /c start $b
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.7.2018, 22:04
Сообщение #5


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



подозреваю, что в батнике нужно первой строкой написать:
chcp 1251


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sel
сообщение 6.7.2018, 22:27
Сообщение #6


**

Neophyte
Сообщений: 32
Регистрация: 4.7.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.986
Возраст: 27



Цитата(DarkMaster @ 7.7.2018, 0:04) *

подозреваю, что в батнике нужно первой строкой написать:
chcp 1251


Не помогло, имеется в виду батник который запускает пилот с запущенным скриптом?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.7.2018, 22:40
Сообщение #7


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
set %tmp [1] echo %username% > $path1

Замените на:
set %tmp [1] chcp 1251
set %tmp [2] echo %username% > $path1

Прошлый батник удалить. Вот по этому адресу:
set $path2 "C:\Windows\Temp\tmp.bat" // путь к батнику, который получит имя папки


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sel
сообщение 6.7.2018, 23:04
Сообщение #8


**

Neophyte
Сообщений: 32
Регистрация: 4.7.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.986
Возраст: 27



Получилось, спасибо!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sel
сообщение 28.7.2018, 8:32
Сообщение #9


**

Neophyte
Сообщений: 32
Регистрация: 4.7.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.986
Возраст: 27



Я пишу некий аналог автологина, и всё фачится когда пользователем выбрана не та раскладка клавиш, т.е. если включён CAPS LOCK, то скрипт вводит пароль в большом регистре и естественно система его не принимает. Есть какая то команда определения включённого\выключенного капслока?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 28.7.2018, 8:38
Сообщение #10


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Попробуйте использовать say. Он посылает символы, а не нажатия.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sel
сообщение 28.7.2018, 9:03
Сообщение #11


**

Neophyte
Сообщений: 32
Регистрация: 4.7.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.986
Возраст: 27



Цитата(DarkMaster @ 28.7.2018, 10:38) *

Попробуйте использовать say. Он посылает символы, а не нажатия.


К сожалению это не помогает, скрипт вводит данные в дочернее окно только при команде sendex. При say, send, ничего не вводит.

Кусок кода:
Код

Set $login1 "почта~2mail.ru "
Set $password1 "пароль"

call log_pass $login1 $password1 #handleWin

proc log_pass $login1 $password1 #handleWin $gamecentr
set #z GetWindow (#handleWin CHILD)
while #h < 0
set #h FindImage (0, 0 1920 1080 abs (images\pic18.bmp) %arr_pass 2 70 20 5)
if #h > 0
    set $var setlayout (0409)
    wait 400
    sendex $login1
    wait 200
    sendex {tab}
    wait 200
    sendex $password1
    wait 200
    sendex {enter}
else
    sendex_down {WindowsLeft}{d}
    sendex_up {WindowsLeft}{d}
    ShowWindow #handleWin TOP
    set #h -1
    end_while
end_if
end_proc
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 28.7.2018, 10:49
Сообщение #12


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Копируйте логин и пароль в буфер, всталяйте через ctrl+v.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sel
сообщение 28.7.2018, 11:28
Сообщение #13


**

Neophyte
Сообщений: 32
Регистрация: 4.7.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.986
Возраст: 27



Цитата(cirus @ 28.7.2018, 12:49) *

Копируйте логин и пароль в буфер, всталяйте через ctrl+v.


Благодарю за ответ, помогло.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 28.7.2018, 11:43
Сообщение #14


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
К сожалению это не помогает, скрипт вводит данные в дочернее окно только при команде sendex.

А вы пробовали делать привязку именно к дочернему окну? Скорее всего это решит проблему.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 29.3.2024, 2:21
Designed by Nickostyle