Chuyển đến nội dung
Diễn đàn CADViet
thanhduan2407

[Hỏi] Cách đếm số lần sử dụng lệnh lisp hoặc Giới hạn thời gian sử dụng LISP

Các bài được khuyến nghị

Em chào các bác!

Em có một câu hỏi này chút ạ! Em viết một lisp phục vụ cho công việc hoàn toàn chính đáng, nhưng đã có người sử dụng không đúng mục đích, ma số liệu (bịa số liệu). Bây giờ em muốn giới hạn việc sử dụng lisp đó bằng số lần sử dụng hoặc giới hạn thời gian sử dụng lisp. Các bác có thể cho em xin 1 đoạn Code hoặc cách thức thực hiện việc này được không ạ? Em cảm ơn các bác nhiều!

P/s: Em đã từng thấy 1 anh viết lisp nếu sử dụng quá hạn nó sẽ tự xóa lisp đó. Em tò mò nhưng chưa biết cách.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Các bác cho em hỏi thêm 1 chút!

Thay vì số lần sử dụng LISP thì em tính theo thời gian (số ngày) sử dụng LISP thì làm như thế nào ạ?

Với số lần sử dụng LISP thì không vấn đề gì, em đã làm được rồi, còn cách tính trừ ngày này cho ngày này bằng bao nhiêu ngày thì em chưa biết cách tính. Nhờ các bác ra tay trợ giúp.

Ví dụ: Ngày bắt đầu sử dụng lisp là ngày 28/05/2015 và em cho thời gian sử dụng là 3 ngày thì nó hiểu là hết ngày 01/06/2015 là hết hạn. (Tức sang ngày 02/06/2015 là hết hạn)

 Em cảm ơn các bác nhiều.

  • Vote giảm 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nhoc cung cấp 1 số hàm cho anh tự xử (bởi vì Nhoc ko ủng hộ quan điểm hạn chế này lém -_- )

(setcfg cfgname cfgval)

Ex : (SETCFG "AppData/CADViet/Count" "111")

(vl-registry-write reg-key [val-name val-data])

Ex : (VL-REGISTRY-WRITE "HKEY_CURRENT_USER\kk\time\time")
(VL-REGISTRY-WRITE "HKEY_CURRENT_USER\kk\time\time" "" "111")

(vl-registry-read reg-key [val-name])

Ex : (VL-REGISTRY-READ "HKEY_CURRENT_USER\kk\time\time")

Rồi anh tự (setq  ngay  jido) mà giống con kiến bò trên sa mạc :angry2:

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cảm ơn em.

Người ta dùng không đúng mục đích nên anh phải hạn chế. Nó ảnh hưởng đến uy tín của ngành và anh là kẻ đều lêu. :D. Anh dùng đúng mục đích. Hii.

Cảm ơn em về những từ khóa.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Anh sửa lại 1 tí

 

(vl-registry-write "HKEY_CURRENT_USER\\Test"

Ex : (SETCFG "AppData/CADViet/Count" "111")
(vl-registry-write reg-key [val-name val-data])
Ex : (VL-REGISTRY-WRITE "HKEY_CURRENT_USER\\kk\\time\\time")
(VL-REGISTRY-WRITE "HKEY_CURRENT_USER\\kk\\time\\time" "" "111")
(vl-registry-read reg-key [val-name])
Ex : (VL-REGISTRY-READ "HKEY_CURRENT_USER\\kk\\time\\time")

 

Anh đang tìm cách lưu biến ngày khi lần đầu tiên sử dụng, sau đó sẽ cộng thời gian số ngày cho những lần tiếp theo. Chưa tìm ra cách em ạ!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Đề phòng kẻ gian sử dụng lisp quá thời hạn, liệu có thể đề phòng kẻ gian vặn đồng hồ lại?

kẻ gian có "trăm tay hay nghìn tay" thì cũng không thể vặn hết các loại đồng hồ. VD : ngày tạo file (truy xuất file) của các file hệ thống trong thư mục windows.

Nhưng vấn đề là làm cách nào ngăn "người ngay" không thay đổi được Registry hay file config.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

 

Đề phòng kẻ gian sử dụng lisp quá thời hạn, liệu có thể đề phòng kẻ gian vặn đồng hồ lại?

Dạ, không sao đâu ạ. Chương trình cũng không phải cao siêu lắm và những người trong ngành của em cũng không phải siêu đẳng về lập trình đâu. Em chỉ muốn hạn chế việc sử dụng không đúng mục đích thôi. Nếu họ làm được điều đó thì họ mất công chỉnh thời gian. :D. Mong các bác giúp em một chút ạ!

Em cảm ơn các bác nhiều!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Các bác cho em hỏi thêm 1 chút!

Thay vì số lần sử dụng LISP thì em tính theo thời gian (số ngày) sử dụng LISP thì làm như thế nào ạ?

Với số lần sử dụng LISP thì không vấn đề gì, em đã làm được rồi, còn cách tính trừ ngày này cho ngày này bằng bao nhiêu ngày thì em chưa biết cách tính. Nhờ các bác ra tay trợ giúp.

Ví dụ: Ngày bắt đầu sử dụng lisp là ngày 28/05/2015 và em cho thời gian sử dụng là 3 ngày thì nó hiểu là hết ngày 01/06/2015 là hết hạn. (Tức sang ngày 02/06/2015 là hết hạn)

 Em cảm ơn các bác nhiều.

Hàm lấy ngày, tháng năm:

(fix (getvar "CDATE"))

Bạn phải viết thêm hàm tính chênh lệch ngày, tháng

PS:

Không cần máy tính vẫn tính được, từ cách tính tay suy ra thuật toán

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Hàm lấy ngày, tháng năm:

(fix (getvar "CDATE"))

Bạn phải viết thêm hàm tính chênh lệch ngày, tháng

Cái này em biết. Nhưng cách tính em chưa biết ạ. Em cần hỏi cái đó.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn vào express/tools/system variable editor... rồi gõ tên biến CDATE hay DATE để hiểu nó trả về cái gì rồi Bạn sẽ có phương án xử lý thích hợp

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

 

Bạn vào express/tools/system variable editor... rồi gõ tên biến CDATE hay DATE để hiểu nó trả về cái gì rồi Bạn sẽ có phương án xử lý thích hợp

Có lẽ nhờ các bác trợ giúp. @@

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Có lẽ nhờ các bác trợ giúp. @@

Thời gian tại thời điểm 1 (mili giây):

(setq time1 (getvar "millisecs"))

Tại cỡ 9h09' 29/5/2015 là 1304812812. Có thể lấy và đặt trước giá trị này.

Thời gian tại thời điểm 2 (mili giây):

(setq time2 (getvar "milisecs"))

Hiệu số thời gian:

(- time2 time1)

Em khống chế hiệu này.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Thời gian tại thời điểm 1 (mili giây):

(setq time1 (getvar "millisecs"))

Tại cỡ 9h09' 29/5/2015 là 1304812812. Có thể lấy và đặt trước giá trị này.

Thời gian tại thời điểm 2 (mili giây):

(setq time2 (getvar "milisecs"))

Hiệu số thời gian:

(- time2 time1)

Em khống chế hiệu này.

 

(defun SOLANLUU (/)

    (setq slan (getcfg "AppData/NGUYENTHIENDUONG/Count_FGCTC"))
    (setq time1 (getvar "millisecs"))
    (cond
      ((= slan "") (setq slan (rtos (/ (- (getvar "millisecs") time1 ) 1000.0) 2 0)))
      ((<= (atoi slan) 0) (setq slan "1"))
    )
    (setcfg "AppData/NGUYENTHIENDUONG/Count_FGCTC" (rtos (/ (- (getvar "millisecs") time1 ) 1000.0) 2 0))
  )

Em thử kiểm soát trong 60s nhưng không được,biến thời gian ko dc lưu bác ạ. Chắc tại em chưa hiểu điều này.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Em thử kiểm soát trong 60s nhưng không được,biến thời gian ko dc lưu bác ạ. Chắc tại em chưa hiểu điều này.

Sao bạn ko thử tạo khóa registry của Window theo hàm của Nhoclangbat rồi đặt diều kiện chạy hàm chính :)

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Sao bạn ko thử tạo khóa registry của Window theo hàm của Nhoclangbat rồi đặt diều kiện chạy hàm chính 

 

 

em bị lỗi 1317 khi cài đặt autocad thì sửa như thế nào được ạ? em cảm ơn!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

em bị lỗi 1317 khi cài đặt autocad thì sửa như thế nào được ạ? em cảm ơn!

 1 câu hỏi khó hiểu? B)  Về nguyên tắc khi cài lại Cad thì bạn phải gỡ triệt để Cad cũ (bằng phần mềm Your Unin-staller! chẳng hạn). Chạy CCleaner để lau sạch các registry của Cad cũ. Xong bạn cài lại Cad thì Ok. Nói chung có nhiều nguyên nhân nhưng nguyên nhân chính thường là tay nghề chưa ngon :D

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Code tạm cho bạn :)

(VL-REGISTRY-WRITE "HKEY_CURRENT_USER\\kk\\time\\time" "" "20150530")
(defun c:test ()
(if (> (getvar "CDATE") (read (VL-REGISTRY-READ "HKEY_CURRENT_USER\\kk\\time\\time")))
(progn (alert "\nBan da het han su dung!") (setq hamchinh nil))  
(progn (alert "\nHan su dung den ngay 30/05/2015!")(hamchinh)) )
(defun hamchinh (/ oldlst a b c d e f g h kho TL)
...........
...........)
(princ))
  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay


×