Нужжна помощь Гуру (диск А:\ заменить на F:\)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Нужжна помощь Гуру (диск А:\ заменить на F:\)

Сообщение SergT » 02.02.2008 (Сб) 19:57

Доброе время суток всем жителям форума!
Вот такая проблема:
Некий программист, в некоем городе на Дельфи написал прогу, которая
насильно сохраняет данные на диск A:\
Вопрос:
Что делать, если хочу не на флоппи а на F:\ ( на флешку)?
Можно взломать exe, но время...
Как временно заменить А на F? Или есть иные пути?

С благодарностью приму любую помощь в виде добрых пожеланий, мудрых или оригинальных решений, подсказок, ссылок..
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 02.02.2008 (Сб) 20:58

Отключить флоповод (не физически, а в диспетчере устройств), а потом в командной строке
SUBST A: F:\
Последний раз редактировалось keks-n 02.02.2008 (Сб) 21:01, всего редактировалось 1 раз.
Изображение

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 02.02.2008 (Сб) 21:00

Использовать один из множества программных эмуляторов, кои в великом множестве расположены на сайте Google.ru
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Сообщение SergT » 02.02.2008 (Сб) 21:29

А вот одной кнопкой? Я то смогу обмануть, а как далекому пользователю обьяснить, что делать?
Думал , может програмульку написать, чтобы она подменяла ...
например:
как keks-n предлагает
Отключить флоповод (не физически, а в диспетчере устройств), а потом в командной строке
SUBST A: F:\
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 02.02.2008 (Сб) 22:29

Можно наверное сценарий на vbscript написать.
Подпись проходит рефакторинг

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 03.02.2008 (Вс) 0:48

Заменить A на F жестко в бинарнике - помоему быстрее, чем искать альтернативные пути.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Нужжна помощь Гуру (диск А:\ заменить на F:\)

Сообщение jangle » 03.02.2008 (Вс) 1:11

SergT писал(а):Доброе время суток всем жителям форума!
Вот такая проблема:
Некий программист, в некоем городе на Дельфи написал прогу, которая
насильно сохраняет данные на диск A:\
Вопрос:
Что делать, если хочу не на флоппи а на F:\ ( на флешку)?
Можно взломать exe, но время...
Как временно заменить А на F? Или есть иные пути?

С благодарностью приму любую помощь в виде добрых пожеланий, мудрых или оригинальных решений, подсказок, ссылок..


DefineDosDevice

И кстати, зачем такой вопрос постить в топике для профессионалов?

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 03.02.2008 (Вс) 1:45

Хакер писал(а):Заменить A на F жестко в бинарнике - помоему быстрее, чем искать альтернативные пути.


Разве одну API функцию вызвать, это будет не быстрее?

Код: Выделить всё
Private Declare Function DefineDosDevice Lib "KERNEL32.DLL" Alias "DefineDosDeviceA" (ByVal dwFlags As Long, ByVal lpDeviceName As String, ByVal lpTargetPath As String) As Long
Const DDD_REMOVE_DEFINITION = &H2


Private Sub Command1_Click()
DefineDosDevice 0, "A:", "D:\TEMP"
End Sub


Теперь вместо диска A, ввод-вывод будет в каталог D:\TEMP

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 03.02.2008 (Вс) 23:37

Теперь вместо диска A, ввод-вывод будет в каталог D:\TEMP


А subst разве не то же самое делает? Поясните разницу? (или DefineDosDevice создает образ только для эмуляции DOS?)
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 04.02.2008 (Пн) 10:06

Subst делает ровно наоборот - монтирует папку как диск.
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 04.02.2008 (Пн) 10:25

В объявлении к данному подфоруму сказано:
Этот раздел НЕ ПРЕДНАЗНАЧЕН для того, чтобы вы адресовали свою проблему профессионалам.
Этот раздел предназначен ДЛЯ ПРОФЕССИОНАЛОВ, которые столкнулись с проблемой и не могут решить ее самостоятельно.


SergT, tag_warning (1)
Lasciate ogni speranza, voi ch'entrate.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 04.02.2008 (Пн) 10:26

Денис писал(а):
Теперь вместо диска A, ввод-вывод будет в каталог D:\TEMP


А subst разве не то же самое делает? Поясните разницу? (или DefineDosDevice создает образ только для эмуляции DOS?)


Тоже самое делает. SUBST.EXE это только надстройка над вызовом DefineDosDeviceW

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Сообщение SergT » 05.02.2008 (Вт) 10:04

jangle писал(а):
Код: Выделить всё
Private Declare Function DefineDosDevice Lib "KERNEL32.DLL" Alias "DefineDosDeviceA" (ByVal dwFlags As Long, ByVal lpDeviceName As String, ByVal lpTargetPath As String) As Long
Const DDD_REMOVE_DEFINITION = &H2


Private Sub Command1_Click()
DefineDosDevice 0, "A:", "D:\TEMP"
End Sub


Теперь вместо диска A, ввод-вывод будет в каталог D:\TEMP


Спасибо! Пожалуй, такой вариант подходит!

alibek писал(а):В объявлении к данному подфоруму сказано:
Этот раздел НЕ ПРЕДНАЗНАЧЕН для того, чтобы вы адресовали свою проблему профессионалам.
Этот раздел предназначен ДЛЯ ПРОФЕССИОНАЛОВ, которые столкнулись с проблемой и не могут решить ее самостоятельно.


SergT, tag_warning (1)


Согласен с замечанием. Видимо я еще не профессионал :(
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 113

    TopList  
cron