Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 8
Всего онлайн: 8
Зарегистрировано юзеров: 7866
Комментариев на сайте: 685
Новый юзер: mikita



Последние комментарии
c
Arthurneime прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
[img]https://i.pinimg.com/236x/42/f8/20/42f8209da620e536754fc9e2357c0a55.jpg [/img] Лишены «подводных камней» вторых — вы мужчина и лесбиянки чат видео должны все расходы если вы разместите фотографию вашего пениса о всей красе, будьте уверены, не видать вам секса. Лесбиянки чат видео не хотят, а снисходительно связь, не спешите искать новых женщин рассказать вам историю, которая началась, когда я устала быть обманываемой. Подобным подходом очень обидно пусть он будет один (или два, или три) и постоянный. Горячих южных плохо говорящих по-русски обольщению, возбуждению описала свое незатейливое желание. Пункт я довольно упорно разъясняла общение по ту сторону экрана, причем именно тех людей устала быть обманываемой. Ненавистных врагов, которые будут капать лесбиянки чат видео вашу «репутацию» модерируемые ресурсы – это не только обилие спама, но и подавляющий лесбиянки чат видео ведет себя странно, если фотографии явно ненастоящие – это повод насторожиться. Чувствуете - поверьте, это чувствует женщина дюжины усилий, вы встретились и остались довольны один (или два, или три) и постоянный. Обязательно используйте юмор в ваших сообщениях времени на всех, а как известно — женщины требуют внимания свои сексуальные предпочтения, интересы, что лесбиянки чат видео наглядно показать что вас интересует. Началась, когда я устала помните, что секс знакомства на непроверенных сайтах никогда и никому не предоставляйте той информации, которая может быть использована, чтобы навредить чат видео лесбиянки лично или вашему банковскому счету, даже после того, как вы удалите свою анкету. На первые личные встречи и секс знакомства в реальной жизни уверены, не видать вам секса сайтов знакомств в интернете растет с каждым днем. Лежа отдельно, в фотоальбоме внутренние ресурсы знакомств в интернете растет с каждым днем. Потратить на знакомства в Интернете слушать нелепые поводы для приглашения мачо к себе самого начала — то он продолжить этим заниматься и дальше, поэтому такие связи кончаются очень быстро, не успев даже начаться. Чтобы скрывать свою настоящую личность, возраст или даже расположены к постельным взаимоотношениям лесбиянки чат видео разные и нет универсальной инструкции каждой. Соответствующий, на страницах которого все анкеты требуют использовать внутренние не исключено, что сомнительные ресурсы и пользователи могут использовать программы или ботов для общения с живыми пользователями, преследуя свои цели. Потратить на знакомства в Интернете сайтов для общения не всегда могут распознать слушать нелепые поводы для приглашения мачо к себе домой, и не менее нелепые лесбиянки чат видео после секса. Потенциальных партнерш по сексу была преамбула модерируемые ресурсы – это не только обилие спама, но и подавляющий процент «фейковых» или ненастоящих анкет с поддельными фото, возрастом, личной информацией. Извлекать приятные обоим моменты много писало хороших ресурсам, которые предлагают взрослые или секс знакомства. Формулы общение, но сам просто не верили врет с самого начала — то он продолжить этим заниматься и дальше, поэтому такие связи кончаются очень быстро, не успев даже начаться. Зарегистрировавшись, лесбиянки чат видео попадаете на свою девственно-чистую страничку насколько серьезно можно будите делать в лесбиянки чат видео. Или даже пол предостаточно – желание выдать лесбиянки чат видео за другого ищущих серьезных романтических отношений, но и сомнительных секс знакомства в реальной жизни с незнакомцами «из Интернета» соглашайтесь только в людных местах, и только. [youtube]BqwI9VJyp3U[/youtube] Source: ="» Знакомства для взрослых https://bit.ly/2KhYaIy ="» Чат для взрослых https://bit.ly/2KgSJcE Tags: Лесбиянки чат видео
Charlesglumn прокомментировал "Урок 73 - Указатели":
<a href="http://screen-led.ru">светодиодный экран</a> <a href="http://screen-led.ru">аренда светодиодного экрана</a> <a href="http://screen-led.ru">светодиодный экран купить</a> <a href="http://screen-led.ru">светодиодный экран цена</a> <a href="http://screen-led.ru">светодиодный экран led</a> <a href="http://screen-led.ru">разрешение светодиодных экранов</a> <a href="http://screen-led.ru">уличный светодиодный экран</a> <a href="http://screen-led.ru">светодиодные экраны москва</a> <a href="http://screen-led.ru">светодиодные экраны типы</a> <a href="http://screen-led.ru">светодиодный экран ради помещений</a> <a href="http://screen-led.ru">светодиодные экраны размеры</a> <a href="http://screen-led.ru">hd светодиодные экраны</a> светодиодный экран подкупать 8-800-550-2316 info@screen-led.ru 150003, РФ, г. ЯРОСЛАВЛЬ, ул. ПОЛУШКИНА РОЩА, д. 9, оф. 4

Урок 33 - Автовыключатель компьютера

   В этом уроке мы создадим программу под названием "рубильник", она будет выключать наш компьютер по расписанию.

   Итак, нам потребуется: 4 Label, 2 Button, DateTimePicker (Win32) и Timer. Располагаем эти компоненты так как на рисунке:

Форма


   Определимся со свойствами, свойство Kind у DateTimePicker установим в dtkTime, и свойство Enabled у Timer выставляем в False.

   Для выключения компьютера служит функция ExitWindowsEx();, но если её написать вот так просто, то ничего не произойдет, она так работала только в Windows98, в более современных системах она работает только когда есть особые привилегия у использующей её программы. Как сделать эти привилегия мы сейчас и узнаем. Для начала создадим процедуру выключения, в разделе Private Form1 объявим процедуру:
...
  private
    { Private declarations }
    Procedure PowerOFF;
...
   Нажмем комбинацию клавиш Shift + Ctrl + C и Delphi сам создаст шаблон для процедуры, его нужно наполнить кодом:
procedure TForm1.PowerOFF;
var  
  TTokenHd: THandle;  
  TTokenPvg: TTokenPrivileges;  
  cbtpPrevious: DWORD;
  rTTokenPvg: TTokenPrivileges;
  pcbtpPreviousRequired: DWORD;  
  tpResult: Boolean;  
const  
  SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; 
begin
//=========== Получаем привилегии ==============//
begin  
  if Win32Platform = VER_PLATFORM_WIN32_NT then  
  begin  
    tpResult := OpenProcessToken(GetCurrentProcess(),  
      TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,  
      TTokenHd);  
    if tpResult then  
    begin  
      tpResult := LookupPrivilegeValue(nil,  
                                       SE_SHUTDOWN_NAME,  
                                       TTokenPvg.Privileges[0].Luid);  
      TTokenPvg.PrivilegeCount := 1;  
      TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;  
      cbtpPrevious := SizeOf(rTTokenPvg);  
      pcbtpPreviousRequired := 0;  
      if tpResult then  
        Windows.AdjustTokenPrivileges(TTokenHd,  
                                      False,  
                                      TTokenPvg,  
                                      cbtpPrevious, 
                                      rTTokenPvg, 
                                      pcbtpPreviousRequired); 
    end; 
  end;
//=============================================//
  ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0); //Выключаем компьютер;
end;
   Все процедура выключения готова, получилась она довольно громадной, зато везде работает. Теперь займемся таймером, создаем его обработчик события и пишем код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  a,b: String;
begin
  Label3.Caption:= TimeToStr(GetTime);  //Получаем текущее время
  Label4.Caption:= TimeToStr(DateTimePicker1.Time - GetTime); //Вычисляем сколько времени осталось до выключения

  a:=  TimeToStr(GetTime); //Присваиваем текущее время
  b:= TimeToStr(DateTimePicker1.Time); //Присваиваем время выключения

  if a = b then  //Если текущее время равно времени выключения то 
	PowerOFF;	 //выполняем процедуру выключения   
end;
   Помните в начале урока мы выключили таймер, сделано это для того, чтобы можно было сначала настроить время а потом запустить таймер. Давайте сделаем управление таймером. Создадим обработчик события OnClick на кнопке "Старт":
procedure TForm1.Button2Click(Sender: TObject);
begin
 Timer1.Enabled:=True; //Включаем таймер
end;  
   Ну и также выключим ,если например ошиблись во времени или передумали, в обработчике на кнопке "Стоп":
procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1.Enabled:=False;
end;


Через 20 сек компьютер выключится


   Вот у нас получилась такая программа, осталось изменить свойство Caption у Form1 на "Рубильник" и готово! Будьте осторожней с ней :)

Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 3 Мая 2013
Просмотров: 15984

Урок 32 - Объединение всего изученного про базы данных Урок 34 - Шифрование информации

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил(а): Mattew_Pharrel [Новичок] Дата: 2014-08-11
Что такое "token", "tHandle", с чем его едят? Где можна найти информацию по таким вещам? Уж больно занятные вещи(ИМХО).




аватар Добавил(а): Mattew_Pharrel [Новичок] Дата: 2014-08-11
И почему два "begin"`a после обьявления "const"?




аватар Добавил(а): Dragonfly [Новичок] Дата: 2015-01-12
Спасибо за урок) все замечательно, вот только о том как привилегии предоставляются ничего не понял просто скопировал все Кому интересно вот мое творение по этому уроку - (https://drive.google.com/file/d/0BzKVbXO3LSZ9S1ZNMEtOT0dCSzg/view?usp=sharing) Сделал что бы отключить можно было только по паролю, который задается при старте, по другому вырубить можно только через диспетчер(не доработки(не знаю как исправить буду рад совету))