30-12-2022, Saat: 10:21
Herkese kolaylıklar diliyorum.
Bir konu hakkında yardım rica ediyorum.
Çalışan uygulamanın zaten arka planda çalışıp çalışmadığını kontrol etmek istiyorum. Yani kullanıcı daha önce açmış ve çalışıyor ise ikinci bir kez açtığında uygulama zaten açık demek istiyorum.
Burda arka planda çalışan uygulamalarda olup olmadığını anlamak mümkün fakat bunu kontrol etmek için programı açmak gerekiyor ve açıldığında zaten yeni bir exe oluştuğu için herhalukarda açık diyor. ( Ana formunu create kısmında kontrol etmeyi denedim. Ama tabiki doğru bir yöntem değil)
Nasıl bir yol izlemem gerekiyor.
Herkese şimdiden teşekkürler.
Bir konu hakkında yardım rica ediyorum.
Çalışan uygulamanın zaten arka planda çalışıp çalışmadığını kontrol etmek istiyorum. Yani kullanıcı daha önce açmış ve çalışıyor ise ikinci bir kez açtığında uygulama zaten açık demek istiyorum.
function processExists(exeFileName: string): Boolean; var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32; begin FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := SizeOf(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); Result := False; while Integer(ContinueLoop) <> 0 do begin if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName))) then begin Result := True; end; ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); end; CloseHandle(FSnapshotHandle); end;
Burda arka planda çalışan uygulamalarda olup olmadığını anlamak mümkün fakat bunu kontrol etmek için programı açmak gerekiyor ve açıldığında zaten yeni bir exe oluştuğu için herhalukarda açık diyor. ( Ana formunu create kısmında kontrol etmeyi denedim. Ama tabiki doğru bir yöntem değil)
Nasıl bir yol izlemem gerekiyor.
Herkese şimdiden teşekkürler.