全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2614
推到 Plurk!
推到 Facebook!

資料夾分享問題

答題得分者是:jackkcg
00156
高階會員


發表:45
回覆:195
積分:112
註冊:2002-06-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-09-03 20:01:58 IP:61.56.xxx.xxx 未訂閱
請問如何設定資料夾成為網路上可分享的資料夾?
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-09-04 03:10:15 IP:61.70.xxx.xxx 未訂閱
使用登入檔就可以了阿 自己簡易測試就知道了 1 先建立一個怪名資料夾 2 設定分享 3 開啟regedit.exe搜詢怪名資料夾 如果要使用ap程式 也可以 但較不活啦 有舊資料自己找一下吧 ap ini檔(比較理想) http://delphi.ktop.com.tw/topic.php?TOPIC_ID=135 設定網路磁碟機 參考看看 請問一下 你是要server分享的資料夾的網路磁碟機 還是分享資料夾給客戶端 發表人 - jackkcg 於 2002/09/04 03:24:57 發表人 - jackkcg 於 2002/09/04 05:15:28
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
00156
高階會員


發表:45
回覆:195
積分:112
註冊:2002-06-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-09-04 17:01:09 IP:61.56.xxx.xxx 未訂閱
引言: 使用登入檔就可以了阿 自己簡易測試就知道了 1 先建立一個怪名資料夾 2 設定分享 3 開啟regedit.exe搜詢怪名資料夾 如果要使用ap程式 也可以 但較不活啦 有舊資料自己找一下吧 ap ini檔(比較理想) http://delphi.ktop.com.tw/topic.php?TOPIC_ID=135 設定網路磁碟機 參考看看 請問一下 你是要server分享的資料夾的網路磁碟機 還是分享資料夾給客戶端 發表人 - jackkcg 於 2002/09/04 03:24:57 發表人 - jackkcg 於 2002/09/04 05:15:28
謝謝jackkcg兄的回答! 我只是要由程式開啟一個資料夾、設定成可分享,讓遠端電腦可以抓到裡面的內容。 我試試看Registry!
andersonhsieh
版主


發表:33
回覆:531
積分:439
註冊:2002-06-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-09-04 17:19:57 IP:211.20.xxx.xxx 未訂閱
可以試試DOS下的命令 這個指令的語法是: NET SHARE sharename sharename=drive:path [/USERS:number | /UNLIMITED] [/REMARK:"text"] [/CACHE:Manual | Automatic | No ] sharename [/USERS:number | /UNLIMITED] [/REMARK:"text"] [/CACHE:Manual | Automatic | No ] {sharename | devicename | drive:path} /DELETE NET SHARE 將伺服器的資源開放給網路使用者。 如果沒有加上選項,會列出電腦上所有共用資源的相關資訊。 Windows NT 會報告每項資源的裝置名稱或路徑名稱,及相關描述。 sharename 要共用資源的網路名稱。如果在 NET SHARE 之後 只輸入一個共用名稱,會顯示這個共用的資訊。 drive:path 指定共用目錄的絕對路徑。 /USERS:number 設定可以同時存取該共用資源的 使用者最大個數。 /UNLIMITED 對同時存取該共用資源使用者數目不加以限制。 /REMARK:"text" 為資源加上描述備註。 請用雙引號括住備註文字。 devicename sharename 上的可共用的印表機 (從 LPT1: 到 LPT9:) /DELETE 停止資源共用。 /CACHE:Automatic 啟用自動重新整合的離線用戶端快取。 /CACHE:Manual 啟用手動重新整合的離線用戶端快取。 /CACHE:No 告訴用戶端不適合啟用離線快取。 NET HELP command | MORE 會以一次一個螢幕的方式顯示說明。 @@~~飛翔在天際的精靈~~@@
------
@@~~飛翔在天際的精靈~~@@
00156
高階會員


發表:45
回覆:195
積分:112
註冊:2002-06-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-09-21 12:42:41 IP:61.56.xxx.xxx 未訂閱
感謝jackkcg和andersonhsieh提供的訊息... 不過,我按照Registry裡的設定下面幾個屬性,還是不行呀!    Key:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\NetWork\LanMan\[目錄名]\ Flags DWord 401 (唯獨分享時) Param1enc Binary 0000 Param2enc Binary 0000 Path String [目錄路徑] Remark String '' Type DWord 0 另外,用Net指令,好像在Windows 98也沒有支援Share功能? 可否請大家指點一下。謝謝!
David
一般會員


發表:13
回覆:26
積分:7
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-09-22 01:57:24 IP:61.221.xxx.xxx 未訂閱
引言: 感謝jackkcg和andersonhsieh提供的訊息... 不過,我按照Registry裡的設定下面幾個屬性,還是不行呀! Key:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\NetWork\LanMan\[目錄名]\ Flags DWord 401 (唯獨分享時) Param1enc Binary 0000 Param2enc Binary 0000 Path String [目錄路徑] Remark String '' Type DWord 0 可否請大家指點一下。謝謝!
我有在Registry加入相關機碼後(Win98),重新開機後即生效,我想可能差別在於需讓系統重新讀取設定的一個指令,多行重讀指令就不必重開機,畢竟實際操作時,設定完就能生效不必重新開機,”我猜”應是SendMessage,至於參數得在try try,或是有相關API經驗的前輩提供... Best regards.
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-09-24 02:38:04 IP:61.70.xxx.xxx 未訂閱
轉貼 Programmer 深度論壇  All Forums  DelphiChat  WinAPI   磁碟分享     ※ 引述《soup》於 02/14/2001 16:54:06 發表之銘言: >請問有沒有辦法用Delphi程式控制windows98的磁碟分享 試試用 NetShareAdd 可以用 MSDN 查查看 這是上面附的 C sample code    #define UNICODE #include  #include  #include     void wmain( int argc, TCHAR *argv[ ]) { NET_API_STATUS res; SHARE_INFO_2 p; DWORD parm_err = 0;    if(argc<2) printf("Usage: NetShareAdd server\n"); else { // // Fill in the SHARE_INFO_2 structure. // p.shi2_netname = TEXT("TESTSHARE"); p.shi2_type = STYPE_DISKTREE; // disk drive p.shi2_remark = TEXT("TESTSHARE to test NetShareAdd"); p.shi2_permissions = 0; p.shi2_max_uses = 4; p.shi2_current_uses = 0; p.shi2_path = TEXT("C:\\"); p.shi2_passwd = NULL; // no password // // Call the NetShareAdd function, // specifying level 2. // res=NetShareAdd(argv[1], 2, (LPBYTE) &p, &parm_err); // // If the call succeeds, inform the user. // if(res==0) printf("Share created.\n"); // Otherwise, print an error, // and identify the parameter in error. // else printf("Error: %u\tparmerr=%u\n", res, parm_err); } return; } -- 黃國軒
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
00156
高階會員


發表:45
回覆:195
積分:112
註冊:2002-06-01

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-09-24 21:36:20 IP:61.56.xxx.xxx 未訂閱
謝謝ackkcg兄。我在網路上找到下面這一段for Delphi的Code,不過還是試不出來。其中的NetShareAdd的第二個參數我改成502(參考HELP的),原程式碼是50(我想是張貼時漏了) 希望有人試出來的話好心告訴我...謝謝!也感謝上面各位前輩指點!
type T9xFunct = function(serverName : LPSTR; level : Integer; buf : PChar; var parm_err: DWORD): DWORD; StdCall;
type TShareInfo_50 = packed record
       shi50_netname: ANSIString;
       shi50_type: byte;
       shi50_flags: integer;
       shi50_remark: ANSIString;
       shi50_path: ANSIString;
       shi50_rw_password: ANSIString;
       shi50_ro_password: ANSIString;
     end;    function SetFolderShare(ShareName:ANSIString; FolderPath:ANSIString):integer;
var HInst: THandle;
    FPointer: TFarProc;
    My9xFunct: T9xFunct;
    si_9x: TShareInfo_50;
    res: integer;
    err: DWORD;
begin
  si_9x.shi50_netname:= ShareName;
  si_9x.shi50_type:= 0;
  si_9x.shi50_remark:= '';
  si_9x.shi50_flags:= $2;
  si_9x.shi50_path:= FolderPath;
  si_9x.shi50_rw_password:= '';
  si_9x.shi50_ro_password:= '';      HInst:= LoadLibrary('svrapi.dll');
  IF HInst > 0 THEN
    try
      FPointer:= GetProcAddress(HInst, 'NetShareAdd');
      IF FPointer <> NIL THEN
        begin
          err:= 0;
          My9xFunct:= T9xFunct(FPointer);
          Win32Check(My9xFunct(NIL, 502, @si_9x, err) = 0);
        end
      ELSE
        begin
          ShowMessage('Funktion ''NetShareAdd'' ist nicht gefunden!');
          Result:=-1
        end;
    finally
      FreeLibrary(HInst);
      IF res = 0 THEN Result:= 0;
    end
  ELSE
    begin
      ShowMessage('Programmbibliothek ''svrapi.dll'' ist nicht gefunden!');
      Result:=-1;
    end;
end;    
ericosur
一般會員


發表:0
回覆:15
積分:8
註冊:2002-08-08

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-09-27 01:09:52 IP:61.61.xxx.xxx 未訂閱
95/98/Me 用 50 NT/2000/XP 用 2 或是 502 因為開分享出來的參數有些不同,各位用檔案總管時就會發現 可以調的選項不大相同 // from MSDN
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-09-28 01:27:56 IP:61.70.xxx.xxx 未訂閱
此為轉貼資料 試看看吧 for win9x Procedure NetShareDriveC(SetShared: Boolean); const LM20_NNLEN = 12; SHPWLEN = 8; SHI50F_RDONLY = 1; SHI50F_FULL = 2; SHI50F_DEPENDSON = (SHI50F_RDONLY or SHI50F_FULL); SHI50F_ACCESSMASK = (SHI50F_RDONLY or SHI50F_FULL); SHI50F_PERSIST = 256; SHI50F_SYSTEM = 512; STYPE_DISKTREE = 0; ACCESS_NONE = 0; ACCESS_READ = $01; ACCESS_WRITE = $02; ACCESS_CREATE = $04; ACCESS_EXEC = $08; ACCESS_DELETE = $10; ACCESS_ATRIB = $20; ACCESS_PERM = $40; ACCESS_GROUP = $8000; ACCESS_ALL = (ACCESS_READ or ACCESS_WRITE or ACCESS_CREATE or ACCESS_EXEC or ACCESS_DELETE or ACCESS_ATRIB or ACCESS_PERM); type share_info_2= record shi2_netname : PWideChar; shi2_type : DWORD; shi2_remark : PWideChar; shi2_permissions : DWORD; shi2_max_uses : DWORD; shi2_current_uses : DWORD; shi2_path : PWideChar; shi2_passwd : PWideChar; end; share_info_50 = packed record shi50_netname : array [0..LM20_NNLEN] of Char; shi50_type : Byte; shi50_flags : Short; shi50_remark : PChar; shi50_path : PChar; shi50_rw_password: array [0..SHPWLEN] of Char; shi50_ro_password: array [0..SHPWLEN] of Char; end; var hDll : THandle; NetShareAddWin9x : function(pszServer : PChar; sLevel : Short; pbBuffer : Pointer; cbBuffer : Short):DWORD;stdcall; NetShareDelWin9x : Function(pszServer : PChar; pszNetName : PChar; usReserved : Short):DWORD;stdcall; si50 : share_info_50; si2 : share_info_2; tamano : Short; res, err : DWORD; EsNT: Boolean; Begin If SetShared then begin hDll := LoadLibrary('SvrApi.dll'); if hDll > 32 then begin // NetShareAdd NetShareAddWin9x := GetProcAddress(hDll, 'NetShareAdd'); tamano := sizeof(si50); FillChar(si50, tamano, 0); StrCopy(si50.shi50_netname, 'SH_ACCESS'); si50.shi50_type := STYPE_DISKTREE; si50.shi50_flags := SHI50F_Full; //SHI50F_RDONLY; si50.shi50_path := 'C:\'; StrCopy( si50.shi50_rw_password, 'siemensw'); StrCopy( si50.shi50_ro_password, 'siemens'); res := NetShareAddWin9x(nil, 50, @si50, tamano); Showmessage('NetShare added to C:\Test .'); FreeLibrary(hDll); end; end else begin hDll := LoadLibrary('SvrApi.dll'); if hDll > 32 then begin // NetShareDel NetShareDelWin9x := GetProcAddress(hDll, 'NetShareDel'); res := NetShareDelWin9x(nil, PChar('SH_ACCESS'), 0); Showmessage('NetShare deleted. Check C:\test .'); FreeLibrary(hDll); end; end; End; 可 以 使 用 NETAPI32中 的 函 數 : NetShareAdd。 不 過 這 個 netapi32.pas, Delphi4.0的 source並 不 包 含 , 你 只 能 自 己 ? 生 了 。 Win95/98可 以 用 svrapi.dll代 替 netapi32.dll, 這 個 函 數 也 能 用 在NT/2000下則是NETAPI32.DLL。 發表人 - jackkcg 於 2002/09/28 02:01:28
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
系統時間:2024-04-19 21:10:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!