Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: My small program from 2007 that gave Internet Explorer tabs (tabbed.org)
173 points by EGreg on June 10, 2022 | hide | past | favorite | 72 comments



"The best 3 skins are going to receive a Gameboy Advance" is just perfection.

How did you implement it? Was there some kind of API you could hook into to extend iexplore? Sorry if it's a dumb question but I don't know anything about windows programming.


I just used Win32 APIs, and I made a window that "stuck to" the bottom of IE windows, and followed them around. The tabs were rendered there. I forgot what I did for maximized IE windows.

To make the tabs "switch" I basically hid and showed the IE windows, by their window handle. I think Win32 allowed you to do that to windows of other applications, back then.


I wrote a "virtual desktop" application back around that time, which worked in the same way.

Create a tray-icon, and iterate over all the windows. Any window that was on "this" desktop would be shown, all others would be hidden.

When the user hit the key to go up/down through the virtual desktop list (I think there were four), we'd update the hidden/visible state of all appropriate windows.

Written in C using the Win32 API and only a thousand lines of code or so. It was a pretty reliable and useful hack at the time.


Oh man, I might have used that! If it's the same one I used, I loved it.


Sadly I can't find any archived details, but I did find something else I'd forgotten - an MDI version of Internet Explorer

https://web.archive.org/web/20040428022140/http://www.steve....

I guess that brings us back on topic!


I remember learning about the Win32 API, and then proceed to delete/move UI elements of other Window using VB. I immediately tried to move the "continue" button of WinZip. Does anyone know if these APIs are still allowed or are they locked behind the UAC prompt now?


As a remember as a teenager I wrote a program that would constantly call the beep function (read: loud squeals from your motherboard speaker, if you had one, and not affected by volume controls so you couldn’t turn it off easily) and then that program would use the Win32 APIs to also poll for any task manager windows you might launch and minimize them immediately so that you couldn’t kill the process. I sent beep.exe to some of my friends on AIM at the time and they ran it (it was a simpler time) and were not amused- even after I told them they could just restart their computer to make it stop.

(I had a version that added itself to the registry to auto run at startup, but even my teenage self thought that was a bit too far).


I used to work tech support for a DSL company. The tools used to log customer interactions were slow and buggy. I taught myself VB to fix a lot of issues in the UI, and automate a large part of my job.

I taught a coworker (who had never touched any code before) some of it. After a few months he moved on to do data entry for another company. When I saw his title on LinkedIn change to "automation engineer" after a while I was curious and had to ask what happened. He had automated most of his data entry job. The bosses got curious and asked to share his secret which he did, got a fat raise and a nice title. Sadly, most of his team was let go, but I'm happy I helped him become a programmer.


As far as I know, most of this stuff still works. There might be some security boundaries that apps can opt into, but most of them do not. So something running as your user, you can probably manipulate the UI of.

There's been some amusing ones even not so long ago, like this one:

http://kylehalladay.com/blog/2020/05/20/Rendering-With-Notep...

edit: Bad example, they are using WriteProcessMemory. Still a lot of fun, but not the same. I was thinking of this:

https://twitter.com/steveklabnik/status/1263190719721766918


> Does anyone know if these APIs are still allowed or are they locked behind the UAC prompt now?

For better or worse this sort of thing still works just fine for apps which still use Win32 controls. All that's really changed with regards to UAC is non-privileged apps can't mess with privileged ones.


You're bringing back waves of nostalgia. I used to frequently read AllAPI.net and come up with mischievous implementations for my own amusement. A quick Google Search netted the following project (https://github.com/microsoft/CsWin32). Looks like my evening is gone.


Cool find! I’ve only known <https://github.com/dotnet/pinvoke> which offers ready-to-use NuGets for various Win32 APIs.


But who won the skin contest? Where are the winning entries? ... asking for the two friends I referred


Back then, I used to write little programs like this:

https://www.oocities.org/trentgamblin/sizehack/hackman.zip

https://qbix.com/Recycle.exe (video game)

and programming columns like this:

https://www.flipcode.com/archives/Theory_Practice-Issue_00_I...

Those were the days. Simple, and to the point stuff.


> https://www.flipcode.com/tpractice/

The Issue links seem not to work anymore. "[an error occurred while processing this directive]"


IE was so hackable - remember some Chinese firm (Maxthon) built a complete new browser by just embedding Trident and using ActiveX.


My favorite part of Maxthon was the rendering engine switching, where you got to change between Gecko and Trident, and it looks like even Webkit was supported at one point. This was back when you basically needed to use Netscape/Mozilla for modern standards and IE for sites that absolutely needed it. It seems like the only place in the years following you'd see this would be to get away from IE using forwards compatibility (Chrome Frame) or backwards compatibility (IE Tab in Edge).


Netscape 8 actually supported multiple rendering engines too!

https://www.versionmuseum.com/history-of/netscape-browser


Not just IE - things like MSN Messenger and uxtheme.dll had lots of mods. I also remember greasemonkey (from a bit later of a time) being huge, too.

I wonder why it's less of a thing now. Is it because of the increased difficulty (frequent updates), or is it because there isn't as much need for such mods?


In the case of Discord which would be today's MSN Messenger, it's not often done because your account will be terminated if you are found to be using a modded client.


Lots of people use BetterDiscord (which is EULA compliant afaik) without a problem. Discord is more hackable than anything thanks to the web UI.


The last I heard, BetterDiscord was actually against discord's TOS[0].

[0]: https://nitter.42l.fr/discord/status/908000828690182145


It is, but I've never seen anyone get banned for using it.


Their API is open therefore I don't think they have any right to complain, my homebrew user API for scraping is unbanned and so is BetterDiscord


Their API being freely accessible is irrelevant. If they decided to ban anyone using their API differently from their official client, they would be entirely within their rights. They probably won't though. It'd be a waste of time for them, bad publicity, and would just make the custom clients harder to detect instead of making them go away.

I don't have beef in the game, FWIW. I have greasemonkey loaded in my firefox and inject a bunch of custom mods in various webpages, including discord, to automate various parts of my workflow. Discord could probably detect it and ban me, but I guess so long as I don't use it for nefarious purposes, they won't.


> Discord is more hackable than anything thanks to the web UI.

I thought Discord uses Qt?


It’s electron.


Increasingly difficulty and probably a general lack of interest in really customising one's system, thanks to the overarching paternalistic corporate strategy aimed at taking away control from users and encouraging ignorance.


> I wonder why it's less of a thing now... or is it because there isn't as much need for such mods?

I think the popularity of reskinning Windows is because (especially since Windows Vista and Windows 8) the OS is not hideous-by-default.

EDIT: Oh, apparently the main way to patch UxTheme.dll stopped working since the Creators Update: https://github.com/riverar/uxstyle - though I'm sure Stardock's approach still works.


I did something similar (NetCaptor)… starting in 1997. It’s cool to see that Maxthon is still around.


You were my hero back in the day! I remember spending so much time editing the Wikipedia entry for NetCaptor to get it more visibility.

For a LONG time, even after Firefox, NetCaptor was still the best browser around. I used QuickSearch all the time (and still have that habit to this day).

Next to Tim Berners Lee, IMO, you are the web's true unsung hero. THANK YOU a million times for bringing the single biggest improvement to the web browser in two decades.


Adam! NetCaptor had the best browser user experience ever. Thank you! :)


You the OG - think I used Netcaptor before Firefox came along.


you are still my hero…


Get out of here CB


"IE was so hackable"

For every meaning of that word, yes.


I remember something like this called Avant Browser.


I like that simple pricing model. $10 if you like it after 2 weeks, free if you refer 2 people. Guessing it was honor system, curious how well it worked.


Yep, I kept it simple. But, it wasn't the honor system. It required you to make an account, and then pay with PayPal. Then it required you to activate the program by entering your username and password, and sending a request to the server: http://tabbed.org/register.php


Could you spin up two other machines with different email accounts, and refer the program twice to yourself? This trick worked (and possibly still works) for getting free Dropbox storage.


It’s not a referral of the referred accounts don’t pay


I was at Google when Chrome launched and had a 20% project that let you queue up interesting web pages to read later (kind of like Pocket does). I tried to pitch it to the Chrome team but it never made the cut (maybe the right call). But I kept using it myself until it broke.


If I remember correctly, a read later feature was actually recently added to Chrome…I guess it wasn’t as good of a call as you thought!


Cool that your website is still running!

How did the program do what it did?

How did the referral program and skinning contests work out?


The website was actually integrated with the program! I wanted to keep it super simple:

You download the exe and launch it.

Then you get a free trial.

If you like it, you can create an account on the site, and activate the program!

I think that the registration process was quite unique for its time (and maybe even today)... what do y'all think? You can try it out, and it still works so many years later haha:

http://tabbed.org/register.php


Cool stuff Greg! Tabs are what made me switch away from IE to Firebird.


Firebird?


name of Firefox before they were changing it (they said there was another open source project with name firebird too) https://website-archive.mozilla.org/www.mozilla.org/firefox_...


Oh I see! I only knew the Firebase SQL and wasn't aware of the former name of Firefox


*firebird sql



Phoenix


Correct: Phoenix came before Firebird, which came before Firefox.


At some point, wasn't it also just referred to as the "Mozilla Suite" and was a single do-it-all program? That had to be nearly 25 years ago now and I'm blanking on exactly what it was.

Also... 25 years later and I'm still using Firefox daily. Go figure.


Mozilla suite was the original Mozilla Browser, which was their continuation of the Netscape Software. Phoenix/Firefox was a brand new browser, rewritten from ground up, based on the new generation-engine (which was later named gecko) on which Netscape already worked when they open sourced.

The old suite was simply a mess and too complex, so they created a brand new browser, Firefox. Ironically, Firefox later became a similar mess, because of which they rewrote it to what then was named Firefox Quantum, with which they removed the old XUL-Extensions. And now everyone is unhappy again.


Seamonkey is still sort-of alive: https://www.seamonkey-project.org/


That looks interesting. Does the code use XUL as a framework and is XULRunner still being maintained?


I think they are still using Firefox 56 as a base and backporting security fixes.


Yes. Phoenix was intended to cut down and slim down Mozilla Suite into something less bloated.


It's funny that this was written in 2007, when this finally became an official IE feature.


I used something called Avant browser back in the day and I recall it being the first browser with tabs that I ever saw. I was really young when I used it, but I'm pretty sure I used it for years until I discovered Firefox.

https://en.wikipedia.org/wiki/Avant_Browser


I think opera predates it but I believe BookLink is credited as first browser with tabs.


Yeah, I think avant was an opera clone but using IE to render pages for compatibility.


Huh, how much money did this end up making out of curiosity? Sustainable in any way?


Something similar for Opera from back in the day:

http://web.archive.org/web/20021015195623/http://digdug.cx:8...


Didn't Opera already have tabs by 2002? IIRC Phoenix/Firebird/Firefox had them since the first releases as well, or at least very early on in the early 2000s.


Opera didn't had "true tabs" until version 6. In earlier version they had MDI, later they added Buttons for accessing single sub-windows (IIRC since version 4), but this was a different experience from actual tabs as other browser had them at the time.


This add-on was written with Opera 3.x in mind, which was MDI, but did not have tabs.


Who won the Game Boy Advance?


Crazy Browser from ~2000 was another browser (IE based) which had tabs.


Does this still work? Windows Explorer still doesn't have tabs





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: