|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.10.2007, 18:03 | #1 |
C# developer
Форумчанин
Регистрация: 03.10.2007
Сообщений: 393
|
проблемы с прогой на delphi
Добрый вечер товарищи программисты.Я написал программу которая открывает cd-rom.
вот мой код: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls,mmsystem; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin mcisendstring('Set cdaudio cdopen wait',nil,0,handle); end; end. проблема в том что по нажатию кнопки cd-rom не открывается посмтрите может подскажите в чём тут дело. да кстати у меня есть и второй cd-rom.еподскажите как мне на него выйти? заранее выражаю огромную ьлагодарность всем откликнувшихся.
I like WPF
|
17.10.2007, 18:10 | #2 |
Армия Рассейская
Форумчанин
Регистрация: 06.12.2006
Сообщений: 175
|
mciSendString('Set cdaudio door open wait', nil, 0, handle);
Вот так попробуй
Сделаем ночь ярче!!! - Ракетные войска стратегического назначения
Центральный клуб туристов РВСН |
17.10.2007, 18:19 | #3 | ||
Форумчанин
Регистрация: 11.10.2007
Сообщений: 384
|
uses
MMSystem ЗАКРЫТЬ CD-ROM Цитата:
Цитата:
Не количеством плюсов измеряется репутация человека...!
|
||
17.10.2007, 18:23 | #4 |
C# developer
Форумчанин
Регистрация: 03.10.2007
Сообщений: 393
|
volkogriz и nemon спасибо вам большое
а насчет вторго вопроса неподскажите как из одной программы моожно открыть первый и второй привод P.S. ёще раз спасибо вы мне очень помогли
I like WPF
|
17.10.2007, 18:24 | #5 |
Армия Рассейская
Форумчанин
Регистрация: 06.12.2006
Сообщений: 175
|
Код:
Сделаем ночь ярче!!! - Ракетные войска стратегического назначения
Центральный клуб туристов РВСН |
17.10.2007, 18:40 | #6 |
C# developer
Форумчанин
Регистрация: 03.10.2007
Сообщений: 393
|
и еще раз спасиб !!!!!!
I like WPF
|
07.12.2007, 14:30 | #7 |
Пользователь
Регистрация: 14.11.2007
Сообщений: 74
|
Скиньте исходник плиз
Каждый из нас в чём-то новичок
|
07.12.2007, 17:09 | #8 |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
Что бы открыть CD-ROM используй лучше вот такую команду:
Открыть CD-ROM. MciSendString('Set CDAudio Door Open Wait', Nil, 0, Handle); Закрыть CD-ROM. MciSendString('Set CDAudio Door Closed Wait', Nil, 0, Handle); Только не забудь добавить в раздел Uses модуль MMSystem, А есле в системе установлено несколько сидеромов, то вот очень удобный и простой исходник для открытия лобого из них. Но для этого тебе надо будет установить компонент WinIoCtl. unit Unit1; interface uses WinIoCtl, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, XPMan; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Button2: TButton; Label1: TLabel; XPManifest1: TXPManifest; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} Procedure TForm1.Button1Click(Sender: TObject); Var HCDDevice: THandle; LpBytesReturned: DWORD; DriveLetter: String; {Char} Begin DriveLetter:=(Edit1.Text); HCDDevice := CreateFile(PChar('\\.\'+DriveLetter +':'), GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, Nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); If HCDDevice <> INVALID_HANDLE_VALUE Then Begin DeviceIoControl(hCDDevice, IOCTL_DISK_EJECT_MEDIA , Nil, 0, nil, 0, LpBytesReturned, Nil); CloseHandle(HCDDevice); End; End; Procedure TForm1.Button2Click(Sender: TObject); Var HCDDevice: THandle; LpBytesReturned: DWORD; DriveLetter: String; {Char} Begin DriveLetter:=(Edit1.Text); HCDDevice := CreateFile(PChar('\\.\'+DriveLetter +':'), GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, Nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); If HCDDevice <> INVALID_HANDLE_VALUE Then Begin DeviceIoControl(hCDDevice, IOCTL_DISK_LOAD_MEDIA , Nil, 0, nil, 0, LpBytesReturned, Nil); CloseHandle(HCDDevice); End; End; End. С уважением Terran.
Всегда рад помочь!
Последний раз редактировалось Terran; 07.12.2007 в 17:12. |
07.12.2007, 20:58 | #9 |
Пользователь
Регистрация: 14.11.2007
Сообщений: 74
|
Спасибо с одним приводом разобрался а с несколькими не получилось можете объяснить код в сообщениях #5 И #8?
(если можно по подробней)
Каждый из нас в чём-то новичок
|
07.12.2007, 21:18 | #10 |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
что бы получилось с двуймя, тебе надо установить компонент в делфи WinIoCtl и потом
можеш просто сделать так: Открыть CD-Rom. Uses WinIoCtl, Var HCDDevice: THandle; LpBytesReturned: DWORD; DriveLetter: String; {Char} Begin DriveLetter:=('E'); HCDDevice := CreateFile(PChar('\\.\'+DriveLetter +':'), GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, Nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); If HCDDevice <> INVALID_HANDLE_VALUE Then Begin DeviceIoControl(hCDDevice, IOCTL_DISK_EJECT_MEDIA , Nil, 0, nil, 0, LpBytesReturned, Nil); CloseHandle(HCDDevice); End; End; А что бы закрыть, измени значкние IOCTL_DISK_EJECT_MEDIA на IOCTL_DISK_LOAD_MEDIA. Смотри на следующей странице, я тебе скинул свой исходник для открытия двух CD-ROмов С уважением Terran!!!
Всегда рад помочь!
Последний раз редактировалось Terran; 07.12.2007 в 22:48. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите с прогой на Delphi | rer | Помощь студентам | 6 | 20.06.2008 12:29 |
помогите с прогой в Delphi | sergeyfsd | Помощь студентам | 1 | 15.05.2008 00:03 |
Помомогите с прогой На Delphi-ях | mas00777 | Помощь студентам | 55 | 27.03.2008 11:23 |
помогите с прогой на delphi | emx2000 | Помощь студентам | 8 | 14.06.2007 21:19 |