امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
taskbar and screen
نویسنده پیام
Blossom آفلاین
در حال پیشرفت
***

ارسال‌ها: 257
موضوع‌ها: 40
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 9
( 21 تشکر در 14 ارسال )
ارسال: #12
 
مشكل منهنوز رفع نشده
آقا جان ميشه به تابع سيستم متريك طول و عرض صفحه ي قابل استفاده رو بدست آورد و حالا چطور بالا و سمت چپ اون رو بدست بيارم ؟
من ديگه خسته شدم از اين ويژال بيسيك !!!!
۱۹-بهمن-۱۳۸۴, ۰۰:۵۶:۳۸
ارسال‌ها
پاسخ
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #13
 
جون هر كي دوست داري كامل توضيح بده :!:
كل صفحه چي ؟ مانيتور
تو ما رو كچل كردي
۱۹-بهمن-۱۳۸۴, ۱۳:۴۰:۴۵
ارسال‌ها
پاسخ
Blossom آفلاین
در حال پیشرفت
***

ارسال‌ها: 257
موضوع‌ها: 40
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 9
( 21 تشکر در 14 ارسال )
ارسال: #14
 
اي بابا
نگاه كن عزيز ٬ شما Magnifier رو باز كن (از استارت منو و ...) ميبيني كه يه نواره به بالاي تصوير اضافه مي شه . حالا يه پنجره رو ماكسيمايز كن ٬ گوشه ي سمت چپ اون پنجره مي ره ميچسبه به سمت چپ تصوير بالاي تصوير ميره به پايين Magnifier ميچسبه و پايين پنجره به بالاي تسك بار.
پس اگه رزوليشن تصوير فرضا 1024*768 باشه سايز پنجره مطمعنا اين نيست
با تابع سيستم متريك ميشه اين سايز پنجره رو بدست آورد ٬ فرض كنيم 1024*700 ولي من نمي تونم بفهمم كه اين سايز بدست اومده چه وضعيتي در كل صفحه ( همون اندازه ي مانيتور) داره .
يه راه دارم ولي اگر از اين راه استفاده كنم آبروي برنامه نويسا ميره !!! فرمم رو ماكسيمايز كنم بعد گوشه هاي اون رو بدست بيارم و دوباره به حالت اول برگردونم ...
ترو خدا درك كنين ....
۱۹-بهمن-۱۳۸۴, ۱۶:۲۴:۲۴
ارسال‌ها
پاسخ
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #15
 
ها وفهميدم
اين تابع GetWindowPlacement خيلي قدرتش زياده
فكر كنم يه كارهايي برات بتونه بكنه

من هم روش فكر مي كنم
۱۹-بهمن-۱۳۸۴, ۱۷:۳۱:۴۵
ارسال‌ها
پاسخ
Blossom آفلاین
در حال پیشرفت
***

ارسال‌ها: 257
موضوع‌ها: 40
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 9
( 21 تشکر در 14 ارسال )
ارسال: #16
 
Iron_Fist نوشته است:ها وفهميدم
اين تابع GetWindowPlacement خيلي قدرتش زياده
فكر كنم يه كارهايي برات بتونه بكنه

من هم روش فكر مي كنم
تا اونجا كه مي دونم اين تابع چيز هايي رو كه ميخوام مشخص نمي كنه
ولي به نظر شما ميشه از مختصات آيكن ها و فاصله ي اون ها از دو طرف تصوير با سيستم متريك مختصات گوشه رو پيدا كرد ؟
راستي به نظر نمياد اين اينقدر سخت باشه ....
۱۹-بهمن-۱۳۸۴, ۲۱:۳۳:۳۶
ارسال‌ها
پاسخ
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #17
 
من يه سوالي اينجا برام پيش اومد
تو در واقع مي خواي مقدار فضاي مفيد مانيتور رو بدوني چقدر هست نه ؟
مقدار فضاي مفيد = كل فضاي مانيتور - { تسك بار +‌ پنجره چسبان (در صورت وجود ) }
۱۹-بهمن-۱۳۸۴, ۲۱:۵۰:۵۹
ارسال‌ها
پاسخ
Blossom آفلاین
در حال پیشرفت
***

ارسال‌ها: 257
موضوع‌ها: 40
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 9
( 21 تشکر در 14 ارسال )
ارسال: #18
 
Iron_Fist نوشته است:من يه سوالي اينجا برام پيش اومد
تو در واقع مي خواي مقدار فضاي مفيد مانيتور رو بدوني چقدر هست نه ؟
مقدار فضاي مفيد = كل فضاي مانيتور - { تسك بار +‌ پنجره چسبان (در صورت وجود ) }
نه فضاي مفيد رو كه راحت ميشه بدست آورد
من مختصات گوشه بالا- سمت چپ اين فضاي مفيد رو ميخوام
اصلا يه سوال ديگه : من اينقدر منظورم رو بد بيان كردم كه تا حالا نفهميدين من چي ميخوام ؟
۲۰-بهمن-۱۳۸۴, ۰۱:۵۵:۲۴
ارسال‌ها
پاسخ
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #19
 
نقل قول: من اينقدر منظورم رو بد بيان كردم كه تا حالا نفهميدين من چي ميخوام ؟
:roll:
نقل قول: فضاي مفيد رو كه راحت ميشه بدست آورد
خوب پس اگه مختصات فضاي مفيد رو بتوني بدست بياري كه اون
گوشش هم مي توني بدست بياري
با چي به دست مي آري ؟
۲۰-بهمن-۱۳۸۴, ۱۶:۳۰:۴۵
ارسال‌ها
پاسخ
Blossom آفلاین
در حال پیشرفت
***

ارسال‌ها: 257
موضوع‌ها: 40
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 9
( 21 تشکر در 14 ارسال )
ارسال: #20
 
Iron_Fist نوشته است:
نقل قول: من اينقدر منظورم رو بد بيان كردم كه تا حالا نفهميدين من چي ميخوام ؟
:roll:
نقل قول: فضاي مفيد رو كه راحت ميشه بدست آورد
خوب پس اگه مختصات فضاي مفيد رو بتوني بدست بياري كه اون
گوشش هم مي توني بدست بياري
با چي به دست مي آري ؟
:cry: :cry: :cry: :cry: :cry: :cry: :cry:
مساحت فضاي مفيد رو ميتونم راحت بدست بيارم نه مختصاتش رو ....
طول و عرض رو راحت بدست مي آرم ولي من دنبال گوشه هاي اين مساحت هستم ...
:think:
۲۰-بهمن-۱۳۸۴, ۲۰:۰۵:۱۰
ارسال‌ها
پاسخ
Blossom آفلاین
در حال پیشرفت
***

ارسال‌ها: 257
موضوع‌ها: 40
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 9
( 21 تشکر در 14 ارسال )
ارسال: #21
 
Iron_Fist نوشته است:با چي به دست مي آري ؟
با تابع GetSystemMetrics
یه نگاه بش بنداز شاید یه چیزی بدست آوردی
۲۰-بهمن-۱۳۸۴, ۲۰:۰۸:۰۵
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #22
 
دوست من Blossom عزيز سلام

بنا به درخواست شما و با تلاش 5 ساعته كد زير رو نوشتم ! Biggrin اميدوارم مشكل حل بشه :wink:

کد:
Option Explicit
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function GetShellWindow Lib "user32" () As Long

Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

'----------------------------------------------------------
Private Sub DrawWin()

Dim HwndShell, HwndBar, Temp As Long
Dim shellTr As RECT
Dim BaseBr As RECT
Dim Rtmp As RECT

BaseBr.Top = -1

HwndShell = GetShellWindow()
Temp = FindWindow("Shell_TrayWnd", vbNullString)
HwndBar = FindWindowEx(GetShellWindow, 0, "SHELLDLL_DefView", vbNullString)
HwndBar = FindWindowEx(HwndBar, 0, "SysListView32", vbNullString)

GetWindowRect HwndShell, shellTr
GetWindowRect HwndBar, BaseBr
GetWindowRect Temp, Rtmp

If Rtmp.Top = 0 Or BaseBr.Top <> -1 Then
    Me.Top = (BaseBr.Top) * 15
Else
    Me.Top = 0
End If

End Sub
'----------------------------------------------------------
Private Sub Form_Load()
    DrawWin
End Sub
'----------------------------------------------------------
Private Sub Timer1_Timer()
    DrawWin
End Sub

من تابع مورد نظر رو توي يه تايمر گذاشتم تا هر چند ثانيه يكبار تغييرات توي دسكتاپ رو چك كنه و پنجره رو تغيير مكان بده !
براي پيدا كردن نام كلاس هاي مرتبط با دسكتاپ و تسك بار مثل Shell_TrayWnd يا SHELLDLL_DefView من از يه كلك هايي استفاده كردم كه اگر دوست داشتي اونا رو واست ميگم و همينطور از از برنامه ++Spy كه رد كار ++C كار هاست و توي پك ويژوال استديو 6 هست ! :wink:
در واقع بيشتر وقتم صرف فهم كلاسهاي پنجره هاي مرتبط با دسكتاپ ويندوز شد اما خوب چيزهايي هم دستگيرم شد !! Biggrin

الباقي كار با شما :P

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۲۱-بهمن-۱۳۸۴, ۰۵:۲۷:۰۸
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [سوال] Code: Print Screen movaffag 1 2,402 ۱۸-اسفند-۱۳۹۰, ۰۳:۰۸:۳۲
آخرین ارسال: RAMA2009
  مخفی کردن برنامه از Taskbar Systole 2 3,612 ۱۸-آذر-۱۳۸۹, ۰۱:۴۷:۴۳
آخرین ارسال: download69
  Capture Screen under Vista & Win7 PouriaAmid 3 2,564 ۲۵-آبان-۱۳۸۸, ۱۹:۰۷:۵۷
آخرین ارسال: Payman62
  تغيير Screen Refresh Rate vz67 6 5,835 ۲۲-مهر-۱۳۸۷, ۱۱:۱۹:۱۹
آخرین ارسال: vz67
  Taskbar alivbdatnet 6 3,375 ۲۸-خرداد-۱۳۸۷, ۰۰:۳۴:۵۵
آخرین ارسال: alivbdatnet

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS