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

Hỏi về Lisp (thuật toán, ý tưởng, coding,...)

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

Cảm ơn Doan Van Ha đã trả lời giúp.

Nhưng biến cecolor chỉ trả lại màu sắc đang dùng thôi.

Còn em muốn màu sắc của 1 Layer bất kỳ (chẳng hạn Layer hiện hành) Tức là màu sắc của layer đó khi ta tạo Layer.

Không biết bác không hiểu ý em hay em không hiểu ý bác!

Đây bạn : (cdr(assoc 62 (tblsearch "layer" (getvar "clayer"))))

 

"cecolor" là màu sắc của lớp hiện hành. "bác không hiểu ý em hay em không hiểu ý bác". Nói tóm lại, bạn muốn gì cơ?

"cecolor" là màu sắc đang sử dụng hiện hành. Nếu là màu sắc của lớp hiện hành nó là Bylayer. Nó còn có thể có màu sắc khác nữa bạn.

  • 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

Sẵn có siêu sao đang online, xin hỏi cái này chút:

Tôi muốn hỏi về hàm (ACET-UNDO-RESTORE) và hàm (ACET-CMD-EXIT): ý nghĩa và cú pháp của 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

Các anh cho em hỏi làm sao lấy được màu sắc của 1 layer bất kỳ trong bản vẽ (Ví dụ layer hiện hành). Cảm ơn!

 

Bạn có thể dùng Autolisp :

(defun layCl(layName)

(cdr(assoc 62 (tblsearch "layer" layName))))

Hoặc VLisp :

(defun layCl(layName)

(vla-get-color (vla-item (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object))) layName))

)

=> màu layer hiện hành (layCL (getvar "clayer"))\

Với các đối tượng thuộc collection thì bạn nên dùng Autolisp ,và thêm thắt kiểm tra sự tồn tại của layer nữa ^^

 

 

@DVH : Cú pháp :

(ACET-UNDO-RESTORE number)

(ACET-CMD-EXIT)

Ý nghĩa : :excl:

1.ACET-UNDO-RESTORE : gần như chưa thấy chỗ nào dùng nên hổng biết number nghĩa chi chi

2.ACET-CMD-EXIT : Không đối số, ghi chú là ;;undo command exit , cũng hổng biết dịch sao cho sát ý, nhưng theo ngu ý thì ket thấy nó cũng giống thoát lệnh hoặc dãy setq hiện tại để trả về Nil, như vậy thì các hàm command sau sẽ không bị ảnh hưởng bởi setq đằng trước (nhất là trong các vòng lặp hay gặp trường hợp command đằng sau bị ảnh hưởng bởi setq đằng trước), có sử dụng trong các file flattensup.lsp, brekl.lsp, plt2dwg.lsp, bác vào xem có khi ngộ ra ^^

  • 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

Sẵn có siêu sao đang online, xin hỏi cái này chút:

Tôi muốn hỏi về hàm (ACET-UNDO-RESTORE) và hàm (ACET-CMD-EXIT): ý nghĩa và cú pháp của nó.

Hàm (ACET-UNDO-RESTORE number)

- Number =0; =3 -> Vô hiệu hóa tính năng undo

Tương đương với

Command: undo

Current settings: Auto = Off, Control = One, Combine = Yes

Bạn quan sát biểu tượng mũi tên trên Toolbar của lệnh undo sẽ thấy rõ hơn

 

- Number = 2 : Only one command can be undone -> Undo chỉ được 1 lệnh thôi

 

Mọi vấn đề về hàm này bạn chỉ cần quan tâm đến biến hệ thống UNDOCTL là đủ. Ở đó có tất cả.

 

1 vấn đề nữa cần phải chú ý là trong hàm :

(command "undo" "be")

...

...

(command "undo" "end")

-> Nên set biến hệ thống UNDOCTL cho phù hợp. Và vì thường CAD mặc định nên chúng ta thường ít chú ý đến điểm này

 

PS: Mình còn phải học hỏi nhiều, mình dị ứng với các từ như cao thủ, siêu sao..bản thân không dám nhận và cũng rất ngại khi trả lời những bài viết có những từ 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

Hàm (ACET-UNDO-RESTORE number)

- Number =0; =3 -> Vô hiệu hóa tính năng undo

Tương đương với

Command: undo

Current settings: Auto = Off, Control = One, Combine = Yes

Bạn quan sát biểu tượng mũi tên trên Toolbar của lệnh undo sẽ thấy rõ hơn

 

- Number = 2 : Only one command can be undone -> Undo chỉ được 1 lệnh thôi

 

Mọi vấn đề về hàm này bạn chỉ cần quan tâm đến biến hệ thống UNDOCTL là đủ. Ở đó có tất cả.

 

1 vấn đề nữa cần phải chú ý là trong hàm :

(command "undo" "be")

...

...

(command "undo" "end")

-> Nên set biến hệ thống UNDOCTL cho phù hợp. Và vì thường CAD mặc định nên chúng ta thường ít chú ý đến điểm này

 

PS: Mình còn phải học hỏi nhiều, mình dị ứng với các từ như cao thủ, siêu sao..bản thân không dám nhận và cũng rất ngại khi trả lời những bài viết có những từ này

Cám ơn Bác! Mới đọc xong, và sẽ nghiên cứu xem sao. Còn "siêu sao" là từ kính trọng của tôi. Tôi biết ai cũng cần phải học hỏi, nếu Bác có phật lòng thì tôi sorry. Bác cũng bỏ qua cho những lần tôi tranh luận với Bác, tất cả cũng chỉ vì học hỏi mà.

Thân thương!

 

PS: biến UNDOCTL là read only thì làm sao Set cho nó được?

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ó

(getenv "ACAD")

-> nó sẽ hiện ra - toàn bộ đường dẫn Support path -> Lấy được biến Path

Thêm đường dẫn vào bằng hàm nối chuỗi strcat

(setenv "ACAD" path)

-> Set path mới

Mấy dòng hy vọng bạn giải quyết được

Bận quá :rolleyes:

 

Detailing "giả nhời" nhanh hơn 1 phút rồi.

Nên kiểm tra Path đó có tồn tại đường dẫn mà bạn định Add vào thêm như ý của bạn Detailing ở trên nữa bạn ĐVH

Hình như cái cách của bác Tue_NV và Detailling chỉ thêm được 1 thư mục duy nhất. Bởi nếu muốn thêm 1 thư mục nữa thì nó lại thay thư mục trước đó. Nhờ xem lạ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

Hình như cái cách của bác Tue_NV và Detailling chỉ thêm được 1 thư mục duy nhất. Bởi nếu muốn thêm 1 thư mục nữa thì nó lại thay thư mục trước đó. Nhờ xem lại.

Bác đã strcat chưa ^^

Đúng là hàm của bạn Detailing có 1 chút vấn đề :

- Filefind không trả về T với ổ đĩa => code không add SPP drive

- vl-string-search sẽ trả về khác Nil nếu trong dãy SPP hiện tại có chứa đường dẫn add hiện tại

(ví dụ trong SPP đã có đường dẫn "C:\\abc\\123" mà add thêm "C:\\abc")

Trên thực tế việc kiểm tra đường dẫn cần add mới đã có chưa trong SPP hiện tại là không cần thiết :rolleyes:

=> Bác có thể dùng như thế này :

(defun ST:Support-Add(Path / nowSpp rt)
(setq nowSpp (getenv "ACAD"))
(cond ((vl-file-directory-p Path)
(if (and
       (not (vl-string-search (strcat ";" Path ";") nowSpp)) ;Co the bo
(< (strlen (strcat nowSpp Path)) 1000)) ;Kiem tra do dai toi da cua cac SPP 
 (setq rt (setenv "ACAD" (strcat nowSpp ";" Path))) 
 )  
)
(T (setq rt nil))
)
rt
)

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

......

PS: biến UNDOCTL là read only thì làm sao Set cho nó được?

Ví dụ : CAD mặc định cho nó là undo toàn bộ các lệnh từ khi bắt đầu mở CAD lên.

Nhưng chẳng hiểu vì sao mà chỉ undo 1 cái chỉ được cái đối tượng vừa vẽ thôi.

"Oái oăm" 1 cái là không thể Undo được nữa.

Hoặc là bạn đã từng gặp trường hợp CAD không Undo được chưa?

 

Ví dụ trường hợp Undo chỉ 1 lần 1 đối tượng đã vẽ trước đó, không Undo được nữa

Biến UNDOCTL (readonly) đang ở giá trị 19 (=1+2+16)

Giá trị 2 chính là Only one command can be undone (chỉ undo được 1 lần)

Bạn set cho nó không phải bằng hàm setvar mà bằng lệnh undo

 

Ví dụ :

Command: UNDOCTL

UNDOCTL = 19 (read only) -> Biến UNDOCTL = 19

 

Command: undo-> Gõ lệnh Undo để thiếp lập

Current settings: Auto = Off, Control = One, Combine = Yes

Enter an option [Control] <1>: C -> Gõ C

Enter an UNDO control option [All/None/One/Combine] <All>: All -> Gõ All

 

Command: undoctl -> Xem lại biến UNDOCTL vừa được thiết lập

 

UNDOCTL = 21 (read only)

-> Nó nằm ở tùy chọn Auto, Control của lệnh Undo

  • 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

...Bác đã strcat chưa ^^

Đúng là hàm của bạn Detailing có 1 chút vấn đề...

Bác có thể dùng như thế này...

Ketxu đã chạy thử chưa, hình như có lỗi đấy! Vả lại, cũng không thể add được nhiều hơn 1 thư mục. Ketxu thử giùm tí nhé. Và kiểm tra độ dài để mần chi?

@Tue_NV: sẵn thấy Bác đang online nên hỏi cái này chút: khi đang chạy 1 lệnh lsp, nếu user bấm esc giữa chừng, làm sao để đưa bản vẽ về trạng thái như trước khi chưa chạy lệnh lsp đó?

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

Ketxu đã chạy thử chưa, hình như có lỗi đấy! Vả lại, cũng không thể add được nhiều hơn 1 thư mục. Ketxu thử giùm tí nhé. Và kiểm tra độ dài để mần chi?

 

Hề hề. Srr bác vì vừa nãy e type vội k dùng CAD check nên setq bị lộn, k sao cả. Code đã sửa lại bên trên để lấy kết quả trả về. (OK thì trả về toàn bộ SPP, k thì nil)

Còn add nhiều hơn 1 thư mục nghĩa là như thế nào nhỉ ? Ý bác nói là làm nhiều thư mục cùng lúc hay làm lần lượt thì không được ? Ket thử bình thường

 

Command: (ST:SUPPORT-ADD "C:\\")

"C:\\Users\\Laptop Thuy Duong\\AppData\\Roaming\\Autodesk\\AutoCAD

2008\\R17.1\\enu\\support;C:\\Program Files\\AutoCAD 2008\\support;C:\\Program

Files\\AutoCAD 2008\\fonts;C:\\Program Files\\AutoCAD 2008\\help;C:\\Program

Files\\AutoCAD 2008\\express;C:\\Program Files\\AutoCAD

2008\\support\\color;D:\\_KVTNL;C:\\"

 

Command: (ST:SUPPORT-ADD "D:\\")

"C:\\Users\\Laptop Thuy Duong\\AppData\\Roaming\\Autodesk\\AutoCAD

2008\\R17.1\\enu\\support;C:\\Program Files\\AutoCAD 2008\\support;C:\\Program

Files\\AutoCAD 2008\\fonts;C:\\Program Files\\AutoCAD 2008\\help;C:\\Program

Files\\AutoCAD 2008\\express;C:\\Program Files\\AutoCAD

2008\\support\\color;D:\\_KVTNL;C:\\;D:\\"

 

Kiểm tra độ dài vì có 1 số khuyến cáo field ghi cho env không nên quá 800 ký tự. Ket chưa test thử giới hạn này nhưng vẫn kiểm tra cho chắc ^^

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ề hề. Srr bác vì vừa nãy e type vội k dùng CAD check nên setq bị lộn, k sao cả. Code đã sửa lại bên trên để lấy kết quả trả về. (OK thì trả về toàn bộ SPP, k thì nil)

Còn add nhiều hơn 1 thư mục nghĩa là như thế nào nhỉ ? Ý bác nói là làm nhiều thư mục cùng lúc hay làm lần lượt thì không được ? Ket thử bình thường

Kiểm tra độ dài vì có 1 số khuyến cáo field ghi cho env không nên quá 800 ký tự. Ket chưa test thử giới hạn này nhưng vẫn kiểm tra cho chắc ^^

1). Thêm "C:\\" hoặc "D:\\" thì được, nhưng ví dụ "C:\\A" thì không được.

2). Thêm nhiều thư mục là thêm lần lượt thôi, ví dụ thêm "C:\\HA1" rồi sau đó thêm "C:\\HA2".

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

1). Thêm "C:\\" hoặc "D:\\" thì được, nhưng ví dụ "C:\\A" thì không được.

2). Thêm nhiều thư mục là thêm lần lượt thôi, ví dụ thêm "C:\\HA1" rồi sau đó thêm "C:\\HA2".

Command: (ST:SUPPORT-ADD "C:\\windows\\")

"C:\\Users\\Laptop Thuy Duong\\AppData\\Roaming\\Autodesk\\AutoCAD

2008\\R17.1\\enu\\support;C:\\Program Files\\AutoCAD 2008\\support;C:\\Program

Files\\AutoCAD 2008\\fonts;C:\\Program Files\\AutoCAD 2008\\help;C:\\Program

Files\\AutoCAD 2008\\express;C:\\Program Files\\AutoCAD

2008\\support\\color;D:\\_KVTNL;C:\\;D:\\;C:\\windows\\"

 

Command: (ST:SUPPORT-ADD "C:\\windows")

"C:\\Users\\Laptop Thuy Duong\\AppData\\Roaming\\Autodesk\\AutoCAD

2008\\R17.1\\enu\\support;C:\\Program Files\\AutoCAD 2008\\support;C:\\Program

Files\\AutoCAD 2008\\fonts;C:\\Program Files\\AutoCAD 2008\\help;C:\\Program

Files\\AutoCAD 2008\\express;C:\\Program Files\\AutoCAD

2008\\support\\color;D:\\_KVTNL;C:\\;D:\\;C:\\windows\\;C:\\windows"

 

Command: (ST:SUPPORT-ADD "E:\\_Phim")

"C:\\Users\\Laptop Thuy Duong\\AppData\\Roaming\\Autodesk\\AutoCAD

2008\\R17.1\\enu\\support;C:\\Program Files\\AutoCAD 2008\\support;C:\\Program

Files\\AutoCAD 2008\\fonts;C:\\Program Files\\AutoCAD 2008\\help;C:\\Program

Files\\AutoCAD 2008\\express;C:\\Program Files\\AutoCAD

2008\\support\\color;D:\\_KVTNL;C:\\;D:\\;C:\\windows\\;;E:\\_Phim"

 

Command: (ST:SUPPORT-ADD "E:\\Aothuat")

nil

 

Command: (ST:SUPPORT-ADD "E:\\Game")

"C:\\Users\\Laptop Thuy Duong\\AppData\\Roaming\\Autodesk\\AutoCAD

2008\\R17.1\\enu\\support;C:\\Program Files\\AutoCAD 2008\\support;C:\\Program

Files\\AutoCAD 2008\\fonts;C:\\Program Files\\AutoCAD 2008\\help;C:\\Program

Files\\AutoCAD 2008\\express;C:\\Program Files\\AutoCAD

2008\\support\\color;D:\\_KVTNL;C:\\;D:\\;C:\\windows\\;E:\\_Phim;E:\\Game"

 

 

NewBitmapImage-1.jpg

 

:)

  • 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 rồi lượm ơi! Chắc bị 1 biến hệ thống nào làm ảnh hưởng rồi. Tôi không thể thêm được như ketxu, mà chỉ thêm được 1 thư mục duy nhất thôi. Biết thằng nào mà lần đây trời! Bạn nào check giúp xem vớ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ác đã thử thêm bằng tay chưa ? Xem có thêm được không ??

Hoặc thêm bằng VLisp như thế này xem sao :

(defun ST:Support-Add (Path / prefs pref_files supPth)
(setq prefs (vla-get-preferences (vlax-get-acad-object)))
(setq pref_files (vla-get-files prefs))
(setq supPth (vla-get-supportpath pref_files))
(vla-put-supportpath pref_files (strcat supPth ";" Path))
)

(code chưa lấy return và chưa bắt lỗ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ác đã thử thêm bằng tay chưa ? Xem có thêm được không ??

Hoặc thêm bằng VLisp như thế này xem sao :

(defun ST:Support-Add (Path / prefs pref_files supPth)
(setq prefs (vla-get-preferences (vlax-get-acad-object)))
(setq pref_files (vla-get-files prefs))
(setq supPth (vla-get-supportpath pref_files))
(vla-put-supportpath pref_files (strcat supPth ";" Path))
)

(code chưa lấy return và chưa bắt lỗi)

Còn 1 vấn đề này nữa:

Ketxu có dùng window 7 không? Hình như nó không thể tìm được path của file vừa load (trong hàm LastLoad ấy mà)?

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

Path của file vừa Load là sao ạ ? Ketxu dùng vista Home + XP ^^

Tức là thế này, ví dụ tôi có file lsp nằm ở "C:\AA\BB\...\File.lsp". Khi tôi load file "File.lsp" thì dùng hàm Lastload dưới đây sẽ tìm được path của "File.lsp". Sau đó, dùng hàm "ST:..." của Ketxu thì có thể add được "C:\AA\BB\...\" vào trong "Support File Search Path".

Trước đây dùng Win XP thì OK, nay dùng Win 7 thì hàm Lastload bị lỗi nên không add theo kiểu này được, mà phải add thủ công bằng lệnh Options nên hơi bị chán.

(defun LastLoad( / K)
(setq K (strcat "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\" "CurrentVersion\\Explorer\\ComDlg32\\OpenSaveMRU\\*"))
(vl-registry-read K (substr (vl-registry-read K "MRUList") 1 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

Tức là thế này, ví dụ tôi có file lsp nằm ở "C:\AA\BB\...\File.lsp". Khi tôi load file "File.lsp" thì dùng hàm Lastload dưới đây sẽ tìm được path của "File.lsp". Sau đó, dùng hàm "ST:..." của Ketxu thì có thể add được "C:\AA\BB\...\" vào trong "Support File Search Path".

Trước đây dùng Win XP thì OK, nay dùng Win 7 thì hàm Lastload bị lỗi nên không add theo kiểu này được, mà phải add thủ công bằng lệnh Options nên hơi bị chán.

(defun LastLoad( / K)
(setq K (strcat "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\" "CurrentVersion\\Explorer\\ComDlg32\\OpenSaveMRU\\*"))
(vl-registry-read K (substr (vl-registry-read K "MRUList") 1 1)))

Nếu đã add thủ công sao không sử dụng cách này :

Trong Lisp bạn viết 1 hàm chọn lại file vừa Load -> Lấy đường dẫn mà bạn vừa chọn đó -> Cho vô support path

->Apload Lisp ->...

Cách này.. nó "cù lần" nhưng nó đúng với mọi hệ điều hành... :rolleyes:

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

Nếu đã add thủ công sao không sử dụng cách này :

Trong Lisp bạn viết 1 hàm chọn lại file vừa Load -> Lấy đường dẫn mà bạn vừa chọn đó -> Cho vô support path

->Apload Lisp ->...

hàm chọn lại file vừa Load.

Hàm này Bác có thể chỉ giùm đwợc không?

Sẵn có Bác, hỏi thêm tí này luôn: cái win 7 này vào help để xem các hàm lsp nó báo lỗi luô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 chọn lại file vừa Load.

Hàm này Bác có thể chỉ giùm đwợc không?

Sẵn có Bác, hỏi thêm tí này luôn: cái win 7 này vào help để xem các hàm lsp nó báo lỗi luôn.

Hàm (getfiled ...đấy

Viết Lisp có chứa hàm này ... kiu User chọn lại cái Lisp mà vừa apload đấy

Đương nhiên -> hàm getfiled sẽ trả về đường dẫn mà bạn chọn.

Lấy đường dẫn này cho vô Support path

 

Hàm này bạn hay sử dụng mà :rolleyes:

Nếu đã add thủ công sao không sử dụng cách này :

.......

........

Cách này.. nó "cù lần" nhưng nó đúng với mọi hệ điều hành... :rolleyes:

Tue_NV không cài Win7 nên không biết

  • 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

Hàm (getfiled ...đấy

Viết Lisp có chứa hàm này ... kiu User chọn lại cái Lisp mà vừa apload đấy

Đương nhiên -> hàm getfiled sẽ trả về đường dẫn mà bạn chọn.

Lấy đường dẫn này cho vô Support path

Hàm này bạn hay sử dụng mà :rolleyes:

Tue_NV không cài Win7 nên không biết

Cách này cũng đã dùng, nhưng chắc "tính thủ công" cũng tương đương vào Options nên không thích lắm. Dù sao cũng thank Bác.

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ác ĐVH hãy kiểm tra lại đường dẫn Registry xem đã chuẩn xác chưa ? Và kiểm tra quyền admin khi đọc - ghi key reg

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ác ĐVH hãy kiểm tra lại đường dẫn Registry xem đã chuẩn xác chưa ? Và kiểm tra quyền admin khi đọc - ghi key reg

Đây Ket (đã kiểm tra trên winXP thì ok). Không hiểu kiểm tra quyền admin là gì Ketxu ơi:

(setq K (strcat "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\"

"CurrentVersion\\Explorer\\ComDlg32\\OpenSaveMRU\\*"))

 

"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComD

lg32\\OpenSaveMRU\\*"

 

(vl-registry-read K "MRUList")

nil

 

(vl-registry-read K (substr (vl-registry-read K "MRUList") 1 1)))

; error: bad argument type: stringp nil

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ách này cũng đã dùng, nhưng chắc "tính thủ công" cũng tương đương vào Options nên không thích lắm. Dù sao cũng thank Bác.

Bạn thử cái này xem có được không?

(defun LastLoad( / K)
(setq K 
   (strcat "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\" "CurrentVersion\\Explorer\\ComDlg32\\OpenSaveMRU\\lsp"))
(vl-registry-read K (substr (vl-registry-read K "MRUList") 1 1)))

Chú ý cái này trả về đường dẫn của file Lsp vừa Load nhé.

Không phải file VLX

Bạn apload 1 file Lsp nào đó rồi gọi hàm (LastLoad) xem sao.

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 thử cái này xem có được không?

(defun LastLoad( / K)
(setq K 
   (strcat "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\" "CurrentVersion\\Explorer\\ComDlg32\\OpenSaveMRU\\lsp"))
(vl-registry-read K (substr (vl-registry-read K "MRUList") 1 1)))

Chú ý cái này trả về đường dẫn của file Lsp vừa Load nhé.

Không phải file VLX

Bạn apload 1 file Lsp nào đó rồi gọi hàm (LastLoad) xem sao.

Chịu luôn Bác ơi! Lỗi cũng như #808 ở trên (chỉ khác "*" -> "lsp").

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

×