کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

به اشتراک گذاری اطلاعات کسب شده در اکسس از سایت آفیس و سایت های تخصصی خارجی
کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

به اشتراک گذاری اطلاعات کسب شده در اکسس از سایت آفیس و سایت های تخصصی خارجی

شئ DataObject .... کپی متن یا عدد صحیح به کلیپبورد



methods-microsoft-forms



Tools -> References -> Microsoft Forms 2.0 Object Library


DataObject مثل Clipboard عمل می کند . اگر رشته متنی را کپی کنید ، آن رشته را ذخیره می نماید ( حافظه موقت ) . اگر رشته دوم از همان شکل  را اضافه کنید ، جایگزین می شود.


متدها و خصوصیاتی داره که از لینک بالا میشود مطالعه و تست کرد . متد SetText را امتحان کنید



MSFORMS.DataObject 

objectSetText(StoreData [, format ] )


آرگومان دوم انتخابیست که خالی هم رها شود  پیش فرض یک یا Text در نظر گرفته می شود ،انتخاب عددی  غیر از یک  در آرگومان انتخابی یعنی دیتا یا integer است یا Text.



DataObject داده را طبق فرمت یا شکلش ذخیره می کند پس اگر شما همان متن با همان فرمت را بخواهید ذخیره کنید روی همان rewrite می نُماید ولی اگر فرمت یا شکل دیگری داشته باشد بعنوان جدید در نظر خواهد گرفت 



داده را از یک DataObject به Clipboard کپی می نماید.

objectPutInClipboard

1-کپی داده از Clipboard به یک DataObject

String = objectGetFromClipboard( )

2-بازیابی  رشته متنی از DataObject

String = objectGetText( [ format ] )


از توابع API هم می توان استفاده کرد که با کمی جستجو در اینترنت کد ها موجود است 















ارسال تکست به کلاس 32770# و شرح COPYDATASTRUCT



Const WM_SETTEXT=&HC
Const WM_GETTEXT=&HD
Const WM_GETTEXTLENGTH=&HE
Const WM_COPYDATA=&H4A 



Type COPYDATASTRUCT 

dwData As Long

cbData As Long

lpData As Long

End Type



WM_GETTEXT :


پارامتر wparam مربوط به ماکزیمم کاراکتری که در بافر کپی میشود و پارامتر lparam یک نشانگر به بافری است که کاراکترها را دریافت می کند ... برگشتی تابع تعداد کاراکترهای کپی شده جز کاراکترهای Null.

Dim lRet As LongPtr

Dim Buff

Buff=Space(255)

'Declare SendMessageA :

'ByVal hwnd As Longptr,Byval uMsg as long,Byval wParam As LongPtr,lParam As Any) As Long Or LonPtr

lRet=SendMessage (hwnd,WM_GETTEXT,Len(Buff),Buff)

Debug.Print lRet



درتصویربالارشته www.accessvba.blogsky.com به همراه طول این رشته ( شامل 25 کاراکتر) به پنجره Msgbox که دارای کلاس 32770# است فرستاده شده . با ارسال پیام WM_GETTEXTLENGTH هم می توانید طول رشته را بگیرید.



WM_COPYDATA:


hwnd = FindWindow(vbNullString, "Data Collector")
If hwnd <> 0 Then
Dim cds As COPYDATASTRUCT

cds.dwData = 0

cds.cbData = Len(partNumber) * 2 + 2

cds.lpData = StrPtr(partNumber)

result = SendMessage(hwnd, WM_COPYDATA, 0, cds)
End If
End Sub


hWndNotepad = FindWindow("notepad", vbNullString)
hWndNotepadEdit = FindWindowEx(hWndNotepad, 0, "Edit", vbNullString)


WM_SETTEXT :

sendMessageByString hwnd,&HC,0,"www.accessvba.blogsky.com"



برای ارسال با SendMessage پارامتر lParam را بصورت lParam As Any بنویسید و در این پارامتر برای ارسال تکست از ByVal بهره ببرید


SendMessageA Lib "user32" (ByVal hwnd As LongPtr, ByVal wMsg As Long,ByVal wParam As LongPtr, lParam As Any) As LongPtr

SendMessageA wParam, &HC, 0, ByVal "www.accessvba.blogsky.com"


Window Style : 

WS_HSCROLL=&H100000&

WS_VSCROLL=&H200000&


GetInnerAccessHwnd =FindWindowEx(hWndAccessApp, ByVal 0&,"MDIClient", vbNullString)
'GetClientRect hwnd,MyRect

'MoveWindow


'MDIClient 

ExStyle=GetWindowLongPtr(ClientHandle,GWL_EXSTYLE)
ExStyle=ExStyle and not WS_EX_CLIENTEDGE
SetWindowLongPtr(ClientHandle,GWL_EXSTYLE,ExStyle)
SetWindowPos ClientHandle, 0,0,0,0,0,SWP_FRAMECHANGED or SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER




   Public Function NewClassProc(ByVal hwnd As Long, ByVal uMsg As Long, _ 
                ByVal wParam As Long, ByVal lParam As Long) As Long
    
Dim I As Integer
Dim FocusWindow As Long
NewClassProc = CallWindowProc(OrigWndProc, hwnd, uMsg, _
wParam, lParam)
For I = 0 To Forms.Count - 1
If Forms(I).hwnd = hwnd Then
FocusWindow = I
Exit For
End If
Next I
'Modify the windows default processing if necessary
If uMsg = WM_SYSCOMMAND And FocusWindow <> 0 Then
If wParam = SC_MINIMIZE Then
If Forms(FocusWindow).WindowState <> vbMaximized Then
'Do not process message - instead do our own work
Forms(FocusWindow).Height = 30
End If
NewClassProc = 0
Else
NewClassProc = CallWindowProc(OrigWndProc, hwnd, uMsg, _
wParam, lParam)
End If
Else
'Pass message to default handler
NewClassProc = CallWindowProc(OrigWndProc, hwnd, uMsg, _
wParam, lParam)
End If
End
Function



حذف پنجره Static و ساختن یک کنترل Static دیگر در همان مختصات البته با Border


Dim P1 As POINTAPI

DIM P2 AS POINTAPI

DIM winRect As RECT

Dim StaticRect As RECT

DestroyWindow hStatic

GetWindowRect wParam,winRect

GetWindowRect wParam,StaticRect

With StaticRect

P1.x=.Left : P1.y=.Top

P2.x=.Right : P2.y=.Bottom

ScreenToClient hSatatic,P1

ScreenToClient hStatic,P2

hNewStatic=CreateWindowEx(0,"Static","",WS_CHILD+WS_VISIBLE+WS_BORDER,P1.x,P1.y,P2.x-P1.x,P2.y-P1.y,wParam,0,0)

Dim lf As LOGFONT

lf.lfHeight=20

lf.lfwidth=20

hFont=CreateFontIndirect(lf)

SendMessageA hNewStatic,WM_SETFONT,hFont,1

SendMessageA hNewStatic,WM_SETTEXT,0,Byval "Hi"








پنجشنبه ۷ بهمن 1400 : 


خبرگزاری صداوسیما در این مورد نوشت که عصر پنج‌شنبه برخی شبکه‌های رادیو و تلویزیونی در صداوسیما، از جمله شبکه یک سیما، شبکه قرآن، رادیو پیام و رادیو جوان «برای لحظاتی هک شدند».

این گزارش می‌گوید «افراد یا گروهی ناشناس دقایقی قبل تلاش کردند تا چند شبکه صداوسیما را هک کنند» اما در ادامه می‌افزاید که «در میان پخش آنونس برنامه‌ها به مدت ده ثانیه، تصاویری از سران» سازمان مجاهدین خلق «و صوت یکی از سخنرانی‌های آن‌ها روی آنتن شبکه یک دیده و شنیده شد».

در پی این هک ۱۰ ثانیه‌ای، پخش برنامه‌ از چند شبکه تلویزیونی ایران از جمله شبکه‌های یک، قرآن، پیام و جوان متوقف شد، و هم‌زمان تصاویری از مریم رجوی و مسعود رجوی از رهبران سازمان مجاهدین خلق و تصویری از رهبر جمهوری اسلامی با ضربدر قرمز که روی آن شعار «مرگ بر خامنه‌ای، درود بر رجوی» دیده می‌شد، پخش شد.


31674296