问题标签 [getopenfilename]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2145 浏览

c++ - Windows Server 2008 R2 上的常见对话框:GetOpenFileName 崩溃

我们有一个相当大的应用程序,用 C++ 编写,在 Windows Server 2003 和 Windows Server 2008 R2 上运行。它使用 GetOpenFileName API 来打开 Open File 对话框,用于选择视频文件。

我们看到在 Windows Server 2008 R2 上,我们偶尔会在“打开文件”对话框中遇到崩溃。主 GUI 线程正在等待工作线程,而工作线程正在获取访问冲突异常。堆栈跟踪如下所示:

似乎许多其他人也遇到了类似的问题: MSDN thread from 2011

“我的情况与打开通用对话框 (8R2) 应用程序崩溃的情况相同。有时它有助于重新启动应用程序并重试......有时不会。由于来自不同供应商的几个应用程序都会发生这种情况,因此更多可能是普通对话的问题。”

“我想在这里插话,我们在 2008 R2 机器上遇到了同样的问题。它可以是任何程序(我在 Notepad.exe 中见过一次)。当你查看事件查看器时,你会看到崩溃发生在由公共对话框调用的不同模块中。它发生在 32 位程序和 64 位程序中。它不会发生 100% 的时间——而是大约 50%。我们还没有看到任何模式何时以及为何发生。”

我们的假设是“打开文件”对话框试图从视频文件中获取一些缩略图信息,但视频解码器正在崩溃。

有没有其他人遇到过这个问题?如果是这样,您是否能够找出根本原因是什么?你知道为什么 IsValidLinkInfo 会出现访问冲突吗?

我们可以在这里应用任何解决方法吗?我们计划尝试删除此特定文件类型 (.ts) 的文件关联。有没有办法告诉“打开文件”对话框不要创建缩略图?

0 投票
2 回答
1627 浏览

c++ - 控制台应用程序中的 QFileDialog::getOpenFileName

这是第一次在qtforum.org上发布的问题,我没有得到答案

使用后,我无法在控制台应用程序中隐藏“打开”对话框。以下是用于测试此行为的 main.cc 文件的内容:

我使用这个 .pro 文件构建应用程序:

操作系统:Ubuntu 12.04

Qt:从主干构建的 4.8.2

0 投票
2 回答
26795 浏览

windows - Excel VBA:使用 getOpenFilename 打开文件夹和文件

我想使用此例程Application.GetOpenFilename打开*.txt文件或整个文件夹。这有可能吗?
例如,如果没有选择文件/文件夹,则返回父文件夹路径,否则返回所选文件名?

示例:假设我有一个名为"test.txt"path的文件C:\folder1\folder2\test.txt。现在我在搜索文件并选择C:\folder1(“父文件夹”)时很懒惰。我的程序现在在子文件夹中搜索test.txt. 但有时我并不懒惰,我想选择特定的文件test.txt

我正在寻找一个用户友好的对话框来处理两者:打开一个文件夹(并仅返回文件夹路径)并打开一个文件(并返回文件路径)

0 投票
1 回答
31478 浏览

qt - Qt 标准对话框示例:打开文件

我开始学习 Qt 以在我的一个项目中使用,我需要做的是创建一个允许用户打开文件的 GUI。我浏览了这些示例,发现其中一个正是我需要的;问题是它还有很多其他的东西,以至于我不知道我在看什么或我在寻找什么。

基本上,我的问题是:

如何制作您在图片下方看到的内容,单击按钮并选择相关文件后,它会在右侧的框中显示并存储文件路径? 在此处输入图像描述

我已经想出了如何让按钮打开文件对话框,我唯一的问题是让它存储和显示文件路径。

0 投票
1 回答
1427 浏览

windows - shell32.dll:GetOpenFileName 新线程期间的访问冲突

GetOpenFileName 因访问冲突而失败。文件必须在桌面上并且具有长名称。只有在第一次成功打开文件后才会出现问题。当鼠标光标悬停在文件上时会出现问题,因为工具提示即将显示。

请参阅下面的答案。我将在下面留下原始问题描述。

迈克 D。

========================

我正在使用 GetOpenFileName。我有时会在 shell32 内部遇到访问冲突。第一次使用此代码时不会发生违规,通常需要五六次尝试。此外,如果在打开文件窗口弹出后的一两秒内选择一个文件,则不会发生违规。此外,我调试时显示的调用堆栈不包括我的任何代码。就好像一些独立的线程正在醒来做某事。

任何关于我如何调试这个的见解都非常感谢!

我制作了一个“你好”的世界应用程序,表现出相同的行为。然而,它需要更多的尝试才能失败。似乎还必须在失败之前切换目录。

GOFN 是通过专门为此目的创建的线程完成的。下面是来自“hello world”应用程序的代码。

当它失败时,调用堆栈看起来像这样......

抱歉,我无法获得这些符号,因为我有一个旧的 Visual C++ :-(

在我看来,当鼠标光标悬停在文件名上时,当 GOFN 内容即将打开描述文件的弹出窗口时,就会出现问题。

导致问题的一系列情况有些奇怪。实验表明,必须在 GOFN 窗口中执行以下操作:

  • 在桌面上打开文件
  • 将鼠标悬停在长文件名上

如果我这样做两次,它总是失败。我使用的文件名是

IMCLOG_20120323_1658_-_20120324_0653_CST_+DST_E2_2_second.TXT

我用记事本尝试了同样的事情,同样的问题发生了!

0 投票
1 回答
1152 浏览

windows-7 - 正在使用的文件上的 Inno Setup OpenFile 对话框

我正在开发一个 Inno Setup 安装程序,它使用 GetOpenFileName 函数来打开一个打开文件对话框,供用户浏览并选择一个数据库文件。当用户选择文件时,数据库将运行,但安装程序只是试图以字符串形式获取文件的路径来配置我们的软件。

在Windows XP上这不是问题,但是我注意到在Windows 7上选择运行数据库文件时,您会收到一个错误,说“正在使用此文件。输入新名称或关闭另一个程序中打开的文件。 "

不确定是否有一种方法可以禁用该错误,或​​者是否有另一种方法可以打开一个不受限制的打开文件对话框。

提前致谢。

0 投票
1 回答
287 浏览

python - 打开没有 getOpenFileName 的文件?

有没有办法在不使用QFileDialog.getOpenFileName参数的情况下打开文件?问题是,我有一些按钮,点击它们后,会弹出一个记事本,您可以在记事本中输入任何内容。然后,您可以将您在记事本中写的任何内容保存为文本文件。我想要做的是,如果我再次单击该按钮,我将重新打开我之前通过记事本编辑过的文件,并且可以在我离开的地方继续输入。但是,我不想使用getOpenFileName. 是否可以在不使用此功能的情况下打开文件?以下是我的尝试,但我的 if 语句一直评估为错误。如果有人可以提供帮助,那就太好了。谢谢!

0 投票
2 回答
476 浏览

filenames - 如何使用wifidirect发送带有文件名的文件?

我使用 wifidirect 发送文件,但我无法获取文件名(包括 .jpg 或 .mp3),并发送它,它始终为空。我正在使用 Android Developers 提供的 wifidirect 演示

我用

fileName始终为空

0 投票
1 回答
314 浏览

c++ - 获取打开的文件名正在杀死 ifstream

GetOpenFileName 有问题。在调用 GetOpenFileName 方法之前,WriteData 正在工作。WriteData 有一个简单的文件检查程序:

ofn 转储: 倾倒
并且在调用 GetOpenFileName 后它总是错误的。但在调用 GetOpenFileName 之前它工作正常。

0 投票
1 回答
1254 浏览

c++ - 如何使用 Windows API 自定义对话框模板的资源?

我试图在 C++ 中的 OPENFILENAME 结构上使用自定义模板,但无法弄清楚我到底做错了什么。这是我到目前为止所拥有的:

IDD_DIALOGBAR是我添加到项目中的自定义资源。为此,我在 Visual Studio 中创建了一个新的空 C++ 项目,然后在解决方案资源管理器中右键单击项目名称,然后单击“添加”-->“资源”。然后我从可用资源列表中选择了“IDD_DIALOGBAR”。这为项目添加了一个新资源,当我在 Visual Studio 中切换到“资源视图”时可以查看该资源。

当我运行程序时,对话框根本没有出现。结果CommDlgExtendedError()CDERR_FINDRESFAILURE: The common dialog box function failed to find a specified resource

我也试过改变

ofn.lpTemplateName = "IDD_DIALOGBAR"

ofn.lpTemplateName = MAKEINTRESOURCE(IDD_DIALOGBAR)

但这导致了不同的错误消息:

CDERR_DIALOGFAILURE: The dialog box could not be created. The common dialog box function's call to the DialogBox function failed. For example, this error occurs if the common dialog box call specifies an invalid window handle.

我错过了什么?我没有正确引用资源吗?