Hirdetés
- Örömhír: nem spórol Európán a OnePlus
- Milyen okostelefont vegyek?
- Telekom mobilszolgáltatások
- EarFun Air Pro 4+ – érdemi plusz
- Ezek a OnePlus 12 és 12R európai árai
- Samsung Galaxy A56 - megbízható középszerűség
- Hivatalos a OnePlus 13 startdátuma
- Okosóra és okoskiegészítő topik
- Az iPhone 17 gáncsolta el a Galaxy S26 Prót?
- Google Pixel 9 Pro XL - hét szűk esztendő
-
Mobilarena

Új hozzászólás Aktív témák
-
pmonitor
aktív tag
válasz
lenkei83
#16474
üzenetére
Ez esetben a belépésnél el kell küldened a PID-et, vagy a Fő form Handle-jét, és rögzíted az adatbázisban, ha nincs benne. Én a fő form Handle-jét küldeném el, mert ebből is utána lehet nézni a PID-nek. A következő lépés attól függ, hogy mit rögzítesz az adatbázisban. Ha a Fő form Handle-jének WM_DESTROY üzenetet küldesz a SendMessage-el, akkor ugyanazt éred el, mint az application.exit-el(ez "mindent visz"). Ha WM_CLOSE üzenetet küldesz neki, akkor lefut pl. a form Form_Closing eseménye(ebből akár meg is akadályozhatod, hogy bezáródjon a form). Példaként megcsinálhatod a következőt(ha 64 bites wined van). Letöltöd innen a Processx64.rar-t.
Ezután készítesz egy winform alkalmazást, amire rádobsz egy textbox-ot, egy button-t, és egy combobox-ot. Design nézetben elrendezed őket úgy, ahogy akarod. A Form1.vb-ben lévő dolgokat lecseréled erre:Imports System.Runtime.InteropServices
Public Class Form1
Const WM_CLOSE = &H10
Const WM_DESTROY = &H2
Const WM_GETTEXTLENGTH = &HE
<DllImport("user32.dll", CharSet:=CharSet.Auto)>
Public Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As IntPtr) As IntPtr
End Function
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
Button1.Text = "Bezárás"
ComboBox1.Items.AddRange(New Object() {"WM_CLOSE", "WM_DESTROY"})
ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
ComboBox1.SelectedIndex = 0
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If IsNumeric(TextBox1.Text) Then
Dim WM As Integer
If SendMessage(TextBox1.Text, WM_GETTEXTLENGTH, 0, IntPtr.Zero) Then
If ComboBox1.SelectedIndex = 0 Then
WM = WM_CLOSE
Else
WM = WM_DESTROY
End If
SendMessage(TextBox1.Text, WM, 0, IntPtr.Zero)
Else
MsgBox("Az ablaknak nincs címe!")
End If
End If
End Sub
End ClassEzt lefordítod. Ha minden jól megy akkor le is fordul. Majd megnyitsz egy notepad-ot, és írsz bele valamit. Megnyitod a Processx64.rar-ban lévő .exe-t és megkeresed azt a notepad-ot. Jobb klikk->Ablakok kiválasztása. A megnyíló ablakban megkeresed a Class mezőben a "Notepad"-ot. Ebben a sorban a Hwnd-t átmásolod a lefordított programod textbox-ába. Kiválasztod a combobox-ban a műveletet, majd klikk a button-ra. Itt láthatod a különbséget a WM_CLOSE és a WM_DESTROY között.
Neked ugyanezt kellene csinálnod, csak az adatbázisban tárolt Handle-nek küldeni ezeket.
-
martonx
veterán
válasz
lenkei83
#16475
üzenetére
User ellenőrzés szintjén úgy működhetne, hogy a user aktivitásakor ezt a táblát, amiben a Ture/False-t váltogatod, updatelnél egy mondjuk LastActivity timestamp mezőt.
Azt SQL job meg azt aki aktív, de a LastActivity-je mondjuk fél óránál régebbi, zokszó nélkül átállítja False-ra. -
martonx
veterán
válasz
lenkei83
#16467
üzenetére
Éppen most kezdesz eljutni a felismerésig, hogy ehhez egy alkalmazás szerver fog kelleni. Pedig te csak egy fapados session kezelést szerettél volna. Hát így jön ide az űrhajó.
Egy kókány módszert azért megléphetsz űrhajó építés előtt. Csinálj egy SQL jobot, amit utemezve tudsz futtatni, és az majd átállítja az inaktív usereket. -
martonx
veterán
válasz
lenkei83
#16465
üzenetére
"De malfunction esetén ez akár be is ragadhat, ha pl feladatkezelőn keresztül bezárom a progit." - ez nem így van. Ebben az esetben SQL oldalon is el fog halni elég gyorsan az ide tartozó session. Az adatbázist ugye using-al használod? Azaz automatikusan dispose-oldóik?
És ennek semmi köze Asp.Net hez 
Értem én, hogy valamit alapvetően rosszul írtál meg, és most nem ezt akarod kijavítani, hanem űrhajót építeni köré
Hidd el, mindenkinek jobb lesz, ha a kódodat javítod, ahelyett hogy űrhajót építenél.
SQL session-ök lekérdezése és erőltetett bezárása simán megoldható: KILL SPID command in SQL Server (sqlshack.com)De hidd el, neked nem ez kell, hanem egy jól működő programkód, ami nem hagy szemetet maga után.
-
válasz
lenkei83
#16463
üzenetére
Aktív session kap valami hash-t vagy hasonlót (guid is jó), aztán handshake x időnként, amikor le van csekkolva, hogy ugyanaz a hash mindkét oldalon, aztán ha minden fasza, mehet a következő hash a következő handshakeig.
Így ha bezárod is kliens oldalon, pikkpakk timeoutol serveroldalon, plusz ha bezárod és újranyitod se lesz automatikusan belogolva, mert nem lesz meg az új instance-nek az aktuálisan elvárt hash.
Persze van ennél (sokkal) jobb megoldás is, de ha csak valami olyan kell, ami egyszerű, relative biztonságos és nem eszik sokat, akkor tökéletes ez is.
Ui: Ha ennyire nem kell túlgondolni, akkor meg simán socket close-ra is lehet figyelni és kész.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Gyúrósok ide!
- Házimozi belépő szinten
- Debrecen és környéke adok-veszek-beszélgetek
- Xbox Series X|S
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Sweet.tv - internetes TV
- PlayStation 5
- OTP Bank topic
- Itt van Elon Musk chat alkalmazása, nem fogod elhinni, mi a neve
- 5.1, 7.1 és gamer fejhallgatók
- További aktív témák...
- Gamer PC-Számítógép! Csere-Beszámítás! R5 8600G / 6700XT 12GB / 16GB DDR5 / 512 SSD + 2TB HDD!
- iPhone 16 PRO MAX 256GB natúr titán KÁRTYAFÜGGETLEN! Gyönyörű! Akkumlátor 99%! Fulldoboz!
- Antminer S21 Hydro 335T BTC bányász (BOS 360T) hibás hashboard-al eladó.
- ÚJ BONTATLAN Apple Watch Series S9 41mm Pink és Mid Azonnal Átvehető DEÁK TÉRNÉL 1 Év Apple Garancia
- Apple iPad Air 5. generáció/KÉK/64GB/M1/WIFI+Cellular/99% AKKU!!!!!
- AZONNALI SZÁLLÍTÁS Eredeti Microsoft Office 2019 Professional Plus
- Telefon felvásárlás!! Apple iPhone SE (2016), Apple iPhone SE2 (2020), Apple iPhone SE3 (2022)
- Huawei Watch 5 Titanium 46mm
- Gitárerősítő Boss Katana 50
- Nagyakkus, mobilnetes - Dell Latitude 5330 i3-1215U 6mag! 16GB 512GB 13.3" FHD 1 év gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

És ennek semmi köze Asp.Net hez 


