  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		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() 有新的參數可以使用,應該可以直接滿足你的需求,請直接看說明檔 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		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> | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		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 常式來顯示對話方塊。 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		Jerry
 
 
  註冊時間: 2003-06-13 文章: 29 來自: 台灣.新竹.
  第 7 樓
  | 
		
			
				 發表於: 星期四 八月 28, 2003 12:44 pm    文章主題: TKS! | 
				     | 
			 
			
				
  | 
			 
			
				感謝大大的分享~
 
我找這個已經找好久了~~   
 
 
真是感動~~ | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		jerryclt
 
 
  註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
  第 8 樓
  | 
		
			
				 發表於: 星期三 六月 24, 2015 4:37 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				請教一下,
 
開版這一篇的方式,
 
每次都指在根目錄(WIN-7 是指在[電腦]),
 
有沒有辦法指定任何一個資料夾當預設資料夾?
 
 
謝謝指教 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |