Помощь - Поиск - Пользователи - Календарь
Полная версия: Autorun
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Dead.MorozZ
Помогите создать Autorun в Делфи!!
Ответьте пожаловста на вопросы:
1. Как в Делфи 7.0 сделать так чтобы при загрузке формы начинала играть музыка?
2. Как сделать так чтобы при нажатии на кнопку открывался диск (сидюк)?
volvo
To: Dead.MorozZ
1. Поставь в OnCreate формы:
PlaySound('test.wav', 0, SND_FILENAME)

2.
MciSendString('Set cdaudio door open', 0,0,form1.handle);
Dead.MorozZ
Спасибо!!
А для воспроизведения музыки Дельфи никаких компонентов не надо??
И еще.. Че параметры означают в обеих прогах??
volvo
PlaySound
mciSendString

Это функции WinApi, компоненты не нужны...
Dead.MorozZ
А где и как их идентифицировать??
volvo
Цитата
А где и как их идентифицировать??

blink.gif

Uses Windows, mmSystem, ... 

если эти 2 модуля подключены, все должно работать...
Dead.MorozZ
Объясни что значит SND_FILENAME, а то я в англицком не секу и те ссылки, которые ты мне дал оказались бесполезными
volvo
Цитата
что значит SND_FILENAME

Это говорит системе, что переданная первым параметром строка является именем Sound-файла (в смысле, звукового wink.gif )
Dead.MorozZ
А по второй проге конфуз вышелsmile.gif)
Я просто не граммотно выразилсяsmile.gif мне надо было диск(CD-Rom) открыть как папку, а не то чтоб мне сам сидюк вылазил. Но все равно вещь полезная! Спасибо!
Может и поможешь и с той прогой, которую мне действительно надо?? PlzZ:)
volvo
Ну, тогда попробуй просто
WinExec('explorer F:\', SW_SHOW);
(вместо F поставь букву своего CD-ROMа)
Dead.MorozZ
А если я не знаю букву СД-рома (я же все-таки Autorun пытаюсь писать, должно быть универсальноsmile.gif
volvo
Тогда качай DRKB отсюда http://www.drkb.ru/ и читай статью "Как узнать букву CD-ROM?"

Кстати, скачать надо в любом случае, там ОЧЕНЬ много полезной информации...
Dead.MorozZ
Слушай, а почему у меня такой странный глюк blink.gif
Запускаю екзешник с этой лабудой. Сначала играет музыка, на середине останавливается и только после этого показывается форма. А мне бы чтоб это одновременно как-то. PlzZ
Dead.MorozZ
И еще такой вопрос: Как музыку остановить в определенный момент??
klem4
Вот для midi нашел в ДРКБ :

uses  
MMSystem;

// Play Midi
procedure TForm1.Button1Click;
const
FileName = 'C:\YourFile.mid';
begin
MCISendString(PChar('play ' + FileName), nil, 0, 0);
end;

// Stop Midi
procedure TForm1.Button1Click;
const
FileName = 'C:\YourFile.mid';
begin
MCISendString(PChar('stop ' + FileName), nil, 0, 0);
end;
Dead.MorozZ
Я вообщем нашел DRKB как узнать адресс, по которому "прживает" ЕХЕшник
Application.ExeName. Но как открыть папку с этим адрессом?? Предложенный Volvo способ ( WinExec('explorer FileName' SW_SHOW) ) не катит во всяком случае у меня не получается. Подскажите как, smile.gif или я че-то не то делаю rolleyes.gif
volvo
To: Dead.MorozZ
Ты что, хочешь программу саму из себя запускать? Зачем тебе Application.ExeName?
Dead.MorozZ
Мне надо найти адресс папки, в которой лежит ЕХЕшник unsure.gif
volvo
Цитата
Мне надо найти адресс папки, в которой лежит ЕХЕшник

ExtractFilePath(ParamStr(0)) не пробовал?
Dead.MorozZ
Попробывал но че-то оброботчик события вообще теперь никак не реагирует. Может чего с параметрами напутал. Может объяснишь что-куда (параметры имелось ввиду)
volvo
WinExec('explorer ' + ExtractFilePath(ParamStr(0)), SW_SHOW);


Только учти, что ЭТО будет работать, когда программа будет запускаться с CD, если ты ее запускаешь с харда - будет открыта та папка, из которой производился запуск...
Dead.MorozZ
Да я, собственно так и делал. Компилятор пишет что-то вроде не соответствие типов
String & PAnsiChar
volvo
Ну, так в чем дело? Типы приводить не умеешь?
  WinExec(pchar('explorer ' + ExtractFilePath(ParamStr(0))), SW_SHOW);
Dead.MorozZ
О!! Спасибо большое, все работает!! Так гораздо лучше!!
И все равно не понятно, почему сначала играет музыка, а потом появляется форма.
Можно как-нибудь, чтоб одновременно происходило??
Atreides
Я тут хочу создать свой авторан на диск. Как задать кнопку обзора CD, что бы при нажатии открывался CD. Как сделать кнопку Извлечь CD и Поиска, которая при нажатии выводит окно для ввода текста, и ведет поиск по имени файла? Как сделать такое окошко, в котором бы отображалась вся структура (дерево) CD? И при двойном клике, на какую либо папку открывалась папка? Какого размера нужно использовать иконки для присвоения её диску? И где достать архивчик таких картинок?
Dead.MorozZ
Цитата
Как задать кнопку обзора CD, что бы при нажатии открывался CD

volvo пишет:
Цитата
WinExec(pchar('explorer ' + ExtractFilePath(ParamStr(0))), SW_SHOW);


Цитата
Как сделать кнопку Извлечь CD

Цитата
MciSendString('Set cdaudio door open', 0,0,form1.handle); 


Цитата
Как сделать такое окошко, в котором бы отображалась вся структура (дерево) CD?

Можно при помощи DirectoryListBox на вкладке Win3.1

Цитата
Какого размера нужно использовать иконки для присвоения её диску? И где достать архивчик таких картинок?

Размером 32 x 32 или 72 x 72. Можно нарисовать самому в Delphi или Painte
Atreides
Цитата
WinExec(pchar('explorer ' + ExtractFilePath(ParamStr(0))), SW_SHOW);

Цитата
MciSendString('Set cdaudio door open', 0,0,form1.handle);

Я пробовал это прописывать, постоянно на них ошибка выпрыгивает.
Atreides
С обзором диска разобрался, а вот извлечение глючит: [Error] Unit1.pas(74): Undeclared identifier: 'MciSendString' and [Fatal Error] Project1.dpr(6): Could not compile used unit 'Unit1.pas'

А как сделать, что бы DirectoryListBox видел архивы и графические расширения? Как можно реализовать кнопку копирования, а если выбранный файл архив то распаковывание во введенную директорию, вводимую в Edit?
volvo
Цитата(Atreides @ 20.04.2006 20:17)
извлечение глючит: [Error] Unit1.pas(74): Undeclared identifier: 'MciSendString' and [Fatal Error] Project1.dpr(6): Could not compile used unit 'Unit1.pas'

Uses ...,  MMSystem;

делал? Я же писАл об этом в посте №6...
Atreides
О всё теперь работает! Спасибо!
hardcase
Господи! DirectoryListBox! Где вы такую древность раскопали. Это компоненты со вкладки Win3.1 - вдумайтесь в это слово! Win 3.1!

Нормальные люди используют Shell контролы для работы с оболочкой: TShellTreeView, TShellListView и др. Они кажется на Samples лежат
Atreides
Как добавить в поле типа Memo кнопку прокручивания списка вниз. И как этот скролл называется? Как задать полоске текста типа Label, что бы при достижение текстом конца заданной рамки он автоматически переносился на новую строку, а не продолжал ползти за границу рамки?
Dead.MorozZ
Цитата
Как добавить в поле типа Memo кнопку прокручивания списка вниз. И как этот скролл называется?

Свойство ScrollBars у Memo.
Цитата
Как задать полоске текста типа Label, что бы при достижение текстом конца заданной рамки он автоматически переносился на новую строку, а не продолжал ползти за границу рамки?

Свойство WordWrap присвой True.
Atreides
Как сделать, так что бы окно нельзя было менять в размере, растягивать?
volvo
Установить форме BorderStyle в bsSingle

Ну и максимизацию отключить:
BorderIcons -> biMaximize установить в False
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.