首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在 Win7 上 GetOpenFileName 函数忽略 lpstrInitialDir 参数

在 Win7 上,GetOpenFileName 函数忽略 lpstrInitialDir 参数是因为在 Windows 7 中,GetOpenFileName 函数的行为发生了变化。lpstrInitialDir 参数用于指定对话框中初始显示的文件夹路径,但在 Windows 7 中,GetOpenFileName 函数会忽略该参数,而是使用上一次打开或保存文件对话框中选择的文件夹路径作为初始路径。

这个变化可能是由于 Windows 7 引入了一个新的文件对话框组件,该组件在设计上有所改进,以提供更好的用户体验。在这个新的文件对话框组件中,lpstrInitialDir 参数被忽略,而使用了记忆功能,记住了用户上一次选择的文件夹路径。

尽管 lpstrInitialDir 参数被忽略,但仍然可以通过其他方式来设置初始路径。例如,可以使用 SetCurrentDirectory 函数在打开文件对话框之前设置当前工作目录,从而影响对话框中的初始路径。

总结起来,在 Win7 上,GetOpenFileName 函数忽略 lpstrInitialDir 参数,而使用上一次打开或保存文件对话框中选择的文件夹路径作为初始路径。这个变化是为了提供更好的用户体验。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Windows编程】系列第八篇:创建通用对话框

本篇以最常见的文件打开/保存对话框、字体对话框、颜色对话框为例,来学习如何创建这些对话框,其他的对话框使用大同小异,且MSDN基本都有使用实例。...API函数定义如下: BOOL GetOpenFileName(LPOPENFILENAME lpofn); 参数lpofn的定义如下: typedef struct tagOFN { DWORD...API函数定义如下: BOOL GetSaveFileName(LPOPENFILENAME lpofn); 该函数参数与上面完全一样,只是有些不能在文件保存对话框函数中使用,保存文件时不能多选名字。...颜色选择对话框 该对话框函数提供统一接口用于选择颜色,API函数定义如下: BOOL ChooseColor(LPCHOOSECOLOR lpcc); 参数lpcc最重要的参数: lpCustColors...API函数定义如下: BOOL ChooseFont(LPCHOOSEFONT lpcf); 对话框函数运行结束后的字体rgbColors参数中,我们可以用它来创建选择的字体。

1.3K140
  • DotNet4应用程序打包工具->升级版【二】安装工具分析

    本系列的一篇中, 我们给出了这个工具的具体的思路。 得到了很多朋友的反馈!...综合朋友的意见, 没有改变工具原理的基础 我对这个程序做了升级 如下图: 如你所见, 现在这个打包工具可以打包dotNet2.0  3.5  4 乃至所有注册表中添加过注册表项的应用程序 下面我们就开始分析安装工具...接收到的每个消息都执行了一个或几个函数 那么,我们就一个函数一个函数的讲 ------------------------------------------------------- 窗口初始化消息里...= NULL; if(GetOpenFileName(&ofn)) { SetDlgItemText(hwnd,EDITId,szFile); } } ------------------...----------------------------- 为宿主程序增加目标程序资源和dotNet安装包资源 增加的资源也是需要标明ID的 因为宿主程序会根据约定好的ID来得到这些资源 EditId参数就是这些资源的

    33720

    Application主程序对象方法(三)

    ) 所有参数均为可选,接受GetOpenFilename方法返回值的变量必须定义为Variant类型。...2、参数FilterIndex,指定默认文件筛选条件的索引值,即在“文件类型”框中显示的文件类型,索引值从1至参数FileFilter中指定的筛选条件数。默认情况下,使用第一个文件筛选条件。...(也可以将GetOpenFilename参数,用变量分离出来,方便修改。) ---- 示 例 二 下面示例将选择多个文件,获得多个文件的地址,立即窗口中显示。...由于方法的最后参数选择true,弹窗中无论选择一个还是多个,返回值strname是一个数组,而如果点击取消,则返回false字符串。...如果strname经过判断是数组,这里lbound和ubound是函数用于获得数组的下界和上界(可以理解为最小值和最大值)示例中选择了两个文件,即变量i从1到2。

    1.6K20

    python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例

    (self.btn) #创建标签,添加到布局中 self.le=QLabel('') layout.addWidget(self.le) #创建按钮,绑定自定义的槽函数...代码分析 在这个例子里,通过文件对话框来选择文件,其中第一个文件对话框只允许打开图片文件,并把加载的图片显示标签上,第二个文件对话框只允许打开文本文件,并把打开的文本内容显示文本框内 第一个按钮使用...QFileDialog.getOpenFilename(),调用文件对话框来显示图片,并显示一个标签控件中,它负责打开c盘目录下的为文件,核心代码如下 #从C盘打开文件格式(*.jpg *.gif *...*.gif *.png *.jpeg)') #设置标签的图片 self.le.setPixmap(QPixmap(image_file)) QFIleDialog.getOpenFileName()...函数中 第一个参数self:用于指定父组件 第二个参数‘open file’:是QFileDialog对话框的标题 第三个参数‘C:\’默认打开的目录,‘.’代表程序运行的目录,‘/’代表当前盘下的根目录

    2.6K11

    基于 Qt 的文件选择与图片显示功能实现

    下面是该版本的实现: void Widget::open1() { // 打开文件对话框,供用户选择图片文件 // getOpenFileName() 函数的四个参数依次是: /...QLineEdit::setText() 这个函数用于界面上的文本框(这里是 lineEdit_path)中显示选中文件的路径。...特点与改进: open2() open1() 的基础添加了路径记忆功能,每次打开文件选择对话框时,都会显示上次用户选择的文件夹,大大提高了用户体验。...这里的 Qt::KeepAspectRatioByExpanding 参数表示保持图片的宽高比,必要时扩展图片,以适应标签的大小。...基本功能:图片选择与显示 首先,最基本的版本 open1() 中,用户可以通过 QFileDialog::getOpenFileName() 打开文件选择对话框,选择一个图片文件(支持 .png 和

    20610

    二、Qt定时器与文本编辑器制作《QT 入门到实战》

    需要在头文件中声明槽函数 cpp 文件中实现槽函数 以及使用 connect 方法连接 menu 以及槽函数。...> 随后 openActionSlot 槽函数中使用 QFileDialog 调用 getOpenFileName,其中 getOpenFileName 一般接收 4 个参数,第一个是资源选择框的父对象是谁...,我们可以指定为 this 表示当前程序;第二个参数是一个提示语;第三个参数为资源选择框打开后的默认路径;第四个参数是打开后显示哪些文件。...既然类型,那么我们进行保存时的流程都是要打开资源选择框,选择某一个位置进行内容保存,那么铁定是使用 Dialog,之前是使用 getOpenFileName,是 open操作,那么此时就是 save...在此基础还学习了什么是 menu 以及什么是 menu 的 action,并且 action 通过使用取地址符的方式创建了对应的快捷按钮,使其文本编辑器的操作更加的方便,这一节还学习了对应的定时器

    1K20

    04 qt功能类、对话框类和文件操作

    一 QT中时间和日期 时间 ---- QTime 日期 ---- QDate 对于Qt而言,实际的开发过程中, 1)开发者可能知道所要使用的类 ---- >帮助手册 —>索引 -->直接输入类名进行查找...2)开发者可能不知道所要使用的类,只知道开发需求文档 ----> 帮助 手册,按下图操作: 1 QTime 头文件:#include 模块:项目的pro文件中,查看是否包含模块...创建时间的对象的方式有两种:构造函数----- 指定一个时间 通过静态成员函数—currentTime() — 获得当前操作系统的本地时间 功能: 1)直接获取操作系统的时间 [static]...//给时间对象设置时分秒 inthour() const intminute() constintmsec() const QTimeaddMSecs(int ms) const// 在给定的时间基础,...增加指定的毫秒QTimeaddSecs(int s) const// 在给定的时间基础,增加指定的秒 二 日期类 QDate 功能:获取系统当前的日期 创建对象的方法: 1)构造函数:QDate(

    21710

    Application主程序对象方法(四)

    GetSaveAsFilename方法 Application对象的GetSaveAsFilename方法,可以打开一个标准的“另存为”对话框,该对话框中用户可以选择(或输入)一个文件名,该方法只返回文件名及其路径...如果省略本参数,则默认参数值为“所有文件 (*.*), *.*”。和上节介绍的GetOpenFilename方法的第一参数一样。 由文件筛选字符串和通配符表示的文件筛选规则说明组成,中间用逗号隔开。...如果省略本参数,或者取值大于可用筛选数目,则采用第一个文件筛选条件。 4、参数Title ,指定对话框标题。如果省略本参数,则使用默认标题。 5、参数ButtonText,不用。...---- 本节主要介绍了application主程序对象的GetSaveAsFilename方法,参数和上节介绍的GetOpenFilename方法类似。...至此常用对象的大部分属性和方法都介绍完,其他不常用的对象的属性和方法后期会视情况再补充,后面将开始介绍VBA事件、数组、函数等内容,祝大家学习快乐。 ----

    1.6K20

    【QT】qt 文件操作

    使用函数 QTemporaryFile::open() 就能创建一个文件名唯一的临时文件, QTemporaryFile 对象被删除时,临时文件被自动删除 QTcpSocket 和 QUdpSocket...如编程实现笔记本电脑与手机的蓝牙通信 QProcess 类用于启动外部程序,并且可以给程序传递参数 QBuffer 以⼀个 QByteArray 对象作为数据缓冲区,将 QByteArray 对象当作⼀...文件读写类 Qt 中,文件的读写主要是通过 QFile 类来实现。 QFile 类中提供了一些用来读写文件的方法。...read()、readAll()、readLine() 等 写数据:QFile 类中提供了多个方法⽤于往文件中写内容;如 write()、**writeData()**等 关闭文件:文件使用结束后必须用函数...} 实现效果如下,点击选取文件时,就会在 D:\QtProject 路径下打开文件夹,继续选取具体的文件就会将选取到的文件读取到 textEdit 中: 示例代码2:写文件 在上述示例代码的基础修改

    15010

    【Python篇】PyQt5 超详细教程——由入门到精通(中篇一)

    PyQt5 中,信号(Signal) 和 槽(Slot) 是处理事件和交互的核心机制。信号代表某个事件的发生,而槽是信号触发后执行的函数。 信号:信号是控件发出的消息,用来通知外界某个事件的发生。...每当用户输入或删除文本时,程序都会调用槽函数 text_changed。 self.text_changed(text) 这是槽函数参数 text 是用户当前输入的内容。...4.6 信号槽的高级用法 信号传递参数:大部分 PyQt5 内置信号都会传递参数。例如,textChanged 信号会传递当前文本内容,currentIndexChanged 信号会传递选中的下标。..._ 是过滤器信息,我们暂时不需要用到它,因此使用 _ 来忽略。 文件类型过滤器:"文本文件 (*.txt);;所有文件 (*)" 表示用户只能看到 .txt 文件或所有类型的文件。...第一个参数 row 表示第几行,第二个参数 column 表示第几列,第三个参数 QTableWidgetItem(value) 表示你想要插入的具体数据。

    42610

    详解Windows Shim的攻防利用

    对于第三方软件商来说,这基本就是不可能完成的任务。 一个Vista运行得好好的程序很可能在win7下无法运行。因为一个极小的API改动都可能让该程序崩溃。...比如下图,SDK6.0(Vista)和SDK7.1(win7)下,clusapi.dll 里的CreateCluster() 的参数不一致:新版本的CreateCluster()没有tAcceptPartialFailure...这个参数,导致该程序多push进一个参数,这会使该函数在运行时发生不可预见的问题。...简而言之,当一个应用程序开始运行的时候,Shim把导入地址表(IAT)里的系统DLL库函数地址用ShimDLL里的函数地址来替换,从而可以透明的拦截其API调用,修改其传递的参数等等。...比如修改操作系统的版本号,修改API参数,禁用某些功能等等。 做一个小实验,win7下随便找一个带窗口的可执行文件,把文件名改为”3D Frog Frenzy.exe”。

    2.6K70

    【QT】Qt文件和多线程

    QIODevice::Truncate 每次打开文件后重写文件内容,原内容将被删除 QIODevice::Text 在读⽂件时,行尾终止符会被转换为’\n’,当写入⽂件时,行尾终止符会被转换为本地编码,如Win32为...connect(ui->pushButton,&QPushButton::clicked,[=](){ //获得文件路径 QString path = QFileDialog::getOpenFileName...false terminate 终止线程执行,通过操作系统的调度决定是否立即终止 finished 线程结束后发出该信号 创建一个自定义类timethread,继承自QThread,ui创建一个pushbutton...ui图形界面,一般是用作数据处理的 connect函数有五个参数,第五个参数就是只有多线程的时候才有意义,用于指定信号和槽的连接类型,同时影响信号的传递方式和槽函数的执行顺序 参数 说明 Qt::AutoConnection...,槽函数会立即在同一线程中执行,适用于信号和槽同一线程时 Qt::QueuedConnection 信号发出时,槽函数会被插入到接收对象所属的线程的事件队列中,等待下一次时间循环时执行,适用于信号和槽不在同一线程

    7910

    漏洞丨CVE20102883

    这个漏洞是Adobe Acrobat Reader软件中CoolType.dll解析字体文件SING表中的uniqueName字段的调用了strcat函数,但是对参数没有做出判断,没有检查uniqueName...、环境准备虚拟机调试工具目标软件16进制编辑器Win7X86SP1、KaliIda、x32dbgAdobe Acrobat_Reader 9.0010Editor三、漏洞复现使用MSF生成EXP:然后Win7...四、漏洞分析首先我们需要做几个准备工作,1、改掉随机基址,省的麻烦,把用010Editor打开Adobe,修改如下地方:2、把软件拖调试器中,忽略程序自身异常(因为我这边调试器接管异常,导致程序运行不下去...,所以需要忽略)接下来就是正儿八经分析了,因为已知漏洞问题是CoolType.dll,直接在安装文件夹下找到这个dll,拖到Ida中:然后Alt+T,搜索sing:双击到标记的一条:下面这一坨就是漏洞溢出的地方...,然后堆栈窗口中转到EBP,观察溢出情况:我们先看看strcat函数的俩个参数,堆栈中转到ESP,可以看到,源数据和要拷贝的地址,而要拷贝的地址就是EBP:然后走过strcat函数,观察EBP的位置,

    36020

    【QT】Qt 窗口 (QMainWindow)

    综合示例 在窗⼝创建⼀个菜单栏,菜单栏中添加⼀些菜单,某⼀个菜单中添加⼀些菜单项。 (1) “mainwindow.cpp” ⽂件中创建菜单和中央控件 创建⼀个菜单栏, ⼀个菜单....setFloatable() 函数原型为: void setFloatable (bool floatable) 参数: true:浮动 false:不浮动 示例:...状态栏中显示实时消息 状态栏中显⽰实时消息是通过 showMessage() 函数来实现,⽰例如下: status->showMessage("Hello, world", 2000); 3....⾮模态对话框⼀般堆上创建,这是因为如果创建在栈时,弹出的⾮模态对话框就会⼀闪⽽过。...: 参数1:parent 父对象 参数2:caption 对话框标题 参数3:dir 默认打开的路径 参数4:filter ⽂件过滤器 示例代码1: #include "mainwindow.h

    22110

    探索 dotnet core 为何在 Windows7 系统需要补丁的原因

    一些 Windows 7 系统,根据 dotnet 官方文档,需要安装上 KB2533623 补丁,才能运行 dotnet core 或 .NET 5 等应用。...为什么 dotnet core 一系都有此要求?而且还不是对所有 Win7 系统都有此要求,这是为什么?...咱编写的 Main 函数非单文件模式下,是放在同名的 dll 里面。...根据官方文档的描述,调用此函数,如果加入了 LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 参数,将要求 KB2533623 补丁 If this value is used, the...通过如上描述,可以了解到, dotnet core 需要补丁的原因是调用了 Kernel32.dll 的新(大约10年前加的)函数,对于一些 Win7 旧设备,没有更新 Kernel32.dll 加上函数

    18010

    探索 dotnet core 为何在 Windows7 系统需要补丁的原因

    一些 Windows 7 系统,根据 dotnet 官方文档,需要安装上 KB2533623 补丁,才能运行 dotnet core 或 .NET 5 等应用。...为什么 dotnet core 一系都有此要求?而且还不是对所有 Win7 系统都有此要求,这是为什么?...咱编写的 Main 函数非单文件模式下,是放在同名的 dll 里面。...根据官方文档的描述,调用此函数,如果加入了 LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 参数,将要求 KB2533623 补丁 If this value is used, the...通过如上描述,可以了解到, dotnet core 需要补丁的原因是调用了 Kernel32.dll 的新(大约10年前加的)函数,对于一些 Win7 旧设备,没有更新 Kernel32.dll 加上函数

    2.4K30
    领券