Tüm Platformlar için Hızlı Uygulama Geliştirme Kitabı... Delphi
Ön Sipariş Talebinde Bulunan Üyelerimiz
Sipariş Talebinde Bulunan Üyelerimiz

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Farklı programları tek bir program altında birleştirme
#1
Sevgili meslektaşlarım,

bir konuda yardımarınızı rica edeceğim. Yazmış olduğum 12 farklı program var ve sadece exe olarak yapılmış durumda. Ancak tüm bu pogramları bir araya getirerek, tek bir exe altında çalışmasını düşünüyorum. Yani tek exe de menüler oluşturup, bu menülerle tüm programları çalıştırmak istiyorum. Ancak, ilgili programı sadece yetkili user açabilmeli. Konunun içinden bir türlü çıkamadım. Exeleri shell ile çalıştırmak istemiyorum çünkü, açık exelere tüm personeller erişecek bu sefer. Son bir bilgi, biçbir programımda kullanıcı adı şifre girişi yoktur. Tıkla çalıştır şeklinde tasarlanmıştır.
Cevapla
#2
Bence KillTask ile sürekli bu 12 programı kapat yetkili bir kullanıcı açtıysa programı kontrol edip KillTask ile  kapatmayı durdur.  
Program bilgisayarda sürekli çalışacak şekilde ve hiç kapatılamayacak şekilde ayarlarsın hatta birbirini kontrol eden iki aktif program ile bu sayede yetkisiz erişimleri engellemiş olursun.

Bir ara buna benzer bir şey yapmıştım.

Sadece bir fikir tabi bu ?

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.szExeF ile)) =
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;

Çalıştırmak için de : ShellExecute işini görecektir.
Faydalanılmayan bilgi, harcanmayan ve hiç kimseye hayrı dokunmayan define gibidir.

Hz. Muhammed (sav.)
Cevapla
#3
Programlar arası haberleşme yapabilirsin. Ana programdan diğerlerine ortak EVENT kullanımı uygundur.
İstemediğin davranış olursa bu haberleşme sayesinde programlar kendilerini kapatabilir.

Farklı exeleri tek form içinde birleştirmek için de SETPARENT apisi işi görecektir.
WWW
Cevapla
#4
Bahsettiğiniz 12 adet exede küçük bir değişiklik yaparak sadece belirli parametre ile çalıştırıldıklarında açılmasını eğer parametre yoksa otomatik olarak kapanmasını (program açılışında parametre girilmemişse kapat diyerek) sağlayabilirsiniz. Ana program exe leri parametre göndererek çağıracağı için sadece ana program tarafından açılması sağlanabilir.

ParamCount, ParamStr komutlarını inceleyebilirsiniz. Küçük bir örnek : Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#5
Herpinize ilginizden dolayı çok teşekkür ederim. Tüm cevapların içeriğini deneyerek en uygun olanı bulmaya çalışacağım.
Cevapla
#6
Parametrelerin birini örneğin o anki saatin numerik değerini şifreli (base64, sha256 vs) biçimde göndermekte fayda var. Çünkü komut satırı görev yöneticisinde görülebiliyor. Bu olmazsa elle de açılabilir.
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Windows Oturumu Açılmadan Program Nasıl Çalışır theSinan 14 266 18-01-2019, Saat: 23:42
Son Yorum: theSinan
  Windows 8.1'de always on top program yazma sorunu denem3 10 139 18-01-2019, Saat: 18:13
Son Yorum: okoca
  Çok dilli program desteği öneri 3ddark 10 900 21-06-2018, Saat: 10:04
Son Yorum: 3ddark
  Program içinde resim üzerine yazi gonulali 1 400 06-06-2018, Saat: 11:29
Son Yorum: iyarar
  İki Application Clasından iki Farklı Form Create Etme witalihakko 2 417 01-06-2018, Saat: 12:17
Son Yorum: Tuğrul HELVACI



Konuyu Okuyanlar: 1 Ziyaretçi