PDA

View Full Version : سوال: چجوری میشه قابلیت resize رو برای یک فولدر غیر فعال کرد؟



farzad93
جمعه 21 آبان 1389, 19:51 عصر
یعنی میخوام کاری کنم که دیگه نشه اندازه یک فولدر رو تغییر داد.

dataking
جمعه 21 آبان 1389, 20:22 عصر
سلام
میشه بیشتر توضیح بدین . اندازه فرم منظورتونه ؟

farzad93
جمعه 21 آبان 1389, 20:32 عصر
سلام
میشه بیشتر توضیح بدین . اندازه فرم منظورتونه ؟
نه. اندازه یک فولدر
مثلا میخوام اندازه فولدر My Documents رو ثابت نگه دارم که دیگه نشه اندازه اش رو تغییر داد

dataking
جمعه 21 آبان 1389, 20:35 عصر
دوست خوبم شما چگونه اندازه فولد را تغییر می دهید دستی یا با کد نویسی و یا ...

farzad93
جمعه 21 آبان 1389, 20:51 عصر
دو تا عکسی که ضمیمه کردم ببینید.
یکی از اونها که درایو c رو نشون میده اندازه ی (ابعاد) بزرگتری نسبت به اون یکی داره.
میخوام ببینم میشه کاری کرد که دیگه نشه به طور دستی اندازه ی فولدر مورد نظر (که اینجا درایو c هست) رو تغییر داد یا نه.

pcdownload.bloghaa.com
شنبه 22 آبان 1389, 22:58 عصر
اول از همه یک تایمر روی فرمت بزار و کد زیر را بنویس.

این کد برای مثال پوشه ویندوز را طوری تنظیم می کنه که اندازه پنجرش را بیشتر از 500 در 300 نشه تغییر داد.


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 SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
Const WM_GETTEXT = &HD
Dim Address As String
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const SWP_NOMOVE = &H2
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Sub Timer1_Timer()
lck "C:\WINDOWS", 500, 300
End Sub
Private Sub lck(path As String, twidth As Long, theight As Long)
On Error Resume Next
Dim hwnd, hwnd1 As Long
Dim p As RECT
Dim i As Integer
hwnd = FindWindow("CabinetWClass", vbNullString)
If hwnd <> 0 Then
hwnd = FindWindowEx(hwnd, 0, "WorkerW", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "ReBarWindow32", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "ComboBoxEx32", vbNullString)
Dim r As Long
Dim s As String
s = String(201, Chr(0))
r = SendMessageByString(hwnd, WM_GETTEXT, 200, s)
If Left(s, r) = "My Computer" Then Exit Sub
Address = Left(s, r)
End If
hwnd1 = FindWindow(vbNullString, Mid(path, InStrRev(path, "\") + 1))
GetWindowRect hwnd1, p
If Address = path And (p.Right - p.Left > twidth) Then
EnableWindow hwnd1, 0
SetWindowPos hwnd1, Me.hwnd, 0, 0, twidth, p.Bottom - p.Top, SWP_NOMOVE
EnableWindow hwnd1, 1
ElseIf Address = path And p.Bottom - p.Top > theight Then
EnableWindow hwnd1, 0
SetWindowPos hwnd1, Me.hwnd, 0, 0, p.Right - p.Left, theight, SWP_NOMOVE
EnableWindow hwnd1, 1
End If
End Sub