CCommandLine info
Mark Rosen -- mrosen@peganet.com
Monday, September 16, 1996
Environment: MS VC++ 4.0, Win95
In my super-cool encryption program, I have the user drag a file onto a
shortcut to an actual executable which is stored somewhere else. To get the
name of the file, I construct a CCommandLine object, call
ParseCommandLine(&cmdline), and then use the cmdline.m_strFileName member
variable. This works fine, except the filename
is always in yucky DOS uppercase format (i.e.
"C:\WINDOWS\DESKTOP\LONGFI~1.ZIP"). Is there any workaround? Any other
method? Thanks.
Brad Wilson/Crucial Software -- crucial@pobox.com
Wednesday, September 18, 1996
[Mini-digest: 7 responses]
> is always in yucky DOS uppercase format (i.e.
> "C:\WINDOWS\DESKTOP\LONGFI~1.ZIP"). Is there any workaround? Any other
> method? Thanks.
::GetFullPathName() and ::GetShortPathName() are the converstion functions
(unrelated to MFC, however).
--
Brad Wilson | crucial@pobox.com http://www.thebrads.com/bradw
Objectivist Philosopher |
Software Engineer | "You can surrender without a prayer,
Web Page Designer | but never really pray without surrender"
System Administrator | - Rush, "Resist" from Test For Echo
-----From: Mike Blaszczak
According to the documentation in the Win32 SDK, you need to have your
application register itself as taking long file names. Otherwise, Windows
assumes you can't handle them and gives you the 8.3 name.
.B ekiM
http://www.nwlink.com/~mikeblas/
Don't look at my hands: look at my _shoulders_!
These words are my own. I do not speak on behalf of Microsoft.
-----From: Tomas Gudmundsson
HI ! If your program uses the standard MFC framework, you can do the following in InitInstance() in your application class :
// Enable DDE Execute open
EnableShellOpen();
RegisterShellFileTypes(TRUE);
m_pMainWnd->DragAcceptFiles();
This will automatically enable dropping files onto your app !
Regards
Tomas Gudmundsson
Danish Hydraulic Institute
-----From: ktm@ormec.com
You should look at KB article Q98575, available in Books Online.
The important part of it states:
You can avoid possible confusion by always expanding any filenames passed
to an application via the command line. Do this by calling the
FindFirstFile() [...] return[s] the file system's version of the
filename in the WIN32_FIND_DATA.cFileName structure member.
- Katy
--
Katy Mulvey ktm@ormec.com
Software Development Engineer
ORMEC Systems
19 Linden Park; Rochester, NY 14625
-----From: "Greg Tighe"
Check out the Win32 API function FindFirstFile(). It will return
(among other things) the long file name based on the "classic 8.3
(filename.ext) filename format."
-----From: Mario Contestabile
Try the super neat GetFullPathName().
mcontest@universal.com
-----From: David Little
Did you try GetFullPathName ()?
| Вернуться в корень Архива
|