Ứng dụng kế toán theo thông tư 133/2016

Liên hệ QC

Maika8008

Thành viên gạo cội
Tham gia
12/6/20
Bài viết
4,741
Được thích
5,669
Donate (Momo)
Donate
Giới tính
Nam
Hôm nay tôi chia sẻ 1 giải pháp tương đối ổn về việc viết và phân phối ứng dụng bằng VBA. Chia sẻ ở đây tuy thực sự không phải chia sẻ mà là chia sẻ :) .

Giải pháp của tôi là:
1. Viết dll bằng VB6.
2. Ghi Mã máy và Mã kích hoạt của người dùng lên Registry.
3. Mã hóa Mã máy + giải mã Mã kích hoạt ở bước 2.
4. So khớp 2 kết quả ở bước 3:
- Nếu khớp: User đã có bản quyền -> tiếp tục dùng.
- Không khớp: Ghi số lần dùng code lên đâu đó ở Registry
+ Cảnh báo số lần còn được dùng.
+ Xóa file nếu cố dùng tiếp đến mức quá số lần quy định.

Tất cả các code để phục vụ giải pháp được học hỏi từ nhiều nơi trên cõi mạng nhưng phần lớn từ GPE, trong đó đặc biệt cảm ơn gợi ý việc dùng VB6 viết dll và làm cho Excel 64 bit dùng được dll VB6 của @Kiều Mạnh. Khả năng của tôi chỉ dừng lại ở đây, các giải pháp nâng cao đối với tôi là quá tầm.

Như đã nói ở trên, bộ file tôi chia sẻ ở đây là để test giải pháp chứ tôi không có ý định chia sẻ ứng dụng (tất nhiên là file đã code hoàn chỉnh để dùng được 10 lần chạy code như mục 4 ở trên đã nêu chứ không phải file demo). Các sư huynh GPE vui lòng đừng "phẫu thuật" cái dll của đệ nhé :) và chỉ dẫn thêm cho đệ nếu sẵn lòng.:)

Tất nhiên là khi đăng ký dll trên một số máy sẽ gặp vấn đề, hay gặp nhất là hệ điều hành không đáp ứng, không thông báo cho ta biết để chọn Yes/No. Gặp vấn đề này tôi không biết cách giải quyết, mong mọi người cùng tìm cách xử lý.

Cập nhật 21/05/2023: Thêm file Hướng dẫn. Các bạn chép vào cùng chỗ với file kế toán.
Cập nhật 26/05/2023: Sửa lỗi file 64bit không chạy được tác vụ lấy mã máy và kích hoạt.
 

File đính kèm

  • HuongDan.rar
    3.5 MB · Đọc: 45
  • KeToan.rar
    1.2 MB · Đọc: 45
Lần chỉnh sửa cuối:
Không hiểu sao máy tôi không chạy được cái Com32on64.exe mặc dùng đã Run As Administrator như hướng dẫn. Vô Task manager không thấy nó luôn.
Máy Windows 11 (64bit) + Office 2021 (64bit).
Bị mấy cái báo lỗi như bên dưới nhưng tôi nghĩ là do không chạy được cái Com server ở trên. Hay là do phải buộc chạy ở ổ đĩa D? Máy tôi không có ổ D rồi :)

Đã đăng ký:

Screen Shot 2023-05-12 at 10.24.54.png

- Khi bấm [Thi hành]:

Screen Shot 2023-05-12 at 10.29.00.png. Screen Shot 2023-05-12 at 10.29.07.png

- Khi bấm [Chấm công theo giờ]:

Screen Shot 2023-05-12 at 10.25.25.png. Screen Shot 2023-05-12 at 10.25.37.png
 
À sau khi sửa lại đường dẫn đăng ký file DLL như bên dưới thì cái Class AccTXTBaoCao không bị lỗi nhưng vẫn còn lỗi cái Class AccTXT.CongCu.

Regsvr32.exe /s C:\Windows\SysWOW64\AccTXT.dll
 
À sau khi sửa lại đường dẫn đăng ký file DLL như bên dưới thì cái Class AccTXTBaoCao không bị lỗi nhưng vẫn còn lỗi cái Class AccTXT.CongCu.

Regsvr32.exe /s C:\Windows\SysWOW64\AccTXT.dll
Mấy chuyện đó tôi còn lơ ngơ lắm. Bạn xử lý giúp còn tôi thì theo dõi kết quả :D
 
Chắc không tương thích với office 64 bit.
 
Khi nào rảnh tôi mổ xẻ nó thử!
 
Bác ơi, đây là ứng dụng kế toán hả? nếu có sản phẩm thì bác cho em xin link xem thử nhé. Và nếu có ứng dụng kế toán theo thông tư 200 nữa thì đúng là thứ em đang cần ạ!
 
Bác ơi, đây là ứng dụng kế toán hả? nếu có sản phẩm thì bác cho em xin link xem thử nhé. Và nếu có ứng dụng kế toán theo thông tư 200 nữa thì đúng là thứ em đang cần ạ!
Sản phẩm được đính kèm ở bài #1 đấy bạn.
 
Đã thử office 32 bit không chạy được ! Dù đã đăng kí dll thành công và add tới reference nên chưa mỗ xẻ được.
Capture.JPG
 
Máy tui không có ổ D bạn chuyển sang ổ E cho tui được không.
Không thể tạo ổ D vì ổ D trên máy thực chứa phần mềm máy ảo đang chạy.
 
Máy tui không có ổ D bạn chuyển sang ổ E cho tui được không.
Không thể tạo ổ D vì ổ D trên máy thực chứa phần mềm máy ảo đang chạy.
Vậy bạn mở file Reg_KeToanTXT.bat bằng Notepad rồi sửa lại đường dẫn trong đó.
 
Đăng kí ro

Mình đăng kí rồi vẫn không chạy
Vụ này bạn tìm cách sửa giúp. Hồi xưa tôi cũng gặp trường hợp y vậy, đăng ký dll của Kiều Mạnh không chạy nhưng làm sao đó không nhớ nữa, sau đó lại chạy được. Bạn thử gỡ ra rồi đăng ký lại xem.
 
Vụ này bạn tìm cách sửa giúp. Hồi xưa tôi cũng gặp trường hợp y vậy, đăng ký dll của Kiều Mạnh không chạy nhưng làm sao đó không nhớ nữa, sau đó lại chạy được. Bạn thử gỡ ra rồi đăng ký lại xem.
Nếu cái Com server có dinh tới thư viện VB6 chắc phải đăng ký cái dll của VB6 luôn quá. Tôi đoán mò thôi.
 
Nó báo thư viện không tìm thấy mà đăng kí thì đã thành công !
 
Tôi nghĩ chắc do việc khai báo gọi các hàm trong dll chưa chuẩn thử làm như ví dụ này xem
Sub AddNumbersUsingDLL()
Dim result As Double
Dim myObject As Object

' Create an instance of the object from the DLL
Set myObject = CreateObject("MyComponent.MyClass")

' Call the AddNumbers function from the DLL
result = myObject.AddNumbers(5, 10)

' Display the result
MsgBox "The result is: " & result

' Clean up
Set myObject = Nothing
End Sub
 
Web KT
Back
Top Bottom