Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Client Pc Sistem Bilgileri Loglama
#11
Buradaki yaklaşım tarzı kişiye ve projeye göre değişir.  Loglanacak verilerin değişme ihtimali yok veya çok az ise sizin yaklaşımınız uygun olur, fakat benim düşünce tarzıma göre log alınan veriler, alındığı andaki değerleri içermeli. Kaynak tüketimini hesaba katmak doğru bir yaklaşım ama, günümüz donanım güçlerine göre bu şekildeki verileri toplamak için harcanacak kaynak tüketimi çok önemli olmayabilir.

Burada tek bir doğru yok her yöntemin kendine göre avantajları var.

Logkaydi(Jedi.IP,Jedi.user,Jedi.PCname,'Açıklama',vs.vs.)

şeklinde yapılırsa, bu yapı çağrıldığı andaki IP, user... değerlerini verir.

Jedi ile ekran çözünürlüğü ile ilgili küçük bir deneme yaptım.  Aşağıdaki kodda uygulama çalışırken butona tıkladığımda o andaki ekran çözünürlüğünü  veriyor. Uygulamayı kapatmadan çözünürlüğü değiştirip tekrar tıkladığımda yeni çözünürlük değerlerini getiriyor.
Jedi bu değerleri arka planda nasıl elde ediyor bilemiyorum fakat çağrıldığı anda, veya delphi tasarım ekranı object inspector da, veriler otomatik değişiyor.

procedure TForm1.Button1Click(Sender: TObject);
var h,w:integer;
begin
h := JvComputerInfoEx1.Screen.Height;
w := JvComputerInfoEx1.Screen.Width;

memo1.Lines.Add('Çözünürlük: ' + inttostr(w) + ' x ' + inttostr (h) );
end;

Bir kaç tane ekran görüntüsü eklemek istedim fakat forum bu akşam buna müsade etmedi.
Cevapla
#12
Dediğiniz gibi, bu konuda (genelde çoğu konuda olduğu gibi) tek bir doğru cevap yok, duruma ve koşullara göre yöntemler de çeşitlenebiliyor.

SQL Server 2016 kullandığınızı belirtmişsiniz, bu noktada istemci bilgisayar ile ilgili bazı sistem bilgilerini SQL Server'in kendisinden de temin edebilirsiniz. Bu sayede farklı sistemlerde çalışan bir uygulamanız varsa ortak bir noktadan terminalin bilgilerini bulabilirsiniz. Bu sayede WMI'in yavaşlığına, derin windows API'lerine veya birden çok network kartı olan makinalarda hangi ağ kartının kullanıldığını tespit etmek gibi uğraşılara girmeden (ki o konular da önemlidir bu arada) işinizi halledebilirsiniz.

LOG Tuttuğunuz tabloya WanIP, LanIP, MacAdres, TerminalAdi, UygulamaAdi gibi alanlar açılabilir.

SELECT  WanIP               = CONNECTIONPROPERTY('client_net_address')
    ,   LanIP               = CONNECTIONPROPERTY('local_net_address') 
    ,   MacAdres            = dbo.fn_FormatMacAdres(p.net_address)    
    ,   TerminalAdi         = p.hostname
    ,   UygulamaAdi         = p.program_name
    ,   WinDomain           = p.nt_domain   
    ,   WinUser             = p.nt_username 
    ,   Protokol            = p.net_library
FROM sys.sysprocesses  as  p   
WHERE   p.spid = @@SPID  --> O an SQL'e oturum açmış olan kullanıcının oturum ID'sini verir. Her bağlantı kurulduğunda SQL Server en başta bunu oluşturur.

MAC Adresini formatlı biçimde almak için de şu fonksiyonu kullanabilirsiniz;

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:  <Uğur PARLAYAN>
-- Description: <MAC Adres bilgisini klasik formatlanmış biçimde verir.>
-- =============================================
ALTER FUNCTION [dbo].[fn_FormatMacAdres]  ( @MacAdres VARCHAR(18) )
RETURNS VARCHAR(18)
AS  BEGIN
 RETURN  CONCAT( substring(@MacAdres,  1, 2) 
                 , '-'
                 , substring(@MacAdres,  3, 2)
                 , '-'
                 , substring(@MacAdres,  5, 2)
                 , '-'
                 , substring(@MacAdres,  7, 2)
                 , '-'
                 , substring(@MacAdres,  9, 2)
                 , '-'
                 , substring(@MacAdres, 11, 2)
                 );
END
P.Safa:Yaşlanarak değil, yaşayarak tecrübe kazanılır.Zaman insanları değil,armutları olgunlaştırır
C.Yücel:Toprak gibi olmalısın! Ezildikçe sertleşmelisin!Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı
S.Canan:Bildiğini zannettiğin an hiç bir şey öğrenemezsin
Bilgi uçar
WWW
Cevapla
#13
Teşekkürler uparlayan faydalı bir bilgi oldu benim için.
Cevapla
#14
Eskileri karıştırırken bu konu ile alakalı olmayan bir postta daha detaylı bir örnekleme yaptığımı fark ettim, onu da bu konuya zenginlik katması maksadıyla paylaşmak istedim;

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
P.Safa:Yaşlanarak değil, yaşayarak tecrübe kazanılır.Zaman insanları değil,armutları olgunlaştırır
C.Yücel:Toprak gibi olmalısın! Ezildikçe sertleşmelisin!Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı
S.Canan:Bildiğini zannettiğin an hiç bir şey öğrenemezsin
Bilgi uçar
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Datasnap server üzerinden client bağlantısı sonlandırma seci20 13 1.258 15-03-2019, Saat: 09:10
Son Yorum: Tuğrul HELVACI
  TcpServer Client Bağlantı Yenileme CesuR 24 1.423 05-03-2019, Saat: 00:14
Son Yorum: CesuR
  Rest server client UTF8 Problemi burakb44 9 1.275 20-11-2018, Saat: 13:10
Son Yorum: burakb44
  rest client Kamuran Alpkaya 11 2.203 19-11-2018, Saat: 23:29
Son Yorum: pro_imaj
  Client tarafında yapılan tüm değişiklikleri tek seferde veritabanına nasıl yazarım adelphiforumz 3 616 12-09-2018, Saat: 22:30
Son Yorum: ssahinoglu



Konuyu Okuyanlar: 1 Ziyaretçi