Понедельник, 28.09.2026, 09:21
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSS
Форма входа
Меню сайта
Главная » FAQ » Программирование Delphi [ Добавить вопрос ]

Программирование Delphi [91]
Вопрос-Ответ по программированию

См. пример.
Пример :

 
             procedure TForm1.Button1Click(Sender: TObject); 
             begin 
               SendMessage(FindWindow('Progman', 'Program Manager'), 
                           WM_COMMAND, 
                           $A065, 
                           0); 
             end; 

В приведенном примере определяется включен ли режим "Full Window Drag" (перерисовки всего окна при перемещении)
Пример :

 
             procedure TForm1.Button1Click(Sender: TObject); 
             var 
               b : bool; 
             begin 
               SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, @b, 0); 
               if not b then 
                 ShowMessage('Full Window Drag is not enabled') else 
                 ShowMessage('Full Window Drag is enabled'); 
             end; 

Вызовите функцию Windows API Sleep() передав ноль в качестве параметра.

Пример работает и для Win32и для Win16.

 
             uses 
               Registry, {For Win32} 
               IniFiles; {For Win16} 
 
             {$IFNDEF WIN32} 
               const MAX_PATH = 144; 
             {$ENDIF} 
 
             {For Win32} 
             procedure TForm1.Button1Click(Sender: TObject); 
             var 
               reg: TRegistry; 
             begin 
               reg := TRegistry.Create; 
               reg.RootKey := HKEY_LOCAL_MACHINE; 
               reg.LazyWrite := false; 
               reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', 
                           false); 
               reg.WriteString('My App', Application.ExeName); 
               reg.CloseKey; 
               reg.free; 
             end; 
 
             {For Win16} 
             procedure TForm1.Button2Click(Sender: TObject); 
             var 
               WinIni : TIniFile; 
               WinIniFileName : array[0..MAX_PATH] of char; 
               s : string; 
             begin 
               GetWindowsDirectory(WinIniFileName, sizeof(WinIniFileName)); 
               StrCat(WinIniFileName, '\win.ini'); 
               WinIni := TIniFile.Create(WinIniFileName); 
               s := WinIni.ReadString('windows', 
                                      'run', 
                                      ''); 
               if s = '' then 
                 s := Application.ExeName else 
                 s := s + ';' + Application.ExeName; 
               WinIni.WriteString('windows', 
                                  'run', 
                                  s); 
               WinIni.Free; 
             end; 

Следующий пример изменяет приоритет приложения. Изменение приоритета следует использовать с осторожностью - т.к. присвоение слишком высокого приоритета может привети к медленной работе остальных программ и системы в целом. См. Win32 help for SetThreadPriority() function.
Пример :

 
             procedure TForm1.Button1Click(Sender: TObject); 
             var 
               ProcessID : DWORD; 
               ProcessHandle : THandle; 
               ThreadHandle : THandle; 
             begin 
               ProcessID := GetCurrentProcessID; 
               ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION, 
                                            false, 
                                            ProcessID); 
               SetPriorityClass(ProcessHandle, REALTIME_PRIORITY_CLASS); 
               ThreadHandle := GetCurrentThread; 
               SetThreadPriority(ThreadHandle, THREAD_PRIORITY_TIME_CRITICAL); 
             end; 

Наш опрос
Сколько вам лет
Всего ответов: 20
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Поиск