![]() |
WPI
Я делаю что-то похожее на WPI, только на много проще. при нажатии у меня открывается папка с данной программой ну или сама программа. так вот я хочу этот так называемый WPI записать на диск вместе с файлами. Но там в кнопках speedbuton я указал путь.
ShellExecute(Self.Handle,'open','D:\My Files.1.0\Soft\Corel.Painter.X.v10.0.046.Cracked-ARN',nil,nil,SW_SHOWNORMAL); Как мне сделать чтобы буква совпадала всегда с диском? |
Необходимо получить имя диска, с которого запущено приложение.
Информация о полном пути хранится в свойстве Application.ExeName. Диск, с которого запущено приложение: Код:
driveName = ExtractFileDrive(Application.ExeName); |
И будет работать не зависимо от того будь это J или D диск?
|
Ну разумеется нужно подставить driveName вместо D.
Код:
ShellExecute(Self.Handle,'open',driveName + '\My Files.1.0\Soft\Corel.Painter.X.v10.0.046.Cracked-ARN',nil,nil,SW_SHOWNORMAL); |
итак, ещё раз. Можете объяснить что куда вписывать и как подробнее. извините я в Delphi новичок)
|
Ваш код
Код:
ShellExecute(Self.Handle,'open','D:\My Files.1.0\Soft\Corel.Painter.X.v10.0.046.Cracked-ARN',nil,nil,SW_SHOWNORMAL); Код:
driveName = ExtractFileDrive(Application.ExeName); Я вам могу только подсказать идею, я на делфи на писал давно. Если что не так, думаю, форумчане подправят. Если снова не понятно, прикрепляйте исходник, будем смотреть дальше. Skype не пользую. |
Добавляю исходник, извините что ссылка на другой сайт, т. к. исходник выше 650 кб нельзя выложить, а у меня он на 1 мб. наверно из-за картинок.
вот: delphi.zip |
В файле Unit1.pas
procedure TForm1.Button1Click(Sender: TObject); переписана так: Код:
procedure TForm1.Button1Click(Sender: TObject); Остальные - по аналогии. |
не работает. ошибка при запуске. может есть что то проще? можно ли сделать чтобы при загрузке диск менял букву наприм на K?
|
Цитата:
Цитата:
Цитата:
|
Вложений: 1
Ладно, пробую ещё раз. Захожу в Unit1.pas. меняю
procedure TForm1.Button1Click(Sender: TObject); begin ShellExecute(Self.Handle,'open','D:\',nil,nil,SW_SHOWNORMAL); end; на procedure TForm1.Button1Click(Sender: TObject); var driveName:string; begin driveName := ExtractFileDrive(Application.ExeName); ShellExecute(Self.Handle,'open',driveName + '\',nil,nil,SW_SHOWNORMAL); end; закрываю, сохраняю. Теперь запускаю Project2.dpr. Нажимаю выполнить (f9). Что произошло, смотрим на рисунке "Безымянный". |
Точно не помню, но попробуйте так :
Код:
var driveName:string; |
Во, запустилось, только открыло диск C:\
|
NickDang, Если у вас программа находится на диске C:\, то все правильно открылось...
Application.Exename - возвращает полный путь к приложению ExtractFileDrive - извлекает диск из пути Поэтому получается в driveName = C:\... |
значит если прога находиться на D:\My Files.1.0\Soft\Corel.Painter.X.v10.0.046.Cracked-ARN
тогда мне нужно тут после \ добавить путь: var driveName:string; begin driveName := ExtractFileDrive(Application.ExeName); ShellExecute(Self.Handle,'open',PChar(driveName + '\My Files.1.0\Soft\Corel.Painter.X.v10.0.046.Cracked-ARN'),nil,nil,SW_SHOWNORMAL); end; так? |
Да, именно так :)
|
о всё отлично) была ещё проблема в том что проект делфи лежал на С, а файлы на D.
Всем спасибо! |
Время: 09:34. |
Время: 09:34.
© OSzone.net 2001-