delphi cok onemli

dhtdarkness

New member
Katılım
20 Ağu 2005
Mesajlar
1,038
Reaction score
0
Puanları
0
Konum
HackHeLL
acil ihtiyacım war delphi de yeniyim atıyorum x.exe çalısıyorsa formda x exe calısıyor diye bir uyarı nasıl werebiliris:(
 
nasıl bir uyarı vermek istediğini anlamadım ama kullanıcıya mesaj pencereleri ile uyarını verebilirsin. konrtol sonucun true çıktığında(yani x.exe çalıştığında)
 
arkadasım sole diiim
if (x.exe calısıyorsa buraaa ne gelir bilmiorm) then
begin showmessage('x exe calısıyor'); end;

işte size hangi komutu kullancaımı soruorm sole denedim winexec('x.exe') ama olmadı sizden programın calıstıını denetleyen bi kod istiorm
 
bu komutu bilmiyorummm ama şöyle bir şeye kafam takıldı çalışmayan bir exe olabilir mi? yani benim bildigim exe çalışan dosyalardır. o yüzden sen örneğin x.exe dosyasının var olur olmadığına bakabilirsin. ama bu konuda beni de aydınlat. kafam biraz karıştı çalışmayan exe olabilir mi?
 
çalısmayan exe olmıcak o zaman sole derdim

if fileexists('dosyayolu/x.exe') then
begin showmessage('x.exe war') end;
bunu biliorm
bn taskmanager da yani gorev yoneticisinde olan yani çalısan programı kontrol edicm umarım anlatabildim
 
arkadas bu senin isini gorur sanirsam kodalri denemedim kusuruma bakma

//Oluşan listeden Killtask prosedürü yardımıyla çalışmasını istemediğiniz programı
//otomatik olarak sonlandırabilirsiniz.
//Killtask adlı prosedürden türettiğim exe_listesi prosedürü
procedure exe_listesi(S : TStrings);
var
devam: BOOL;
fyakhandle: THandle;
islem32: TProcessEntry32;
begin
fyakhandle := CreateToolhelp32Snapshot
(TH32CS_SNAPPROCESS, 0);
islem32.dwSize := Sizeof(islem32);
devam := Process32First(fyakhandle,
islem32);
while integer(devam) <> 0 do
begin
//Listeye çalışan exe dosyaları ekleniyor.
S.Add(islem32.szExeFile);
devam := Process32Next(fyakhandle,
islem32);
end;
CloseHandle(fyakhandle);
end;

Kullanımı: exe_listesi(ListBox1.Items);
 
bu kesin calisiyor usttekini denemedim // ayri yazmamin sebebi kod uzun

bvasta uses a sunlari ekle : Psapi, tlhelp32; // sakın unutma



daha sonra su procedureleri bos bir yere yapistir:


procedure CreateWin9xProcessList(List: TstringList);
var
hSnapShot: THandle;
ProcInfo: TProcessEntry32;
begin
if List = nil then Exit;
hSnapShot := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapShot <> THandle(-1)) then
begin
ProcInfo.dwSize := SizeOf(ProcInfo);
if (Process32First(hSnapshot, ProcInfo)) then
begin
List.Add(ProcInfo.szExeFile);
while (Process32Next(hSnapShot, ProcInfo)) do
List.Add(ProcInfo.szExeFile);
end;
CloseHandle(hSnapShot);
end;
end;

procedure CreateWinNTProcessList(List: TstringList);
var
PIDArray: array [0..1023] of DWORD;
cb: DWORD;
I: Integer;
ProcCount: Integer;
hMod: HMODULE;
hProcess: THandle;
ModuleName: array [0..300] of Char;
begin
if List = nil then Exit;
EnumProcesses(@PIDArray, SizeOf(PIDArray), cb);
ProcCount := cb div SizeOf(DWORD);
for I := 0 to ProcCount - 1 do
begin
hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or
PROCESS_VM_READ,
False,
PIDArray);
if (hProcess <> 0) then
begin
EnumProcessModules(hProcess, @hMod, SizeOf(hMod), cb);
GetModuleFilenameEx(hProcess, hMod, ModuleName, SizeOf(ModuleName));
List.Add(ModuleName);
CloseHandle(hProcess);
end;
end;
end;

procedure GetProcessList(var List: TstringList);
var
ovi: TOSVersionInfo;
begin
if List = nil then Exit;
ovi.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
GetVersionEx(ovi);
case ovi.dwPlatformId of
VER_PLATFORM_WIN32_WINDOWS: CreateWin9xProcessList(List);
VER_PLATFORM_WIN32_NT: CreateWinNTProcessList(List);
end
end;

function EXE_Running(FileName: string; bFullpath: Boolean): Boolean;
var
i: Integer;
MyProcList: TstringList;
begin
MyProcList := TStringList.Create;
try
GetProcessList(MyProcList);
Result := False;
if MyProcList = nil then Exit;
for i := 0 to MyProcList.Count - 1 do
begin
if not bFullpath then
begin
if CompareText(ExtractFileName(MyProcList.Strings), FileName) = 0 then
Result := True
end
else if CompareText(MyProcList.strings, FileName) = 0 then Result := True;
if Result then Break;
end;
finally
MyProcList.Free;
end;
end;


// daha sonra forma 1 tane buton ekleyerek onclick olayina su kodlari ekle



procedure TForm1.Button1Click(Sender: TObject);
begin
if EXE_Running('Notepad.exe', False) then
ShowMessage('EXE çalışıyor')
else
ShowMessage('EXE çalışmıyor');
end;


// ustteki kodla exe nin calisip calismadigini allttaki kodlada calisan exelerin listesini //alabilirsin yine bir buton ekle ve onclick olayina ;

procedure TForm1.Button1Click(Sender: TObject);
begin
if EXE_Running('Rapidget.exe', False) then
ShowMessage('EXE çalışıyor')
else
ShowMessage('EXE çalışmıyor');
end;

end.





%100 calisiyor denedim
 
kodlarını açıklar mısın?
 
rancor thx harikasın dostum :D
 
Geri
Üst