如何让程序运行后自动在当前窗体打开所在文件夹? ( 积分: 50 )

  • 主题发起人 主题发起人 m911
  • 开始时间 开始时间
M

m911

Unregistered / Unconfirmed
GUEST, unregistred user!
运行程序时 用*当前*窗口打开程序所在目录,并不是弹出窗口来打开程序所在的目录
例如:我的程序的快捷方式在D:/目录下,而程序则在D:/xxx/xxx/目录下,在D:/运行快捷方式的时候,则用当前Explorer.exe窗口打开程序所在的目录。 应该怎么做?

下面的语句是在新窗口里打开文件夹 而不是当前窗体,帮帮忙吧!谢谢!
ShellExecute(0, 'open','Explorer.exe', pchar(lujing), nil, SW_SHOW);
 
你是要打开什么?
用Extractfilepath(paramstr(0))这个函数可以得到你当前程序所在的目录

函数原型:
HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);
参数说明:
hwnd:
用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。
lpOperation:
用于指定要进行的操作。
“open”操作表示执行由lpFile参数指定的程序,或打开由lpFile参数指定的文件或文件夹;
“print”操作表示打印由lpFile参数指定的文件;
“explore”操作表示浏览由lpFile参数指定的文件夹。
当参数设为NULL时,表示执行默认操作“open”。
lpFile:
用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。
lpParameters:
若lpFile参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为NULL.
lpDirectory:
用于指定默认目录.
nShowCmd:
若lpFile参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0
 
运行程序时 用*当前*窗口打开程序所在目录,并不是弹出窗口来打开程序所在的目录
例如:我的程序的快捷方式在D:目录下,运行快捷方式的时候,则用当前窗口打开程序所在的目录。 应该怎么做?
 
问题还是没有解决 谁能帮帮我?
 
自己顶上去
 
我靠,问题都不会提,你用什么打开目录? cmd? explore ? 你的控件 当前目录是什么
快捷方式的目录? 快捷方式指定的目录 ? 程序的目录?

可能你说的是用当前的已经打开的explore.exe 打开 你做的程序的运行目录吧?
找explore 的窗口 handle ,传一个消息吧
 
我吧帖子修改了,这回应该能看明白了,就是楼上所说的 ‘可能你说的是用当前的已经打开的explore.exe 打开 你做的程序的运行目录吧? ’

但是具体应该怎么做哪? 能写详细点吗 我是新手 谢谢啊
 
winexec(pchar('cmd /c '+extracefilepath),sw_show)
 
这个问题我看了老半天,第一次发现看问题比回答问题还费脑筋啊[:(]
 
后退
顶部