FillChar(KeyData, sizeof(KeyData), #0);

 KeyData.ScanCode := 255;

 KeyData.RepeatCount := 1;

 SendMessage(Edit1.Handle, WM_KEYDOWN, 255,LongInt(KeyData));

 KeyData.Bits := KeyData.Bits or (1 shl 30);

 KeyData.Bits := KeyData.Bits or (1 shl 31);

 SendMessage(Edit1.Handle, WM_KEYUP, 255, LongInt(KeyData));

 KeyData.Bits := KeyData.Bits and not (1 shl 30);

 KeyData.Bits := KeyData.Bits and not (1 shl 31);

 SendMessage(Edit1.Handle, WM_CHAR, 255, LongInt(KeyData));

 Application.ProcessMessages;

end;

Вопрос:

Некоторые компоненты не меняют курсор мыши до тех пор пока пользователь не сдвинет мышь. Как эмулировать движение мыши?

Ответ:

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

procedure TForm1.Button1Click(Sender: TObject);

var pt : TPoint;

begin

 Application.ProcessMessages;

 Screen.Cursor := CrHourglass;

 GetCursorPos(pt);

 SetCursorPos(pt.x + 1, pt.y + 1);

 Application.ProcessMessages;

 SetCursorPos(pt.x - 1, pt.y - 1);

end;

Вопрос:

Как зарегистрировать расширение файла за своим приложением и контекстное меню, связанное с этим типом?

Ответ:

Пример регистрирует расширение файла(.myext) — файлы этого типа будут открываться приложением MyApp.Exe. Также регнстрируется одно действие (action) по умолчанию для файлов этого типа и два дополнительных пункта контекстного меню, связанного с этим типом файлов. Возможно, потребуется перезайти в систему чтобы изменения вступили в силу.

Пример:

uses Registry;

procedure TForm1.Button1Click(Sender: TObject);

var R : TRegIniFile;

begin

 R := TRegIniFile.Create('');

 with R do begin

  RootKey := HKEY_CLASSES_ROOT;

  WriteString('.myext','','MyExt');

  WriteString('MyExt','','Some description of MyExt files');

  WriteString('MyExt\DefaultIcon','','C:\MyApp.Exe,0');

  WriteString('MyExt\Shell','','This_Is_Our_Default_Action');

  WriteString('MyExt\Shell\First_Action', '','This is our first action');

  WriteString('MyExt\Shell\First_Action\command','', 'C:\MyApp.Exe /LotsOfParamaters %1');

  WriteString('MyExt\Shell\This_Is_Our_Default_Action','', 'This is our default action');

  WriteString('MyExt\Shell\This_Is_Our_Default_Action\command', '','C:\MyApp.Exe %1');

  WriteString('MyExt\Shell\Second_Action', '','This is our second action');

  WriteString('MyExt\Shell\Second_Action\command', '','C:\MyApp.Exe /TonsOfParameters %1');

  Free;

 end;

end;

Перейти на страницу:

Похожие книги