Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
AngelXXX   (2007-12-11 20:04) [0]

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

  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);


 
tesseract ©   (2007-12-11 20:40) [1]

А что именно не выходит ? WinExec вроде как со времен win98 не рекомендован к использованию. Да и ты уверен, что права на запись у рользователя есть?


 
AngelXXX   (2007-12-11 21:04) [2]

Алгоритм такой..
1. запускаем приложение
2. если есть параметры то пускаем приложение в обычном режиме
3. если пораметров нет то копируем прогу на диск и запускаем ее с параметрами

так вот когда она пускаеться уже с диска... то попрежнему флеха заблокированна для отключения...

? как обойти ума не приложу... нужно просто запустить приложение  а флеху отключить...

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


 
tesseract ©   (2007-12-11 22:22) [3]


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


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


 
guav ©   (2007-12-11 22:30) [4]

> CloseHandle(Application.Handle);

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


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

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


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


> spyrytus   (11.12.07 22:36) [5]

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

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

:)

--
Regards, LVT.


 
AngelXXX   (2007-12-12 06:32) [7]

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


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


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


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


 
tesseract ©   (2007-12-12 10:35) [9]


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


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


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


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


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


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

> [0] AngelXXX   (11.12.07 20:04)

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


 
MetalFan ©   (2007-12-12 12:49) [12]

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


 
Anatoly Podgoretsky ©   (2007-12-12 12:59) [13]

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

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


 
Riply ©   (2007-12-12 13:57) [14]

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

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

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

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


 
Anatoly Podgoretsky ©   (2007-12-12 14:25) [15]

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

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


 
clickmaker ©   (2007-12-12 14:57) [16]


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

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


 
Riply ©   (2007-12-12 15:27) [17]

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

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


 
Anatoly Podgoretsky ©   (2007-12-12 15:43) [18]

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

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


 
Riply ©   (2007-12-12 16:34) [19]

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

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

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

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

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


 
Anatoly Podgoretsky ©   (2007-12-12 16:42) [20]

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

2.а.


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

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

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

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


 
Leonid Troyanovsky ©   (2007-12-15 13:50) [22]


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

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

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

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

--
Regards, LVT.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.04 c
2-1220279317
Terasbetoni
2008-09-01 18:28
2008.10.12
Подскажите, следует ли использовать структуру MDI


2-1220392769
Drone
2008-09-03 01:59
2008.10.12
Выпадающее Меню и другие вопросы


15-1219070182
A1ex
2008-08-18 18:36
2008.10.12
переход по юнитам через ctrl


2-1219920043
biver64
2008-08-28 14:40
2008.10.12
Удаление файла


2-1220073543
DarkLord
2008-08-30 09:19
2008.10.12
Имитация DblClick





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский