No estas registrado.

#1 03-07-2012 19:02:55

xdan159
Colaborador
Desde: Venezuela
Registrado: 29-12-2010
Mensajes: 111

Utilidad para pegar el portapapeles en DOSBox

logo

En el foro de DOSBox VOGONS, el usuario emendelson a desarrollado un pequeño programa que permite usar el portapapeles de windows en DOSBox.

Para usarse se debe colocar el BackgroundPasteClipToDOSBox.exe  en el directorio de dosbox, y ejecutarlo (permanecerá en segundo plano).
ppdb
Ejecutándose en segundo plano

al ejecutar DOSBox y pulsar la tecla [PAUSE] (previamente deberíamos haber copiado algo en el portapapeles  icon_mrgreen) el contenido aparecerá en DOSBox, (lógicamente el contenido debe ser texto)

copiarealizada
Copia realizada desde el portapapeles de Windows a DOSBox

Bien esto es un experimento aun no funciona muy bien: en la imagen puede verse que puso todo en mayúsculas hasta llegar a la coma, y se comió una "n", veremos que tal se desarrolla.

La discusión se esta llevando en esta entrada:http://vogons.zetafleet.com/viewtopic.php?t=32714, y en otra entrada: http://vogons.zetafleet.com/viewtopic.php?t=32709 el propio emendelson a realizado un AppleScript para pegar el portapapeles de OSX en DOSBox

tell application "System Events" to set tNames to (name of processes)
set tClue to "DOSBox" -- looking for Quicksilver
set appRunning to {}
repeat with aName in tNames
   if contents of aName contains tClue then set end of appRunning to contents of aName
end repeat
-- error number -128
if appRunning is {} then
   tell me to activate
   display dialog "DOSBox not running." buttons {"OK"} with title "Paste into DOSBox" giving up after 5
   error number -128
end if

set charList to {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "’", "-"}
set codeList to {29, 18, 19, 20, 21, 23, 22, 26, 28, 25, 47, 39, 27}

set shiftList to {"“", "”"}
set shiftCodeList to {39, 39}

-- Keypad key codes:
-- KP0=82, KP1=83, KP2=84, KP3=85, KP4=86
-- KP5=87, KP6=88, KP7=89, KP8=91, KP9=92
set upperList to {"é", "ç"} -- extend this list with other characters as needed
set upperCodeList to {{83, 85, 82}, {83, 85, 87}} -- keypad numbers matching ASCII codes

try
   set getClip to the clipboard as text
on error
   set getClip to " "
end try
tell application "DOSBox" to activate
delay 0.1
tell application "System Events"
   repeat with i from 1 to count characters of getClip
      if (character i of getClip) is in charList then
         set codeItem to my listPosition(character i of getClip, charList)
         set keyCodeNum to item codeItem of codeList
         key code keyCodeNum
      else if (character i of getClip) is in shiftList then
         set codeItem to my listPosition(character i of getClip, shiftList)
         set keyCodeNum to item codeItem of shiftCodeList
         key code keyCodeNum using {shift down}
      else if (character i of getClip) is in upperList then
         set codeItem to my listPosition(character i of getClip, upperList)
         set keyCodeSubList to item codeItem of upperCodeList
         -- display dialog item 1 of keyCodeSubList
         key down option
         key code (item 1 of keyCodeSubList)
         key code (item 2 of keyCodeSubList)
         key code (item 3 of keyCodeSubList)
         key up option
      else
         keystroke (character i of getClip)
      end if
      delay 0.02
   end repeat
end tell

on listPosition(thisItem, thisList)
   repeat with n from 1 to the count of thisList
      if item n of thisList is thisItem then return n
   end repeat
   return 0
end listPosition

Como ven tenemos con que jugar en DOSBox   icon_biggrin

Desconectado

Pie de página

Powered by FluxBB