473,287 Members | 1,709 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,287 software developers and data experts.

Common dialog control returns wrong filename !!

With the risk of being accused of multi-posting I would like to draw the
attention to a serious visual basic/windows issue discussed in the
microsoft.public.vb.bugs newsgroup. As pointed out below by Norman Diamond
the bug may result in loss of data when saving files with the standard
common dialog control.

Norman Diamond describes the problem as follows:

----------
In VB6 SP6, VB6 SP5, and possibly others, the common dialog box sometimes
returns a different filename from the name that is displayed on the filename
line.

Write a small program that opens a common dialog box for saving a file.
When executed, the dialog box shows a list of files presently existing in
the
directory. Do a single click on one filename and the filename is
automatically copied to the filename line in the dialog box. Edit the name
on the filename line to a nonexistent file, as if you want to save a new
file
with a slightly different name instead of overwriting the existing file.

Now, if you don't want to see the bug occur, then click immediately on the
Save button.

But if you do want to see the bug occur, for example if your customer
complains that your program overwrote their valuable data and you need to
prove whose fault it is, then you do the following instead. After slightly
editing the name in the filename line, click a blank spot inside the list of
filenames in the main part of the common dialog box. This wasted click does
not select a file. The name shown on the filename line remains as you
edited
it, it does not automatically change. Then click on the Save button. The
common dialog control returns to your program a filename of an existing file
instead of the new name that you put on the filename line. Your program
will
destroy your customer's existing data.

My boss just did similar tests with Microsoft Word, Excel, and other
applications. They do not have this bug. Only VB programs get hit by this
bug.
----------

I have not been able to find any solution/work-around to this problem.

Soeren
www.seqtools.dk
Jul 17 '05 #1
3 6757

"S.W. Rasmussen" <sw*@seqtools.dk> wrote in message
news:41*********************@dread16.news.tele.dk. ..
| With the risk of being accused of multi-posting I would like to draw
the
| attention to a serious visual basic/windows issue discussed in the
| microsoft.public.vb.bugs newsgroup. As pointed out below by Norman
Diamond
| the bug may result in loss of data when saving files with the standard
| common dialog control.
|
| Norman Diamond describes the problem as follows:
|
| ----------
| In VB6 SP6, VB6 SP5, and possibly others, the common dialog box
sometimes
| returns a different filename from the name that is displayed on the
filename
| line.
|
| Write a small program that opens a common dialog box for saving a
file.
| When executed, the dialog box shows a list of files presently existing
in
| the
| directory. Do a single click on one filename and the filename is
| automatically copied to the filename line in the dialog box. Edit the
name
| on the filename line to a nonexistent file, as if you want to save a
new
| file
| with a slightly different name instead of overwriting the existing
file.
|
| Now, if you don't want to see the bug occur, then click immediately on
the
| Save button.
|
| But if you do want to see the bug occur, for example if your customer
| complains that your program overwrote their valuable data and you need
to
| prove whose fault it is, then you do the following instead. After
slightly
| editing the name in the filename line, click a blank spot inside the
list of
| filenames in the main part of the common dialog box. This wasted
click does
| not select a file. The name shown on the filename line remains as you
| edited
| it, it does not automatically change. Then click on the Save button.
The
| common dialog control returns to your program a filename of an
existing file
| instead of the new name that you put on the filename line. Your
program
| will
| destroy your customer's existing data.
|
| My boss just did similar tests with Microsoft Word, Excel, and other
| applications. They do not have this bug. Only VB programs get hit by
this
| bug.
| ----------
|
| I have not been able to find any solution/work-around to this problem.
|
| Soeren
| www.seqtools.dk
|
|

I would think that setting the flag cdlOFNOverwritePrompt, which brings
up a confirmation for any file overwrite, would suffice.

I reproduced this behavior, using VB6 SP4, with Common Dialog SP3. With
the flag set, it prompts for overwrite confirmation, showing the last
selected existing file name.
Jul 17 '05 #2

"Steve Gerrard" <my********@comcast.net> wrote in message
news:Np********************@comcast.com...

"S.W. Rasmussen" <sw*@seqtools.dk> wrote in message
news:41*********************@dread16.news.tele.dk. ..
| With the risk of being accused of multi-posting I would like to draw
the
| attention to a serious visual basic/windows issue discussed in the
| microsoft.public.vb.bugs newsgroup. As pointed out below by Norman
Diamond
| the bug may result in loss of data when saving files with the standard
| common dialog control.
|
| Norman Diamond describes the problem as follows:
|
| ----------
| In VB6 SP6, VB6 SP5, and possibly others, the common dialog box
sometimes
| returns a different filename from the name that is displayed on the
filename
| line.
|
| Write a small program that opens a common dialog box for saving a
file.
| When executed, the dialog box shows a list of files presently existing
in
| the
| directory. Do a single click on one filename and the filename is
| automatically copied to the filename line in the dialog box. Edit the
name
| on the filename line to a nonexistent file, as if you want to save a
new
| file
| with a slightly different name instead of overwriting the existing
file.
|
| Now, if you don't want to see the bug occur, then click immediately on
the
| Save button.
|
| But if you do want to see the bug occur, for example if your customer
| complains that your program overwrote their valuable data and you need
to
| prove whose fault it is, then you do the following instead. After
slightly
| editing the name in the filename line, click a blank spot inside the
list of
| filenames in the main part of the common dialog box. This wasted
click does
| not select a file. The name shown on the filename line remains as you
| edited
| it, it does not automatically change. Then click on the Save button.
The
| common dialog control returns to your program a filename of an
existing file
| instead of the new name that you put on the filename line. Your
program
| will
| destroy your customer's existing data.
|
| My boss just did similar tests with Microsoft Word, Excel, and other
| applications. They do not have this bug. Only VB programs get hit by
this
| bug.
| ----------
|
| I have not been able to find any solution/work-around to this problem.
|
| Soeren
| www.seqtools.dk
|
|

I would think that setting the flag cdlOFNOverwritePrompt, which brings
up a confirmation for any file overwrite, would suffice.

I reproduced this behavior, using VB6 SP4, with Common Dialog SP3. With
the flag set, it prompts for overwrite confirmation, showing the last
selected existing file name.


Even with the overwrite warning enabled it is highly misleading - and very
bad programming practice - to save the file with a title different from that
displayed in the title text field of the dialogbox. In my experience
warnings tend to be OK'ed without being read / understood... Especially in
this case where the content of the warning is quite unexpected to the user.

I am surprised that this bug has survived for such a long time - and that it
cannot be easily corrected having Steve McMahon's source code at hand:

http://www.vbaccelerator.com/home/VB...ct/article.asp

Soeren
www.seqtools.dk
Jul 17 '05 #3
You could always use the API control and set up a hook, and when the message
indicating a selection change was made, update the textbox to reflect that
name. IOW, if the user is silly enough to re-click the listview after
providing a custom filename, they lose their customization.

I suggest you get over looking for a 'fix' to this 'bug' ... it ain't going
to happen. This is a windows common dialog issue, not a VB issue.

--
Randy Birch
MS MVP Visual Basic
http://vbnet.mvps.org/
"S.W. Rasmussen" <sw*@seqtools.dk> wrote in message
news:41*********************@dread16.news.tele.dk. ..
:
: "Steve Gerrard" <my********@comcast.net> wrote in message
: news:Np********************@comcast.com...
: >
: > "S.W. Rasmussen" <sw*@seqtools.dk> wrote in message
: > news:41*********************@dread16.news.tele.dk. ..
: > | With the risk of being accused of multi-posting I would like to draw
: > the
: > | attention to a serious visual basic/windows issue discussed in the
: > | microsoft.public.vb.bugs newsgroup. As pointed out below by Norman
: > Diamond
: > | the bug may result in loss of data when saving files with the standard
: > | common dialog control.
: > |
: > | Norman Diamond describes the problem as follows:
: > |
: > | ----------
: > | In VB6 SP6, VB6 SP5, and possibly others, the common dialog box
: > sometimes
: > | returns a different filename from the name that is displayed on the
: > filename
: > | line.
: > |
: > | Write a small program that opens a common dialog box for saving a
: > file.
: > | When executed, the dialog box shows a list of files presently existing
: > in
: > | the
: > | directory. Do a single click on one filename and the filename is
: > | automatically copied to the filename line in the dialog box. Edit the
: > name
: > | on the filename line to a nonexistent file, as if you want to save a
: > new
: > | file
: > | with a slightly different name instead of overwriting the existing
: > file.
: > |
: > | Now, if you don't want to see the bug occur, then click immediately on
: > the
: > | Save button.
: > |
: > | But if you do want to see the bug occur, for example if your customer
: > | complains that your program overwrote their valuable data and you need
: > to
: > | prove whose fault it is, then you do the following instead. After
: > slightly
: > | editing the name in the filename line, click a blank spot inside the
: > list of
: > | filenames in the main part of the common dialog box. This wasted
: > click does
: > | not select a file. The name shown on the filename line remains as you
: > | edited
: > | it, it does not automatically change. Then click on the Save button.
: > The
: > | common dialog control returns to your program a filename of an
: > existing file
: > | instead of the new name that you put on the filename line. Your
: > program
: > | will
: > | destroy your customer's existing data.
: > |
: > | My boss just did similar tests with Microsoft Word, Excel, and other
: > | applications. They do not have this bug. Only VB programs get hit by
: > this
: > | bug.
: > | ----------
: > |
: > | I have not been able to find any solution/work-around to this problem.
: > |
: > | Soeren
: > | www.seqtools.dk
: > |
: > |
: >
: > I would think that setting the flag cdlOFNOverwritePrompt, which brings
: > up a confirmation for any file overwrite, would suffice.
: >
: > I reproduced this behavior, using VB6 SP4, with Common Dialog SP3. With
: > the flag set, it prompts for overwrite confirmation, showing the last
: > selected existing file name.
: >
: >
:
: Even with the overwrite warning enabled it is highly misleading - and very
: bad programming practice - to save the file with a title different from
that
: displayed in the title text field of the dialogbox. In my experience
: warnings tend to be OK'ed without being read / understood... Especially in
: this case where the content of the warning is quite unexpected to the
user.
:
: I am surprised that this bug has survived for such a long time - and that
it
: cannot be easily corrected having Steve McMahon's source code at hand:
:
:
http://www.vbaccelerator.com/home/VB...ct/article.asp
:
: Soeren
: www.seqtools.dk
:
:

Jul 17 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
by: John Lauwers | last post by:
Hello, Is there a way to move the commondialog to a specific position ? Greets John
0
by: Wanda | last post by:
Hello, I would like to create an interface which allow the user to select files from a ftp site using the common dialog contro. And after some manipulation in the program, the new output file...
1
by: Dalan | last post by:
Before distributing a database that I have developed, I thought that I would ask the resident gurus a general question regarding Common Dialogs Control. Correct me if I'm wrong, but I have read...
1
by: Dalan | last post by:
To avoid having potential conflicts and problems with different versions of Common Dialogs Controls, I have decided to change the ones I have used to API calls; however, this is somewhat new...
1
by: Dalan | last post by:
Perhaps a couple of tips regarding API calls using a function module and I will be on my way to retiring the bug prone Common Dialogs Controls. One Common Dialog that I have been using is shown...
4
by: Dorte | last post by:
Hi, I am using the code below to stream a CSV file with the response object. Dim FileName As String = "Test.csv" With Web.HttpContext.Current.Response ...
6
by: Steve Barnett | last post by:
I need to include a wizard in my application that will, as one of the steps, ask the user to select a file to open and (later) a file to save it as. The naff way to do this would be to have a...
1
by: sirimanna | last post by:
I want to know how can i open some text file data using microsoft common dialog control.6 I know how to save text data using microsoft common dialog control.6 code are here, ...
3
by: Koliber (js) | last post by:
sorry for my bad english when I fire up (from my c# code) a standard "file - save as " dialog, and when chosen location is a shered local network directory, where I do have rights to create...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 7 Feb 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:30 (7.30PM). In this month's session, the creator of the excellent VBE...
0
by: MeoLessi9 | last post by:
I have VirtualBox installed on Windows 11 and now I would like to install Kali on a virtual machine. However, on the official website, I see two options: "Installer images" and "Virtual machines"....
0
by: DolphinDB | last post by:
The formulas of 101 quantitative trading alphas used by WorldQuant were presented in the paper 101 Formulaic Alphas. However, some formulas are complex, leading to challenges in calculation. Take...
0
by: Aftab Ahmad | last post by:
Hello Experts! I have written a code in MS Access for a cmd called "WhatsApp Message" to open WhatsApp using that very code but the problem is that it gives a popup message everytime I clicked on...
0
by: Aftab Ahmad | last post by:
So, I have written a code for a cmd called "Send WhatsApp Message" to open and send WhatsApp messaage. The code is given below. Dim IE As Object Set IE =...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.