• Thứ Bảy, 20/12/2003 10:56 (GMT+7)

    Câu hỏi :
    - Lập trình Delphi dùng ActiveX mscomm32.ocx của Visual Basic, khai báo thành phần này bằng cách chọn Component-> Install ActiveX-> chọn tên thành phần ActiveX, Delphi đã thông báo đăng ký thành công và tạo một thành phần mới có tên là Tcomm trong trang điều khiển ActiveX. Chạy trên máy không có cài đặt Visual Basic hoặc chưa đăng ký mscomm23.ocx thì nhận được lỗi “ocx không đăng ký”. Xin hướng dẫn cách giải quyết. - Cách đăng ký trực tiếp thành phần ocx vào registry của Windows bằng Delphi hoặc Visual Basic? - Có thành phần điều khiển cổng liên lạc trong Delphi không? - Dùng phần mềm nào để xem thay đổi registry của Windows sau khi cài đặt một chương trình mới?

    Trả lời :

    ActiveX Control là 1 dạng linh kiện phần mềm theo công nghệ của Microsoft, nó có thể được nhúng vào bất kỳ container nào để dùng lại (thí dụ form giao diện của phần mềm VB, VC++, FoxPro, Delphi, trang Web,...). Việc quản lý ActiveX Control được thực hiện ở cấp HĐH. Windows cung cấp tiện ích regsvr32.exe để cho phép người dùng đăng ký 1 file *.ocx chứa ActiveX Control vào Windows trước khi được dùng bởi các ứng dụng trên máy. Khi bạn dùng chức năng Component-> Install ActiveX của Delphi thì Delphi cũng sẽ gọi tiện ích regsvr32.exe (hay gọi trực tiếp hàm DllRegisterServer() trong file *.ocx tương ứng) để đăng ký nó. Bạn có thể lập trình đăng ký ActiveX Control bằng cách gọi hàm API WinExec(), cú pháp viết bằng VC++ như sau :

    WinExec(“regsvr32.exe -s mscomm32.ocx”, SW_HIDE).

    Muốn xem quá trình cài đặt 1 phần mềm mới đã hiệu chỉnh những thứ gì trong registry của Windows, bạn có thể lưu lại nội dung registry trước khi cài đặt ứng dụng đó rồi so sánh nội dung này với nội dung sau khi đã cài đặt. Để quá trình so sánh được dễ dàng, bạn có thể dùng trình regedit.exe để “export” nội dung registry thành dạng text only

     

    Chuyên mục: Lập trình