| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как программно закинуть текст. строку в буфер обмена Винды?

Как программно закинуть текст. строку в буфер обмена Винды?

Ответ
Поиск в этой теме
Непрочитано 22.03.2006, 18:55 #1
Как программно закинуть текст. строку в буфер обмена Винды?
kp+
 
идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,095

Как программно закинуть текстовую строку в буфер обмена Винды?
А потом программно вытащить ее оттуда?
(текстовая строка извлекается из примитива с помощью vla-get-textstring и может быть использована в другом документе или даже в другой программе)
Подскажите, PLS.
Просмотров: 3894
 
Непрочитано 22.03.2006, 19:03
#2
Кочетков Андрей

Java/Kotlin backend
 
Регистрация: 03.02.2006
Сообщений: 5,740


Можно воспользоваться функцией dos_clipboard из DOSLib'a.
Сам DOSLib можно скачать здесь http://ftp2.mcneel.com/pub/doslib/doslib61.exe
Кочетков Андрей вне форума  
 
Непрочитано 22.03.2006, 19:14
#3
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,192
<phrase 1=


Так решил это для себя , через dos_lib:
Код:
[Выделить все]
(defun apel-text_to_clipboard
			      (/		  obj
			       str		  str0
			       *error*		  unvis_obj_list
			       vla-obj		  APEL-MOD-GET_PROPERTY
			       APEL-MTEXT-STR_PURGE_FONT
			      )
  (defun *error* (msg)
    (princ (strcat "\n apel-text_to_clipboard ERROR: " msg))
    (if	unvis_obj_list
      (FOREACH i unvis_obj_list
	(vla-Highlight i :vlax-false)
      )
    )
  )
  (defun APEL-MOD-GET_PROPERTY (obj prop_name)
    (if	(vlax-property-available-p obj prop_name nil)
      (vlax-get-property obj prop_name)
    )
  )
  (defun APEL-MTEXT-STR_PURGE_FONT (string-to-normalize
				    /		      sub_string
				    sub_pos	      left_string
				    right_string
				   )
    (if	(or
	  (setq sub_pos (vl-string-search "{f" string-to-normalize))
	  (setq sub_pos (vl-string-search "{\\" string-to-normalize))
	  (setq sub_pos (vl-string-search "\\f" string-to-normalize))
	  (setq sub_pos (vl-string-search "{\\f" string-to-normalize))
	) ;_ end of or
      (progn
	(setq left_string		;все, что до "{"
	       (vl-string-trim
		 "{"
		 (substr
		   string-to-normalize
		   1
		   (vl-string-position
		     (ascii "\\")
		     string-to-normalize
		     sub_pos
		   )
		 )
	       )
	)
	(if (vl-string-position
	      (ascii ";")
	      string-to-normalize
	      sub_pos
	    )
	  (setq	right_string
		 (substr
		   string-to-normalize
		   (+ (vl-string-position
			(ascii ";")
			string-to-normalize
			sub_pos
		      )
		      2
		   )
		 )
	  )
	  (setq right_string "")
	)
	(APEL-MTEXT-STR_PURGE_FONT
	  (strcat left_string right_string)
	)
      )
      (vl-list->string
	(vl-remove
	  (ascii "}")
	  (vl-string->list string-to-normalize)
	)
      )
    )
  )
  (setq obj T)
  (while obj
    (if	(setq obj (nentsel "\nВыбери текст <Выход>:"))
      (if (setq	str (APEL-MOD-GET_PROPERTY
		      (setq vla-obj (vlax-ename->vla-object (car obj)))
		      "TextString"
		    )
	  )
	(progn
	  (princ (setq str0 (cond (str0 (strcat str0 " " str))
				  (str)
			    )
		 )
	  )
	  (progn (vla-Highlight vla-obj :vlax-true)
		 (setq unvis_obj_list (cons vla-obj unvis_obj_list))
	  )
	)
      )
    )
  )
  (if str0
    (princ
      (cond
	(dos_clipboard
	 (dos_clipboard (APEL-MTEXT-STR_PURGE_FONT str0))
	)
	(strcat
	 "\n!DOS_LIB library not found! The text don't copy to clipboard!\n"
	 (APEL-MTEXT-STR_PURGE_FONT str0)
	)
      )
    )
  )
  (if unvis_obj_list
    (FOREACH i unvis_obj_list
      (vla-Highlight i :vlax-false)
    )
  )
)
__________________
apel.fas
Apelsinov вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как программно закинуть текст. строку в буфер обмена Винды?

Размещение рекламы