Comments 28
Полезная тулза, спасибо!
А код и релизные файлы удобнее хранить на гитхабе.
А код и релизные файлы удобнее хранить на гитхабе.
+4
Менеджер буфера обмена — это очень удобная вещь, когда привыкаешь им пользоваться. Я с давних времён пользовался функцией PuntoSwitcher «Следить за буфером обмена», но она периодически глючила. Потом использовал 3dclipboard, но там тоже появлялась та же ошибка, что в PuntoSwitcher. Сейчас пользуюсь clipdiary. Эта программа вроде работает довольно неплохо и удобна сама по себе.
А почему бы не разместить исходники на каком-нибудь хостинге проектов, например, на Bitbucket или Github?
Возможно, что ваша программа со временем станет лучше всех, да ещё и Open Source! :)
А почему бы не разместить исходники на каком-нибудь хостинге проектов, например, на Bitbucket или Github?
Возможно, что ваша программа со временем станет лучше всех, да ещё и Open Source! :)
+2
clipdiary — ставил, мне ей не удобно пользоваться, поскольку для того, чтоб получить нужный элемент в истории, необходимо открывать окно программы, к тому же я не люблю разного рода лицензии (а эта программа не совсем свободна по условию использования, цитирую первую строку из условий: "Использование программы дома (за исключением случаев, когда домашний компьютер является рабочим — удаленная работа, фриланс )").
На Github уже залил.
На Github уже залил.
+1
… поскольку для того, чтоб получить нужный элемент в истории, необходимо открывать окно программы
Не обязательно, есть глобальные горячие клавиши:
Скрытый текст
В общем, на вкус и цвет…
+1
Это не программа глючила, это вся организация цепочки ClipboardViewer в винде корявая.
Вот увлекательное чтиво: blogs.msdn.com/b/rds/archive/2006/11/16/why-does-my-shared-clipboard-not-work-part-1.aspx
Вот увлекательное чтиво: blogs.msdn.com/b/rds/archive/2006/11/16/why-does-my-shared-clipboard-not-work-part-1.aspx
+1
Под windows могу порекомендовать ditto: ditto-cp.sourceforge.net Удобная программа.
+7
Все более менее известные перепробовал — ничего не удобно, самые хорошие менеджеры только под Linux — простые и ничего лишнего например клипер под KDE. В ditto — относительно много всего, но мне не нужны настройки, я хочу в контекстном меню в трее, сразу видеть меню из элементов истории, а не пункты по настройке программы.
Для меня менеджер буфера обмена — это не более удобного блокнотика, который сам запишет все что я копирую и когда нужно я с него возьму.
Для меня менеджер буфера обмена — это не более удобного блокнотика, который сам запишет все что я копирую и когда нужно я с него возьму.
+2
Немного вопрос не в тему, увидел использование Windows Forms и хотел спросить, вообще их ещё имеет смысл использовать, или всё таки надо WPF?
PS интересно, кстати, какая позиция MS по этому поводу.
PS2 программка полезная, поставил звездочку на гитхабе :)
PS интересно, кстати, какая позиция MS по этому поводу.
PS2 программка полезная, поставил звездочку на гитхабе :)
+4
Мне кажется, здесь особо без разницы, что использовать) Тут внешнего дизайна, по сути, практически нет.
Но насколько помню со времён моих ковырятельств в С#, работать с треем, юзая winforms, легче
Но насколько помню со времён моих ковырятельств в С#, работать с треем, юзая winforms, легче
+1
Сейчас используют WPF. Он же сейчас стандарт в Windows 8 и Windows Phone. Впрочем, никто не запрещает использовать Windows Forms, но он более не развивается и предоставляет меньше возможностей по построению интерфейса.
+2
Magistr_AVSH, я не специалист, просто любитель, но как по мне, не вижу смысла писать XAML там, где можно мышкой перетащить пару элементов формы и все будет работать, как задумано. Я бы выбирал то, что будет удобней в конкретной ситуации. Конечно интересные приложения, к тому же рассчитанные под тачпад, я бы лепил через WPF — возможностей больше и шаблоны облегчают жизнь.
+3
Microsoft.Win32.Registry.LocalMachine
Это требует прав администратора, что странно для такого рода приложения. Лучше использовать Registry.CurrentUser, тогда и предпочтения одного пользователя не будут навязываться всем остальным.
+8
VirtualClipBoard_History[key].Replace(@"<", @"<").Replace(@">", @">")
Это разные кодировки? Или что это?
// Очистка словаря от лишних элементов
Как то сложно, для простого удаления n элементов с одного из концов списка…
// Чистим историю буфера
Зачем это делать, если load_configs только при запуске формы?
Вообще чем обусловлено использование Dictionary<int, string>, а не простого List?
За программку спасибо, давно уже пора было поставить подобный софт:)
+2
Это разные кодировки? Или что это?
Посмотрите строку из цитаты в исходниках, там html сущности скобок. Использование html сущностей данных кавычек избавляет нас от ошибок во время парсинга XML.
Вообще чем обусловлено использование Dictionary<int, string>, а не простого List?
Вообще можно написать и с помощью списков, но мне больше по душе именно словари, поскольку индекс элемента не изменяется.
Зачем это делать, если load_configs только при запуске формы?
load_configs — принципиально запускается только при старте программы и очистка файла истории происходит именно в этот, это по двум причинам: 1) Не хотелось тратить ресурсы и чистить после появления каждой новой записи, поскольку как правило моя история порядка 500 записей и бывают разные размеры элементов, 2) Если что-то случится, например погаснет свет или еще что-то, я всегда смогу восстановить всю историю предыдущей сессии (вряд ли понадобится, но в жизни всякое бывает).
P.S. Исходный код выложил специально, чтоб каждый желающий мог изменить его под себя, т.к. мелочи сугубо индивидуальная штука и каждому свое.
+1
работает ли она в modern-ui приложениях win8?
+1
Ещё одна программа, в «копилку знаний» — CLCL www.nakka.com/soft/clcl/index_rus.html. Жаль, что не развивается. Но из массы протестированных, остановился на ней.
Вроде даже отвечает всем хотелкам автора :)
Вроде даже отвечает всем хотелкам автора :)
+4
Автор, при запуске программы и клике на пустом пространстве в поле истории, возникает такая ошибка:
А со второго раза вообще перестала запускаться :(
Надо бы пофиксить эти баги.
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at VirtualClipBoard.VirtualClipBoard.list_clipboard_SelectedIndexChanged(Object sender, EventArgs e)
at System.Windows.Forms.ListBox.OnSelectedIndexChanged(EventArgs e)
at System.Windows.Forms.ListBox.WmReflectCommand(Message& m)
at System.Windows.Forms.ListBox.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
А со второго раза вообще перестала запускаться :(
Надо бы пофиксить эти баги.
+1
Sign up to leave a comment.
Пишем виртуальный буфер обмена на C#