[ANN] GenericWinDirCtrl

- win32api.GetSystemDirectory()
     usually returns "c:\windows\system32" on a WindowsXP,
     "c:\windows\system" on a Windows98, etc. I used that to find out
     where do the OS icons hide.

os.environ['SYSTEMROOT'] or ['WINDIR'] at least gives 'C:\winxp' on WinXP
os.environ['COMSPEC'] gives 'C:\winxp\system32\cmd.exe'

Sorry, I've no clue about the others, they're probably too much OS dependent.
But perhaps it would be possible to design other OS dependent versions (GTK, Mac) of your control and distribute them as one control?

Best regards,
Henning Hraban Ramm
Südkurier Medienhaus / MediaPro
Support/Admin/Development Dept.

os.environ['COMSPEC'] gives 'C:\winxp\system32\cmd.exe'

Yes, this should help, unless the shell32.dll and the cmd.exe were
installed in different folders (is that possible?). But I'm not sure
about what COMSPEC returns for non-XP Windows.

But perhaps it would be possible to design other OS dependent
versions (GTK, Mac) of your control and distribute them as one
control?

Yes, I guess it wouldn't be hard to do so. But I'm not aware of what
could be done to make this control looks 'nice' to GTK or Mac users.

But if anyone wants to make that, I'll be glad to help him/her to
navigate the code, adapt it to suit both needs and incorporate the
changes.

-- tacao

No bits were harmed during the making of this e-mail.

···

Thursday, December 29, 2005, 7:30:15 AM, Henning.Ramm@mediapro-gmbh.de wrote:

Hi

> os.environ['COMSPEC'] gives 'C:\winxp\system32\cmd.exe'

Yes, this should help, unless the shell32.dll and the cmd.exe were
installed in different folders (is that possible?). But I'm not sure
about what COMSPEC returns for non-XP Windows.

Relying on the COMSPEC-variable isn't a good idea. It can be set to
anything in the regkey
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Environment".
And yes that's the prevalent way changing the command line interface.

But I think you can assume, that "os.path.join(os.environ['windir'],'system32')"
will return the path of system32-folder.

If I inpret the regkey
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\KnownDLLs" correctly, than the shell32.dll must always be in the
system32-folder. But it seems, that you can replace the shell32.dll by
some other file. But a lot of other keys refer to
"%SystemRoot%\system32\shell32.dll" directly. So _MAYBE_ you could assume that
there is always a file shell32.dll.

cu boesi

···

Am 30.12.2005 04:50:18 schrieb E. A. Tacao:

Thursday, December 29, 2005, 7:30:15 AM, Henning.Ramm@mediapro-gmbh.de wrote:

--

<THammY-> und meine hände ham bisher immer
nur das gemacht was ich will </THammY>