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

نسخة كاملة : كيف غلق برنامج ما في GETIONNAIRE DES TACHES
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
بحثت عن سورس لغلق برنامج ما في GETIONNAIRE DES TACHES فوجت هذا:
كود :
procedure TForm1.Button1Click(Sender: TObject); var  MyHandle: THandle; begin  MyHandle:=FindWindow(nil, 'Delphi Help');  SendMessage(MyHandle, WM_CLOSE, 0, 0); end; ولاكن لا يعمل
وعليكم السلام
الكود يعمل بشكل جيد
إنتبه "Delphi Help" هي Caption الخاصة بالنموذج الرئيسي..
أيضا للإستزادة يمكنك إستعمال الدالة TerminateProcess كبديل.
أريد ايقاف Processus
هكذا
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.
الله يحفظك,,,,,,,,,,,,,,,,,,,,, رائع
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');