::: µ¨ÆÄÀÌ Tip&Trick :::

µ¨ÆÄÀÌ Tip&Trick ¼º°Ý¿¡ ¸ÂÁö ¾Ê´Â ±¤°í,ºñ¹æ,Áú¹®ÀÇ ±ÛÀº Áï½Ã »èÁ¦Çϸç
³»¿ëÀ» º¹»çÇÏ¿© »ç¿ëÇÒ °æ¿ì ¹Ýµå½Ã ÀÌ°÷(http://www.howto.pe.kr)À» Ãâó·Î ¸í½ÃÇÏ¿© ÁÖ¼¼¿ä


Category

  ±è¿µ´ë(2003-03-07 20:22:18, Hit : 5447, Vote : 1424
 ³×Æ®¿öÅ© ÄÄÇ»ÅÍ°¡ Á¸ÀçÇÏ´ÂÁö °Ë»çÇϱâ

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.DFM}

function RemoteComputerExists(const ComputerName : String) : Boolean;
{
  Returns True if the remote computer ComputerName exists on the network.
  ComputerName must be of the form "\Name".  The function is not case-sensitive.
  Be warned that this may take a *long* time to return.

  Based on code supplied by:
  Michael P. Bobowski
  Atled Engineering Group
  Milwaukee, WI
  <mbobo@execpc.com>
}
  function Enumerate(lpnr : PNetResource; const ComputerName : String): Boolean;
  type
    TNetResourceArray = array[0..16383] of TNetResource;
    PNetResourceArray = ^TNetResourceArray;
  var
    hEnum: THandle;
    BufferSize, NumEntries, Entry: Integer;
    lpnrLocalc: PNetResourceArray;
  begin
    Result := False;
    if NO_ERROR <> WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0 {Usage: All resources}, lpnr, hEnum) then
    begin
      Exit;
    end;
    BufferSize := 16384; {16 kB}
    {Get as many entries as possible; NumEntries will be set to the number actually read (if successfull)}
    NumEntries := $FFFFFFFF;
    lpnrLocalc := AllocMem(BufferSize);
    repeat
      case WNetEnumResource(hEnum, NumEntries, lpnrLocalc, BufferSize) of
      NO_ERROR : begin
        for Entry := 0 to (NumEntries - 1) do
        begin
          {lpnrLocalc^[Entry].dwScope will be RESOURCE_GLOBALNET since that is what we asked for}
          if 0 = ANSICompareText(lpnrLocalc^[Entry].lpRemoteName,ComputerName) then
          begin
            {lpnrLocalc^[Entry].dwDisplayType = RESOURCEDISPLAYTYPE_SERVER should also be True}
            {RESOURCEUSAGE_CONTAINER = (lpnrLocalc^[Entry].dwUsage and RESOURCEUSAGE_CONTAINER) should also be True}
            Result := True;
            break;
          end; {then}
          {ResourceType is irrelevant}

          if (lpnrLocalc^[Entry].dwDisplayType = RESOURCEDISPLAYTYPE_DOMAIN) or
             (lpnrLocalc^[Entry].dwDisplayType = RESOURCEDISPLAYTYPE_NETWORK) then
          begin
            {Must recurse}
            if RESOURCEUSAGE_CONTAINER = (lpnrLocalc^[Entry].dwUsage and RESOURCEUSAGE_CONTAINER) then
            begin
              {Recursion possible}
              Result := Enumerate(@(lpnrLocalc^[Entry]), ComputerName);
              if Result then
                break;
            end; {then}
          end; {then}
        end; {for}
      end; {NO_ERROR}

      ERROR_MORE_DATA : begin
        {The buffer is too small for even one entry: increase the buffer...}
        FreeMem(lpnrLocalc, BufferSize);
        BufferSize := 2*BufferSize;
        lpnrLocalc := AllocMem(BufferSize);
        {...and try again}
        end; {ERROR_MORE_DATA}
      else
      {
      ERROR_NO_MORE_ITEMS  (Enumeration is complete)
      ERROR_INVALID_HANDLE (The handle given by the hEnum parameter is not valid)
      ERROR_NO_NETWORK     (No network is present)
      ERROR_EXTENDED_ERROR (use WNetGetLastError for details)
      }
         break;
      end; {case}
    until Result;

    FreeMem(lpnrLocalc, BufferSize);
    WNetCloseEnum(hEnum);
  end; {Enumerate}

begin
  {Start enumeration at the root of the network}
  Result := Enumerate(Nil, ComputerName);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // Edit.Text¿¡ ÄÄÇ»ÅÍ À̸§À» »ç¿ëÀÚ°¡ ÀÔ·ÂÇÔ
  if Pos('\', Edit1.Text) = 0 then
    Edit1.Text := '\'+Edit1.Text;

  if RemoteComputerExists(Edit1.Text) then
    ShowMessage('³×Æ®¿öÅ© ÄÄÇ»ÅÍ°¡ Á¸ÀçÇÕ´Ï´Ù ')
  else
    ShowMessage('³×Æ®¿öÅ© ÄÄÇ»ÅÍ°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù ');
end;

end.





451   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ÆÄÀÏÀÇ º¯°æ/»ý¼º/»ç¿ëÇÑ ³¯Â¥ ¹Ù²Ù±â  ±è¿µ´ë 2003/03/07 5445 1382
450   [½Ã½ºÅÛ] ¼³Ä¡µÈ modem ¸®½ºÆ® ±¸ÇÏ±â  ±è¿µ´ë 2003/03/07 5448 1582
449   [À©µµ¿ìÁî API] Windows 3.1x/32s/95/98/NT ±¸ºÐÇÏ±â  ±è¿µ´ë 2003/03/07 3500 1002
448   [½Ã½ºÅÛ] WM_COPYDATA ¸Þ½ÃÁö¸¦ »ç¿ëÇÑ IPC  ±è¿µ´ë 2003/03/07 7273 1787
447   [½Ã½ºÅÛ] ¸¶¿ì½ºÀÇ ÁÂ,¿ì ¹öÆ°ÀÇ µ¿ÀÛ ¹Ù²Ù±â  ±è¿µ´ë 2003/03/07 4792 1312
446   [À©µµ¿ìÁî API] windowÀÇ maximize, minimize ¾Ë¾Æ³»±â  ±è¿µ´ë 2003/03/07 5326 1432
445   [½Ã½ºÅÛ] WM_COPYDATA ¸Þ½ÃÁö¸¦ »ç¿ëÇÑ IPC 2  ±è¿µ´ë 2003/03/07 6513 1856
444   [À©µµ¿ìÁî API] µ¥½ºÅ©Å¾ ¾ÆÀÌÄÜ ÀüºÎ °¨Ãß±â/º¸ÀÌ±â  ±è¿µ´ë 2003/03/07 4474 1318
443   [À©µµ¿ìÁî API] ¹ÙÅÁÈ­¸é, ½ÃÀÛ¸Þ´º icon ¼û±â±â  ±è¿µ´ë 2003/03/07 5818 1417
442   [½Ã½ºÅÛ] ¸¶¿ì½º°¡ ¼³Ä¡µÇ¾î ÀÖ´ÂÁö °Ë»çÇÏ±â  ±è¿µ´ë 2003/03/07 7460 2004
441   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] MemoÀÇ ÀÔ·Â Çà¼ö/¿­¼ö Á¦ÇÑÇÏ±â  ±è¿µ´ë 2003/03/07 4199 1384
440   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] À©µµ¿ìÁî ÆÄÀϸíÀÇ ¹«È¿ÇÑ ±¸¼º¹®ÀÚ  ±è¿µ´ë 2003/03/07 5190 1596
439   [½Ã½ºÅÛ] ÆÄÀÏÀÌ ´Ù¸¥ ÇÁ·Î±×·¥¿¡ ÀÇÇØ »ç¿ëÁßÀÎÁö °Ë»ç  ±è¿µ´ë 2003/03/07 6935 1640
438   [½Ã½ºÅÛ] ÀÏÁ¤½Ã°£ °æ°úÈÄ ¾ø¾îÁö´Â MessageBox  ±è¿µ´ë 2003/03/07 7949 1556
437   [½Ã½ºÅÛ] CPU speed ±¸Çϱâ 2  ±è¿µ´ë 2003/03/07 4755 1315
436   [³×Æ®¿÷/ÀÎÅͳÝ] LAN ¿¡ Á¢¼ÓÇß´ÂÁö °Ë»çÇÏ±â  ±è¿µ´ë 2003/03/07 5039 1357
435   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TIFF Images and manipulation  ±è¿µ´ë 2003/03/07 5763 1448
434   [½Ã½ºÅÛ] reboot 95/98/NT  ±è¿µ´ë 2003/03/07 5093 1448
433   [³×Æ®¿÷/ÀÎÅͳÝ] Ethernet ·£Ä«µåÀÇ MAC adress ±¸ÇÏ±â  ±è¿µ´ë 2003/03/07 8003 2326
432   [³×Æ®¿÷/ÀÎÅͳÝ] Serial Port »ç¿ëÇÏ±â  ±è¿µ´ë 2003/03/07 7490 1907
431   [À©µµ¿ìÁî API] IEÀÇ ÇöÀç url °¡Á®¿À±â  ±è¿µ´ë 2003/03/07 5251 1312
430   [½Ã½ºÅÛ] DOS-matrix ÇÁ¸°ÅÍ¿¡ ÀμâÇÏ±â  ±è¿µ´ë 2003/03/07 5267 1370
429   [À©µµ¿ìÁî API] À©µµ¿ìÁî "½ÃÀÛ" ¸Þ´º¸¦ ³» ÇÁ·Î±×·¥ ¾ÈÀ¸·Î...  ±è¿µ´ë 2003/03/07 5150 1423
428   [À©µµ¿ìÁî API] ¸ðµç âÀ» ¾ÆÀÌÄÜ Ç¥½Ã/Ãë¼Ò  ±è¿µ´ë 2003/03/07 4893 1386
427   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] RichEdit È­¸é¿¡ º¸¿©Áö´Â ù¹ø°/¸¶Áö¸· Çà¹øÈ£  ±è¿µ´ë 2003/03/07 6101 1596
  [³×Æ®¿÷/ÀÎÅͳÝ] ³×Æ®¿öÅ© ÄÄÇ»ÅÍ°¡ Á¸ÀçÇÏ´ÂÁö °Ë»çÇÏ±â  ±è¿µ´ë 2003/03/07 5447 1424
425   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ÅؽºÆ® ÆÄÀÏ ÇÕÄ¡±â(Merging)  ±è¿µ´ë 2003/03/07 5762 1346
424   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TRichEdit¸¦ »ç¿ëÇÑ syntax highlighting ¿¹Á¦  ±è¿µ´ë 2003/03/07 7106 1902
423   [³×Æ®¿÷/ÀÎÅͳÝ] NetMask ¾Ë¾Æ³»±â  ±è¿µ´ë 2003/03/07 7768 2004
422   [À©µµ¿ìÁî API] ApplicationÀÇ ÃÖ¼ÒÈ­½Ã Zooming È¿°ú ÁÖ±â2  ±è¿µ´ë 2003/03/07 13944 1660
421   [½Ã½ºÅÛ] driveÀÇ ÀϷùøÈ£ ¹Ù²Ù±â  ±è¿µ´ë 2003/03/07 7149 1729
420   [½Ã½ºÅÛ] CPUÀÇ »ç¿ë·ü ±¸ÇÏ±â  ±è¿µ´ë 2003/03/07 5542 3411
419   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¼ýÀÚÀÇ ±Ù»çÄ¡ ±¸ÇÏ±â  ±è¿µ´ë 2003/03/07 4700 1279
418   [À©µµ¿ìÁî API] How to flush key buffer  ±è¿µ´ë 2003/03/07 5143 1384
417   [COM/OLE] À©µµ¿ìÁî ½ÃÀÛÀÇ "½ÇÇà" È­¸é ¶ç¿ì±â  ±è¿µ´ë 2003/03/07 4476 1268
416   [À©µµ¿ìÁî API] ÀÛ¾÷°ü¸®ÀÚÀÇ task switching ±ÝÁö½ÃÅ°±â  ±è¿µ´ë 2003/03/07 5252 1383
415   [³×Æ®¿÷/ÀÎÅͳÝ] ÀÎÅͳݿ¡ LAN ¶Ç´Â ModemÀ¸·Î Á¢¼ÓÁßÀÎÁö °Ë»ç  ±è¿µ´ë 2003/03/07 5658 1574
414   [À©µµ¿ìÁî API] Window Handle ·Î ½ÇÇàÆÄÀÏ¸í ±¸ÇÏ±â  ±è¿µ´ë 2003/03/07 5463 1491
413   [³×Æ®¿÷/ÀÎÅͳÝ] Getting Novell Netware Login NAME  ±è¿µ´ë 2003/03/07 4144 1149
412   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ListBoxÀÇ È­¸é¿¡ º¸¿©Áö´Â ÃÖ»óÀ§ Item ¹øÈ£  ±è¿µ´ë 2003/03/07 4834 1299

[ÀÌÀü 10°³] [1]..[11][12][13] 14 [15][16][17][18][19][20]..[25] [´ÙÀ½ 10°³]
 

Copyright 1999-2025 Zeroboard / skin by zero