Войти

Показать полную графическую версию : как создать exe для запуска другого exe с параметрами, из той же папки


vzli_izv
08-06-2013, 06:07
Нужно создать два exe файла (без сложного программирования) для того, что бы запустить 2 разные программы с разным типом параметров из своих папок.
Возможны варианты других программ, но пока представленные ниже:

Ситуация первая. Skype.
Есть замена меню пуска - Classic Shell, в которой создаёшь своё меню Пуск.
Есть папка Skype, в которой есть папка \Data с профилем этого скайпа для запуска без установки.
если создать ярлык skype.exe с параметрами /datapath:Data /minimized и запустить сам ярлык из папки, то программа запускается с подхватом этого профиля и сворачивается в панель. Из меню Пуск'а (Classic Shell) ярлык запускается без параметров (без запуска профиля).

если создать bat с кодом
@echo off
start skype.exe /datapath:Data /minimized и запустить его из той же папки, где лежит skype.exe, то программа запускается с подхватом этого профиля.

Но если я хочу запустить этот bat из Пуска (Classic Shell), то мне выдаёт ошибку : Не удалось найти skype.exe. Проверьте, правильно ли указано имя и повторите попытку.
Ну и некоторые программы не дают запускать исполнительные файлы других форматов и ярлыки кроме exe, поэтому хотелось бы использовать именно этот формат - exe.

Так же, есле скомпилировать exe из bat (Bat to exe Сonverter), то программа не запускается, так как Skype не может найти файлы, нужные ему для работы.

Ситуация два. CS 1.6
тоже самое, только параметры другие: -game cstrike -dev
(я знаю, что есть в сети файл exe для запуска кс, но найти без вируса его не реально + те, что я пробовал не идут с моей версией.
Так же хотелось бы иметь возможность запускать этот ярлык с выбором.
Например 2 вида параметров:
-game cstrike -dxlevel 7 -nojoy -freq 100 -numericping
и
-game cstrike -win -width 1680 - height 1050 -dxlevel 7 -nojoy -freq 100 -numericping


Есть конвертер Bat to exe Сonverter, есть Sign 0f Misery, есть Алгоритм 2.5 но в них не могу запустить с параметрами...
в идеале наверно exe с считыванием параметров запуска из .ini.
Но я не умею это реализовывать ((

yurfed
08-06-2013, 06:43
@echo off
start skype.exe /datapath:Data /minimized »
А вы не хотите указать полный путь до Skype?

vzli_izv
08-06-2013, 06:57
start "D:\000 Programs File/000/Skype/Phoneskype.exe" /datapath:Data /minimized
ничего не происходит



есть Sign 0f Misery

Что у вас не получается? »
собственно, есть программа ))

yurfed
08-06-2013, 07:36
vzli_izv, start "D:\000 Programs File/000/Skype/Phoneskype.exe" /datapath:Data /minimized »
Выделенное должно быть так. Да и слеши все должны быть обратными "\"
Phone\skype.exe
Если это D:\000 Programs File/000/Skype/ ваш правильный путь, тогда держите скриптик. Делал в Sign 0f Misery 2.7 (http://s0m.narod.ru/s0m.html)
У меня почему то AVG на него отругался :)
Ваш батник
"D:\000 Programs File/000\Skype\Phone\skype.exe" /datapath:Data /minimized

vzli_izv
08-06-2013, 07:57
"D:\000 Programs File/000\Skype\Phone\skype.exe" /datapath:Data /minimizedсовершенно верно, но ничего не происходит ))

тогда держите скриптик. Делал в Sign 0f Misery 2.7Can't not execute file
ExecutedCommandCode=151
Offset=0
и всё...

У меня почему то AVG на него отругался
https://www.virustotal.com/ru/file/ca28a6832d375d2b8fea364cb760731b903e69a457d97b55b8264e3a41d61467/analysis/1370663602/
)))

yurfed
08-06-2013, 08:05
Programs File/000
Programs File\000
Может тут собака порылась :)
А просто батник не отрабатывает?

vzli_izv
08-06-2013, 08:21
попробовал

start /d"D:\000 Programs File\000\Skype\Phone" skype /datapath:Data /minimizedно видимо не идёт обработка /datapath:Data и профиль не загружается.
но уже нет ошибки, если запустить и Пуска тот же батник...
видимо надо точно определить в переменных путь, папки и тд...но я в этом не силён...

Programs File/000
Programs File\000да я уже по всякому...

с кс решил так
start /d"E:\003 Games\CS" hl -game cstrike -full -width 1920 - height 1080 -dxlevel 7 -nojoy -freq 100 -numericpingи
start /d"E:\003 Games\CS" hl -game cstrike -win -width 1680 - height 1050 -dxlevel 7 -nojoy -freq 100 -numericpingвсё прекрасно работает...даже в скомпилированном из бата ехе...

и скайп тоже решил
start "" "D:\000 Programs File\000\Skype\Phone\skype.exe" /datapath:Data /minimizedно WTF это было?!?!

в итоле вся запара оказаласть из за " " после start
поменял
start /d"E:\003 Games\CS" hl -game cstrike -full -width 1920 - height 1080 -dxlevel 7 -nojoy -freq 100 -numericping
на
start "" "E:\003 Games\CS\hl.exe" -game cstrike -full -width 1920 - height 1080 -dxlevel 7 -nojoy -freq 100 -numericping
и всё заработало...

vzli_izv
08-06-2013, 09:22
а как реализовать в bat автоматический выбор параметра запуска через заданное время, если за это время не был выбран никакой из списка ?
в этом коде


@echo off
:start
cls
echo [1] На весь экран
echo [2] В окне
echo+
echo [0] Выйти
echo+
set /p userinp=choose a Profile(1-2) or Exit(0):
set userinp=%userinp:~0,1%
if "%userinp%"=="1" goto Profile1
if "%userinp%"=="2" goto Profile2
if "%userinp%"=="0" goto Exit

если за 5 сек не выбран один из представленных параметров запуска, то запустить Profile1

echo invalid choice
goto start
:Profile1
start "" "E:\003 Games\CS\hl.exe" -game cstrike -full -width 1920 - height 1080 -dxlevel 7 -nojoy -freq 100 -numericping
exit
:Profile2
start "" "E:\003 Games\CS\hl.exe" -game cstrike -win -width 1680 - height 1050 -dxlevel 7 -nojoy -freq 100 -numericping
exit

и как делать выбор без подтверждения клавишей enter?

Iska
08-06-2013, 11:49
в итоле вся запара оказаласть из за " " после start
поменял »
Вы молодец, что таки нашли. Вполне серьёзно. Данная ошибка встречается достаточно регулярно.

а как реализовать в bat автоматический выбор параметра запуска через заданное время, если за это время не был выбран никакой из списка ? »
Только поменяв «set /p» на «choice.exe (http://forum.oszone.net/post-2061439.html#post2061439)». У Вас какая ОС?

vzli_izv
08-06-2013, 13:42
win7

всё...разобрался со всем: и время отсчитывает и выбор без enter'a и вообще кода мало...Iska, благодарю!!

@echo off
Echo 1
Echo 2
Echo 3
choice /T 5 /D 1 /c 123 /n
cls
call :%errorlevel%
:1
start "" "E:\003 Games\CS\hl.exe" -game cstrike -full -width 1920 - height 1080 -dxlevel 7 -nojoy -freq 100 -numericping
exit

:2
start "" "E:\003 Games\CS\hl.exe" -game cstrike -win -width 1680 - height 1050 -dxlevel 7 -nojoy -freq 100 -numericping
exit

:3
exit

Iska
08-06-2013, 14:18
vzli_izv, тогда можно и ещё сократить, указав вместо:
Echo 1
Echo 2
Echo 3
текст в самой команде «choice.exe» параметром «/m», наподобие (не проверялось — командная строка для «choice.exe» из комплекта Resource Kit'ов для Windows 2000 отличается от таковой для Windows 7):
@echo off
setlocal enableextensions enabledelayedexpansion

choice.exe /c:FWE /t 5 /d F /m "[F]ull screen mode (default choice after 5 seconds), [W]indow mode or [E]xit. Select one of: "
call :Choice%errorlevel%

endlocal
exit /b 0

:Choice1
start "" "E:\003 Games\CS\hl.exe" -game cstrike -full -width 1920 - height 1080 -dxlevel 7 -nojoy -freq 100 -numericping
exit /b 0

:Choice2
start "" "E:\003 Games\CS\hl.exe" -game cstrike -win -width 1680 - height 1050 -dxlevel 7 -nojoy -freq 100 -numericping
exit /b 0

:Choice3
exit /b 0

vzli_izv
08-06-2013, 14:37
благодарю, но метод через «/m» не даёт возможности менять позицию надписи. Она прижата к краю.
Echo 1 Echo 2 Echo 3 позволяет делать отступ, что для оформления более приемлемо ))) да, вот так вот ))



echo @@@@@@@@@@@@@ @@@@@@@@@@@@@
echo @@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
echo @@@@@ @@@@
echo @@@@@ @@@@
echo @@@@@ @@@@@@@@@@@@@@@@
echo @@@@@ @@@@@@@@@@@@@@@@
echo @@@@@ @@@@
echo @@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@
echo @@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
echo+
echo+
Echo 1 Full 1920x1080 2 Window 1680x1050 3 Exit

Iska
08-06-2013, 14:49
vzli_izv, ясно.




© OSzone.net 2001-2012