Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

СообЧА. Программирование на Delphi


Служба Рассылок Subscribe.Ru
Subscribe.Ru :СообЧа программирование на дельфи !
—Сообча : программирование на дельфи

Здесь могла бы быть ваша реклама: обращайтесь ко мне...


СооБча : Коллекционный выпуск Design:Pixel
 В этом выпуске:

Обратите внимание на размер нашей рассылки :)(с) Optimist

 

Рассылки Subscribe.Ru это стильно удобно, и информативно!
СообЧа (СООБщество ЧАйников). Обмен опытом, вопросы, ответы.
подпишись и подпиши друга!!!!

 Contact (Связь с Нами):

Pixel@novgorod.net + Subject:

Vcl Haunting

"Золотой Чайник"

Вопрос по дельфи N (номер версии)

Help!

 

 

Новости (Слово о нашем спонсоре...)

К заголовку

Лучшие товары ОЗОНА
  • Sudden Strike(противостояние 3) убойная ТАКТИЧЕСКИ ГРАМОТНАЯ RTS на тему 2й мировой войны...
  • Tropico : Любителям убить время за красивой игрой посвещается
  • особенности Delphi6 (книга): книженция знакомит вас с новыми возможностями Делфи6 и особенностей VCL/API

Купите- не пожалеете!

 

Убиваем Активное приложение

К заголовку

Данная функция позволяет завершить выполнение любой активной программы по её classname или заголовку окна. Совместимость: Все версии Delphi

Исходный код функции

--------------------------------------------------------------------------------
procedure KillProgram(Classname : string; WindowTitle : string);
const

PROCESS_TERMINATE = $0001;
var

ProcessHandle : THandle;
ProcessID: Integer;
TheWindow : HWND;
begin

TheWindow := FindWindow(Classname, WindowTitle);
GetWindowThreadProcessID(TheWindow, @ProcessID);
ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
TerminateProcess(ProcessHandle,4);
end;

Комментарии

Xianguang Li=(22 Октября 2000) В Delphi 5, при компиляции получается следующая ошибка :

Incompatible types: 'String' and 'PChar'.
После изменения выражения


--------------------------------------------------------------------------------
TheWindow := FindWindow(ClassName, WindowTitle)

на

--------------------------------------------------------------------------------
TheWindow := FindWindow(PChar(ClassName), PChar(WindowTitle)) ,

Нормально откомпилировалось.

И ещё: если мы не знаем ClassName или WindowTitle программы, которую мы хотим убить, то мы не сможем её завершить. Причина в том, что нельзя вызвать функцию в виде:

--------------------------------------------------------------------------------
KillProgram(nil, WindowTitle)

или

--------------------------------------------------------------------------------
KillProgram(ClassName, nil)

Компилятор не позволяет передать nil в переменную типа String.

Итак, я изменил объявление

--------------------------------------------------------------------------------
KillProgram(ClassName: string; WindowTitle: string)

на

--------------------------------------------------------------------------------
KillProgram(ClassName: PChar; WindowTitle: PChar),

вот теперь функция действительно может завершить любое приложение, если вы не знаете ClassName или WindowTitle этого приложения.

 

 

 

 

Чтение и запись в/из файла

К заголовку

{

В следующем примере показано как можно осуществить чтение
и запись данных в/из файла. Данный пример предполагается
в первую очередь использовать тем, кто делает первые шаги
в вопросах чтения/записи. Для получения дополнительной
информации о каждом объекте, обратитесь к электронной справке.
В коде присутствует минимальная обработка исключительных
ситуаций, но она никоим образом не является законченным решением.


Для оформления программы необходимо установить на форме
компонент TMemo с заголовком Запись, и кнопку с заголовком
Чтение. Запустите программу, поместите несколько строк в "memo",
после чего нажмите на кнопку Запись. Очистите "memo", и нажмите Чтение.

}

procedure TForm1.BtnWriteClick(Sender: TObject);

var
FileStream: TFileStream;
Writer : TWriter;
I : Integer;
begin
FileStream := TFileStream.Create ('c:\delphi\projects\delta40\fileio\stream.txt',
fmCreate or fmOpenWrite or fmShareDenyNone);
Writer := TWriter.Create (FileStream, $ff);
Writer.WriteListBegin;
for I := 0 to Memo1.Lines.Count - 1 do Writer.WriteString (Memo1.Lines[I]);
Writer.WriteListEnd;
Writer.Destroy;
FileStream.Destroy;
end;


procedure TForm1.BtnReadClick(Sender: TObject);

var
FileStream: TFileStream;
Reader : TReader;
begin
{ пробуем открыть несуществующий файл
}
try
FileStream := TFileStream.Create ('c:\delphi\projects\delta40\fileio\bogus.txt',
fmOpenRead);
except
; { Destroy не нужен, поскольку Create потерпела неудачу }
end;


FileStream := TFileStream.Create ('c:\delphi\projects\delta40\fileio\stream.txt',
fmOpenRead);
Reader := TReader.Create (FileStream, $ff);
Reader.ReadListBegin;
Memo1.Lines.Clear;
while not Reader.EndOfList do Memo1.Lines.Add (Reader.ReadString);
Reader.ReadListEnd;
Reader.Destroy;
FileStream.Destroy;
end;


 

 

Форматирование

К заголовку

Используем ShFormatDrive:

--------------------------------------------------------------------------------
const SHFMT_DRV_A = 0;
const SHFMT_DRV_B = 1;

const SHFMT_ID_DEFAULT = $FFFF;

const SHFMT_OPT_QUICKFORMAT = 0;
const SHFMT_OPT_FULLFORMAT = 1;
const SHFMT_OPT_SYSONLY = 2;

const SHFMT_ERROR = -1;
const SHFMT_CANCEL = -2;
const SHFMT_NOFORMAT = -3;

function SHFormatDrive(hWnd : HWND;
Drive : Word;
fmtID : Word;
Options : Word) : Longint
stdcall; external 'Shell32.dll' name 'SHFormatDrive';

procedure TForm1.Button1Click(Sender: TObject);
var
FmtRes : longint;
begin
try
FmtRes:= ShFormatDrive(Handle,
SHFMT_DRV_A,
SHFMT_ID_DEFAULT,
SHFMT_OPT_QUICKFORMAT);
case FmtRes of
SHFMT_ERROR : ShowMessage('Error formatting the drive');
SHFMT_CANCEL :
ShowMessage('User canceled formatting the drive');
SHFMT_NOFORMAT : ShowMessage('No Format')
else
ShowMessage('Disk has been formatted');
end;
except
end;

end;

 

До встречи...

Zaluskiy Anton(COOLer)  и Khrapunov Kirill(Pixel)  - ведущие проекта    "Мир Delphi" Copyright : Pixelsoftware(Pixel)& Delphi 2000(COOLer)


к3кй TopList SpyLOG

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное