Konu: Bir Projenin Kaç Defa Açıldığını Öğrenmek
Arkadaşlar Hepinize Merhaba Benim Sorum Bir Exe Dosyasının sistemde kaç defa çalıştığını öğrenmek acaba bunu vfp da yapmak mümkün mü ?
Yardımlarınız İçin Şimdiden teşekkürler
Giriş yapmadınız. Lütfen giriş yapın yada kayıt olun.
Arkadaşlar Hepinize Merhaba Benim Sorum Bir Exe Dosyasının sistemde kaç defa çalıştığını öğrenmek acaba bunu vfp da yapmak mümkün mü ?
Yardımlarınız İçin Şimdiden teşekkürler
şöyle yapabilirsin bence,Program her çalıştırıldığında,Bir tabloya sayacın değerini bir artırıp okuyup yazabilirsin.ben buna benzer bir şey yapmıştım.Ama ne fayda sağlayacak onu anlamadım üsdat..
Ya benim istediğim windows görev yöneticisinden bakması
bir dbf yap
her açıldığında, tarih,saat,kullanıcı, exe içerisinde çalışan formlar... herşeyi saklayabilirsin.
SDI formun Destroy Eventine de kapanış kayıtlarını alabilirsin.
şimdi şöle dbf benim işimi ne yazıkki çözmüyor çünkü mesela elektrik gitti pc kullanıcının isteği dışı bi koşuldan kapandı.Bu gibi durumlarda dbf dosyası hem zarar görme riski büyük hemde programın giriş bilgilerini ayıklama gibi bi olayla karşı karşıya kalıyorum bunun için acaba program çalıştığı vakit bunu görev yöneticisinden veya herhangi bi yerden kaç defa çalıştığı bilgisine ulaşamazmıyım ?
veya sizin öneriniz ne olur ?
Arkadaşlar Hepinize Merhaba Benim Sorum Bir Exe Dosyasının sistemde kaç defa çalıştığını öğrenmek acaba bunu vfp da yapmak mümkün mü ?
Yardımlarınız İçin Şimdiden teşekkürler
exe dosyasi bir tanemi. yoksa calisan her exe icin istatistik gibi biseymi istiyorsunuz ??
eger exe bir taneyse ve kendi programinizsa program calisir calismaz bir text dosyasina icerigindeki sayiyi bir artirarak yazmaniz bu sorununuzu cozer diye dusunuyorum. w task managerin boole bir ozelligi oldugunu hic duymadim
Benim aklıma gelen de şu. Bir mem file oluşturup;
Restore from (memory dosya adı) additive
v_sayi=v_sayi+1
Save to (memory dosya adı) all like V_*
Mu şekilde program her açıldığında sayı bir artırılabilir.
Bunun gibi *.mem de birçok bilgi saklanabilir.
Çok eskiden yazmıştım bu kodu.Task manager vari birşey.
Sana fikir verebilir
_Screen.visible = .f.
oForm = createobject('MyForm')
oForm.Show
oForm.List1.RowSource = oForm.List1.RowSource + "0,Hide,"
oForm.List1.RowSource = oForm.List1.RowSource + "1,ShowNormal,"
oForm.List1.RowSource = oForm.List1.RowSource + "2,ShowMinimized,"
oForm.List1.RowSource = oForm.List1.RowSource + "3,ShowMaximized,"
oForm.List1.RowSource = oForm.List1.RowSource + "4,ShowNoActivate,"
oForm.List1.RowSource = oForm.List1.RowSource + "5,Show,"
oForm.List1.RowSource = oForm.List1.RowSource + "6,Minimize,"
oForm.List1.RowSource = oForm.List1.RowSource + "7,ShowInNoActivate,"
oForm.List1.RowSource = oForm.List1.RowSource + "8,ShowNa,"
oForm.List1.RowSource = oForm.List1.RowSource + "9,Restore,"
oForm.List1.RowSource = oForm.List1.RowSource + "10,ShowDefault,"
oForm.List1.RowSource = oForm.List1.RowSource + "11,ForceMinimize"
Read events
_Screen.visible = .t.
Define CLASS MyForm AS form
Height = 286
Width = 607
ShowWindow = 2
DoCreate = .T.
AutoCenter = .T.
Caption = "Çalışan Programlar"
Name = "Form1"
*HWnd = .F.
Add OBJECT list1 AS listbox WITH ;
ColumnCount = 2, ;
ColumnWidths = "0,250", ;
RowSourceType = 1, ;
Enabled = .T., ;
Height = 228, ;
Left = 12, ;
Top = 12, ;
Width = 156
Name = "List1"
Add OBJECT command1 AS commandbutton WITH ;
AutoSize = .T., ;
Top = 252, ;
Left = 12, ;
Height = 27, ;
Width = 106, ;
Caption = "Komudu Uygula", ;
Enabled = .T., ;
Name = "Command1"
Add OBJECT list2 AS listbox WITH ;
BoundColumn = 2, ;
ColumnCount = 2, ;
ColumnWidths = "500,0", ;
RowSourceType = 6, ;
RowSource = "programs.adi,hwnd", ;
Height = 228, ;
Left = 168, ;
Top = 12, ;
Width = 432, ;
Name = "List2"
Add OBJECT command2 AS commandbutton WITH ;
Top = 252, ;
Left = 516, ;
Height = 27, ;
Width = 84, ;
Caption = "Listeyi Yenile", ;
Name = "Command2"
Add OBJECT command3 AS commandbutton WITH ;
AutoSize = .T., ;
Top = 252, ;
Left = 384, ;
Height = 27, ;
Width = 117, ;
Caption = "Uygulamayı Kapat", ;
Name = "Command3"
Procedure QueryUnload
Clear events
Endproc
Procedure Load
Declare INTEGER SendMessage IN WIN32API ;
INTEGER hWnd, ;
INTEGER Msg, ;
INTEGER wParameter, ;
INTEGER lParameter
Declare integer ShowWindow in win32api integer i1, integer i2
Declare INTEGER GetDesktopWindow IN Win32API
Declare INTEGER GetWindow IN Win32API;
INTEGER hwnd, INTEGER dflag
Declare INTEGER GetWindowText IN Win32API ;
INTEGER hwnd, STRING @lptstr, INTEGER cbmax
Local lnhwnd, lnnext, lldone, lctitle_bar, lcsearchfor,;
lntext_len
Create CURSOR PROGRAMS (ADI C(201),hwnd n (12))
lnhwnd = GetDesktopWindow()
lnhwnd = GetWindow(lnhwnd, 5) && Get first child window
lnnext = 2
lldone = .F.
lctitle_bar = ""
Do WHILE NOT lldone
If NOT EMPTY(lnhwnd)
lctitle_bar = SPACE(200) + CHR(0)
lntext_len = GetWindowText(lnhwnd, @lctitle_bar, 200)
lctitle_bar = UPPER(LEFT(lctitle_bar, lntext_len))
If LEN(ALLTRIM(lctitle_bar)) > 0
Insert INTO PROGRAMS (ADI,hwnd) VALUES (lctitle_bar,lnhwnd)
Endif
If NOT lldone
lnhwnd = GetWindow(lnhwnd, lnnext)
Endif
Else
lldone = .T.
Endif
Enddo
Endproc
Procedure command1.Click
ShowWindow(val(ThisForm.list2.value),VAL(ThisForm.list1.VALUE))
Endproc
Procedure command2.Click
Thisform.load
Thisform.list2.refresh
Endproc
Procedure command3.Click
=SendMessage(val(ThisForm.list2.value), 0x0112, 0xF060, 0)
Thisform.load()
Thisform.list2.refresh
Endproc
Enddefine
ustad çok sağol çok işime yaradı ellerine sağlık