Виртуальная библиотека 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
>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' );
>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' );
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге собраны предания и поверья о призраках ночи — колдунах и ведьмах, оборотнях и вампирах, один вид которых вызывал неподдельный страх, леденивший даже мужественное сердце.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
…«Песнь о Нибелунгах» принадлежит к числу наиболее известных эпических произведений человечества. Она находится в кругу таких творений, как поэмы Гомера и «Песнь о Роланде», «Слово о полку Игореве» и «Божественная комедия» Данте — если оставаться в пределе европейских литератур…В. Г. Адмони.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.