線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1336
推到 Plurk!
推到 Facebook!

请教winexec()长文件名问题

尚未結案
zw
一般會員


發表:21
回覆:25
積分:9
註冊:2003-04-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-10 02:07:48 IP:61.176.xxx.xxx 未訂閱
大家好: WIN2K下,使用winexec()这个函数,发现它只支持8个字符长度的文件名,超过8个字符时会出错,在这里请教大家有没有什麽解决办法,请告知,谢谢了!
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-10 08:00:22 IP:218.16.xxx.xxx 未訂閱
改用 shellExecute 罷 WinExec 是 Windows 3.1 時代的產物 uses shellapi ShellExecute(0,'open',PChar('notepad.exe'),nil,nil,SW_SHOWNORMAL); * 直接輸入如上例其實可不用 PChar(..) 但若用變數的話則須使用。
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-10 08:10:25 IP:61.66.xxx.xxx 未訂閱
這問題是產生在win3.1 8.3 格式 所以,還是用shellexecute吧
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-12 00:29:25 IP:61.221.xxx.xxx 未訂閱
引言: 大家好: WIN2K下,使用winexec()这个函数,发现它只支持8个字符长度的文件名,超过8个字符时会出错,在这里请教大家有没有什麽解决办法,请告知,谢谢了!
zw 你好: 提供另外一個方法,如果你還是堅持使用 WinExec 的話 可以先利用 Win32 API GetShortPathName 把檔案名稱轉成 8.3 的格式
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
zw
一般會員


發表:21
回覆:25
積分:9
註冊:2003-04-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-13 08:48:31 IP:61.176.xxx.xxx 未訂閱
感谢各位版主的热心帮助,其实我用WinExec是为了执行DOS命令(md XXX 创建我自定的一个文件夹),我觉得用WinExec执行DOS命令比较好用,但发现它不支持长文件名(不能创建长文件名的文件夹),shellExecute函数我了解的程度只是知道它是用来调用和打开外部程式用的,不知道支不支持DOS命令,能不能实现创建文件夹,如果各位版主有什麽好的方法实现创建一个文件夹,且没有长文件名限制,还望多多指教。
zw
一般會員


發表:21
回覆:25
積分:9
註冊:2003-04-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-13 10:57:26 IP:61.176.xxx.xxx 未訂閱
大家好:我找到了创建文件夹一种方法ForceDirectories('d:\xxx'); 简单好用,但我用你们推荐的shellExecute()时,编译时提示没有声明此函数, ,请问如何在程序中声明,还望多多指教^_^
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-13 11:10:59 IP:218.16.xxx.xxx 未訂閱
我一開始己說了要 uses Shellapi 丫    就是在 uses 加上 ...., ..., Shellapi;
bundur
一般會員


發表:16
回覆:44
積分:22
註冊:2002-11-30

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-06-15 19:10:19 IP:218.104.xxx.xxx 未訂閱
引言: 大家好:我找到了创建文件夹一种方法ForceDirectories('d:\xxx'); 简单好用,但我用你们推荐的shellExecute()时,编译时提示没有声明此函数, ,请问如何在程序中声明,还望多多指教^_^
如果你还是要用 WINEXEC 的话可以在命令行上加上双引号,如: WinExec('"C:\Program Files\Common Files\MyExec.exe"', 5); 其实 WinExec 支持长文件名的,只是不支持打开目录
zw
一般會員


發表:21
回覆:25
積分:9
註冊:2003-04-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-06-17 16:15:03 IP:61.176.xxx.xxx 未訂閱
感谢bundur和justmade以及大家的帮助,和你们的交流中阔宽了自己的思路, 也为自己的技术感到汗颜,希望自己多多努力吧! 祝大家健康!快乐!
系統時間:2024-04-28 15:46:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!