Виртуальная библиотека Delphi - [8]

Шрифт
Интервал

>SetSystemPowerState(Suspended, Mode: Boolean):boolean;

Suspended должно быть TRUE для ухода в спячку.

Mode — режим входа в спячку. Если TRUE, то всем программам и драйверам посылается Message PBT_APMSUSPEND, по которому они должны немедленно прекратить работу. Если FALSE, то посылается Message PBT_APMQUERYSUSPEND запроса на спячку, и драйвера в ответ могут дать отказ на включение режима спячки.

Возврат функции SetSystemPowerState: TRUE — режим включен.

Пример получения списка запущенных приложений.

>procedure TForm1.Button1Click(Sender: TObject);

>VAR

> Wnd : hWnd;

> buff: ARRAY [0..127] OF Char;

>begin

> ListBox1.Clear;

> Wnd := GetWindow(Handle, gw_HWndFirst);

> WHILE Wnd <> 0 DO BEGIN {Не показываем:}

>  IF (Wnd <> Application.Handle) AND {-Собственное окно}

>   IsWindowVisible(Wnd) AND {-Невидимые окна}

>   (GetWindow(Wnd, gw_Owner) = 0) AND {-Дочерние окна}

>   (GetWindowText(Wnd, buff, sizeof(buff)) <> 0){-Окна без заголовков}

>   THEN BEGIN

>   GetWindowText(Wnd, buff, sizeof(buff));

>   ListBox1.Items.Add(StrPas(buff));

>  END;

>  Wnd := GetWindow(Wnd, gw_hWndNext);

> END;

> ListBox1.ItemIndex := 0;

>end;

Как отключить показ кнопки программы в TaskBar и по Alt-Tab и в Ctrl-Alt-Del 

Внеся изменения (выделенные цветом) в свой проект вы получите приложение, которое не видно в TaskBar и на него нельзя переключиться по Alt-Tab

>program Project1;

>uses

> Forms,

> Windows,

> Unit1 in 'Unit1.pas' {Form1};

>{$R *.RES}

>var

> ExtendedStyle : integer;

>begin

> Application.Initialize;

> ExtendedStyle:=GetWindowLong(application.Handle, GWL_EXSTYLE);

> SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle or WS_EX_TOOLWINDOW {AND NOT WS_EX_APPWINDOW});

> Application.CreateForm(TForm1, Form1);

> Application.Run;

>end.

Если включить синий коментарий, то получите очень интересное приложение. Оно не видно в TaskBar и на него нельзя переключиться по Alt-Tab, но когда приложение минимизируется оно остается на рабочем столе в виде свернутого заголовка (прямо как в старом добром Windows 3.11)


Только сpазу пpедупpеждаю пpо гpабли, на котоpые я наступал:

Будь готов к тому, что если пpи попытке закpытия пpиложения в OnCloseQuery или OnClose выводится вопpос о подтвеpждении, то могут быть пpоблемы с автоматическим завеpшением пpогpаммы пpи shutdown — под Win95 пpосто зависает, под WinNT не завеpшается. Очевидно, что сообщение выводится, но его не видно (пpичем SW_RESTORE не сpабатывает). Решение — ловить WM_QueryEndSession и после всяких завеpшающих действий и вызова CallTerminateProcs выдавать Halt.


А вот как отрубить показ файла в Ctrl-Alt-Del

>function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL';

>implementation

>procedure TForm1.Button1Click(Sender: TObject);

>begin //Hide

> if not (csDesigning in ComponentState) then

>  RegisterServiceProcess(GetCurrentProcessID, 1);

>end;

>procedure TForm1.Button2Click(Sender: TObject);

>begin //Show

> if not (csDesigning in ComponentState) then

>  RegisterServiceProcess(GetCurrentProcessID, 0);

>end;

Добавление программы в автозапуск

sProgTitle: Название для программы

sCmdLine: Имя EXE файла с путем доступа

bRunOnce: Запустить только один раз или постоянно при загрузке Windows

>procedure RunOnStartup(sProgTitle, sCmdLine : string; bRunOnce : boolean);

>var

> sKey : string;

> reg : TRegIniFile;

>begin

> if (bRunOnce)then sKey := 'Once'

> else sKey := '';

> reg := TRegIniFile.Create('');

> reg.RootKey := HKEY_LOCAL_MACHINE;

> reg.WriteString('Software\Microsoft'

>  + '\Windows\CurrentVersion\Run'

>  + sKey + #0,

>  sProgTitle, sCmdLine);

> reg.Free;

>end;

>// Например

>RunOnStartup('Title of my program','MyProg.exe',False );

Примечание. Этот пример удобно использовать при написании деинсталляторов — добавить однократный вызов деинсталлятора и запросить от пользователя перезагрузку. Этот прием позволит безболезненно удалять DLL и им подобные файлы, которые обычном способом удалить невозможно (они загружены в силу того, что использовались деинсталлируемой программой или работают в момент деинсталляции).

Удаляет файл в корзину

>uses ShellAPI;

>function DeleteFileWithUndo( sFileName : string ) : boolean;

>var fos : TSHFileOpStruct;

>begin

> sFileName:= sFileName+#0;

> FillChar( fos, SizeOf( fos ), 0 );

> with fos do begin

>  wFunc := FO_DELETE;

>  pFrom := PChar( sFileName );

>  fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT;

> end;

> Result := ( 0 = ShFileOperation( fos ) );

>end;

Добавить ссылку на мой файл в меню Пуск|Документы 

>uses ShellAPI, ShlOBJ;

>procedure AddToStartDocumentsMenu( sFilePath : string );

>begin

> SHAddToRecentDocs( SHARD_PATH, PChar( sFilePath ) );

>end;

>// Например

>AddToStartDocumentsMenu( 'c:\windows\MyWork.txt' );

Устанавливаем свой WallPaper для Windows

>program wallpapr;

>uses Registry, WinProcs;

>procedure SetWallpaper(sWallpaperBMPPath : String; bTile : boolean );

>var

> reg : TRegIniFile;

>begin

> // Изменяем ключи реестра

> // HKEY_CURRENT_USER

> // Control Panel\Desktop

> // TileWallpaper (REG_SZ)

> // Wallpaper (REG_SZ)

> reg := TRegIniFile.Create('Control Panel\Desktop' );

> with reg do begin

>  WriteString( '', 'Wallpaper', sWallpaperBMPPath );

>  if( bTile )then begin

>   WriteString('', 'TileWallpaper', '1' );


Еще от автора Неизвестный Автор
Галчонок

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Призраки ночи

В книге собраны предания и поверья о призраках ночи — колдунах и ведьмах, оборотнях и вампирах, один вид которых вызывал неподдельный страх, леденивший даже мужественное сердце.


Закат  вечности

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


mmmavro.org | День 131, Победа

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Песнь о Нибелунгах

…«Песнь о Нибелунгах» принадлежит к числу наиболее известных эпических произведений человечества. Она находится в кругу таких творений, как поэмы Гомера и «Песнь о Роланде», «Слово о полку Игореве» и «Божественная комедия» Данте — если оставаться в пределе европейских литератур…В. Г. Адмони.


mmmavro.org | День 132, Поэт

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Рекомендуем почитать
Графика DirectX в Delphi

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Вторая жизнь старых компьютеров

Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.


DirectX 8. Начинаем работу с DirectX Graphics

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.