TYPE
TTestThread = class(TThread)
private
protected
procedure Execute; override;
end;procedure TTestThread.Execute;
begin
FreeOnTerminate := True;
//线程内容
end;我用TTestThread.Create(False);启动线程,可用TTestThread(0).Terminate;终止线程就报错,用TerminateThread(TestThread.Handle,0);语法检查都通不过。
TTestThread = class(TThread)
private
protected
procedure Execute; override;
end;procedure TTestThread.Execute;
begin
FreeOnTerminate := True;
//线程内容
end;我用TTestThread.Create(False);启动线程,可用TTestThread(0).Terminate;终止线程就报错,用TerminateThread(TestThread.Handle,0);语法检查都通不过。
解决方案 »
- 拖动TreeView上的文件夹在ListView中显示文件
- 我现在有一个MDI主窗体,还有一个MDI字窗体,在这个子窗体上又建了一个窗体,怎么将新建的窗体中的值传给MDI子窗体
- 如何删除scrollbox中所有的原有控件
- 对于read这个过程 读取的内容多少是怎么实现的?
- 请教!!大家一个关于图片格式转换的问题!!!
- 请教高手,关于字符处理,请问如何提取字符串?
- C/S型的运行环境问题!急啊!!!
- 如何把DELPHI运行下的所有文件打包成一个exe的文件
- 请问,如何在delphi中在运行的时候查看一个变量的值。就象是在VC中一样。
- 1stClassStudio控件
- 有关通过线程读取远程服务器上的数据的问题。请朋友看看。
- 求Delphi 5.X ADO/MTS/COM+高级程序设计篇的源代码?
when you need a thread like your ttestthread,you can like;
var
tmpthread:TTestThread;
begin
tmpthread:=TTestTheead.Create(false);
//terminated a thread like
tmpthread.terminate;
end;
MediaPlayer1.Close;tmpthread.terminate;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,TlHelp32, ExtCtrls, Spin;type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
procedure ProcessRefesh();
var lppe: TProcessEntry32;
ssHandle: THandle;
Wnd: HWND;
AppFound: Boolean;
begin
ssHandle := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);
AppFound := Process32First(sshandle, lppe);
while AppFound do
begin
//其中lppe.szExefile就是程序名**********************************************
form1.ListBox1.Items.Add (UpperCase(lppe.szExeFile)) ;
// if (UpperCase(ExtractFileName(lppe.szExeFile))=UpperCase(AppName)) then
// begin
// Wnd := OpenProcess(PROCESS_ALL_ACCESS, true, lppe.th32ProcessID);
// TerminateProcess(Wnd, 0);
// end;
AppFound := Process32Next(ssHandle, lppe);
end;
end;
procedure ProcessExit(AppName:string);
var lppe: TProcessEntry32;
ssHandle: THandle;
Wnd: HWND;
AppFound: Boolean;
begin
ssHandle := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);
AppFound := Process32First(sshandle, lppe);
while AppFound do
begin
//其中lppe.szExefile就是程序名**********************************************
// form1.ListBox1.Items.Add (UpperCase(lppe.szExeFile)) ;
if (UpperCase((lppe.szExeFile))=UpperCase(AppName)) then
begin
Wnd := OpenProcess(PROCESS_ALL_ACCESS, true, lppe.th32ProcessID);
TerminateProcess(Wnd, 0);
end;
AppFound := Process32Next(ssHandle, lppe);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
listbox1.clear;
ProcessRefesh;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
listbox1.clear;
ProcessRefesh;
end;procedure TForm1.Button3Click(Sender: TObject);
var str:string;
i:integer;
begin
if listbox1.SelCount>0 then
begin
for i:=0 to listbox1.ItemHeight do
begin
if listbox1.Selected [i] then
begin
str:=listbox1.Items[i];
form1.Caption:=str;
end;
ProcessExit(str);
end;
end;
end;end.