مشاهدة النسخة كاملة : كيف يمكن ايقاف برنامج Process ؟
WALID KREMA
12-01-2009, 07:19 AM
الاخوة الكرام
كيف يمكنني قفل outlook.exe او اي برنامج في processes بلغة delphi 6
شكرا للجميع
mourad39
12-01-2009, 12:05 PM
السلام عليكم
هذا أمر MS-DOS قد يفيدك في دلفي
taskkill /im notepad.exe
لإغلاق برنامج المفكرة
B.M.AbdelAziZ
14-01-2009, 08:37 AM
استخدم كل من CreateToolhelp32Snapshot / Process32First / Process32Next لتحصل على قائمة بالبرامج التي تعمل
ومن بينها ابحث عن الذي تريد ايقافه ان وجدته استخدم OpenProcess ثم TerminateProcess
هذه طريقة هناك غيرها
والسلام عليكم
WALID KREMA
14-01-2009, 11:05 AM
شكرا يا اخي على ذلك
وان تكرمت ارغب في توضيح اكبر
لاني لم استعمل هذا من قبل ولم اعرف الطريقة
شكرا مرة اخري
galag8
15-01-2009, 07:05 AM
السلام عليكم
اليك هذا المثال بالمرفقات
عليك فقط كتابه اسم العمليه التي تود اغلاقها .exe
uses Psapi, tlhelp32;
function KillTask(ExeFileName: string): Integer;
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
while Integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeF ile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(
OpenProcess(PROCESS_TERMINATE,
BOOL(0),
FProcessEntry32.th32ProcessID),
0));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if Edit1.Text='' then
ShowMessage('please write the process .EXE')
else
KillTask(Edit1.Text);
end;
WALID KREMA
15-01-2009, 07:18 AM
الشكرا الكبير لك يا اخي الكريم على هذه proccedure التى حلت لي مشكلة كبيرة وبارك الله فيك
شكرا لك لقد استخدمت هذه funcation ونجحت ولكن لنفس الجهاز
برنامجي موجود على الشبكة يقوم بنسخ ملف outlook\Outlook.PST من جميع الاجهزة الى server
والمشكلة هو لن يتم النسخ اذا كان outlook.exe يعمل وهذا البرنامج ساعدني كثيرا ولكن ليس عن طريق الserver الوصول الى process في اي clint وقفل outlook.exe من process في هذه clint
وهذه فكرة على البرنامج
DATA.Close;
DATA.SQL.Clear;
DATA.SQL.ADD('SELECT * FROM T1');
DATA.Open;
while not data.Eof do
begin
// KillTask( الامر الخاص بالوصول
copyFile(pchar('\\'+DATA.FIELDBYNAME ('pcname').AsString+'\outlook\Outlook.PST'),pchar( 'c:\share\backup outlook\'+DATA.FIELDBYNAME('userNAME').AsString+'\ Outlook.PST'),true);
data.next;
end;
close;
ع بلال
11-02-2009, 04:34 PM
السلام عليكم
شكراً على المجهودات القيمة
كيف معرفة أسماء البرامج قيد الاستخدام وليس كل التطبيقات قيد التشغيل مع النظام
ولكم جزيل الشكر
vBulletin® , Copyright ©2008-2012