Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 13 odgovora
  • 5.068 pregleda

Najnovija ↓

Ubijanje explorera 10.05.2006. u 19:23 · pre 249 meseci #1
Ima li ko iskustva sa ubijanjem explorera u delphiju?

Problem je sledeci: Delphi sve lepo odradi ubije proces, ali se posle 1-2 sekunde explorer ponovo sam ukljuci i sve vrati na staro stanje.
Kada proces ubijem iz Task managera sve je ok.

Neka ideja?

Re: Ubijanje explorera 17.05.2006. u 15:16 · pre 249 meseci #2
Pokusaj sledece: napravi jedan timer sa intervalom 50 ms i stavi mu da ponavlja ubijanje explorer-a.
Pozdrav
Re: Ubijanje explorera 17.05.2006. u 18:14 · pre 249 meseci
izmenjeno 1 put, poslednji put reiser 17.05.2006. u 18:16
  1. reiser17.05.2006. u 18:16zapis iz teksta poruke
#3
Da si pretrazio forum nasao bi.

Code:

//
// Ubija proces
//
function KillProcess(const APID : DWORD) : Boolean;
var
  procHandle : THandle;
begin
  procHandle := OpenProcess(PROCESS_TERMINATE, FALSE, APID);
  If procHandle <> 0 Then
  Begin
    result := TerminateProcess(procHandle, 0);
    CloseHandle(procHandle);
  End;
end;

//
// Vraca PID
//
function GetProcessID(const AProcessName : String) : DWORD;
var
  snapHandle : THandle;
  procData   : TProcessEntry32;
begin
  snapHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

  If snapHandle <> 0 Then
  Begin
    procData.dwSize := SizeOf(TProcessEntry32);
    If Process32First(snapHandle, procData) Then
    Begin
      If LowerCase(procData.szExeFile) = LowerCase(AProcessName) Then
      Begin
        result := procData.th32ProcessID;
        CloseHandle(snapHandle);
      End;

      While Process32Next(snapHandle, procData) Do
        If LowerCase(procData.szExeFile) = LowerCase(AProcessName) Then
        Begin
          result := procData.th32ProcessID;
          CloseHandle(snapHandle);
        End;
    End;
    CloseHandle(snapHandle);
  End;
end;


I onda stavis KillProcess(GetProcessID('explorer.exe'));.
Re: Ubijanje explorera 17.05.2006. u 23:54 · pre 249 meseci
izmenjeno 1 put, poslednji put Whois 17.05.2006. u 23:57
  1. Whois17.05.2006. u 23:57zapis iz teksta poruke
#4
@protector
to je ozbiljan program koji nema ni vremena da to radi 20 puta u sekundi, i ako je to jedino moguce resenje odga ga sigurno ne bi koristio. Jednostavno nije u mom stilu.

@reiser
procitao sam ja forum, ali ne znam sta ti nije jasno iz moje prve recenice. Imam te funkcije i jos 20 slicnih nacina da ubijem proces, ali on se vrati. Svi ti programi rade sa ne-windows aplikacijama koje se ne restartuju i tada sve radi ok. Zato je moje pitanje bilo koji proces treba da se ubije da prestane ta provera i ponovno startovanje kljucnih win servisa.

Poznato mi je resenje sa poleditom i menjanjem shella itd., ali ja trazim neko jednostavnije resenje koje bi islo iz programa a ne da cackam po sistemu svakog kompjutera.
Re: Ubijanje explorera 25.05.2006. u 22:00 · pre 248 meseci #5
Kako da deklarisem jer mi za killprocess pise undeclared identifier.Molim za pomoc
Re: Ubijanje explorera 26.05.2006. u 15:15 · pre 248 meseci #8
Da da ali i dalje mi je za killprocess i za processID Undeclared
identifier.Imas li resenje

------=_Part_113_2826431.1148642848666
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

<br><br><div><span class="gmail_quote">On 5/26/06, <b class="gmail_sendername">Whois</b> &lt;<a href="mailto:[email protected]">[email protected]</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
stavi: uses tlhelp32;<br><br>--<br><a href="https://www.elitesecurity.org/p1160513">https://www.elitesecurity.org/p1160513</a><br><br>Prijave/odjave: <a href="http://www.elitesecurity.org/pracenje#176135">http://www.elitesecurity.org/pracenje#176135
</a><br><br>Ne menjajte sledece dve linije ukoliko odgovarate putem emaila!<br>esauth:176135:727170c13a9e222dc85340c72632b143<br>Odgovor pisite *iskljucivo* ispod ove linije:</blockquote><div><br>Da da ali i dalje mi je za killprocess i za processID Undeclared
identifier.Imas li resenje<br><br></div><br></div><br>

------=_Part_113_2826431.1148642848666--
Re: Ubijanje explorera 28.05.2006. u 08:16 · pre 248 meseci #11
Tako i radim, ali sam mislio da cu moci to da uradim iz programa koji bi privilegovanim korisnicima omogucavao ukljucivanje i iskljucivanje eksplorera u bilo kom trenutku.
Re: Ubijanje explorera 16.06.2006. u 01:38 · pre 248 meseci #12
Mozda sam nesto pobrljao u kodu, ali ovo

Code:

//
// Vraca PID
//
function GetProcessID(const AProcessName : String) : DWORD;
var
  snapHandle : THandle;
  procData   : TProcessEntry32;
begin
  snapHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

  If snapHandle <> 0 Then
  Begin
    procData.dwSize := SizeOf(TProcessEntry32);
    If Process32First(snapHandle, procData) Then
    Begin
      If LowerCase(procData.szExeFile) = LowerCase(AProcessName) Then
      Begin
        result := procData.th32ProcessID;
        CloseHandle(snapHandle);
      End;

      While Process32Next(snapHandle, procData) Do
        If LowerCase(procData.szExeFile) = LowerCase(AProcessName) Then
        Begin
          result := procData.th32ProcessID;
          CloseHandle(snapHandle);
        End;
    End;
    CloseHandle(snapHandle);
  End;
end;


ne radi...

Radi kada se napise ovako

Code:


//
// Vraca PID
//
function GetProcessID(const AProcessName : String) : DWORD;
var
  snapHandle : THandle;
  procData   : TProcessEntry32;
begin
  snapHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

  If snapHandle <> 0 Then
  Begin
    procData.dwSize := SizeOf(TProcessEntry32);
    If Process32First(snapHandle, procData) Then
    Begin
      If LowerCase(procData.szExeFile) = LowerCase(AProcessName) Then
      Begin
        result := procData.th32ProcessID;
        CloseHandle(snapHandle);
      End;

      While Process32Next(snapHandle, procData) Do
        If LowerCase(procData.szExeFile) = LowerCase(AProcessName) Then
        Begin
          result := procData.th32ProcessID;
          CloseHandle(snapHandle);
        End;
    End else CloseHandle(snapHandle);  // promena, CloseHandle() stavljeno u else...
  End;
end;

Potpis
http://www.onedevteam.com/
http://www.skuvajme.com/
Re: Ubijanje explorera 16.06.2006. u 15:47 · pre 248 meseci #13
Stvarno ne vidim zasto ne bi onaj kod radio (meni radi), sta vise, u onom kodu koji si prepravio, ako Process32First ne vrati nista, nece ti se zatvoriti handle koji si otvorio sa CreateToolhelp32Snapshot()...
Re: Ubijanje explorera 18.06.2006. u 21:42 · pre 248 meseci #14
Kljuc

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

Vrijednost

AutoRestartShell

0 - nece se rstartovati Explorer ako se ubije.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme