<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Fox4um - Terminallerde Programın Çalışıp Çalışmadığının Kontrol Edilmesi]]></title>
	<link rel="self" href="http://www.fox4um.com/feed/atom/topic/17/"/>
	<updated>2006-10-10T20:15:52Z</updated>
	<generator>PunBB</generator>
	<id>http://www.fox4um.com/topic/17/terminallerde-programin-calisip-calismadiginin-kontrol-edilmesi/</id>
		<entry>
			<title type="html"><![CDATA[Re: Terminallerde Programın Çalışıp Çalışmadığının Kontrol Edilmesi]]></title>
			<link rel="alternate" href="http://www.fox4um.com/post/68/#p68"/>
			<content type="html"><![CDATA[<p>FUNCTION IsRunning(tcSemaphoreName)
<br />sadece kendi yarattıgin semaphorelari kontrol ediyor.
</p><p><a href="http://www.universalthread.com">www.universalthread.com</a> downloadsda, bu is icin bir kod olacakti. Benim de var ama public degil ne yazik ki. Isin temel mantigi eskiden Novel&#039;in uyguladigi &quot;watchdog&quot; yontemi. Acik oldugunu iddia eden terminallere sinyal gonderip cevap bekliyorsun, cevap vermeyen &quot;olu&quot;.</p>]]></content>
			<author>
				<name><![CDATA[cetinbasoz]]></name>
				<uri>http://www.fox4um.com/user/11/</uri>
			</author>
			<updated>2006-10-10T20:15:52Z</updated>
			<id>http://www.fox4um.com/post/68/#p68</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Terminallerde Programın Çalışıp Çalışmadığının Kontrol Edilmesi]]></title>
			<link rel="alternate" href="http://www.fox4um.com/post/34/#p34"/>
			<content type="html"><![CDATA[<p>mailine ornek kodlar gonderdim
<br />ayrıca
<br /><a href="http://www.vfpserver.com">http://www.vfpserver.com</a> adresinden indirebilecegin uygulama ile acik dosya kontrolu vs leri monitoring eden bir uygulama var buda bir nevi VFP SQL Monitor <img src="http://www.fox4um.com/img/smilies/smile.png" width="15" height="15" alt="smile" />
<br />hangi tablolar acik hangi kullanicilar kullaniyor vs</p>]]></content>
			<author>
				<name><![CDATA[soykanozcelik]]></name>
				<uri>http://www.fox4um.com/user/4/</uri>
			</author>
			<updated>2006-09-28T20:52:37Z</updated>
			<id>http://www.fox4um.com/post/34/#p34</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Terminallerde Programın Çalışıp Çalışmadığının Kontrol Edilmesi]]></title>
			<link rel="alternate" href="http://www.fox4um.com/post/30/#p30"/>
			<content type="html"><![CDATA[<p>terminallerde programin acik olup olmadiginin kontrolu yada askıda kalan (normal cikis yapmaya) kullanıcıları tespiti icin ben kullanici adlarinin tutuldugu tabloda LOGGED = .F. seklinde bir alan kullaniyorum .
<br />programa giris aninda login formumum command buton kodu asagidaki gibi bu yolla giris yapmis olan&nbsp; kullanici LOGGED = .T. olarak tabloda isaretleniyor ve uygulama boyunca da sistemdeki kullanicilar 
<br />logged = .t. filtrelemesi ile vs gorulebiliyor
<br /></p><div class="codebox"><div class="head">Visual Fox Pro</div><table class="visualfoxpro fxcode"><tbody><tr class="li1"><td class="ln"><pre class="de1">1
<br />2
<br />3
<br />4
<br />5
<br />6
<br />7
<br />8
<br />9
<br />10
<br />11
<br />12
<br />13
<br />14
<br />15
<br />16
<br />17
<br />18
<br />19
<br />20
<br />21
<br />22
<br />23
<br />24
<br />25
<br /></pre></td><td class="de1"><pre class="de1"><span class="kw2">Use</span> <span class="kw1">ADDBS</span><span class="br0">&#40;</span>m<span class="sy0">.</span><span class="me1">gcData</span><span class="br0">&#41;</span><span class="sy0">+</span>'user' <span class="kw2">In</span> <span class="nu0">0</span> <span class="kw3">Shared</span> <span class="kw2">Again</span> 
<br /><span class="kw2">Select</span> User
<br /><span class="kw1">If</span> <span class="kw4">Empty</span><span class="br0">&#40;</span><span class="kw2">Thisform</span><span class="sy0">.</span><span class="me1">text1</span><span class="sy0">.</span><span class="kw4">Value</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; <span class="kw2">Messagebox</span><span class="br0">&#40;</span><span class="st0">&quot;Kullanıcı Adı Boş Geçilemez !!!&quot;</span><span class="sy0">,</span><span class="nu0">16</span><span class="sy0">,</span><span class="st0">&quot;Kullanıcı Giriş Hatası&quot;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; <span class="kw2">Return</span>
<br /><span class="kw1">Endif</span>
<br /><span class="kw2">Locate</span> <span class="kw1">For</span> User<span class="sy0">.</span><span class="me1">KULL</span> <span class="sy0">=</span> <span class="kw1">Alltrim</span><span class="br0">&#40;</span><span class="kw2">Thisform</span><span class="sy0">.</span><span class="me1">text1</span><span class="sy0">.</span><span class="kw4">Value</span><span class="br0">&#41;</span>
<br /><span class="kw1">If</span> <span class="kw1">Found</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="kw2">And</span> <span class="kw1">Alltrim</span><span class="br0">&#40;</span>User<span class="sy0">.</span><span class="me1">SIFRE</span><span class="br0">&#41;</span> <span class="sy0">==</span> <span class="kw1">Alltrim</span><span class="br0">&#40;</span><span class="kw2">Thisform</span><span class="sy0">.</span><span class="me1">text2</span><span class="sy0">.</span><span class="kw4">Value</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; <span class="kw1">If</span> User<span class="sy0">.</span><span class="me1">logged</span><span class="sy0">=.</span><span class="kw3">T</span><span class="sy0">.</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">Messagebox</span><span class="br0">&#40;</span><span class="st0">&quot;Bu Kullanıcı Sisteme Giriş Yapmış !!!&quot;</span><span class="sy0">,</span><span class="nu0">16</span><span class="sy0">,</span><span class="st0">&quot;Kullanıcı Giriş Hatası&quot;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">Return</span>
<br />&nbsp; &nbsp; <span class="kw1">Endif</span>
<br />&nbsp; &nbsp; <span class="kw2">Thisform</span><span class="sy0">.</span><span class="me1">cUser</span> <span class="sy0">=</span> <span class="kw1">Alltrim</span><span class="br0">&#40;</span>User<span class="sy0">.</span><span class="me1">KULL</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; <span class="kw2">Thisform</span><span class="sy0">.</span><span class="me1">cLevel</span> <span class="sy0">=</span> <span class="kw1">Alltrim</span><span class="br0">&#40;</span>User<span class="sy0">.</span><span class="kw2">Level</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; <span class="kw2">Store</span> User<span class="sy0">.</span><span class="kw2">Level</span> <span class="kw3">To</span> gclevel
<br />&nbsp; &nbsp; <span class="kw2">Store</span> <span class="kw1">Alltrim</span><span class="br0">&#40;</span>User<span class="sy0">.</span><span class="me1">KULL</span><span class="br0">&#41;</span> <span class="kw3">To</span> gckullanici
<br />&nbsp; &nbsp; <span class="kw2">Select</span> User
<br />&nbsp; &nbsp; <span class="kw2">Replace</span> User<span class="sy0">.</span><span class="me1">logged</span> <span class="kw1">With</span> <span class="sy0">.</span><span class="kw3">T</span><span class="sy0">.</span> <span class="kw2">In</span> 'user'
<br />&nbsp; &nbsp; <span class="kw2">Thisform</span><span class="sy0">.</span><span class="kw3">Release</span>
<br /><span class="kw1">Else</span>
<br />&nbsp; &nbsp; <span class="kw2">Messagebox</span><span class="br0">&#40;</span><span class="st0">&quot;Kullanıcı Adı Yada Şifre Hatalı...&quot;</span><span class="sy0">,</span><span class="nu0">16</span><span class="sy0">,</span><span class="st0">&quot;Hata !!!&quot;</span><span class="sy0">,</span><span class="nu0">1.5</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; <span class="kw2">Thisform</span><span class="sy0">.</span><span class="me1">text1</span><span class="sy0">.</span><span class="kw4">Value</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp; &nbsp; <span class="kw2">Thisform</span><span class="sy0">.</span><span class="me1">text2</span><span class="sy0">.</span><span class="kw4">Value</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp; &nbsp; <span class="kw2">Thisform</span><span class="sy0">.</span><span class="me1">text1</span><span class="sy0">.</span><span class="kw3">SetFocus</span>
<br /><span class="kw1">Endif</span></pre></td></tr></tbody></table></div><p>
<br />çıkış yordaminda ise asagidaki gibi bir kodlama kullanarak cıkıs yapan kullanıcının durumunu .F. a getiriyorum . 
<br /></p><div class="codebox"><div class="head">Visual Fox Pro</div><table class="visualfoxpro fxcode"><tbody><tr class="li1"><td class="ln"><pre class="de1">1
<br />2
<br />3
<br />4
<br />5
<br />6
<br />7
<br />8
<br /></pre></td><td class="de1"><pre class="de1"><span class="kw1">If</span> <span class="kw2">Messagebox</span><span class="br0">&#40;</span><span class="st0">&quot;Programdan Çıkılacak Onaylıyormusunuz ?&quot;</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">+</span><span class="nu0">32</span><span class="sy0">+</span><span class="nu0">256</span><span class="sy0">,</span><span class="kw2">_Screen</span><span class="sy0">.</span><span class="kw3">Caption</span><span class="br0">&#41;</span> <span class="sy0">=</span> <span class="nu0">6</span>
<br />&nbsp; &nbsp; <span class="kw1">If</span> <span class="sy0">!</span> <span class="kw2">Used</span><span class="br0">&#40;</span><span class="st0">&quot;user&quot;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">Use</span> <span class="kw1">Addbs</span><span class="br0">&#40;</span>m<span class="sy0">.</span><span class="me1">gcData</span><span class="br0">&#41;</span><span class="sy0">+</span>'user' <span class="kw2">In</span> <span class="nu0">0</span> <span class="kw3">Shared</span> <span class="kw2">Again</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">Replace</span> User<span class="sy0">.</span><span class="me1">logged</span> <span class="kw1">With</span> <span class="sy0">.</span><span class="kw2">F</span><span class="sy0">.</span> <span class="kw1">For</span> User<span class="sy0">.</span><span class="me1">kull</span><span class="sy0">=</span>m<span class="sy0">.</span><span class="me1">gckullanici</span> <span class="kw2">In</span> 'user'
<br />&nbsp; &nbsp; <span class="kw1">Endif</span>
<br /><span class="kw3">Clear</span> <span class="kw2">Events</span>
<br />&nbsp; &nbsp; <span class="kw1">Do</span> kapanisyap
<br /><span class="kw1">Endif</span></pre></td></tr></tbody></table></div><p>
<br />ayrıca login formumda kullandıgım bir combobox tada
<br /></p><div class="codebox"><div class="head">Visual Fox Pro</div><table class="visualfoxpro fxcode"><tbody><tr class="li1"><td class="ln"><pre class="de1">1
<br />2
<br />3
<br />4
<br />5
<br /></pre></td><td class="de1"><pre class="de1"><span class="sy0">*</span> <span class="kw4">rowsource</span>
<br /><span class="kw2">select</span> <span class="kw2">distinct</span> kull<span class="sy0">,</span><span class="kw1">iif</span><span class="br0">&#40;</span>logged<span class="sy0">=.</span><span class="kw3">t</span><span class="sy0">.,</span>'Aktif'<span class="sy0">,</span>'Pasif'<span class="br0">&#41;</span> <span class="kw2">from</span> &nbsp;<span class="kw1">addbs</span><span class="br0">&#40;</span>m<span class="sy0">.</span><span class="me1">gcdata</span><span class="br0">&#41;</span><span class="sy0">+</span>'user' <span class="kw2">order</span> <span class="kw2">by</span> kull <span class="kw2">into</span> curs 
<br />combo1
<br /><span class="sy0">*</span><span class="kw4">rowsource</span> <span class="kw2">type</span>
<br /><span class="nu0">3</span><span class="sy0">-</span><span class="kw3">SQL</span> Statement</pre></td></tr></tbody></table></div><p>
<br />seklinde combo calistirarakta programa giris anında askıda kalan ( normal cikis yapmayan ) kullanicilari ve digerlerini gorebiliyorum. buradaki Aktif lik ve Pasiflik durumu&nbsp; LOGGED = .T. mantıgına gorede sekillenmis oluyor . 
<br />Ama bu yontem 50% aktif kullanicilari gosterebilirken , normal cikis yapmayarak aktif gozukenleri de listeledigi icin tam arzulanan cozum olmayabilir.
<br />Ama bunun için farklı çözümlerde mevcut aşağıda örnekten yola çıkarak sırayla kayitli terminallerdeki exelerin calisip calismadigi da bulunabilir 
<br /></p><div class="codebox"><div class="head">Visual Fox Pro</div><table class="visualfoxpro fxcode"><tbody><tr class="li1"><td class="ln"><pre class="de1">1
<br />2
<br />3
<br />4
<br />5
<br />6
<br />7
<br />8
<br />9
<br />10
<br />11
<br />12
<br />13
<br />14
<br />15
<br />16
<br />17
<br /></pre></td><td class="de1"><pre class="de1"><span class="kw1">Local</span> LnMultirun<span class="sy0">,</span>LcExeName
<br />LnMultirun <span class="sy0">=</span> <span class="nu0">0</span>
<br />LcExeName <span class="sy0">=</span> <span class="st0">&quot;soykan.exe&quot;</span>
<br /><span class="kw1">If</span> IsRunning<span class="br0">&#40;</span>m<span class="sy0">.</span><span class="me1">LcExeName</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; <span class="kw2">Messagebox</span><span class="br0">&#40;</span><span class="st0">&quot;Program Zaten Çalışıyor...!!!&quot;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; <span class="kw2">Quit</span>
<br /><span class="kw1">Endif</span>
<br /><span class="kw1">FUNCTION</span> IsRunning<span class="br0">&#40;</span>tcSemaphoreName<span class="br0">&#41;</span>
<br /><span class="kw1">LOCAL</span> lpszSemName
<br /><span class="kw1">DECLARE</span> <span class="kw2">INTEGER</span> GetLastError <span class="kw2">IN</span> win32API
<br /><span class="kw1">DECLARE</span> <span class="kw2">INTEGER</span> CreateSemaphore <span class="kw2">IN</span> WIN32API <span class="sy0">;</span>
<br />&nbsp; &nbsp; <span class="kw3">STRING</span> <span class="sy0">@</span> lpSemaphoreAttributes<span class="sy0">,</span> <span class="sy0">;</span>
<br />&nbsp; &nbsp; <span class="kw2">LONG</span> lInitialCount<span class="sy0">,</span> <span class="sy0">;</span>
<br />&nbsp; &nbsp; <span class="kw2">LONG</span> lMaximumCount<span class="sy0">,</span> <span class="sy0">;</span>
<br />&nbsp; &nbsp; <span class="kw3">STRING</span> <span class="sy0">@</span> lpName
<br />hsem <span class="sy0">=</span> CreateSemaphore<span class="br0">&#40;</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">1</span><span class="sy0">,</span>tcSemaphoreName<span class="br0">&#41;</span>
<br /><span class="kw2">RETURN</span> <span class="br0">&#40;</span>multirun # <span class="nu0">0</span> <span class="sy0">.</span><span class="kw2">AND</span><span class="sy0">.</span> <span class="me1">GetLastError</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">==</span> ERROR_ALREADY_EXISTS<span class="br0">&#41;</span></pre></td></tr></tbody></table></div>]]></content>
			<author>
				<name><![CDATA[soykanozcelik]]></name>
				<uri>http://www.fox4um.com/user/4/</uri>
			</author>
			<updated>2006-09-28T20:46:17Z</updated>
			<id>http://www.fox4um.com/post/30/#p30</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Terminallerde Programın Çalışıp Çalışmadığının Kontrol Edilmesi]]></title>
			<link rel="alternate" href="http://www.fox4um.com/post/23/#p23"/>
			<content type="html"><![CDATA[<p>Anamakineden terminallerde programın çalışıp çalışmadığını nasıl kontrol edebiliriz.</p>]]></content>
			<author>
				<name><![CDATA[smentes]]></name>
				<uri>http://www.fox4um.com/user/7/</uri>
			</author>
			<updated>2006-09-27T12:54:23Z</updated>
			<id>http://www.fox4um.com/post/23/#p23</id>
		</entry>
</feed>

