Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запустить программу с флехи и флеху отключить


Страницы:   1 2

AngelXXX ©   (2007-12-11 20:04:00) 

Я понимаю что нужно скопировать прогу на диск а потом ее запустить, и отключить флеху...
Но после всех монипуляций... этого ни как не выходит....

  s1:= ParamStr(0);
  s4:= ExtractFileDrive(s1);
  ShowMessage(s1);
  ShowMessage(s4);
   integer(LogDrives) := GetLogicalDrives;
 for i := 0 to 2 do
   if (i in LogDrives) then
    s2:= chr(i + 65);
  ShowMessage(s2);
  s3:= s2 + ':\' + ExtractFileName(ParamStr(0));

  CopyFile(PChar(s1), PChar(s3), True); // копируем
 
  s3:= s3 + ' ' +s4;

  ShowMessage(s3);
  WinExec(PChar(s3), SW_SHOW); // Запускаем копию
                                               //пармаетром из s4
  CloseHandle(Application.Handle);


Leonid Troyanovsky   (2007-12-15 13:50:00) [1]


> Riply ©   (12.12.07 16:34) [19]

> А случае с флешкой, я не знаю что там происходит, поэтому
> буду слушаться Windows :)

Если PE запускается с removable носителя, то система
копирует его образ в своп и работает уже с ним.
Во-всяком случае, с дискетами было так.

Т.е., если пустить процесс с флешки и вытащить ее,
то он может жить и дальше.

--
Regards, LVT.


AngelXXX   (2007-12-13 17:44:00) [2]

Коллеги... может кто знает мыло или аську Rouse_ чувак грамотный может он подскажет...

А ваще пример рабоче проги есть prSafeEject.exe... она это и делает... причем как я ее юзал она копирует свое тело на диск...

Может блин тело запихать в тело а там его и скопировать а потом запустить...


Anatoly Podgoretsky   (2007-12-12 16:42:00) [3]

> Riply  (12.12.2007 16:34:19)  [19]

2.а.


Riply   (2007-12-12 16:34:00) [4]

> [18] Anatoly Podgoretsky ©   (12.12.07 15:43)
> Не пишет, а образ защищает.

Может быть. Не знаю.

Но этот форум меня научил:
1. Ничего не "делать" с ситемой.
2. Если же очень хочется, то
   а. Хорошо понимать что делаешь.
   b. Заранее подготовить возможность восстановления "status quo".
   с. Если хоть один из пунктов (a, b) не выполнен,
      то следовать инструкциям (старших, Help-а и т.д.).

И Вы, Анатолий, тоже меня этому учили :)

А случае с флешкой, я не знаю что там происходит, поэтому буду слушаться Windows :)


Anatoly Podgoretsky   (2007-12-12 15:43:00) [5]

> Riply  (12.12.2007 15:27:17)  [17]

Не пишет, а образ защищает.


Riply   (2007-12-12 15:27:00) [6]

> [15] Anatoly Podgoretsky ©   (12.12.07 14:25)
> А кто его спрашивать будет.

Например, тот, кто не хочет рисковать испортить данные на флешке. :)
Windows же не говорит почему держит. Может пишет что-то.


clickmaker   (2007-12-12 14:57:00) [7]


> [12] MetalFan ©   (12.12.07 12:49)
> например если зайти на съемный носитель тотал коммандером

он включает отлов ChangeNotification, скорей всего, а это - хендел


Anatoly Podgoretsky   (2007-12-12 14:25:00) [8]

> Riply  (12.12.2007 13:57:14)  [14]

А кто его спрашивать будет.


Riply   (2007-12-12 13:57:00) [9]

> [12] MetalFan ©   (12.12.07 12:49)
> например если зайти на съемный носитель тотал коммандером,
> то винда при попытке извлечения носителя будет ругацца, что он де еще используется

Ничего удивительного. Сначала надо выйти, ибо скорее всего есть открытые Handl-ы.

> [13] Anatoly Podgoretsky ©   (12.12.07 12:59)
> А что помешает вытащить, блокировки в отличии от СД нет.

Раз Windows говорит что низзя, значит низзя :)


Anatoly Podgoretsky   (2007-12-12 12:59:00) [10]

> MetalFan  (12.12.2007 12:49:12)  [12]

А что помешает вытащить, блокировки в отличии от СД нет.


MetalFan   (2007-12-12 12:49:00) [11]

например если зайти на съемный носитель тотал коммандером, то винда при попытке извлечения носителя будет ругацца, что он де еще используется


Riply   (2007-12-12 11:22:00) [12]

> [0] AngelXXX   (11.12.07 20:04)

Запуск программы с флешки и ее закрытие не приводит
к блокированию флешки (во всяком случае у меня).
Отсюда вывод: ищи то, что ты за собой не закрываешь (типа Handle - а любого объекта).


Сергей М.   (2007-12-12 11:01:00) [13]


> скопировать себя и закрыться


Копирование-то причем ?


tesseract   (2007-12-12 10:35:00) [14]


> Разрыв (или эмуляция) этой связи - задача из разряда кулхацкерских
> трюков.


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


Сергей М.   (2007-12-12 08:54:00) [15]


> уже 3  дня мучею


Процесс работающего приложения неразрывно связан с файловым образом исп.модуля этого приложения. Разрыв (или эмуляция) этой связи - задача из разряда кулхацкерских трюков.


AngelXXX   (2007-12-12 06:32:00) [16]

CloseHandle() это уже от бессилия... я эту пробелму уже 3  дня мучею... может у кого с сходники рабочие есть...


Leonid Troyanovsky   (2007-12-12 00:42:00) [17]


> spyrytus   (11.12.07 22:36) [5]

> Попробуй не использовать CloseHandle(Application.Handle),
>  - это ты типа закрываешь проложение, а попробуй написать
> просто Close();

Взгляд, конечно, варварский, но верный.

:)

--
Regards, LVT.


spyrytus   (2007-12-11 22:36:00) [18]

Попробуй не использовать CloseHandle(Application.Handle), - это ты типа закрываешь проложение, а попробуй написать просто Close();


guav   (2007-12-11 22:30:00) [19]

> CloseHandle(Application.Handle);

Это как вообще понимать ?


tesseract   (2007-12-11 22:22:00) [20]


> походу где та храниться ссылка на запущенное приложение
> но где... и как ее рубануть


В кэше файловой системы.  Не рубанешь. Через ActiveScript меня фирус достал, так что не скажу как.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо