delphi4arab منتديات دلفي للعرب

نسخة كاملة : كيف يمكن ايقاف برنامج Process ؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الاخوة الكرام
كيف يمكنني قفل outlook.exe او اي برنامج في processes بلغة delphi 6

شكرا للجميع
السلام عليكم
هذا أمر MS-DOS قد يفيدك في دلفي
taskkill /im notepad.exe
لإغلاق برنامج المفكرة

استخدم كل من CreateToolhelp32Snapshot / Process32First / Process32Next لتحصل على قائمة بالبرامج التي تعمل
ومن بينها ابحث عن الذي تريد ايقافه ان وجدته استخدم OpenProcess ثم TerminateProcess

هذه طريقة هناك غيرها
والسلام عليكم
شكرا يا اخي على ذلك
وان تكرمت ارغب في توضيح اكبر
لاني لم استعمل هذا من قبل ولم اعرف الطريقة

شكرا مرة اخري
السلام عليكم
اليك هذا المثال بالمرفقات
عليك فقط كتابه اسم العمليه التي تود اغلاقها .exe
PHP كود :
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.szExeFile)) =
      
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; 
الشكرا الكبير لك يا اخي الكريم على هذه proccedure التى حلت لي مشكلة كبيرة وبارك الله فيك
شكرا لك لقد استخدمت هذه funcation ونجحت ولكن لنفس الجهاز

برنامجي موجود على الشبكة يقوم بنسخ ملف outlook\Outlook.PST من جميع الاجهزة الى server
والمشكلة هو لن يتم النسخ اذا كان outlook.exe يعمل وهذا البرنامج ساعدني كثيرا ولكن ليس عن طريق الserver الوصول الى process في اي clint وقفل outlook.exe من process في هذه clint
وهذه فكرة على البرنامج
PHP كود :
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; 
السلام عليكم
شكراً على المجهودات القيمة
كيف معرفة أسماء البرامج قيد الاستخدام وليس كل التطبيقات قيد التشغيل مع النظام
ولكم جزيل الشكر