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.
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 : https://stackoverflow.com/questions/1593...hi-program
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


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi XE6'da oluşan XML XE'de farklı. WSDL Wizard hata yapar mı ? boreas 7 348 22-04-2019, Saat: 12:55
Son Yorum: boreas
  Windows Oturumu Açılmadan Program Nasıl Çalışır theSinan 15 944 15-04-2019, Saat: 00:15
Son Yorum: theSinan
  Windows 8.1'de always on top program yazma sorunu denem3 9 521 18-01-2019, Saat: 16:52
Son Yorum: denem3
  Çok dilli program desteği öneri 3ddark 10 1.284 21-06-2018, Saat: 10:04
Son Yorum: 3ddark
  Program içinde resim üzerine yazi gonulali 1 540 06-06-2018, Saat: 11:29
Son Yorum: iyarar



Konuyu Okuyanlar: 1 Ziyaretçi