Страна СОВЕТОВ

 

Главная                >>

Советы                 >>

Исходники           >>

Мнение о сайте   >>

Заказ программ    >>

Программы           >>

 

Как сделать, чтобы программа запускалась на старте Windows?

Как «усыпить» компьютер?

Как сменить язык?

Как узнать имя пользователя?

Как определить нажатие функциональных клавиш и стрелок?

Номер строки в Memo

Программное управление меню и его вызов

Как сделать так, чтобы по событию запускались браузер с нужным сайтом или редактор почты с нужным адресом?

 

 

 

 

 

 

Как сделать, чтобы программа запускалась на старте Windows?

Можно поместить программу в папку Автозагрузка , но можно  сделать так:

    uses Registry;

   procedure TForm1.Button1Click(Sender: TObject);

   var

  reg: TRegistry;

begin

  Reg := nil;

  try

    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;

  except

    if Assigned(Reg) then Reg.Free;

 

  end;

end;

Если ты нажмешь на кнопку то программа будет загружаться при каждом запуске

 

Содержание

Как «усыпить» компьютер?

procedure TForm1.Button1Click(Sender: TObject);

begin

  SetSystemPowerState(true, true);

end;

Содержание

 

Как сменить язык?

 Этот код меняет язык на следующий

procedure TForm1.Button1Click(Sender: TObject);

begin

  ActivateKeyboardLayout(HKL_NEXT, 0);

end;

Этот код меняет язык на русский

procedure TForm1.Button2Click(Sender: TObject);

begin

  ActivateKeyboardLayout(LoadKeyboardLayout('00000419', 0), 0);

end;

Этот код меняет язык на английский

procedure TForm1.Button3Click(Sender: TObject);

begin

  ActivateKeyboardLayout(LoadKeyboardLayout('00000409', 0), 0);

end;

Содержание

 

Как узнать имя пользователя?

function GetUserName:string;

{Определение имени пользователя}

var

 Buffer: array[0..MAX_PATH] of Char;

 sz:DWord;

begin

 sz:=MAX_PATH-1;

 if windows.GetUserName(Buffer,sz)

 then begin

  if sz>0 then dec(sz);

  SetString(Result,Buffer,sz);

 end else begin

  Result:='Error '+inttostr(GetLastError);

 end;

end;

Содержание

 

Как определить нажатие функциональных клавиш и стрелок?

Проверяйте значение переменной key на равенство VK_RIGHT, VK_LEFT, VK_F1 и т.д. на событии KeyDown формы.

 
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
        if Key = VK_RIGHT then
                Form1.Caption := 'Right';
        if Key = VK_F1 then
                Form1.Caption := 'F1';
end;

 Содержание

 

Номер строки в Memo

Чтобы определить номер текущей строки любого объекта управления edit - пошлите ей сообщение EM_LINEFROMCHAR

 

procedure TForm1.Button1Click(Sender: TObject);

var

        LineNumber : integer;

begin

        LineNumber := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, word(-1), 0);

        ShowMessage(IntToStr(LineNumber));

end;

Содержание

 

Программное управление меню и его вызов

Вы можете посылать комбинации VK_MENU, VK_LEFT, VK_DOWN, и VK_RETURN, чтобы программно "путешествовать" по меню.

 

procedure TForm1.Button1Click(Sender: TObject);

begin

        //Allow button to finish painting in response to the click

        Application.ProcessMessages;

        {Alt Key Down}

        keybd_Event(VK_MENU, 0, 0, 0);

        {F Key Down - Drops the menu down}

        keybd_Event(ord('F'), 0, 0, 0);

        {F Key Up}

        keybd_Event(ord('F'), 0, KEYEVENTF_KEYUP, 0);

        {Alt Key Up}

        keybd_Event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);

        {F Key Down}

        keybd_Event(ord('S'), 0, 0, 0);

        {F Key Up}

        keybd_Event(ord('S'), 0, KEYEVENTF_KEYUP, 0);

end;

Содержание

 

Как сделать так, чтобы по событию запускались браузер с нужным сайтом или редактор почты с нужным адресом?

uses ShellApi;
 
{ ... }
 
ShellExecute("http://www.company.com", ... ); ShellExecute("mailto:author@somewhere.net", ...);
 

Содержание

 
 

 

 

Hosted by uCoz