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

如何用程式將使用者的資源分享關掉

缺席
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-24 22:07:57 IP:211.76.xxx.xxx 未訂閱
由 minjiu 所提問題 請問如何取得本機分享的資料夾有哪些? 各位我找到答案了... 原來答案在機碼裡... \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Shares 那如果要寫程式將使用者的分享關掉,要如何寫程式?是否直接將機碼刪除? (由於蠕虫病毒猖狂,但使用者為了方便都會自行開啟,身為管理者除了閉上眼睛,還有何作為?) 努力會更接近成功
------
努力會更接近成功
00156
高階會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-26 20:57:35 IP:61.56.xxx.xxx 未訂閱
使用API:NetShareDel,請參照 http://delphi.ktop.com.tw/topic.php?topic_id=20993 http://delphi.ktop.com.tw/topic.php?topic_id=26472    
引言: 由 minjiu 所提問題 請問如何取得本機分享的資料夾有哪些? 各位我找到答案了... 原來答案在機碼裡... \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Shares 那如果要寫程式將使用者的分享關掉,要如何寫程式?是否直接將機碼刪除? (由於蠕虫病毒猖狂,但使用者為了方便都會自行開啟,身為管理者除了閉上眼睛,還有何作為?) 努力會更接近成功
minjiu
中階會員


發表:27
回覆:119
積分:69
註冊:2002-06-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-28 09:53:43 IP:218.164.xxx.xxx 未訂閱
不可直接將機碼刪除....無效!!
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-29 14:20:28 IP:211.96.xxx.xxx 未訂閱
以下例子僅對nt/2000/xp/2003有效,98/ME不適用,如果非得要用在98/ME上,把DLL的名字改成svrapi.dll,不過我沒在98/ME上測試過,請自行測試啦    
//.
//.
var
  Form1: TForm1;
  function GetShareName(remotename: string):TStringList;
  function NetShareDel(ServerName:pwidechar; NetName: pwidechar;
           Reserved: DWord): Integer;stdcall;external 'netapi32.dll' ;
implementation    {$R *.dfm}
//.
//.
//.    function GetShareName(remotename: string):TStringList;
type TNetResourceArray = ^TNetResource;
var NetResource : TNetResource;
    hr,ecount,BUFSIZE,x: dword;
    hEnum: THandle;
    buf : POINTER;
    ResArray : TNetResourceArray;
    ResList : TStringList;
    temp: string;
begin
  result := TStringList.Create; // 回傳用的list
  BUFSIZE:=8192;
  GETMEM(BUF,BUFSIZE);
  FillChar(NetResource,  SizeOf(NetResource),  #0); // 清空netresource結構
  NetResource.lpRemoteName:=pchar('\\' remotename); // 指定想要查的ip或hostname
  hr:=WNetOpenEnum(RESOURCE_GLOBALNET,
                   RESOURCETYPE_ANY,
                   RESOURCEUSAGE_CONNECTABLE,
                   @NetResource,hEnum);
  if hr=NO_ERROR then
     while true do begin // 直到列舉不到東西break為止
        ecount := $FFFFFFFF;
        hr := WNetEnumResource(hEnum,ecount,pointer(buf),bufsize);
        case hr of
           ERROR_NO_MORE_ITEMS: break;
           NO_ERROR           :
              begin
                 ResArray:=TNetResourceArray(buf);
                 for x:= 0 to ecount-1 do begin
                    temp:=ResArray^.lpRemoteName;
                    result.Add(copy(temp,length(remotename) 4,length(temp)-length(remotename)));
                    inc(resArray);
                 end;
              end;
           else break;
        end;
     end;
  wnetCloseEnum(hEnum);
  FreeMem(buf,bufsize);
end;    procedure TForm1.Button3Click(Sender: TObject);
//     列出本機所有的資源共享名稱(包括印表機及IPC$)
var temp : TStringList;
    x : integer;
begin
  temp:=TStringList.Create;
  temp.AddStrings(GetShareName('127.0.0.1'));
  radiogroup1.Items.clear;
  for x:= 1 to temp.Count do
     RadioGroup1.Items.AddStrings(temp);
{
如果像底下二行的寫法,就是刪除所有共享~ 如果把這一段程式寫在ONFORMCREATE里,就是程式執行時自動刪除所有的共享名稱
  for x:= 1 to temp.Count do
     NETSHAREDEL(temp);
}
end;    procedure TForm1.Button2Click(Sender: TObject);
//  選擇RADIOGROUP里的共享名稱後,刪除共享
var sharename : widestring ;
begin
   if radiogroup1.ItemIndex>=0 then BEGIN
      sharename:=radiogroup1.Items[radiogroup1.itemindex];
      if NetShareDel(nil,pwidechar(sharename),0)<>0 then 
         showmessage('共享' sharename '停用失敗');
   END;
end;    
我不懂,不懂,不懂....所以我才來ktop學工夫 發表人 - japhenchen 於 2003/10/29 14:24:12
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-29 14:27:13 IP:211.96.xxx.xxx 未訂閱
這個NETAPI32.API里面除了停用共享的功能外,還有超多的功能,像新增加共享(可以設定權限),新增使用者(hacker的夢幻,可增加administrator級別)....................... 我不懂,不懂,不懂....所以我才來ktop學工夫
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-30 07:55:57 IP:211.76.xxx.xxx 未訂閱
japhenchen大大的程式, 我在XP測試OK, 謝謝您! 但是在Win98上用svrapi卻不行, 不知大大可否提供使用方式或如何查得使用方法 比如增加共享(可以設定權限),新增使用者(hacker的夢幻,可增加administrator級別)....................... 不勝感激 努力會更接近成功
------
努力會更接近成功
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-10-30 08:01:53 IP:211.76.xxx.xxx 未訂閱
對不起! 我己從delphi help查得 netsharedel只支持NT 不支持WIN95 可能沒什麼解了 努力會更接近成功
------
努力會更接近成功
系統時間:2024-04-29 17:25:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!