середа, жовтня 29, 2008

Как имитировать нажатие левой кнопки мыши?

В Delphi:

mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
Application.ProcessMessages;
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

пʼятниця, жовтня 24, 2008

Подпись мидлета

Сегодня мы поговорим как подписать J2Me приложение с помощью Wireless Toolkit. Я не буду расказывать про установку J2ME и Wireless Toolkit, это тема для другого поста. И так: В установках продукта сертификат должен генерироваться специально уполномоченным центром. В нашем случае, можно генерировать сертификат для эмуляции создания подписанного мидлета. 

Шаг 1. Упакуйте мидлет, создав JAR и JAD файлы. Для этого откройте проект, выберите пункт Project в меню и нажмите на Create Package.

Шаг 2. Выберите пункт меню File. Щелкните по Utilities. В открывшемся диалоге выберите Sign MIDlet. Обратите внимание на диапазон дат, когда сертификат считается действительным.
Valid from Sun Feb 05 04:26:34 CST 2007 to Tue Feb 05 05:26:34 CDT 2012.

Шаг 3. Нажмите кнопку Sign MIDlet Suite на верхней панели и выберете jad-файл.

На этом подписание закончено.

четвер, жовтня 23, 2008

Преобразование числа в двоичную запись. Delphi

Для преобразования числа в двоичную запись удобно использовать функции shl и and.

Эта функция преобразует число в строку из единиц и нулей. Количество цифр определяется параметром Digits.

function IntToBin(Value: integer; Digits: integer): string;
var
  i: integer;
begin
  result := '';
  for i := 0 to Digits - 1 do
  begin
    if Value and (1 shl i) > 0 then
      result := '1' + result
    else
      result := '0' + result;
  end;
end;


Вот пример использования этой функции:

procedure TForm1.Edit1Change(Sender: TObject);
begin
  Form1.Caption := IntToBin(StrToIntDef(Edit1.Text, 0), 128);
end;

понеділок, жовтня 20, 2008

Предопределённые константы условной компиляции в Delphi

Версии компилятора

Ver80 - Дельфи 1 
Ver90 - Дельфи 2 
Ver93 - С Buider 1 
Ver100 - Дельфи 3 
Ver110 - С Buider 3 
Ver120 - Дельфи 4 
Ver125 - С Buider 4 
Ver130 - Дельфи 5 
Ver140 - Дельфи 6 
Ver150 - Дельфи 7
Ver160 - Дельфи 8
Ver170 - Дельфи 9
KYLIX - Kylix 1
KYLIX2 - Kylix 2
KYLIX3 - Kylix 3
KYLIX4 - Kylix 4

пʼятниця, жовтня 17, 2008

Переменные среды Windows

В современных ОС компании Microsoft построенных на платформе NT для получения информации о системе используются переменные: Values.docx

неділя, жовтня 12, 2008

Выключить монитор

Из Delphi выключить монитор:

SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);

Из Visual C++:

SendMessage(this->m_Hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, 0);

Естественно этот код под Windows

пʼятниця, жовтня 10, 2008

Проиграть wav файл

Для проигрывания wav файла в Delphi нужно добавить uses mmsystem и выполнить:

sndPlaySound('wav\S.wav', SND_ASYNC);

Для воспроизведения с повторением (вечно) выполнить:

sndPlaySound('wav\S.wav', SND_ASYNC + SND_LOOP);

Для остановки воспроизведения:

sndPlaySound(nil, SND_ASYNC);

понеділок, жовтня 06, 2008

Start Page в Visual Studio

Настройка Start Page английской версии Visual Studio 2008 на получение новостей руского MSDN.

Откройте меню Tools->Options и выберите Startup в списке слева. Затем в поле "Start Page news channel" найдите параметр clcid=409, и измените его на clcid=419. Нажмите "ОК" и перегрузите Студию.

 

пʼятниця, жовтня 03, 2008

Виртуальный диск

Создать виртуальный диск в Delphi:


if DefineDosDevice(DDD_RAW_TARGET_PATH, 'P:', 'F:\Backup\Music\Modules') then
   ShowMessage('Drive was created successfully')
else
   ShowMessage('Error creating drive');

Шифрование файлов

Шифрование файлов при помощи NTFS функций в Delphi.


function EncryptFile(lpFilename: PChar): BOOL; stdcall; external advapi32 name 'EncryptFileA';
function DecryptFile(lpFilename: PChar; dwReserved: DWORD): BOOL; stdcall;
            external advapi32 name 'DecryptFileA';
{....}

procedure TForm1.Button1Click(Sender: TObject);
begin
   if not EncryptFile('c:\temp') then
      ShowMessage('Cant encrypt directory.');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   if not DecryptFile('c:\temp', 0) then
      ShowMessage('Cant decrypt directory.');
end;