Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Visual Basic

Закрытая тема
 
Опции темы
Старый 12.12.2006, 21:58   #1
c0mrad
Разработчик
 
Регистрация: 08.06.2006
Сообщений: 412
Написано 13 полезных сообщений
(для 4 пользователей)
Радость Казнить Exe

Как запустить любой экзешник програмно ?
(Offline)
 
Старый 12.12.2006, 23:55   #2
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Казнить Exe

Эмулировать работу ОСовского загрузчика)
(Offline)
 
Старый 13.12.2006, 00:12   #3
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Re: Казнить Exe

Сори за дезу насчет ЕкзекФайл. Перепутал разделы.

Насколько помню, в Варсике 4 и 5 ЕХЕ-шники запускаются с помощью команды Shell

Что однако не отменяет необходимость самостоятельного ознакомления с прилагающимися материалами.
(Offline)
 
Старый 13.12.2006, 01:17   #4
jimon
 
Сообщений: n/a
Re: Казнить Exe

запустить еще один поток и
перейти на Entry point PE файла

 
Старый 13.12.2006, 01:57   #5
Maxus
ПроЭктировщик
 
Регистрация: 17.02.2006
Сообщений: 144
Написано 13 полезных сообщений
(для 36 пользователей)
Re: Казнить Exe

Да но для начала нужно секции все правильно разместить, иначе КРАШ.
(Offline)
 
Старый 13.12.2006, 08:41   #6
jimon
 
Сообщений: n/a
Re: Казнить Exe

с етим возится прийдется
 
Старый 14.12.2006, 03:56   #7
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
Re: Казнить Exe

в Shell32.dll есть функция ShellExecute()

принимает всего пять параметров... все null кроме третьего который является адресом на строку в которой путь к приложению (строка заканчивается нулем)... это из асма... а из васика хз... надо в МСДН смотреть... 100% должна быть такая функция...

__________________
Как минимум я помог многим (с)
(Offline)
 
Старый 14.12.2006, 10:23   #8
Maxus
ПроЭктировщик
 
Регистрация: 17.02.2006
Сообщений: 144
Написано 13 полезных сообщений
(для 36 пользователей)
Re: Казнить Exe

Значит так если запустить ЕХЕ с жеского диска: Declare Function WinExec Lib "kernel32" Alias "WinExec" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long.


Если пускать из памяти: Нужно создать пустой приостановленный процесс, разместить все секции согласно их адресов в памяти, сменить Точку входа, и после продолжить процесс.
(Offline)
 
Старый 14.12.2006, 16:44   #9
jimon
 
Сообщений: n/a
Re: Казнить Exe

есть некий набор exe + dll
нужно зделать дамп памяти после загрузки exe и dllок в оперативку
и потом востановить етот дамп уже из другого exe не имея первоначальной программы

ето возможно ?
 
Старый 14.12.2006, 16:48   #10
Maxus
ПроЭктировщик
 
Регистрация: 17.02.2006
Сообщений: 144
Написано 13 полезных сообщений
(для 36 пользователей)
Re: Казнить Exe

Неа.
Сам подумай, прога уже работать будет.
(Offline)
 
Старый 14.12.2006, 23:50   #11
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Re: Казнить Exe

Сообщение от Diplomat
Насколько помню, в Варсике 4 и 5 ЕХЕ-шники запускаются с помощью команды Shell
Вот я посмотрел как использовать эту комманду в MSDN в коде VBNET:
Функция Shell
Запускает исполняемую программу и возвращает целочисленное значение, содержащее идентификатор процесса программы, если она все еще выполняется.

[highlight=VBNET]Public Function Shell( _
ByVal Pathname As String, _
Optional ByVal Style As AppWinStyle = AppWinStyle.MinimizedFocus, _
Optional ByVal Wait As Boolean = False, _
Optional ByVal Timeout As Integer = -1 _
) As Integer[/highlight]


Параметры
Pathname
Обязательный. String. Имя исполняемого файла со всеми необходимыми аргументами. Pathname может также содержать имя диска и путь.
Style
Необязательный. AppWinStyle. Значение, выбираемое из перечисления AppWinStyle, соответствующее стилю окна, в котором запускается программа. Если параметр Style опущен, Shell использует значение AppWinStyle.MinimizedFocus, запускающее программу в свернутом окне с фокусом.
Аргумент Style может принимать одно из следующих значений:

Сообщение от Значение перечисления
AppWinStyle.Hide - Окно скрыто, и фокус передан скрытому окну.
AppWinStyle.NormalFocus - Окно получает фокус и отображается в своих предыдущих размере и позиции.
AppWinStyle.MinimizedFocus - Окно отображается как значок и имеет фокус.
AppWinStyle.MaximizedFocus - Окно получает фокус и развернуто во весь экран.
AppWinStyle.NormalNoFocus - Окно восстанавливает свои последние размер и позицию. Активное в данный момент окно остается активным.
AppWinStyle.MinimizedNoFocus - Окно отображается в виде значка в панели задач. Активное в данный момент окно остается активным.
Wait
Необязательный. Boolean. Значение, определяющее, должна ли функция Shell ожидать завершения выполнения программы. Если параметр Wait опущен, Shell использует False.
Timeout
Необязательный. Integer. Длительность в миллисекундах интервала, в течение которого ожидается завершение выполнения программы, если Wait равно True. Если параметр Timeout опущен, Shell использует-1, то есть таймаут не используется и Shell ожидает завершения выполнения программы. Таким образом, если вы опустите Timeout или установите его в -1, существует возможность, что Shell никогда не передаст управления вашей программе.


Примечания
Значение, возвращаемое Shell, зависит от того, находится ли программа, указанная в Pathname, до сих пор в процессе выполнения (на момент возврата Shell). Если вы установите Wait в True и программа завершится до окончания таймаута, Shell возвращает ноль. Если таймаут истекает или вы опускаете Wait или установили его в значение в False, Shell возвращает идентификатор процесса программы. Идентификатором процесса называется уникальный номер, определяющий запущенную программу.

Если функция Shell не может запустить указанную программу, возникает ошибка System.IO.FileNotFoundException. Это может произойти, например, когда вы пытаетесь запустить 16-разрядную программу, такую как command.com, из приложения, использующего System.Windows.Forms. Для обработки подобной ситуации можно запустить 32-разрядную программу, которая запустит требуемую 16-разрядную. В случае с command.com можно в качестве альтернативы запустить cmd.exe.

По умолчанию функция Shell выполняет программу асинхронно. Это означает, что программа, запущенная функцией Shell может не прекратить выполнения до того, как операторы, следующие за Shell, будет выполнены. Если вы желаете дождаться окончания выполнения программы, установите Wait в True.

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

ID = Shell("""C:\Program Files\MyFile.exe"" -a -q", , True, 100000)
Каждая пара прилежащих двойных кавычек ("") в строковом литерале интерпретируется, как кавычка внутри строки. Таким образом, в предыдущем примере функции Shell передается следующая строка:

"C:\Program Files\MyFile.exe" -a -q
Если путь не заключен в кавычки, Windows будет искать файл Program.exe в каталоге C:\, вместо MyFile.exe в C:\Program Files.


Пример:

Данный пример использует функцию Shell для выполнения приложения, указанного пользователем. Задание AppWinStyle.NormalFocus в качестве второго аргумента раскрывает окно нормального размера и передает ему фокус.

[highlight=VBNET]Dim ProcID As Integer
' Run Calculator.
ProcID = Shell("C:\Windows\system32\calc.exe", AppWinStyle.NormalFocus)
' The preceding path is for Windows XP;
' The Windows 2000 path is C:\WINNT\system32\calc.exe.[/highlight]
__________________
Blitz3d to Unity Wiki
(Offline)
 
Закрытая тема


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 23:38.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com