[HN Gopher] Is there a maximum size for Windows clipboard data?
___________________________________________________________________
Is there a maximum size for Windows clipboard data?
Author : kencausey
Score : 179 points
Date : 2022-06-08 14:16 UTC (8 hours ago)
(HTM) web link (devblogs.microsoft.com)
(TXT) w3m dump (devblogs.microsoft.com)
| dataflow wrote:
| > Next time, we'll see what we can do to extend this timeout.
|
| I guess I'm impatient... how does one go about this?
| jbverschoor wrote:
| There shouldn't be an arbitrary timeout. Anything that isn't
| instantly should have a UI showing progress / ability to cancel
| (or even pause).
| londons_explore wrote:
| I believe there is such an API... If you copy a file out of a
| rar archive and paste it into Gmail, you get to see the UI
| pop up and extraction begin...
| hermitdev wrote:
| I don't know, but I'd except a follow up post from Raymond on
| this tomorrow. He often does these multipart posts, broken up
| in rather digestible chunks.
| theandrewbailey wrote:
| The Old New Thing is such a treasure of insights into how Windows
| works (or used to work).
| avisser wrote:
| I love how I read the subject and knew it was a Raymond Chen
| post.
| ripley12 wrote:
| It's interesting how The Old New Thing is clearly a passion
| project for Raymond, but it's also an essential part of Windows
| documentation. I've run into a lot of situations where
| Raymond's blog is way more useful than the official docs.
| dixie_land wrote:
| And Raymond tells the story in a fun and engaging way. I really
| look forward to a volume 2 of The Old New Thing book (a
| compilation of his blog entries)
| jayd16 wrote:
| tl;dr: Yes, but its measured in seconds.
|
| wild.
| EFruit wrote:
| Raymond's blog always hits a note of morbid fascination. At times
| it almost feels like schadenfreude. "Neat, but thank God I didn't
| have to be the one that wrote/discovered that."
| asciimov wrote:
| The Old New Thing and Dave's Garage (on youtube) have helped me
| develop an appreciation for the decisions made in Windows
| development, kinda wish we had this kind of stuff from the Mac
| and Linux side of things.
| nice_byte wrote:
| I'm actually quite surprised that it takes _over 30 seconds_ to
| go through only 300000 items and generate some text with them.
| Unless the story is from ancient times, that is.
| jayd16 wrote:
| 300k rows but who knows how many columns.
| rasz wrote:
| You would think that, but try injecting 5K rows table into html
| document. My experience in Chrome and modern 4GHz CPU:
|
| '6K rows, 300ms to insert into page on paper (console.time(1);
| console.timeEnd(1)), but in reality browser freezes for 3
| seconds (1.8s style, 900ms layout, 300ms update tree). Freezing
| goes away with position: absolute, but it still takes 3 seconds
| to show up after .appendChild. I tried replacing Table with
| Flex divs, even worse speed.'
|
| I imagine I could make Chrome hang for more than 30 seconds
| with plain old HTML Tables :)
| nolok wrote:
| 30 seconds seems awefully long indeed and it's probably not on
| a modern / 2022 computer, but RichText clipboard data in
| windows does a lot of processing to render in a way that fit
| context, eg copy a few excel row, paste them in whatsapp webapp
| and you have a picture, not text.
|
| As a tech user, you quickly learn to fall in love with "paste
| as raw text", which skips all that and just give you text data.
| bombcar wrote:
| > over 300,000 rows
|
| Any process you ever enable in code will be pushed to limits you
| never dreamed possible. This is exactly where discoverability can
| come into play - someone starts by copying 50 rows and using that
| to get their job done, and may never realize there are other ways
| (CSV export, etc).
|
| If code can "recognize" when something like this is being done
| and provide documentation on other ways, it can help people learn
| new methods.
| Arrath wrote:
| > If code can "recognize" when something like this is being
| done and provide documentation on other ways, it can help
| people learn new methods.
|
| Now I'm imaging Clippy popping up when you copy a ludicrous
| amount of data to the clipboard. "You appear to be using a
| cludgy method, may I suggest something better?"
|
| Of course, I'm guilty of things like this. I have one excel
| macro that splits data from a giant stream* (one monolithic
| CSV, actually) into discrete units, graphs them, and then sorts
| the graphs for printing. It makes a lot of use of the
| clipboard, and god help you if you try to copy/paste something
| while the macro is running.
|
| *Giant enough that at one point it grew to where I overran my
| Int and had to upgrade some of the code to Longs :V
| stormdennis wrote:
| My chief memory of clippy was that he was modal and that he
| couldn't answer the question 'make clippy go away', so I
| could actually do something.
| EvanAnderson wrote:
| I always wanted Clippy to pop-up when excessive use of
| VLOOKUP is detected with a message: "It looks like you're
| trying to implement a relational database in a spreadsheet.
| May I suggest you get professional help?"
| bombcar wrote:
| People complain a lot about MS Access, but a easy-to-use
| relational database is _actually_ a very necessary tool. It
| 's too bad that Microsoft hasn't figured out how to make it
| easy to make an access-like system in Excel itself.
| DigiDigiorno wrote:
| "Easy" is tough when it comes to relational databases.
| Even Access requires a decent amount of technical know-
| how when compared to the people who use Excel heavily. In
| Excel Power Query and the M language are quite powerful.
| You can combine tables from both your sheets and/or a
| variety of external sources and create relational views
| into them. You can then display these views on a sheet.
|
| When I worked for a company where corporate used it, the
| problem was that people would come to me for help. M is
| pretty easy to learn so it wasn't a big deal for me. But
| I am a software dev with database experience, so I'm not
| sure who the target market is here--it's not the pure
| Excel users. Like, they wanted tables from a shared
| folder appended on each other and joined to another
| table. In pure Power Query you can do this without too
| much trouble, but you need to know what you are doing.
| These people have trouble with VLOOKUP already (I mean
| the string/int problem is unintuitive, so I'm not talking
| about that), so this is an impossible task for them.
| unyttigfjelltol wrote:
| It's confusing that Excel supports relational database
| operations at all. If you want to query the data in Excel
| it should seamlessly push you into Access rather than
| partially recreating the same functions.
| csdvrx wrote:
| > It's confusing that Excel supports relational database
| operations at all
|
| I'd say it's for the better: sometimes you want to stay
| in the same tool, and it's the tool's job to interpret
| your intent.
|
| Imagine you are editing a markdown file and have a
| picture in your Windows clipboard.
|
| IMHO, the proper action would be to output base64 encoded
| jpeg data, even if it's "partially recreating the same
| functions", as it makes a copy-paste of screenshots from
| say the snipping tool (Win Shift S) seamless.
|
| BTW, github doesn't support base64 encoded jpeg or png
| data, under the excuse that SVG could have security
| implications (which is true but not applicable for
| png/jpg) so don't bother trying it over there...
| EvanAnderson wrote:
| For sure, re: Access and a relational database tool being
| important. If somebody ever manages to make a web-based
| Microsoft Access clone (that actually works) they'll make
| billions.
|
| It's fun help a "savvy" Excel user understand how a
| relational database can reduce their byzantine VLOOKUP-
| based fever dreams into simple joins. Typically if
| somebody can grok VLOOKUP-fueled nightmares they can grok
| SQL pretty quickly and will actually appreciate what it
| can do for them.
| bombcar wrote:
| >If somebody ever manages to make a web-based Microsoft
| Access clone (that actually works) they'll make billions.
|
| They did, they called it Salesforce.com
| FastMonkey wrote:
| I think Salesforce is fine for large companies with teams
| of sales reps and a well staffed IT department, but it's
| overkill for most small to medium sized companies with
| just a few sales reps. If you can run on a creaky set of
| excel sheets, access would have been a far better and
| much more flexible solution. With minimal training it
| could be set up and run by a competent excel user.
|
| Salesforce admin is a pain in the ass. There's mandatory
| updates 3 times a year that require low level software
| development expertise in order for the admin to
| understand what will break, building new functionality
| essentially requires tens of thousands of dollars of
| consultant development, and god help you if you want to
| run a report that involves objects that don't have a
| direct parent-child relationship.
|
| I'm an analyst, and because I know how a database works,
| Salesforce stuff gets dumped on my desk all the time. I
| actively seek out alternative systems for everything it
| does, and would dearly love to see us drop this eye-
| watering expense.
| ArnoVW wrote:
| Airtable?
| DigiDigiorno wrote:
| There was Access Services in SharePoint but it was
| depreciated a few years ago. Unfortunately there are some
| very large companies that use Access in a shared drive
| instead. They make daily backups just in case there is
| data corruption.
| stormdennis wrote:
| 'just in case there is data corruption'
|
| In my experience that was guaranteed if any of the
| clients connected other than by ethernet.
|
| I've not done it but I understand that it's not difficult
| to have an Access front end for a SQL Server backend
| rather than the default mdb or accdb backend.
|
| All being Microsoft products the migration to SQL server
| is easy as I understand it.
|
| I find it hard to understand why large companies would
| not adopt this approach.
| EvanAnderson wrote:
| Access files are definitely super-fragile. That's not
| isolated to Access, though. Any time a file sharing
| protocol is used to host a database-- particularly with
| multi-user locking semantics-- I get the willies.
|
| I've done more "development" of Access-based applications
| over the years than I'd care to admit and, as a menu-
| driven front end for interaction with a client/server
| RDBMS (SQL Server, Postgres, etc) I think it's good cheap
| solution. Visual BASIC for Applications (VBA) can even do
| some powerful (and arguably ill-advised) stuff like
| directly calling Win32 APIs. It's an awesome prototyping
| tool in my experience.
|
| The typical Access solution I see in large corporate
| environments is something knocked-together by non-IT
| people. Once it gets to the level of needing to be
| upsized to a client/server RDBMS back-end the "real" IT
| department comes in and demands a purpose-built solution.
| Usually bureaucracy, disdain for Access, licensing costs
| for the client/server RDMS, taking away file servers,
| etc, end up killing it.
| Arrath wrote:
| Oh you must have seen my accounting department's
| 'transaction register' which is a...
|
| _checks latest_
|
| 64mb spreadsheet that amounts to one gigantic, ever slower
| pivot table.
| Optimal_Persona wrote:
| One department at my agency shrunk an ~80MB Excel sheet
| down to ~1-2MB by using the .xlsb (Excel Binary) file
| format, and it sped up quite a bit. But point taken, once
| this is the single source of truth for biz-critical data,
| Excel is not the right storage format.
| ody4242 wrote:
| There are some exotic scenarios, where copy-paste is the
| good(fast) solution. For example, one of my clients can be
| accessed via a VPN. Once I'm on the VPN, I have to start
| their VDI. Inside the VDI, I need to start another VPN, that
| then allows me to open a Putty session to a bastion host,
| that I can use to reach my destination cluster. Believe it or
| not, they don't want to make it simpler.
|
| Copy/paste works flawlessly through the VDI into the putty
| session, so I usually just uuencode my blob, and copy it to
| destination cluster and uudecode there, instead of uploading
| the file to the VDI, then pscp to the bastion host, and then
| scp to the destination cluster. (I know of zmodem, port
| forwarding and such, none of this is allowed...)
| ntoskrnl wrote:
| That sounds horrific. I wonder if anyone has built a TCP
| tunnel that works over shared clipboard? :)
| sandermvanvliet wrote:
| Not sure but I've made something more ugly.
|
| Once upon a time at $workplace we had a production and
| development LAN and we had two PC's sitting on our desks,
| one for prod and one for dev.
|
| Now there was a special SMB share to move stuff between
| the two networks but trying to copy something from one Pc
| to the other was tedious.
|
| So of course I wrote a magic clipboard utility that used
| a file on that SMB share as the clipboard "storage".
| Running the utility on both PCs allowed me to use copy-
| paste between the two PCs...
| funcDropShadow wrote:
| I have once worked for a customer where other freelancer
| had developed a special proxy. The customer required
| working in a hermetically closed vpn environment even to
| access the test systems. Whitelisting a single web page
| cost an unreasonable amount of budget and took days to
| weeks. Therefore someone had decided to run the vpn
| inside a virtual machine, and developed an http proxy
| that consisted of two processes, one running inside the
| VM and one outside. Now, you gan guess how they exchanged
| requests and responses. That whole setup was surprisingly
| usable.
| johnwalkr wrote:
| copy/paste really is a great tool. I bought a Windows
| gaming PC during the pandemic, and my other systems are
| Macs. I started to use barrier (a multi-platform software
| KVM-like keyboard and mouse sharing thing) and was
| pleasantly surprised to learn that it shares the clipboard
| across all of my PCs, and my Macs in turn also share the
| clipboard to my iphone. This works in both directions. It's
| convenient to the point that using multiple PCs with
| multiple operating systems is barely different than using
| one PC with 2 monitors. I travel a lot for work and this
| feature also lets me use my personal laptop as a slightly
| limited second screen for my work laptop. Total gamechanger
| for free.
| prometheus76 wrote:
| Have you looked into powerpivot in Excel? I learned how to
| use it, then eventually moved into using Power BI, and now
| that's what I do for a living. Powerpivot unlocks so much
| potential in Excel, and it allows you to have millions of
| rows of data and work with it seamlessly. It also allows you
| to create relationships between tables instead of using
| vlookups. If you haven't tried it, look at some introductory
| videos on youtube. It will blow your mind.
| Arrath wrote:
| I haven't! If I need to revive this particular bit of
| shameful spaghetti code, I'll look into it, thanks!
| geraldcombs wrote:
| We (Wireshark) ended up doing this when someone tried to load a
| capture with 54 million packets:
| https://gitlab.com/wireshark/wireshark/-/issues/16908
| babypuncher wrote:
| Some video games have tutorial systems similar to this. They
| will recognize when players are struggling with a certain
| mechanic or system, and pop up a relevant tutorial. i.e. if a
| user is trying and failing to jump across a gap, they probably
| forgot to use their hover boots.
|
| This can get annoying though if the user is deliberately doing
| something that ends up triggering these messages.
| treeman79 wrote:
| Filed a bug report once. App crashes when font is more then
| 13,000 points.
|
| There was a long discussion on memory management before they
| just stuck a max size on it.
| sudosysgen wrote:
| When I was a dumb kid, with my friends, we'd inject 100k
| point unicode fish into the chats of online games and crash
| every single client. Eventually they encrypted their chat
| protocol instead of just removing HTML support and doing
| sanitation. We eventually figured it out but it was exam
| season so we dropped it
| cnity wrote:
| This is a chicken and egg problem. This limit seems impossibly
| high because users lack the expectation they can perform this
| action, because designers of software don't expect users to
| perform this action, because users lack the expectation they
| can...
|
| I disagree with sibling comments that copy/paste is a hacky
| solution. It's a very natural one for lots of users and there's
| no actual fundamental reason not to be able to accommodate it.
| markmark wrote:
| Visual Studio used to (or maybe still does) have an issue where
| it wouldn't hit breakpoints after the 65,536th line in a source
| file. It wasn't something I ever encountered, I just came
| across the issue in the docs somewhere, but I pity the person
| that ran into it.
| tomcam wrote:
| > Any process you ever enable in code will be pushed to limits
| you never dreamed possible.
|
| Not me. And that's not a brag. It is probably not a productive
| way to think using modern toolsets. But in my world, if you can
| copy a few things, you should definitely expect someone to copy
| a shitload of things or at the very least, document clearly and
| with rich error messages what went wrong.
|
| Likewise, I tend to get nervous when I can't explicitly handle
| out of memory conditions, and the problem is I'm a Go
| programmer. It kind of bothers me that there's no standard way
| to deal with that on my end with built-in data structures such
| as maps and strings. This is probably sheer paranoia because
| most modern systems have plenty of memory... But it still
| leaves me uneasy.
| [deleted]
| sprremix wrote:
| > This is known as clipboard delay-rendering
|
| Aha, so that's why Word[1] just explicitly asked me if I want to
| save the current copied image before quitting. It's probably
| asking before loading something big into memory?.
|
| [1] https://i.imgur.com/sNfE3Be.png
| dragontamer wrote:
| The Windows Clipboard, for all of its problems, remains one of
| the easiest program-to-program communication methods to use in
| modern GUIs.
|
| I can take a screenshot of my Firefox with "PrtScn" button
| (moving a bitmap of the page into the Clipboard), paste it into
| Microsoft Paint, edit it a bit, and then copy/paste that into my
| Discord chat screen for commentary.
|
| --------
|
| Yes, Linux / *Nix users have pipes and great text processing
| tools. Yes, Powershell has interesting objects that can be passed
| round. But practically speaking? Most of my "inter-process
| communications" is over this silly "Clipboard" Windows has, and
| it works way better than it probably should.
| cecilpl2 wrote:
| On Windows, it's now faster/easier to use the built in
| Snip+Sketch tool (Win + Shift + S).
|
| It does instant rectangular selection, then pops up a simple
| editor which you can then copy/paste anywhere you'd like.
|
| I have Win+Shift+S bound to a mouse chord, as well as copy and
| paste, so I can actually paste an arbitrary rectangle of my
| screen without touching the keyboard.
| [deleted]
| cyral wrote:
| It's also great when you copy some text from Outlook and it
| pastes it into discord as an _image_ of the text. I believe it
| has been fixed now but that was happening to me for a while.
| yardshop wrote:
| Also really handy sometimes is Win+PrintScreen, which puts the
| screen image on the clipboard, and also saves it to a numbered
| file in your Pictures\Screenshots folder. If things are
| happening fast and you don't want to paste and manipulate each
| screen shot, this lets you save several in a row to go back and
| work with later.
| com2kid wrote:
| I've had the pleasure of looking at the Windows source code for
| the clipboard.
|
| Insanely well engineered. It can perform miracles of computing.
| It damn well has to.
|
| > I can take a screenshot of my Firefox with "PrtScn" button
| (moving a bitmap of the page into the Clipboard), paste it into
| Microsoft Paint, edit it a bit, and then copy/paste that into
| my Discord chat screen for commentary.
|
| All without you worrying about supported image formats or color
| space encodings! It is insane! Copy from Firefox and then paste
| into a program that expects 16bit color and it'll probably
| work. The clipboard stores data in so many duplicate formats
| and can convert between so many formats, it is nuts.
| pvg wrote:
| On the current macOS, the screenshot can be edited/annotated
| when it's previewed on the mac or on a nearby iPad where it
| automagically appears (with edits propagating back to the mac).
|
| Something similar is available in the more modern Windows
| 'snipping tool' feature (win-shift-s) but without the tablet
| magic.
| ryandrake wrote:
| I haven't been keeping up with the Windows world. Does
| Microsoft provide any safeguards or tools for the user to limit
| access to the clipboard? The clipboard was introduced in the
| good ol' days when you could basically trust the applications
| running on your computer. Nowadays, third party (and for those
| of us more paranoid) first party apps need to be considered
| attackers. The clipboard is a juicy target that often contains
| sensitive data I'm sure most apps would like to gobble up and
| exfiltrate. I know iOS and Android both are starting to
| introduce restrictions on mobile apps' use of the clipboard.
| Has this made it into the Windows desktop world?
| pjc50 wrote:
| The rules are completely different if you're running
| "appstore" apps, which actually have some kind of sandbox.
|
| If it's a regular win32 app, then it has access to all your
| filesystem (except UAC bits), can read and post keystrokes to
| other windows, and indeed can just straight up inject code
| into other processes.
| Melatonic wrote:
| Not true anymore - there are process isolation modes you
| can enable in Windows 10 as well as kernel isolation where
| it runs core processes in a VM essentially. And there is
| also protected folder access.
| gruez wrote:
| Windows isn't sandboxed so any per-program restrictions is
| pretty much pointless because it'll be trivial to bypass.
| 323 wrote:
| Regular apps, Windows Store apps are sandboxed. Some of
| them are quite popular (eg: Netflix).
| jjice wrote:
| For screenshots and edits, I have to say that I love MacOS's
| tools. CMD-Shift-4 to capture a screen region, click on it in
| the bottom right, edit it right there, and click 'Done'. Their
| editing tools are also super intuitive there. Honestly my
| favorite MacOS tool and I'd love a cross platform equivalent.
| nonfamous wrote:
| FWIW the process is about the same in Windows. The only
| difference is the keyboard shortcut is Windows-Shift-S.
| wongarsu wrote:
| The only real difference is that Windows introduced the
| simple way only fairly recently (7 years ago with Windows
| 10), so lots of people are still used to doing it the old
| way.
| magicalhippo wrote:
| Even better, you can copy an attachment in a mail in Outlook,
| and paste it into an application running on another computer
| via RDP. The file will be copied over without the applications
| knowing any better.
|
| We use this so users can attach invoices and other documents
| they've received through mail to orders in our application.
| Users typically run Outlook on their laptop/PC, but our
| application as a published application.
|
| We rely on Excel exposing the data in an XML format on the
| clipboard to reliably import data from Excel. Same for
| Open/LibreOffice. Without it it's impossible to handle cells
| which contain both the quote character and newlines, due to the
| way Excel formats plaintext.
|
| We don't want to import the whole file, because the users
| typically only need to import parts of the spreadsheet. This
| saves us from writing a complex UI to select the data to
| import.
|
| And FWIW, I've used that with >100k rows of data.
| Melatonic wrote:
| Yea this is a super underrated feature - copy and paste
| through RDP is awesome. Although in some cases you would
| probably want to of course disable that for security reasons.
| yardshop wrote:
| It works several layers deep too. My typical WFH scenario
| these days is: home PC -> RDP to
| work laptop at home -> VNC to work network ->
| RDP to work desktop -> RDP to other VMs and PCs at
| work
|
| I can copy text or a file or a screen shot at any level and
| paste at any other level. Pretty amazing.
| Blikkentrekker wrote:
| What you describe also works on X11 and probably what MacOS
| uses too.
|
| I'm not sure why it would be impressive or unusual. The ability
| to store arbitrary data on the clipboard with metadata that
| describes what data it is, such as an image file, or an audio
| file, is very old.
| dragontamer wrote:
| > What you describe also works on X11 and probably what MacOS
| uses too.
|
| Except its no where near as smooth or universal as in
| Windows. In Linux, you have to worry about KDE programs vs
| GNOME programs having different clipboards, for example.
|
| Its also why compatible suites of programs (ie: Adobe) can be
| so useful when those custom formats come into play. Adobe can
| copy/paste layers from Photoshop and send them over to other
| programs. If the photoshop layer isn't understood, it seems
| to become a Bitmap, which works when I'm on a VBulletin forum
| over in Firefox land.
|
| ---------
|
| Copy/paste works on files / file-managers, images, text,
| HTML. Yes, any OS could do the same thing, but they largely
| don't in my experience.
| moxvallix wrote:
| Nah man, clipboard on Linux, mainly KDE, is really good.
| KDE splits out selected text, and ctrl+c text, into
| separate clipboards, allowing for some really good
| workflows.
|
| Selecting text and middle clicking is so much faster than
| ctrl+c, ctrl+v. Having the two separate, allows you to
| essentially copy two separate things at once, and paste
| them separately, which is great for filling out forms.
|
| Also, KDE provides an absolute gem of a clipboard manager,
| which stores all recent copies in to a list, from which
| entries can be browsed in order to recopy some text that
| you may have copied a while ago. IDK where you got the idea
| that Gnome apps have a different clipboard, as I have never
| experienced that. Maybe that is an old thing? Definitely
| not how it is now, thats for sure.
|
| Copy/paste works on files / file-managers, images, text and
| HTML. This is not a Windows only experience. In fact, the
| clipboard manager even has little file icons, and image
| previews, for copied objects.
| SrZorro wrote:
| > Also, KDE provides an absolute gem of a clipboard
| manager, which stores all recent copies in to a list
|
| In windows 10 and up, win + v to see (and the first time,
| enable) the clipboard history selector
| BenjiWiebe wrote:
| Yes I love this Windows 10 feature.
|
| Note that KDE has had it pre Windows 10 though.
| eqvinox wrote:
| > KDE splits out selected text, and ctrl+c text, into
| separate clipboards, allowing for some really good
| workflows.
|
| Just for completeness & correctness: that's an X11
| feature, not related to KDE, and predates KDE by several
| years. I can't easily find the history of it, but this
| Keith Packard paper[0] on it is dated 1990 so it's
| necessarily older than that...
|
| [0] http://keithp.com/~keithp/talks/selection.ps
|
| (pg. 5, "4.1. Selection names" - PRIMARY, SECONDARY,
| CLIPBOARD. I don't think SECONDARY is used much these
| days.)
| Blikkentrekker wrote:
| > _Except its no where near as smooth or universal as in
| Windows. In Linux, you have to worry about KDE programs vs
| GNOME programs having different clipboards, for example._
|
| I am no sure where you get this idea. The clipboard is an
| X11 shared resource and any program taking control of it
| removes what any other had on it before.
|
| > _Its also why compatible suites of programs (ie: Adobe)
| can be so useful when those custom formats come into play.
| Adobe can copy /paste layers from Photoshop and send them
| over to other programs. If the photoshop layer isn't
| understood, it seems to become a Bitmap, which works when
| I'm on a VBulletin forum over in Firefox land._
|
| The same exists on X11, programs can define custom metadata
| and define a hierarchy of different metadata and associated
| data on the clipboard and any application can decide for
| itself which formats it understands and which it does not.
|
| I've personally built software that puts images on
| clipboards, and falls back with uris to that image if
| direct images not be supported by whatever reads it.
| partido3619463 wrote:
| The conversion behavior you describe is also what happens
| in MacOS.
| mahkoh wrote:
| >In Linux, you have to worry about KDE programs vs GNOME
| programs having different clipboards, for example.
|
| I don't worry about this on linux because it's not the
| case.
|
| I suppose if I were on windows I would have to worry about
| legacy programs that only understand UCS-2 not being able
| to talk to modern programs that only understand UTF-8.
|
| >Its also why compatible suites of programs (ie: Adobe) can
| be so useful when those custom formats come into play.
| Adobe can copy/paste layers from Photoshop and send them
| over to other programs. If the photoshop layer isn't
| understood, it seems to become a Bitmap, which works when
| I'm on a VBulletin forum over in Firefox land.
|
| I'm able to paste images from GIMP, Krita, and Thunar into
| forums just fine.
| jrochkind1 wrote:
| MacOS clipboard is also pretty good, I'm often pleasantly
| surprised by it. I don't use Windows enough in the right
| ways to compare them, I wouldn't be shocked if Windows is
| even better.
|
| But even if old, it's still notable that such an old
| concept/technology works so well, and there are few newer
| inter-process communication methods that work as reliably
| or with as good UX!
|
| Who invented the "clipboard", Xerox PARC? No, wikipedia
| just credits two individuals, Pentti Kanerva and Larry
| Tesler .
| Aloha wrote:
| They're about equal, MacOS generally is better about
| letting my copy a thing in one application and paste the
| whole object in another. Windows however has RDP, which
| I've used as a file transfer mechanism by base64 encoding
| files, I thought about writing software that would use it
| as a half duplex communications channel.
| jrochkind1 wrote:
| Mac also has something that lets you copy/paste clipboard
| across machines (including between iOS and MacOS), but I
| don't know how it works technically and haven't actually
| used it myself.
|
| https://support.apple.com/guide/mac-help/copy-and-paste-
| betw...
| lemoncookiechip wrote:
| Unrelated, but you can actually use Firefox's own screenshot
| function which is far more robust than PrtScn, allowing you
| crop the image how you want (including snap to element), you
| can also save to clipboard or download it for further editing
| or storing. The key-shortcut is CTRL+LSHIFT+S.
| enlyth wrote:
| I find WIN + SHIFT + S to be superior, because it is not
| limited to the browser window, automatically copies to the
| clipboard, and you can choose to annotate it if you want
| jwagenet wrote:
| I mean, if you are in Windows already you should be using
| Snip at least since Win7. It has cropping, window snap, and
| basic annotation, in addition to capture save and copy.
| banana_giraffe wrote:
| It's cute just how old the concept of the Windows Clipboard is.
|
| The basic APIs were there from the beginning in Windows 1.0,
| including multiple clipboard formats, application specific
| formats, and the ability to register for clipboard changes.
| More standard formats have been added over the years, but it
| still supports some ancient formats, like Software Arts' Data
| Interchange Format.
| ziml77 wrote:
| I recently looked at the API docs for Windows 1 because I
| wanted to see if ExitWindows was there from the start (since
| that naming really only makes sense if Windows has something
| to exit to). It wasn't there until Windows 3, but I was
| surprised to see just how far back many familiar functions
| go. I expected the API to be far smaller than it was for 1.0
| jwilk wrote:
| I'd love to get my hands on old Windows API docs. Are they
| available online somewhere?
| banana_giraffe wrote:
| Some are, here's the Win 1.0 and 2.0 SDK documentation:
|
| https://www.os2museum.com/wp/windows-history/windows-
| library...
| pjc50 wrote:
| > "inter-process communications"
|
| Way back in the 90s, it was possible to put any (+) document
| inside any sufficiently aware app or document with OLE ("object
| linking and embedding")
|
| The (+) indicates that there were a lot of terms and conditions
| applying to this, but you could actually just put an excel
| spreadsheet in a word document, and it would run a small copy
| of excel inside word. This is why the original word save format
| is so horrendous - it's serialized binary objects.
| com2kid wrote:
| OLE is an awesome tech that I am sad isn't more widely used.
| The idea of being applications being portable toolboxes that
| can be embedded inside of other applications is just so cool.
| I remember embedding, IIRC, Print Shop Pro media inside of
| Word and when I clicked on the graphics the PSP UI appeared!
| Well after 10-20 seconds of hard drive thrashing it appeared,
| and then operated at about 5 fps.
|
| Cool idea though!
| pkaye wrote:
| I think OLE used the compound file format which was modeled
| after a FAT file system image.
|
| https://en.wikipedia.org/wiki/Compound_File_Binary_Format
| MikeSchurman wrote:
| I've found the clipboard to be a highly flexible tool, that
| seems under-used. As an example, I've extended my game engine
| editor to draw any position in 3d that I have in the clipboard.
| So when problems happen and are displayed in the logs, I select
| the log, copy to clipboard, boom, position drawn.
|
| This idea has a lot of legs IMO.
| dragontamer wrote:
| There was a browser based game called "Utopia" in the 00s
| that was reasonably popular. Someone wrote a tool where you'd
| copy/paste your kingdom homescreen, and get all sorts of
| calculations / predictions.
|
| It was one of the easiest-to-use calculators I've ever seen.
| Just enter your webpage to play the game, Ctrl-A (select-
| all), Ctrl-C (copy), and bam, the Utopia-program would
| instantly analyze your kingdom and provide advice.
|
| Just all off of the HTML-copy that Clipboard supports.
|
| ------------
|
| Windows developers "know" the clipboard is one of the most
| important inter-process communication structures of the
| entire system, and have known for years. Its probably one of
| the Win32 API's biggest advantages, no joke.
|
| The shear amount of creative solutions I've seen from
| clipboard manipulations is outstanding.
| RajT88 wrote:
| Since Windows 7 or so, I've noticed more and more instances
| where you ctrl+C and the clipboard doesn't update. I had a
| chat with a Windows PM on it opportunistically a while
| back.
|
| It turns out, more and more applications are locking the
| clipboard and holding onto the lock inappropriately. Enough
| that there's a particular telemetry watcher for this
| condition for MSFT to get an idea on who the guilty parties
| are.
|
| Everyone has had it happen - I notice it when colleagues
| are in a rush and send me something they didn't mean to
| send (because their clipboard didn't update). I don't know
| who the guilty parties are (since that telemetry is
| encrypted, and can't be inspected), but I sure hope someone
| is knocking down some doors to address the problem.
| bennysomething wrote:
| Genuine question, why is it even possible to lock the
| clip board?
| RajT88 wrote:
| I have tried to track this down - it seems like at some
| point it was not possible. My guess is Vista is when the
| lock was implemented. I've come up blank repeatedly.
|
| I am sure Raymond Chen knows. Looks like comments are
| allowed on his blog too!
| ectopod wrote:
| An application doing a paste needs to query the available
| clipboard formats and then ask for the data from one of
| them. This wouldn't work reliably if other applications
| could simultaneously change the clipboard. So the
| OpenClipboard API locks the clipboard and applications
| need to remember to call CloseClipboard.
| asveikau wrote:
| This sounds to me like it's probably a proxy for the rise
| of GC languages. C#, which I reference because it's
| popular for windows desktop apps, has IDisposable and
| using() which helps a lot, but isn't mandatory. If you
| don't do something like this and there isn't memory
| pressure, there are low odds of a handle or resource lock
| being released.
| [deleted]
| bombcar wrote:
| A weird one I've noticed with the clipboard on the Mac,
| is that the "rich text" clipboard and the "plain text"
| one seem to be able to get out of sync. This is most
| noticeable to me when trying to paste text into some
| dialog boxes in Microsoft Word.
| formerly_proven wrote:
| One guilty party: some versions of the RealVNC client
| randomly lock the clipboard.
| ntoskrnl wrote:
| Coming from the other side, most apps don't check the
| winapi error code when copying text. One app I use
| (notepad2 maybe?) at least throws up a tiny "Error"
| dialog box when it fails.
|
| I configured my clipboard manager to make a crinkly paper
| noise when an app copies, so at least I have some
| feedback when it fails.
| RedShift1 wrote:
| Oooh so that's what that is. I've had it happen numerous
| times where I was absolutely sure I pressed CTRL+C yet
| the clipboard was empty. I now use CTRL+X and CTRL+Z just
| because of that.
| RajT88 wrote:
| That's interesting - that Ctrl+X behaves differently. It
| shouldn't right?
|
| But you have found that it helps?
| RedShift1 wrote:
| It helps because there is visual feedback so you're sure
| you don't have to go back to the original program and do
| the copy again. Plus sometimes your original program
| forgets your selection, with CTRL+X you're sure it's on
| the clipboard and won't have to return.
| jwandborg wrote:
| IIRC factorio's blueprints are represented, or have one
| representation, as base64-encoded gzipped JSON on the
| clipboard (with a version byte as prefix in the b64 form,
| double-IIRC), meaning you can copy/paste blueprints between
| the game and anything other that accepts text.
| bombcar wrote:
| Hearthstone added something similar for decks (even made it
| human readable): ### Starting Party #
| # Cariel Roame # - Tome of Light 4 # Xyrella
| # - Robes of Purity 2 # Rokara # - Helm of
| Inspiration 1 # Murky # - Time to Krill 3
| # Millhouse Manastorm # - Arcane Powder 1 #
| Deathwing # - Heart of Unliving 3 # CO
| +cmQQSDlN0YXJ0aW5nIFBhcnR5GAEiRQoJCBIQiwEYICAACgkIExDKARgjI
| AAKCQgLEIgBGAsgAAoLCLgCEOMCGLIEIAAKCAgOEB8YFCAACgsIqgIQygIY
| kgQgACgA # # To use this deck, copy it to your
| clipboard and create a new deck in Hearthstone
| analog31 wrote:
| I believe Windows did a lot of things right by just keeping
| things simple for developers. I use the clipboard to transfer
| large blobs of data from one program to another when doing
| exploratory programming -- it's a lot quicker than creating
| file formats for everything. Of course there's the risk of
| losing it in the process.
|
| Another under-appreciated Windows feature is how they implement
| drag-and-drop apps. When you drag a file into an app icon, it
| just stuffs the file path into the command line arguments and
| runs the app. In contrast, though MacOS introduced drag-and-
| drop, actually implementing it in System 7 was a huge complex
| chore.
| 867-5309 wrote:
| I find the size always seems to run run parallel with my patience
| at that given moment
| ErikAugust wrote:
| Wouldn't it be nice if it threw an error, and didn't just return
| NULL?
| bsnal wrote:
| If you get NULL, you are supposed to call GetLastError to get
| information on what happened.
| Akronymus wrote:
| Itd be nice if the proviser were to show a dialog that a copy
| was requested but couldnt be provided. Altough, dunno what a
| good message for that would be.
| hackmiester wrote:
| Very old school windows apps like SecureCRT display semi-
| helpful messages for this. Better than a silent failure
| anyway.
| jeffwask wrote:
| The world is run by one giant excel spreadsheet
| cgrealy wrote:
| The world's mail definitely is!
|
| https://youtu.be/dHhkNwE7pr8
| pbar wrote:
| It's a spreadsheet world and we're just living in it ;)
| Kipters wrote:
| I must admit, just by reading the title and the domain on HN's
| homepage I was dead sure it was a Raymond Chen post
| capableweb wrote:
| > Next time, we'll see what we can do to extend this timeout.
|
| That, somehow, seems like the wrong conclusion. Why not try to
| solve the problem of Excel taking longer than 30 seconds to
| export a RTF table?
| kencausey wrote:
| Given the range of computers on which Excel is likely to be
| running that seems like a complete non-starter. There will
| always be cases that take longer than X no matter what you
| choose for X.
| capableweb wrote:
| Yeah, why not display a "Exporting..." dialog then that the
| user themselves can cancel if they think it's taking too
| long? Extending the timeout to X won't solve anything.
| elpocko wrote:
| When you press Ctrl+V, the target window is focused.
| Forcibly switching back to Excel to show this dialog seems
| weird and confusing to me.
| glenneroo wrote:
| Then why not show a system dialog similar to copy/move
| files dialog after e.g. 5 seconds of waiting for a copy-
| to-clipboard operation?
| hackmiester wrote:
| Actually, now that you point out that this could be done,
| I'm surprised it wasn't.
| seritools wrote:
| Cool, now it's optimized and it manages to export up to a
| million lines in 30 seconds. What do you propose to do when the
| next customer wants to copy 1.5 million lines?
| hermitdev wrote:
| > What do you propose to do when the next customer wants to
| copy 1.5 million lines?
|
| Thankfully, that can't happen :). XLSX has a row limit of
| 1,048,576 rows.
|
| In all seriousness, I don't have an answer for you other than
| that the developer that's looking to shove >1M excel rows
| around should find a better solution than the clipboard. I've
| done more than my fair share of work pushing excel
| spreadsheets around (and I've even worked on Excel add-ins).
| There are plenty of performant ways of accessing large
| volumes of Excel data, none of them involve the clipboard.
| Most of them even work on non-Windows platforms.
|
| The arbitrary row & column limits in Excel (XLS was pretty
| small, XLSX is quite a bit bigger, but still arbitrary) are
| annoying and I cannot begin to tell you how many hours over
| the years I've wasted due to this limitation or Excel
| silently truncating large CSV files on import.
| londons_explore wrote:
| Indeed - it would be very possible to make a version of
| Excel which can deal with infinite-sized sheets by leaving
| most of the data on disk and only loading a few screenfulls
| at once.
| [deleted]
___________________________________________________________________
(page generated 2022-06-08 23:00 UTC)