• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Đăng ký DLL, OCX bằng Code

Các mẹo vặt linh tinh khác, không thuộc nhóm nào
Hình đại diện của người dùng
tuyen_dt18
Guru
Guru
Bài viết: 256
Ngày tham gia: T.Bảy 19/04/2008 8:46 pm
Đến từ: Hưng Yên
Been thanked: 43 time
Liên hệ:

Đăng ký DLL, OCX bằng Code

Gửi bàigửi bởi tuyen_dt18 » T.Năm 26/08/2010 3:48 am

Thủ thuật: Đăng ký DLL, OCX bằng Code
Tác giả: Sưu tầm
Mô tả: Đăng ký DLL, OCX bằng Code


  1. Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
  2. Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
  3. Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
  4. Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
  5. Private Const Err_Reg = &H0
  6.  
  7. Public Function WinRegSvr(LPath As String, blnRgst As Boolean) As Boolean
  8.    On Error Resume Next
  9.     Dim lid, status As Long
  10.     lid = LoadLibrary(LPath)
  11.     If lid = 0 Then
  12.       MsgBox "Unable to Load DLL"        'See if the library is loaded
  13.      Exit Function
  14.     End If
  15.     If blnRgst Then
  16.         status = GetProcAddress(lid, "DllRegisterServer")      'Registering the library
  17.    Else
  18.         status = GetProcAddress(lid, "DllUnregisterServer")    'Unregistering the library
  19.    End If
  20.  
  21.     If CallWindowProc(status, Me.hWnd, ByVal 0&, ByVal 0&, ByVal 0&) = Err_Reg Then
  22.        WinRegSvr=True
  23.     Else
  24.         WinRegSvr=False
  25.     End If
  26.  
  27.     FreeLibrary lid
  28. End Function
  29.  


Hỏi ý kiến tác giả trước khi sử dụng hoặc trích dẫn rõ nguồn bài viết khi sử dụng.

Hình đại diện của người dùng
deptraithongminh
Thành viên tích cực
Thành viên tích cực
Bài viết: 143
Ngày tham gia: T.Ba 02/07/2013 4:58 pm
Đến từ: TPHCM
Has thanked: 17 time
Been thanked: 1 time

Re: Đăng ký DLL, OCX bằng Code

Gửi bàigửi bởi deptraithongminh » CN 04/05/2014 7:08 pm

cái này là sao bạn ? không lẽ là khi load form lên thì tự đăng kí Dll, Ocx à ?
với lại đưa code vào form thì làm sao để kích hoạt nó ? mình dùng call .... ko được. giúp mình nhé :) ;)

OKMimo
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 445
Ngày tham gia: T.Sáu 11/02/2011 3:36 pm
Has thanked: 107 time
Been thanked: 56 time

Re: Đăng ký DLL, OCX bằng Code

Gửi bàigửi bởi OKMimo » CN 04/05/2014 7:54 pm

Nếu Main Form của bạn không chứa các controls của dll hoặc ocx thì bạn có thể đặt code đăng ký dll hoặc ocx vào sự kiện Load() của Form này; còn nếu nó chứa các Controls của Dll hoặc Ocx thì việc đăng ký được thực hiện trong sự kiện Initialize(); nếu không bạn phải tạo một app khác để thực hiện đăng ký. Hãy thử xem?
(Sự kiện Initialize() xảy ra trước Load() của Form). Chúc thành công!

Hình đại diện của người dùng
deptraithongminh
Thành viên tích cực
Thành viên tích cực
Bài viết: 143
Ngày tham gia: T.Ba 02/07/2013 4:58 pm
Đến từ: TPHCM
Has thanked: 17 time
Been thanked: 1 time

Re: Đăng ký DLL, OCX bằng Code

Gửi bàigửi bởi deptraithongminh » T.Hai 05/05/2014 12:35 pm

không, ý mình là function dĩ nhiên phải để ở phần General nhưng lúc kích hoạt nó thì phải dùng hàm call (vd ở đây là Call WinRegSvr) nhưng lúc run lại báo lỗi "Argument not optional". thế là thế nào ? nếu mình sai các bạn cho mình code nhé

dongdo1234
Thành viên chính thức
Thành viên chính thức
Bài viết: 19
Ngày tham gia: T.Sáu 18/01/2013 8:56 am
Đến từ: Giao Thủy - Nam Định
Has thanked: 8 time
Been thanked: 1 time
Liên hệ:

Re: Đăng ký DLL, OCX bằng Code

Gửi bàigửi bởi dongdo1234 » T.Hai 05/05/2014 2:56 pm

Có lẽ vẫn dùng lệnh call được theo cú pháp trên bạn dùng :
Call Winregsvr (đường dẫn đến file reg)
>> Giờ nếu dùng các trình đóng gói exe thì nó đã hỗ trợ sẵn việc đăng ký các ocx bằng phần mềm trong quá trình cài đặt rồi mà

OKMimo
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 445
Ngày tham gia: T.Sáu 11/02/2011 3:36 pm
Has thanked: 107 time
Been thanked: 56 time

Re: Đăng ký DLL, OCX bằng Code

Gửi bàigửi bởi OKMimo » T.Hai 05/05/2014 4:03 pm

deptraithongminh đã viết:không, ý mình là function dĩ nhiên phải để ở phần General nhưng lúc kích hoạt nó thì phải dùng hàm call (vd ở đây là Call WinRegSvr) nhưng lúc run lại báo lỗi "Argument not optional". thế là thế nào ? nếu mình sai các bạn cho mình code nhé


Bạn post code lên mình sẽ xem giúp.
dongdo1234 đã viết:Có lẽ vẫn dùng lệnh call được theo cú pháp trên bạn dùng :
Call Winregsvr (đường dẫn đến file reg)
>> Giờ nếu dùng các trình đóng gói exe thì nó đã hỗ trợ sẵn việc đăng ký các ocx bằng phần mềm trong quá trình cài đặt rồi mà

Không phải lúc nào mọi người cũng dùng trình đóng gói để thực hiện cài đặt, code này rất hữu dụng cho những ai muốn tạo một bộ cài đặt riêng cho mình, và còn nhiều vấn đề khác nữa.

Hình đại diện của người dùng
deptraithongminh
Thành viên tích cực
Thành viên tích cực
Bài viết: 143
Ngày tham gia: T.Ba 02/07/2013 4:58 pm
Đến từ: TPHCM
Has thanked: 17 time
Been thanked: 1 time

Re: Đăng ký DLL, OCX bằng Code

Gửi bàigửi bởi deptraithongminh » T.Ba 06/05/2014 10:34 pm

tks cả 2 bạn OKMimo và dongdo1234!
mình làm call theo cách của bạn dongdo1234 thì nó lại ghi "Unable to load DLL"
sửa giúp mình với

OKMimo
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 445
Ngày tham gia: T.Sáu 11/02/2011 3:36 pm
Has thanked: 107 time
Been thanked: 56 time

Re: Đăng ký DLL, OCX bằng Code

Gửi bàigửi bởi OKMimo » T.Ba 06/05/2014 11:27 pm

Vậy đường dẫn tới file dll mà bạn cần đăng ký đã đúng chưa? Đưa code lên mình xem? Thậm chí, dll file của bạn được viết bằng gì? Nó có phải là ActiveX dll không? Hay là Win32Dll?

Hình đại diện của người dùng
deptraithongminh
Thành viên tích cực
Thành viên tích cực
Bài viết: 143
Ngày tham gia: T.Ba 02/07/2013 4:58 pm
Đến từ: TPHCM
Has thanked: 17 time
Been thanked: 1 time

Re: Đăng ký DLL, OCX bằng Code

Gửi bàigửi bởi deptraithongminh » T.Năm 08/05/2014 5:01 pm

mình đã kt rồi. mình cần đăng kí ufc của anh DQHưng ấy. sao dùng code này qua máy khác chạy ko đc ?

OKMimo
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 445
Ngày tham gia: T.Sáu 11/02/2011 3:36 pm
Has thanked: 107 time
Been thanked: 56 time

Re: Đăng ký DLL, OCX bằng Code

Gửi bàigửi bởi OKMimo » CN 11/05/2014 8:14 pm

Bạn đã đọc kỹ các support đối với ocx của bạn Dương Quốc Hưng chưa? Cụ thể lỗi như thế nào? Như thế nào là không chạy được nhỉ?

Hình đại diện của người dùng
deptraithongminh
Thành viên tích cực
Thành viên tích cực
Bài viết: 143
Ngày tham gia: T.Ba 02/07/2013 4:58 pm
Đến từ: TPHCM
Has thanked: 17 time
Been thanked: 1 time

Re: Đăng ký DLL, OCX bằng Code

Gửi bàigửi bởi deptraithongminh » T.Ba 13/05/2014 7:29 pm

mình ko thấy support gì nhắc đến việc để chương trình tự registry ocx và dll cả OKMimo

OKMimo
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 445
Ngày tham gia: T.Sáu 11/02/2011 3:36 pm
Has thanked: 107 time
Been thanked: 56 time

Re: Đăng ký DLL, OCX bằng Code

Gửi bàigửi bởi OKMimo » T.Ba 13/05/2014 9:02 pm

Càng trao đổi với bạn mình thấy càng tẩu hỏa nhập ma, vì chẳng có một đoạn code, chẳng có một hình ảnh, chẳng có cái gì để chính xác hóa vấn đề. Topic này mình xin dừng ở đây. Chịu!


Quay về “[VB] Mẹo vặt khác”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách