Gray Angel Опубликовано 12 января, 2006 Жалоба Поделиться Опубликовано 12 января, 2006 есть пару вопросов по Win32Api: 1) Нужно работать с сокетами спомощью стандартных библиотек Windows. Таскать с собой WinSock контрол меня не прикалывает. 2) Нужен полный справочник по функиям GDI32.dll можно без примеров. 3) Есть ли какие нибудь функции для информации о дисках, получение директории ну и тд что связано с файлами. VB-шная функция dir() довольно медленная, а у меня довольно большая прога. 4) Есть функция mciSendString (winmm.dll) Командами открываю и закрываю сидюк: mciSendString "Set cdaudio door open wait", 0, 0, 0 mciSendString "Set cdaudio door closed wait", 0, 0, 0 Прикол в том что на компе могут быть несколько CD-приводов или например CD и DVD но функция открывает только первый... Мне бы открывать сидюк по букве его диска. Ну и не совсем по Api: 5) Надо воспроизводить JavaScript подобно браузеру. JavaScript конечно знаю, но хотелось бы работать с библиотеками явы 6) Нужно описание заголовков клиента и сервера для протакола http 7) Нужно описание команд сервера и клиента для протокола ftp Ссылка на комментарий Поделиться на другие сайты Поделиться
Andrew.Egorovsky Опубликовано 13 января, 2006 Жалоба Поделиться Опубликовано 13 января, 2006 Gray Angel: 1. зачем таскать контрол, когда есть dll? Смотри в MSDN, там есть. Полезная книга - Ян Снайдер "Эффективное программирование TCP/IP" Для поиска инфы используй слова-имена функций socket, accept, listen, bind - это все входит в библиотеку сокетов. 2. MSDN - есть просто все (почти все, на самом деле) и про GDI, и про user32 и про kernel32..... Существует как в нете, так и в офлайновом виде - как правило, прилагается к VisualStudio.... Много полезного есть здесь 3. Там же. Только на апи это все иногда менее удобно, чем в функциях более высокого уровня. Начни с FindFirstFile, в доках, как правило написано, что и как искать этими ф-циями. 4. Хотел бы я знать 5 - только направление могу указать - ищи JDK, там наверняка есть...... 6 - Этот pdf - вероятно, деревянным языком написан, но это описание..... 7 - например, тут. Ссылка на комментарий Поделиться на другие сайты Поделиться
Nik-007 Опубликовано 16 марта, 2006 Жалоба Поделиться Опубликовано 16 марта, 2006 4) Есть функция mciSendString (winmm.dll) Командами открываю и закрываю сидюк: mciSendString "Set cdaudio door open wait", 0, 0, 0 mciSendString "Set cdaudio door closed wait", 0, 0, 0 Прикол в том что на компе могут быть несколько CD-приводов или например CD и DVD но функция открывает только первый... Мне бы открывать сидюк по букве его диска. --------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------- Данные функции работаю только с первым устройством в системе: Открыть дверцу: mciSendString( 'Set cdaudio door open wait', nil, 0, application.handle); закрыть дверцу: mciSendString( 'Set cdaudio door closed wait', nil, 0, application.handle); ----------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------- Функция OpenCD открывает лоток CDROM. Параметр Drive - буква диска лоток которого необходимо открыть. Функция CloseCD закрывает лоток CDROM. Параметр Drive - буква диска лоток которого необходимо закрыть. ..... uses ... MMSystem; function OpenCD(Drive : Char) : Boolean; Var Err : MciError; OpenParm: TMCI_Open_Parms; 1 Flags : DWord; S : String; DeviceID : Word; begin Result:=false; S:=Drive+':'; Flags:=mci_Open_Type or mci_Open_Element; // См. mci_Open With OpenParm do begin dwCallback := 0; lpstrDeviceType := 'CDAudio'; 2 lpstrElementName := PChar(S); end; Err := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm)); 3 IF Err<>0 Then exit; DeviceID:=OpenParm.wDeviceID; try Err:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0); IF Err=0 Then exit; Result:=True; finally mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm)); 4 end; end; function CloseCD(Drive : Char) : Boolean; Var Err : MciError; OpenParm: TMCI_Open_Parms; 1 Flags : DWord; S : String; DeviceID : Word; begin Result:=false; S:=Drive+':'; Flags:=mci_Open_Type or mci_Open_Element; With OpenParm do begin dwCallback := 0; lpstrDeviceType := 'CDAudio'; 2 lpstrElementName := PChar(S); end; Err := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm)); 3 IF Err<>0 Then exit; DeviceID:=OpenParm.wDeviceID; try Err:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0); IF Err=0 Then exit; Result:=True; finally mciSendCommand(DeviceID, MCI_CLOSE, Flags, Longint(@OpenParm)); 4 end; end; ***************************************************************************** 1 TMCI_Open_Parms = record dwCallback: DWORD; wDeviceID: MCIDEVICEID; lpstrDeviceType: PAnsiChar; lpstrElementName: PAnsiChar; lpstrAlias: PAnsiChar; end; ***************************************************************************** 2 '' (пустой) - автовыбор 'AVIVideo' - .Avi (аудио-видео файл) 'CDAudio' - аудио компакт-диск 'DAT' - файл видеоданных (чаще Mpeg-1) 'DigitalVideo' - цифровое видео 'MMMovie' - мультимедиа и анимация 'Other'- другое 'Overlay' - оверлей 'Scanner' - сканер 'Sequencer' - секвенсер 'VCR' - {описания я не нашел, в стандартном хелпе нет, скорее всего это какое-то видео устройство} 'Videodisc' - видеодиск 'WaveAudio' - цифровое аудио ****************************************************************************** 3 mci_Open Флаг MCI_OPEN_TYPE должен использоваться всякий раз, когда устройство определяется в функции mciSendCommand. Если Вы открываете устройство устанавливая константу типа устройства, Вы должны установить флаг MCI_OPEN_TYPE_ID дополнительно к MCI_OPEN_TYPE. Список констант см. ниже. Если флаг MCI_OPEN_SHAREABLE не установлен, когда устройство или файл уже открыты, все последующие команды MCI_OPEN для устройства или файла потерпят неудачу. Если устройство или файл уже открыто и этот флаг не установлен, вызов потерпит неудачу даже если бы первая команда открытия установила MCI_OPEN_SHAREABLE. Файлы открытые для MCISEQ.DRV и устройства MCIWAVE.DRV являются неразделяемыми(nonshareable). Для того, чтобы использовать автоматический выбор типа (через данные в реестре), установите имя файла и расширение в элементе lpstrElementName структуры указанной в dwParam2, элемент lpstrDeviceType должен быть nil и установлен флаг MCI_OPEN_ELEMENT. Дополнительные Флаги: Следующие дополнительные флаги относятся к всем устройствам поддерживающим MCI_OPEN: MCI_OPEN_ALIAS - Псевдоним заноситься в элемент lpstrAlias структуры указанной в dwParam2. MCI_OPEN_SHAREABLE - Устройство или файл должно быть окрыть как общее(разделенное). MCI_OPEN_TYPE - Имя или константа типа устройства заносится в элемент lpstrDeviceType структуры указанной в dwParam2. MCI_OPEN_TYPE_ID - Младшее слово элемента lpstrDeviceType структуры указанной в dwParam2 содержит стандартный идентификатор типа устройства MCI, а старшее слово дополнительо содержит порядковый индекс устройства. Используйте этот флаг совместно с флагом MCI_OPEN_TYPE.{Прим. составителя: В оригинале указан элемент lpstrDeviceType, но он строковый и никакого младшего и старшего слова у него нет, поэтому самое близкое по смыслу - элемент wDeviceID, возможно надо его использовать.} Следующие дополнительные флаги определяют состав устройств: MCI_OPEN_ELEMENT - Имя файла включается в элемент lpstrElementName. MCI_OPEN_ELEMENT_ID - Элемент lpstrElementName интерпретируется как DWORD и обозначает внутренне ID устройства. Флаги анимации: Следующие дополнительные флаги используются типом устройств анимации: MCI_ANIM_OPEN_NOSTATIC - Устройство должно уменьшить число статических(системных) цветов в палитре до двух. MCI_ANIM_OPEN_PARENT - Хенл родительского окна устанавливается в элементе hWndParent структуры указанной в dwParam2. Хенл родительского окнанеобходим для установки некоторых стилей окна. MCI_ANIM_OPEN_WS - Стиль окна определяется в элементе dwStyle структуры указанной в dwParam2. Элемент dwStyle определяет стиль окна, которое драйвер будет создавать и отображать(дисплей), если приложение не обеспечило его. Эти параметры такие же как и в стилях используемые функцией CreateWindow (например, WS_CHILD, WS_OVERLAPPEDWINDOW, и WS_POPUP) См. WS_. Для устройств анимации, параметр dwParam2 указывает на структуру TMCI_Anim_Open_Parms. Флаги цифрового видео: Следующие дополнительные флаги используются типом} устройств цифрового видео(digitalvideo): MCI_DGV_OPEN_NOSTATIC - Устройство должно уменьшить число статических(системных) цветов в палитре. Это число цветов доступно для рендеринга(отрисовки) видеопотоком. Этот флаг относиться только к устройствам которые разделяют(share) палитру с Windows. MCI_DGV_OPEN_PARENT - Хенл родительского окна устанавливается в элементе hWndParent структуры указанной в dwParam2. MCI_DGV_OPEN_WS - Стиль окна определяется в элементе dwStyle структуры указанной в dwParam2. Для устройств цифрового видео, параметр dwParam2 указывает на структуру TMCI_Anim_Open_Parms {в оригинале указана структура MCI_DGV_OPEN_PARMS, но так как она совпадает со структурой TMCI_Anim_Open_Parms, то разработчики Дельфи решили пойти на оптимизацию кода и убрали лишнюю структуру}. Флаги видеооверлея(Video-overlay): Следующие дополнительные флаги используются оверлейным устройством: MCI_OVLY_OPEN_PARENT - Хенл родительского окна устанавливается в элементе hWndParent структуры указанной в dwParam2. MCI_OVLY_OPEN_WS - Стиль окна определяется в элементе dwStyle структуры указанной в dwParam2. Для оверлейных устройств, параметр dwParam2 указывает на структуру TMCI_Ovly_Open_Parms. Флаги Waveaudio: Следующий дополнительный флаг используется типом устройств waveaudio: MCI_WAVE_OPEN_BUFFER - длинна буфера указывается в элементе dwBufferSeconds. Для waveform-звуковых устройств, параметр dwParam2 указывает на структуру TMCI_Wave_Open_Parms. Драйвер MCIWAVE требует асинхронное waveform-звуковое устройство. ******************************************************************************************* Сообщение MCI_CLOSE освобождает доступ к устройству или файлу. Все устройства принимают это сообщение. Параметры: mciId: Идентификатор устройства MCI, которое должно получить сообщение. dwParam1: Флаги MCI_NOTIFY или MCI_WAIT. dwParam2: Адрес структуры TMCI_Generic_Parms. (В оригинале говорится о структурах MCI_CLOSE_PARMS и MCI_REALIZE_PARMS, но ввиду того, что они одинаковы разработчики Дельфи решили использовать одну структуру вместо трех.) Замечания Завершая приложение, не забывайте закрывать все открытые устройства MCI, иначе можно оставить их недоступными. ******************************************************************************************* Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти