Turbo Pascal для Windows: скопировать вывод в буфер обмена?

Я заканчиваю программу в Turbo Pascal 7 для Windows как часть школьного проекта по программированию, по сути, нам дали краткое задание и сказали самим начинать, внедрять и кодировать программу.

Краткое описание предусматривает создание программы, в которой пользователь может ввести сообщение, выбрать сдвиг букв, и тогда каждая буква будет "зашифрована" в соответствии с этим сдвигом (по существу, ROT13). Легко.

Я запущен в окне терминала Turbo Pascal для Windows 7, и он выводит зашифрованный текст:

writeln('Encrypted message is ', line ,' for a shift of ', shift);
readln;

То, что я хотел бы сделать, это выйти за рамки этого, сделав еще один шаг вперед и позволить пользователю скопировать вывод (var: line) в свой буфер обмена Windows. Я искал повсюду в интернете уже два дня и пока не нашел ничего, что могло бы мне помочь. Теперь я начинаю задумываться, а есть ли у Паскаля такая возможность?

Ура, Люк.

3 ответа

Теперь я начинаю задумываться, а есть ли у Паскаля такая возможность?

Да, если вы не используете этот устаревший 20-летний продукт Pascal. Я не уверен, может ли он получить доступ к буферу обмена (так как буфер обмена Windows является 32-битным API) или нет, но большой шанс, что он не сможет, по крайней мере, не без взлома. Используйте Free Pascal или Delphi и получите доступ к Windows API напрямую, чтобы поиграть с буфером обмена (поищите в MSDN).

PS: буфер обмена не имеет ничего общего с языком Pascal. Это просто концепция, которая есть у ОС, и она позволяет программам использовать ее.

Во-первых, является ли полученный бинарный файл DOS или win3.x EXE?

Если DOS Afaik, есть способы добраться до буфера обмена из дос через расширения INT 2F.

Поиск в огромном архиве SWAG, который содержит кучу примеров для Turbo Pascal (и -Для Windows)

Если win3x то

http://www.programmersheaven.com/mb/pasprog/420895/420895/use-of-windows-clipboard/

Если этот ответ звучит очень расплывчато, то это потому, что все это 20 лет назад:-)

Если бы вы использовали Delphi, вы могли бы использовать Clipboard.SetTextBuf(PChar(somestring)); Вот как я это делаю в своей утилите Dos2Clip, которую я, по-видимому, сделал бесплатной еще в 2005 году. Я сделал источник доступным по ссылке ниже, все 25 строк.;)

В Vista и выше есть команда "clip", доступная в пакетных файлах или командной строке.

пример: эхо "привет, мир!" | клип

Смотрите мою рецензию здесь, где есть ссылка для загрузки моей программы Dos2Clip (с исходным кодом). Я вижу, что Clip2Dos тоже там.

http://www.clipboardextender.com/general-clipboard-use/command-window-output-to-clipboard-in-vista

Другие вопросы по тегам