Bilgisayarınıza bir kullanıcı bağlı uyarısı...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Bilgisayarınıza bir kullanıcı bağlı uyarısı...

Mesaj gönderen Gold_Lady »

Aslından sorun direk Delphi ile ilgili bir sorun değil ama sorulacak en uygun yer bu kısım sanırım.

Soru şu;
Ağ üzerinde server makina olarak kullandığımız bir bilgisayardan kendi yazdığım bir program aracılığı ile komut gönderip client makinaya bazı işlemler yaptırıyoruz.

Herşey güzel bir şekilde çalışıyor.
Sıra client bilgisayarı kapatmaya gelince, client makinada şöyle bir uyarı:

" Şu anda bilgisayarınıza 1 -yada 2,3 vs.- kullanıcı bağlı, bilgisayarınızı kapatmanız onların bağlantısını kesecektir. Devam etmek istiyor musunuz"

gibi bir mesaj. Ne yaparımda bu mesajın çıkmasını engellerim, bir türlü bulamadım. Bu mesaj çıktığı içinde client makinaya serverden kapatamıyoruz. Microsoft Türkiye' ye mail attım ama oralı bile olmadılar.
Sanırım windows registry ayarları ile ilgili bir şey olsa gerek.

Yardım ederseniz sevinirim...
Kolay gelsin, iyi günler...
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

siz normal shutdown yapıyorsunuz sanırım. Birde hızlı shutdown var. Uyarılara aldırmadan makinayı kapatır onu bir deneyin.

Birde client neden uyarı versinki?. Demekki paylaştırdığı dosyaları kullanan ağda başka makinalar var. Makinayı kapatmadan önce net view ile bağlı kullanıcları görüp kick'leye bilirsiniz.
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Mesaj gönderen Gold_Lady »

Merhaba.
Sanırım normal shutdown yapıyorum kodlar yanımda değil tam bilmiyorum.
Hızlı shutdown nasıl yapılır onu da bilmiyorum yardımcı olursanız sevinirim.
Clientlerin uyarı vermeside, ağdan paylaşılan dosyalara falan girilip, kopyalama silme yaparsak kapatılacagı zaman uyarı veriyor.
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Mesaj gönderen Gold_Lady »

kullandıgım kodu buldum:

function ShutMeDown:string;
var
hToken : THandle;
tkp,p : TTokenPrivileges;
RetLen : DWord;
ExReply: LongBool;
Reply : DWord;
begin
case Win32Platform of VER_PLATFORM_WIN32_WINDOWS: //***Windows 9x/ME***//
begin
ExReply:= ExitWindowsEx(EWX_POWEROFF or EWX_SHUTDOWN or EWX_FORCE,0);
if ExReply then
Result:='Shutdown Initiated'
else
Result:='Shutdown failed with ' + IntToStr(GetLastError);
end;
VER_PLATFORM_WIN32_NT: //***Windows NT/2000/XP***//
begin
if OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken) then
begin
if
LookupPrivilegeValue(nil,'SeShutdownPrivilege',tkp.Privileges[0].Luid) then
begin
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes :=
SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken,False,tkp,SizeOf(TTokenPrivileges),p,RetLen);
Reply := GetLastError;
if Reply = ERROR_SUCCESS then
begin
ExReply:= ExitWindowsEx(EWX_POWEROFF or EWX_FORCE, 0);
if ExReply then
Result:='Shutdown Initiated'
else
Result:='Shutdown failed with ' + IntToStr(GetLastError);
end;
end;
end;
end; //case bitişi
end;
end;

fonksiyonun kullanımı;

ShutMeDown;



xp makinalarda sorun yok ama 98 lerde sorun oluyor.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

http://groups.google.com.tr/group/uned. ... 0008be4fef
bu adreste değişik yöntemler tartışılmış. Eğer sistem 9x ise zaten böyle bir özelllik yok.
Cevapla