سلام
چطوري مي تونم يه زمان سنج براي محاسبه زمان استفاده شده از يك نرم افزار مثلا word داشته باشم كه با فعال شدن word فعال بشه و با بسته شدن اون برنامه تايمر زمان سنج هم وايسه؟
ممنون ميشم كمكم كنين
یه تایمر بگذار رو فورمت وقتی word باز شد زمانشو بگیر بهد وقتی بسته شد زمان جدید رو بگیر و 2 تا زمان رو از هم کم کن
یایا وقتی word باز شد زمانها رو به ثانیه بشمار و وقتی ورد بسته بشه شما یه time برحسب ثانیه دارین
سلام lord جان
ممنون از لطفت ولی تا اینجا شو بلدم چطوری وقتی word باز شد تایمر فعال بشه رو بلد نیستم و اینکه وقتی بسته شد تایمر وایسه رو بلد نیستم
ممنون میشم کمکم کنین
با استفاده از توابع api میتونی باز شدنشو چک کنی
راه رحتش اینه که text میبوط به title برنامه ای که بازه رو بگیر چک کن ببین توش wrodpad نوشته یا نه
اگه بود که بقیه کارها رو انجام بده
سلام
بازم ممنون دوست گرامي
راستش من تو ويبي تازه كارم
api فارسي سايت رو گرفتم ببينم اين چيزي كه فرمودين رو مي تونم ياد بگيرم يا نه اگه نتونستم بازم مزاحمت ميشم
بازم ممنون از لطفت
ببینین چون caption برنامه word همش با save یا load کردن نوشته ها عوض میشه شما میتونین تو یه تایمر getforgrundwindow این هندل پنجرای که فوکوس روشه رو میده بعد با getparent میتونین هندل پرنتش رو بدست بیارین حالا با getwindowtext میتونین متن caption رو بدست بیارین که یک مقدار tect هست حالا تو این text باید ببینی که wordpad یا word نوشته
سلام دوست گرامي
بازم ممنون از لطفي كه دارين
شاد باشيد و پيروز
به نظرم راه اصولیش استفاده از تابع WaitForSingleObject باشه
سلام آيرون جان
ميشه بيشتر توضيح بدي البته با روشي كه دوست خوبمون lord گفتن تا يه حدودي برنامه درست شده
يعني با باز شدن word تايمر شروع ميكنه به شمردن ولي نتونستم با بسته شدن word تايمر رو نگه درام
از لطف هر دوتون ممنون و خوشحال ميشم بيشتر كمكم كنين
راستي يادم رفت بگم اين كدي هست كه نوشتم
اگه ايرادي داره تصحيحش كنين
Dim hforewnd As Long ' receives handle of foreground window
Dim slength As Long ' length of foreground window's title bar text
Dim wintext As String ' buffer for foreground window's title bar text
Dim retval As Long ' return value
'====================================================================
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Sub Form_Load()
Dim before As Long
Dim after As Long
Dim diff As Long
befor = Timer
End Sub
Private Sub Timer1_Timer()
Dim hforewnd As Long ' receives handle of foreground window
Dim slength As Long ' length of foreground window's title bar text
Dim wintext As String ' buffer for foreground window's title bar text
Dim retval As Long ' return value
'====================================================================
hforewnd = GetForegroundWindow() ' determine the foreground window
slength = GetWindowTextLength(hforewnd) + 1 ' length of its title bar text
wintext = Space(slength) ' make room in the buffer to receive the text
retval = GetWindowText(hforewnd, wintext, slength) ' get title bar text
wintext = Left(wintext, slength - 1) ' remove null character from end of string
Form1.Print "The window "; wintext; " is the foreground window"
If wintext = (word) Or (wordpad) Then
Form2.Show
End If
end sub
البته كدهاي بخش پيدا كردن word
كدهاي تايمر ناقص هستند