Читать «Виртуальная библиотека Delphi» онлайн - страница 18

Unknown

var

 FolderPath :string;

 Registry := TRegistry.Create;

try

 Registry.RootKey := HKey_Current_User;

 Registry.OpenKey('Software\Microsoft\Windows\'+

  'CurrentVersion\Explorer\Shell Folders', False);

 FolderName := Registry.ReadString('StartUp');

 {Cache, Cookies, Desktop, Favorites,

 Fonts, Personal, Programs, SendTo, Start Menu, Startp}

finally

 Registry.Free;

end;

Как засунуть в исполняемый файл wav-файл, и затем проиграть этот звук?

В файл MyWave.rc пишешь:

MyWave RCDATA LOADONCALL MyWave.wav

Затем компилируешь

brcc32.exe MyWave.rc

получаешь MyWave.res.

В своей программе пишешь:

{$R MyWave.res}

procedure RetrieveMyWave;

var

 hResource: THandle;

 pData: Pointer;

begin

 hResource:=LoadResource( hInstance, FindResource(hInstance, 'MyWave', RT_RCDATA));

 try

  pData := LockResource(hResource);

  if pData = nil then raise Exception.Create('Cannot read MyWave');

  // Здесь pData указывает на MyWave

  // Теперь можно, например, проиграть его (Win32):

  PlaySound('MyWave', 0, SND_MEMORY);

 finally

  FreeResource(hResource);

 end;

end;

Как скрыть таскбар?  

procedure TForm1.Button1Click(Sender: TObject);

var

 hTaskBar : THandle;

begin

 hTaskbar := FindWindow('Shell_TrayWnd', Nil);

 ShowWindow(hTaskBar, SW_HIDE);

end;

procedure TForm1.Button2Click(Sender: TObject);

var

 hTaskBar : THandle;

begin

 hTaskbar := FindWindow('Shell_TrayWnd', Nil);

 ShowWindow(hTaskBar, SW_SHOWNORMAL);

end;

События нажатия на системные кнопки формы (минимизация, закрытие...)

Хотелось бы чтобы при нажатии на кнопку minimize программа исчезала из таскбара.

При нажатии на эти кнопки происходит сообщение WM_SYSCOMMAND, его то и надо перехватить.

При этом:

uCmdType = wParam; // type of system command requested

xPos = LOWORD(lParam); // horizontal postion, in screen coordinates

yPos = HIWORD(lParam); // vertical postion, in screen coordinates

Пример:

Type TMain = class(TForm)

 ....

protected

 Procedure WMGetSysCommand(var Message :TMessage); message WM_SYSCOMMAND;

end;

.....

//------------------------------------------------------------------------

// Обработка сообщения WM_SYSCOMMAND (перехват минимизации окна)

//------------------------------------------------------------------------

Procedure TForm1.WMGetSysCommand(var Message : TMessage) ;

Begin

 IF (Message.wParam = SC_MINIMIZE) Then Form1.Visible:=False

 Else Inherited;

End;

Подключение и отключение сетевых дисководов 

Для работы с сетевыми дисководами (и ресурсами типа LPT порта) в WIN API 16 и WIN API 32 следующие функции: