VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

取代getdir()函數(轉貼)

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 1 樓

發表發表於: 星期日 八月 24, 2003 5:22 pm    文章主題: 取代getdir()函數(轉貼) 引言回覆

【 在 sdlf 的大作中提到:】
: 我想得到网上邻居上的一个路径名,可是用getdir()函数只能看到本地的驱动器,看不到网上邻居,请问怎么实现!谢谢!
:......

FUNCTION GetFolder
DECLARE INTEGER FindWindow IN WIN32API STRING,STRING
DECLARE INTEGER SHBrowseForFolder IN "Shell32.DLL" INTEGER @
DECLARE INTEGER SHGetPathFromIDList IN "Shell32.DLL" INTEGER,STRING @
lcTitle=_SCREEN.CAPTION &&取当前主窗口标题。
hOwner=FindWindow(0,lcTitle) &&取当前主窗口句柄
pidl=SHBrowseForFolder(hOwner) &&如果成功,将显示文件夹树,并将选择后的列表框指针,返回给pidl变量。
IF !ISNULL(pidl)
SelectPath=SPACE(512)
=SHGetPathFromIDList(pidl,@SelectPath)
ELSE
SelectPath=""
ENDIF
RETURN IIF(!EMPTY(SelectPath),LEFT(SelectPath,LEN(ALLT(SelectPath))-1),"")

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
朱育興



註冊時間: 2003-08-25
文章: 661
來自: 台中市大里區

第 2 樓

發表發表於: 星期一 八月 25, 2003 12:49 am    文章主題: 引言回覆

記得 7.0 版的 GETDIR() 有新的參數可以使用,應該可以直接滿足你的需求,請直接看說明檔
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 3 樓

發表發表於: 星期一 八月 25, 2003 1:04 am    文章主題: 引言回覆

朱育興 寫到:
記得 7.0 版的 GETDIR() 有新的參數可以使用,應該可以直接滿足你的需求,請直接看說明檔


對不起,這是我轉貼的範例

還有不是每個人都有vfp7

能把那放上來嗎?

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
朱育興



註冊時間: 2003-08-25
文章: 661
來自: 台中市大里區

第 4 樓

發表發表於: 星期一 八月 25, 2003 1:57 am    文章主題: 引言回覆

<!-- 以下是 GETDIR() 7.0 版的 HTML 檔的說明,若翻譯有不當之處請包涵。請將內容複製到別處再以 IE 查看-->


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=big5">
<TITLE>GETDIR( ) 函數</TITLE>
<style>
<link disabled rel=stylesheet href=/stylesheets/msdn_ie3.css>
<style type="text/css">
@import url(/stylesheets/msdn_ie4.css);
</style></HEAD>


<H1><A NAME="lnggetdirlp_rp"></A><SUP></SUP>GETDIR( ) 函數</H1>

<P><A HREF="lnggetdirlp_rpsa.htm">相關資訊</A></P>

<P>顯示一個<A HREF="cmdselect_directory_dialog_box.htm">[選擇目錄]對話方塊</A>來讓您選擇磁碟目錄。</P>

<P class=label>語法</P>

<P>6.0 版:

GETDIR([<span class=emp>cDirectory</span> [, <span class=emp>cText</span>]])</P>
<P>7.0 版:

GETDIR([<span class=emp>cDirectory</span> [, <span class=emp>cText</span> [, <span class=emp>cCaption</span> [, <span class=emp>nFlags</span> [, <span class=emp>lRootOnly</span>]]]]])</P>

<P class=label>傳回值</P>

<P>Character</P>

<P class=label>參數</P>

<P class=dt><span class=emp>cDirectory</span></P>

<P class=indent>在對話方塊中指定一個啟始顯示之預設目錄。 如果並未指定 <span class=emp>cDirectory</span>,[選擇目錄]對話方塊開啟時,將顯示 Visual FoxPro 之預設目錄(依 SET DEFAULT 或 CD 命令目前所設定者)。</P>

<P class=dt><span class=emp>cText</span></P>

<P class=indent>自行指定選擇磁碟目錄路徑之對話方塊的提示文字。</P>

<P class=dt><span class=emp>cCaption</span></P>

<P class=indent>指定對話方塊的標題。其預設值為"選擇目錄"(Browse for Folder)。</P>

<P class=dt><span class=emp>nFlags</span></P>

<P class=indent>為對話方塊指定選項。nFlags 可以包含 0 或額外的值之組合。下表包括一些更常見的選項。詳細資訊,請參閱 MSDN 的 SHBrowseForFolder。</P>

<div class="tablediv"><table border=1 cellspacing="0" class="dtTABLE">

<TR VALIGN="top">
<TH width=13%>nFlag</TH>
<TH width=41%>值</TH>
<TH width=46%>敘述</TH>
</TR>

<TR VALIGN="top">
<TD width=13%>1</TD>
<TD width=41%>BIF_RETURNONLYFSDIRS</TD>
<TD width=46%>只傳回檔案系統目錄 (物理位置)。如果使用者選擇的資料夾不是檔案系統的一部分,則確定 (OK) 按鈕是灰色。</TD>
</TR>

<TR VALIGN="top">
<TD width=13%>2</TD>
<TD width=41%>BIF_DONTGOBELOWDOMAIN</TD>
<TD width=46%>在樹狀檢視(tree view)控制項(例如:My Computer 和 My Networks)中不包括網路資料夾下面的域名層級(domain level)。</TD>
</TR>

<TR VALIGN="top">
<TD width=13%>8</TD>
<TD width=41%>BIF_RETURNFSANCESTORS</TD>
<TD width=46%>只傳回檔案系統的 ancestors。如果使用者選擇了任何其他非檔案系統的 ancestors,則確定 (OK) 按鈕是灰色。</TD>
</TR>

<TR VALIGN="top">
<TD width=13%>16</TD>
<TD width=41%>BIF_EDITBOX</TD>
<TD width=46%>瀏覽對話方塊包括一個編輯控制項讓使用者可以打入一個項目的名稱。Windows 98 及以上版本,或 Internet Explorer 4.0 及以上 (假設選定了 shell integration 選項) 可用。要求 4.71 版的 shell32.dll。</TD>
</TR>

<TR VALIGN="top">
<TD width=13%>64</TD>
<TD width=41%>BIF_USENEWUI</TD>
<TD width=46%>使用新的使用者介面。設定該 nFlags 可以為使用者提供一種較大的、可調整大小的對話方塊。其他功能包括:在對話方塊中的拖放能力、重排序、上下文相關功能表、新建資料夾、刪除和其他上下文相關功能表命令。僅支援 Windows 2000 及以上。要求 5.00 版的 shell32.dll。</TD>
</TR>

<TR VALIGN="top">
<TD width=13%>16384</TD>
<TD width=41%>BIF_BROWSEINCLUDEFILES </TD>
<TD width=46%>瀏覽對話方塊將可以像資料夾一樣顯示檔案。Windows 98 及以上版本,或 Internet Explorer 4.0 及以上 (假設選定了 shell integration 選項) 可用。要求 4.71 版的 shell32.dll。</TD>
</TR>
</table></div>

<P class=dt><span class=emp>lRootOnly</span></P>

<P class=indent>指定只顯示 cDirectory 及其子目錄。該參數防止向上定位到根目錄。如果沒有指定 cDirectory,就使用預設目錄 (SET DEFAULT 值)。</P>

<P class=label>說明</P>

<P>GETDIR( ) 將您選擇之磁碟目錄的名稱以一個文字串傳回。</P>

<P>如果您沒有選擇一個資料夾 (您按下「取消」(Cancel) 按鈕、ESC 鍵或從視窗功能表選擇關閉),GETDIR( ) 將傳回一個空字串。</P>
<P>自 Visual FoxPro 7 開始,GETDIR(&) 支援兩種不同的對話方塊。如果您提供少於三個參數,GETDIR(&) 傳回早期版本的對話方塊。如果提供大於兩個參數,Visual FoxPro 使用 Win32 API 中的 SHBrowseForFolder 常式來顯示對話方塊。</P>

</HTML>
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 5 樓

發表發表於: 星期一 八月 25, 2003 3:24 am    文章主題: 引言回覆

如果能把那煩人的HTML去掉會更好
_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
朱育興



註冊時間: 2003-08-25
文章: 661
來自: 台中市大里區

第 6 樓

發表發表於: 星期一 八月 25, 2003 10:37 am    文章主題: 引言回覆

GETDIR( ) 函數


顯示一個[選擇目錄]對話方塊來讓您選擇磁碟目錄。


語法
6.0 版: GETDIR([cDirectory [, cText]])
7.0 版: GETDIR([cDirectory [, cText [, cCaption [, nFlags [, lRootOnly]]]]])


傳回值
Character


參數
cDirectory
在對話方塊中指定一個啟始顯示之預設目錄。 如果並未指定 cDirectory,[選擇目錄]對話方塊開啟時,將顯示 Visual FoxPro 之預設目錄(依 SET DEFAULT 或 CD 命令目前所設定者)。

cText
自行指定選擇磁碟目錄路徑之對話方塊的提示文字。

cCaption
指定對話方塊的標題。其預設值為"選擇目錄"(Browse for Folder)。

nFlags
為對話方塊指定選項。nFlags 可以包含 0 或額外的值之組合。下表包括一些更常見的選項。詳細資訊,請參閱 MSDN 的 SHBrowseForFolder。

nFlag 值               敘述
1   BIF_RETURNONLYFSDIRS   只傳回檔案系統目錄 (物理位置)。如果使用者選擇的資料夾
                    不是檔案系統的一部分,則確定 (OK) 按鈕是灰色。
2   BIF_DONTGOBELOWDOMAIN  在樹狀檢視(tree view)控制項(例如:My Computer 和
                     My Networks)中不包括網路資料夾下面的域名層級
                    (domain level)。
8   BIF_RETURNFSANCESTORS  只傳回檔案系統的 ancestors。如果使用者選擇了任何其他
                    非檔案系統的 ancestors,則 確定 (OK) 按鈕是灰色。
16   BIF_EDITBOX         瀏覽對話方塊包括一個編輯控制項讓使用者可以打入一個項
                    目的名稱。Windows 98 及以上版本,或 Internet
                    Explorer 4.0 及以上 (假設選定了 shell integration
                    選項) 可用。要求 4.71 版的 shell32.dll。
64   BIF_USENEWUI         使用新的使用者介面。設定該 nFlags 可以為使用者提
                    供一種較大的、可調整大小的對話方塊。其他功能包括:
                    在對話方塊中的拖放能力、重排序、上下文相關功能表、
                    新建資料夾、刪除和其他上下文相關功 能表命令。僅支
                    援 Windows 2000 及以上。要求 5.00 版的 shell32.dll。
16384  BIF_BROWSEINCLUDEFILES  瀏覽對話方塊將可以像資料夾一樣顯示檔案。
                    Windows 98 及以上版本,或 Internet Explorer 4.0
                    及以上 (假設選定了 shell integration 選項) 可用。
                    要求 4.71 版的 shell32.dll。

lRootOnly
指定只顯示 cDirectory 及其子目錄。該參數防止向上定位到根目錄。如果沒有指定 cDirectory,就使用預設目錄 (SET DEFAULT 值)。


說明
GETDIR( ) 將您選擇之磁碟目錄的名稱以一個文字串傳回。
如果您沒有選擇一個資料夾 (您按下「取消」(Cancel) 按鈕、ESC 鍵或從視窗功能表選擇關閉),GETDIR( ) 將傳回一個空字串。

自 Visual FoxPro 7 開始,GETDIR(&) 支援兩種不同的對話方塊。如果您提供少於三個參數,GETDIR(&) 傳回早期版本的對話方塊。如果提供大於兩個參數,Visual FoxPro 使用 Win32 API 中的 SHBrowseForFolder 常式來顯示對話方塊。
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
Jerry



註冊時間: 2003-06-13
文章: 29
來自: 台灣.新竹.

第 7 樓

發表發表於: 星期四 八月 28, 2003 12:44 pm    文章主題: TKS! 引言回覆

感謝大大的分享~
我找這個已經找好久了~~ Razz

真是感動~~
回頂端
檢視會員個人資料 發送私人訊息
jerryclt



註冊時間: 2009-03-10
文章: 334
來自: 佛心來的

第 8 樓

發表發表於: 星期三 六月 24, 2015 4:37 pm    文章主題: 引言回覆

請教一下,
開版這一篇的方式,
每次都指在根目錄(WIN-7 是指在[電腦]),
有沒有辦法指定任何一個資料夾當預設資料夾?

謝謝指教
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作