Что нового

[Автоматизация] симуляция запуска файла

zbz

Новичок
Сообщения
74
Репутация
1
симуляция запуска файла:
Код:
Run(@ScriptDir &"\TMNT-OotS.exe")
также, как она запустилось бы:
Код:
Run(@ScriptDir &"\Binaries\Win32\TMNT-OotS.exe")

(
Код:
Run(@ScriptDir &"\TMNT-OotS.exe", @ScriptDir &"\Binaries\Win32")
не помогло)
Заранее Спасибо
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
zbz,
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 
Автор
zbz

zbz

Новичок
Сообщения
74
Репутация
1
inververs сказал(а):
пожалуйста. А в чем вопрос?

файл по идее должно находится в C:\1\2\3\файл.ехе (это папка с игрой), а мне надо, чтоб она запустился с папки C:\1\ (а это вне папки с игрой)с таким же успехом
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
zbz сказал(а):
inververs сказал(а):
пожалуйста. А в чем вопрос?

файл по идее должно находится в C:\1\2\3\файл.ехе (это папка с игрой), а мне надо, чтоб она запустился с папки C:\1\ (а это вне папки с игрой)с таким же успехом

Создать ярлык в папке C:\1\ на файл C:\1\2\3\файл.ехе, запустить ярлык, а потом удалить его ) Ну или создать батник там же, который запустит игру и сразу его удалить. А если серьезно, то для чего такой геморрой нужен?
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
oesoes
Это нужно для того что бы 1 программа работала с разными конфигурациями, файлами, итп в разных рабочих каталогах. Так достаточно сделать 1 exe, запустить его несколько раз, но каждый раз передавать другой рабочий каталог.
 
Автор
zbz

zbz

Новичок
Сообщения
74
Репутация
1
oesoes сказал(а):
zbz сказал(а):
inververs сказал(а):
пожалуйста. А в чем вопрос?

файл по идее должно находится в C:\1\2\3\файл.ехе (это папка с игрой), а мне надо, чтоб она запустился с папки C:\1\ (а это вне папки с игрой)с таким же успехом

Создать ярлык в папке C:\1\ на файл C:\1\2\3\файл.ехе, запустить ярлык, а потом удалить его ) Ну или создать батник там же, который запустит игру и сразу его удалить. А если серьезно, то для чего такой геморрой нужен?

до запуска файла скрипт проверят в винде кое что, при успехе, запускает это файл а если нет, то удаляет папку с игрой , это типа зашита от копирования игры на другие системы (для не опытных юзеров)


Добавлено:
Сообщение автоматически объединено:

inververs сказал(а):
oesoes
Это нужно для того что бы 1 программа работала с разными конфигурациями, файлами, итп в разных рабочих каталогах. Так достаточно сделать 1 exe, запустить его несколько раз, но каждый раз передавать другой рабочий каталог.

я задавал другой рабочий каталог типа вот так:
Код:
Run(@ScriptDir &"\TMNT-OotS.exe", @ScriptDir &"\Binaries\Win32")
и так:
Код:
Run(@ScriptDir &"\TMNT-OotS.exe", @ScriptDir &"\Binaries\Win32\")
, но игра не запускается
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Ну дак и проверяй просто в скрипте, откуда скрипт твой запустили, да и все... Если не из той папки которую ты хочешь - удаляй что нужно... Сумбурно как-то объясняешь, если честно... Попробуй написать понятнее, со знаками препинания в _нужных_ местах... Просто честно, мало что понятно...

Ты можешь запустить игру из C:\1\, для этого просто скопируй туда 1 екзешник, который запускает игру. Затем добавь в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment в переменную $PATH путь до своей папки C:\1\2\3\ и можешь смело запускать из папки C:\1\. Все недостающие файлы подхватятся из C:\1\2\3.

Если опять не туда, то объясняй понятнее )
 
Автор
zbz

zbz

Новичок
Сообщения
74
Репутация
1
oesoes сказал(а):
Ну дак и проверяй просто в скрипте, откуда скрипт твой запустили, да и все... Если не из той папки которую ты хочешь - удаляй что нужно... Сумбурно как-то объясняешь, если честно... Попробуй написать понятнее, со знаками препинания в _нужных_ местах... Просто честно, мало что понятно...

Ты можешь запустить игру из C:\1\, для этого просто скопируй туда 1 екзешник, который запускает игру. Затем добавь в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment в переменную $PATH путь до своей папки C:\1\2\3\ и можешь смело запускать из папки C:\1\. Все недостающие файлы подхватятся из C:\1\2\3.

Если опять не туда, то объясняй понятнее )

Вот объясню как она есть:
путь к папке с игрой: D:\ZBGames\TMNT-OotS
оригинальный путь к исполняемую файлу: D:\ZBGames\TMNT-OotS\Binaries\Win32\TMNT-OotS.exe
предпочтительный путь для запуска: D:\ZBGames\TMNT-OotS.exe
и нечего кроме.


Добавлено:
Сообщение автоматически объединено:

оказывается этот скрипт:
Код:
Run(@ScriptDir &"\TMNT-OotS.exe",@ScriptDir &"\Binaries\Win32")
, частично работает, при неправильной указания рабочей папки, игра выдаёт окно ошибок о не нахождение своих файлов, а с правильным (\Binaries\Win32) указанием рабочей папки файл запускается и сразу же вылетает без окон ошибок. Странно что при двойном клике по D:\ZBGames\TMNT-OotS\Binaries\Win32\TMNT-OotS.exe или через его ярлык, игра работает.
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Добавь в переменную $PATH путь до Binaries\Win32\ и сможешь запускать черепашек хоть откуда, она не будет требовать недостающие файлы. В свою очередь исполняемый файл перенеси куда там тебе надо.
 
Автор
zbz

zbz

Новичок
Сообщения
74
Репутация
1
oesoes сказал(а):
Добавь в переменную $PATH путь до Binaries\Win32\ и сможешь запускать черепашек хоть откуда, она не будет требовать недостающие файлы. В свою очередь исполняемый файл перенеси куда там тебе надо.

на счет $PATH куда его вписать, если не трудно можете показать пример? я в этих делах новенький.
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
zbz сказал(а):
oesoes сказал(а):
Добавь в переменную $PATH путь до Binaries\Win32\ и сможешь запускать черепашек хоть откуда, она не будет требовать недостающие файлы. В свою очередь исполняемый файл перенеси куда там тебе надо.

на счет $PATH куда его вписать, если не трудно можете показать пример? я в этих делах новенький.

Код:
Local Const $newPath = 'C:\YourPath'; 
$PATH = RegRead('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment','PATH');
RegWrite('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment','PATH','REG_EXPAND_SZ',$PATH & ';' & $newPath);


В первой строчке поменяй C:\YourPath на свой путь.
 
Автор
zbz

zbz

Новичок
Сообщения
74
Репутация
1
oesoes сказал(а):
zbz сказал(а):
oesoes сказал(а):
Добавь в переменную $PATH путь до Binaries\Win32\ и сможешь запускать черепашек хоть откуда, она не будет требовать недостающие файлы. В свою очередь исполняемый файл перенеси куда там тебе надо.

на счет $PATH куда его вписать, если не трудно можете показать пример? я в этих делах новенький.

Код:
Local Const $newPath = 'C:\YourPath'; 
$PATH = RegRead('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment','PATH');
RegWrite('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment','PATH','REG_EXPAND_SZ',$PATH & ';' & $newPath);


В первой строчке поменяй C:\YourPath на свой путь.

при каждом запуске добавляется путь папки, вот так: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment','PATH PATH на втором запуске перестаёт работать потому что, такой путь не существует.
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Ну Боже мой, ну надо капельку подумать и сохранять старый путь и каждый раз восстанавливать на место или проверять есть ли уже новый и просто не создавать. Поймите, то, что вам тут выкладывают никак нельзя принимать за законченные решения. Вас просто подталкивают в нужном направлении, а вот это вот бездумное копирование чужих кусков программировать вас не научат.
 
Автор
zbz

zbz

Новичок
Сообщения
74
Репутация
1
oesoes сказал(а):
Ну Боже мой, ну надо капельку подумать и сохранять старый путь и каждый раз восстанавливать на место или проверять есть ли уже новый и просто не создавать. Поймите, то, что вам тут выкладывают никак нельзя принимать за законченные решения. Вас просто подталкивают в нужном направлении, а вот это вот бездумное копирование чужих кусков программировать вас не научат.

Я думал, что ты в чем та ошибся в своём примере скрипта, и я просто хотел разобраться что к чему, твой скрипт мне может помочь не только в этой проблеме, но и в будушиж моих задумках
И я, действительно учусь, и я, не хотел чтоб ты думал, что я,тупорылый. :(
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Я так и не думаю. Поверь, когда-то и мне так же говорили... Да и не только мне... Не скажу я - скажет кто-то другой. Как говорится: "C'est la vie" )) Справку к языку тоже ведь не просто так пишут.
 
Автор
zbz

zbz

Новичок
Сообщения
74
Репутация
1
oesoes сказал(а):
Я так и не думаю. Поверь, когда-то и мне так же говорили... Да и не только мне... Не скажу я - скажет кто-то другой. Как говорится: "C'est la vie" )) Справку к языку тоже ведь не просто так пишут.

а как на счёт этой ошибки (красного цвета) в: 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment','PATH','REG_EXPAND_SZ',$PATH & ';' & $newPath);
Исходя из этого, я и подумал, может ещё где то ты ошибся. Но всё равно, всем Вам, ОГРОМНОЕ спасибо, за то, что не оставили без внимание и уделили мне Ваше драгоценное время.
 
Верх