delphi4arab منتديات دلفي للعرب
كيف غلق برنامج ما في GETIONNAIRE DES TACHES - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف غلق برنامج ما في GETIONNAIRE DES TACHES (/showthread.php?tid=8636)



كيف غلق برنامج ما في GETIONNAIRE DES TACHES - Bachirsoft - 19-04-2017

السلام عليكم
بحثت عن سورس لغلق برنامج ما في GETIONNAIRE DES TACHES فوجت هذا:
كود :
procedure TForm1.Button1Click(Sender: TObject); var  MyHandle: THandle; begin  MyHandle:=FindWindow(nil, 'Delphi Help');  SendMessage(MyHandle, WM_CLOSE, 0, 0); end; ولاكن لا يعمل



RE: شرح - Agmcz - 19-04-2017

وعليكم السلام
الكود يعمل بشكل جيد
إنتبه "Delphi Help" هي Caption الخاصة بالنموذج الرئيسي..
أيضا للإستزادة يمكنك إستعمال الدالة TerminateProcess كبديل.


RE: كيف غلق برنامج ما في GETIONNAIRE DES TACHES - Bachirsoft - 20-04-2017

أريد ايقاف Processus


RE: كيف غلق برنامج ما في GETIONNAIRE DES TACHES - Agmcz - 20-04-2017

هكذا
PHP كود :
uses
  Tlhelp32
;

function 
ProcessIDFromAppname32(appname: string): DWORD;
var
 
 snapshot: THandle;
 
 processEntry: TProcessEntry32;
begin
  Result 
:= 0;
 
 appName := UpperCase(appname);
 
 snapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 
 if snapshot <> 0 then
    try
      processEntry
.dwSize := Sizeof(processEntry);
 
     if Process32First(snapshot, processEntry) then
        repeat
          if Pos
(appname,
 
           UpperCase(ExtractFilename(
 
           StrPas(processEntry.szExeFile)))) > 0 then
          begin
            Result 
:= processEntry.th32ProcessID;
 
           Break;
 
         end;
 
       until not Process32Next(snapshot, processEntry);
 
   finally
      CloseHandle
(snapshot);
 
   end;
end;

// Usage:

var
 
 hProcess: THandle;
 
 PID: DWORD;
begin
  PID 
:= ProcessIDFromAppname32('target.exe');
 
 hProcess := OpenProcess(PROCESS_TERMINATE, False, PID);
 
 TerminateProcess(hProcess, 0);
end;
مبدئيا هذا يلبي طلبك.
مع مرعات أن هذا الكود يقوم بغلق أول Process 

مبدئيا هذا يلبي طلبك.
مع مرعات أن هذا الكود يقوم بغلق أول Process.


RE: كيف غلق برنامج ما في GETIONNAIRE DES TACHES - Bachirsoft - 21-04-2017

الله يحفظك,,,,,,,,,,,,,,,,,,,,, رائع


RE: كيف غلق برنامج ما في GETIONNAIRE DES TACHES - onexite - 16-05-2017

PHP كود :
uses
  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;

KillTask('notepad++.exe');