PDA

View Full Version : سوال: اضافه کردن یک کلید یا ... به یک برنامه خاص با هندل یا روشهای دیگه



سید حمید حق پرست
یک شنبه 11 تیر 1391, 16:34 عصر
سلام علیکم

دوستان شاید نرم افزار YahooFriend را دیده باشند که شکلکهای متنی و شکلکهای یاهو را دارد و با نصب برنامه برنامه یک کلید (باتون) به پنجره پی ام یاهو اضافه میکند . این برنامه هم با دلفی نوشته شده . حالا میخواستم بدونم این کار با vb6 چطوری باید انجام بگیرد . دوستان سورس کدی چیزی ندارید بزارید استفاده کنیم
این هم مطمئنم که YahooFriend این دکمه رو با توجه به هندل پنجره پی ام اضافه میکند و یک تایمر گذاشته که هر وقت پنجره رو حرکت دادیم اون کلید هم حرکت داده میشه. ولی نمیدونم با وی بی باید چکار کنم

ممنون میشم راهنمایی کنید


یا علی (ع)

ASedJavad
یک شنبه 11 تیر 1391, 21:57 عصر
سلام


دوستان شاید نرم افزار YahooFriend را دیده باشن
ندیدمش
ولی علی الحساب کد زیر دم دستم بود یه بررسیش بکن تا بعد:
Const ICC_LISTVIEW_CLASSES = &H1 ' listview, header
Const ICC_TREEVIEW_CLASSES = &H2 ' treeview, tooltips
Const ICC_BAR_CLASSES = &H4 ' toolbar, statusbar, trackbar, tooltips
Const ICC_TAB_CLASSES = &H8 ' tab, tooltips
Const ICC_UPDOWN_CLASS = &H10 ' updown
Const ICC_PROGRESS_CLASS = &H20 ' progress
Const ICC_HOTKEY_CLASS = &H40 ' hotkey
Const ICC_ANIMATE_CLASS = &H80 ' animate
Const ICC_WIN95_CLASSES = &HFF
Const ICC_DATE_CLASSES = &H100 ' month picker, date picker, time picker, updown
Const ICC_USEREX_CLASSES = &H200 ' comboex
Const ICC_COOL_CLASSES = &H400 ' rebar (coolbar) control
Const ICC_INTERNET_CLASSES = &H800
Const ICC_PAGESCROLLER_CLASS = &H1000 ' page scroller
Const ICC_NATIVEFNTCTL_CLASS = &H2000 ' native font control
Private Type InitCommonControlsExType
dwSize As Long 'size of this structure
dwICC As Long 'flags indicating which classes to be initialized
End Type
Private Const WS_VISIBLE = &H10000000
Private Const WS_CHILD = &H40000000
Private Declare Sub InitCommonControls Lib "comctl32" ()
Private Declare Function InitCommonControlsEx Lib "comctl32" (init As InitCommonControlsExType) As Boolean
Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
Dim mWnd As Long
Private Sub Form_Load()
Dim MyHwnd As Long
MyHwnd = Me.hwnd
Const IE3_INSTALLED = True
If IE3_INSTALLED = True Then
Dim initcc As InitCommonControlsExType
initcc.dwSize = Len(initcc)
initcc.dwICC = ICC_UPDOWN_CLASS
InitCommonControlsEx initcc
Else
InitCommonControls
End If
mWnd = CreateWindowEx(0, "msctls_updown32", "KPD UpDown Control", WS_VISIBLE Or WS_CHILD, 0, 0, 50, 100, MyHwnd, ByVal 0&, ByVal 0&, ByVal 0&)
End Sub
Private Sub Form_Unload(Cancel As Integer)
DestroyWindow mWnd
End Sub

ASedJavad
یک شنبه 11 تیر 1391, 22:04 عصر
این هم یه راه دیگه:
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

Private Sub Form_Load()
Dim MyHwnd As Long
MyHwnd = Me.hWnd
SetParent Command1.hWnd, MyHwnd
End Sub

سید حمید حق پرست
یک شنبه 11 تیر 1391, 23:52 عصر
سلام علیکم
خیلی ممنون از توجهتون به این تاپیک و کدی که قرار دادید
اما بنده میخوام امثلا یک دکمه رو به یک برنامه دیگه اضافه کنم نه برنامه ای که خودم مینویسم

ممنون میشم راهنماییم کنید


یا علی(ع)

setroyd
دوشنبه 12 تیر 1391, 01:28 صبح
خوب شما میتونی با قرار دادن هندل پنجره ی مورد تظر به همون اضافه کنی نه به برنامه ی خودت .

سید حمید حق پرست
دوشنبه 12 تیر 1391, 02:09 صبح
خوب شما میتونی با قرار دادن هندل پنجره ی مورد تظر به همون اضافه کنی نه به برنامه ی خودت .
با تشکر از شما . خب میشه راهنمایی کنید چطور هندلشو بدست بیارم؟ و کجای سورس قرار بدهم . (تاحالا کار نکردم) . ممنونم میشم


یا علی (ع)

ASedJavad
دوشنبه 12 تیر 1391, 04:42 صبح
چطور هندلشو بدست بیارم؟
با توابع ای پی آیی مثل findWindow یا FindWindowEx
یه جستجو بکنی موارد زیادی پیدا میکنی


کجای سورس قرار بدهم
هندل فرم مورد نظر رو باید بریزی تو متعیر MyHwnd تو هر دو تا سورس نمونه