كيف يمكن ايقاف برنامج Process ؟
#1
الاخوة الكرام
كيف يمكنني قفل outlook.exe او اي برنامج في processes بلغة delphi 6

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

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

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

شكرا مرة اخري
الرد
#5
السلام عليكم
اليك هذا المثال بالمرفقات
عليك فقط كتابه اسم العمليه التي تود اغلاقها .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; 


الملفات المرفقة
.rar   kill process.rar (الحجم : 1.42 ك ب / التحميلات : 90)
الرد
#6
الشكرا الكبير لك يا اخي الكريم على هذه 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; 
الرد
#7
السلام عليكم
شكراً على المجهودات القيمة
كيف معرفة أسماء البرامج قيد الاستخدام وليس كل التطبيقات قيد التشغيل مع النظام
ولكم جزيل الشكر
 
سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم