[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

netsharecheck

Posted on 2001-07-15
8
Medium Priority
?
616 Views
Last Modified: 2012-05-04
can somebody please help me to use the "netsharecheck" function?  What sort of values should I insert at the (LPTSTR) device value?

The little program I'm trying to write, is a program that displays to you which directories and devices are shared on your computer (and some other network-related functions).  I think the "netsharecheck" function is the one to use for this situation.

An example would be appreciated
Thanks for *any* help
Lmoen
0
Comment
Question by:Lmoen
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
8 Comments
 
LVL 1

Expert Comment

by:darkloser
ID: 6284127
listen...
0
 
LVL 21

Accepted Solution

by:
gemarti earned 450 total points
ID: 6284390
If you want to only look at the local computer then you enter NULL for LPTSTR

If you have a server application you will put in code like this:

\\servername  or just  servername

LPTSTR Device - When you share a resource you usually will give it a name like BLDG2P1 is a printer on \\servername
(\\servername\BLDG2P1) the BLDG2P1 is the device name.
0
 
LVL 20

Expert Comment

by:Madshi
ID: 6284778
Hi Lmoen,

as far as I understand, NetShareCheck is only for checking whether a specific device is shared. You can't use this for directories etc.
Furthermore you should know that the network APIs are *completely* different in winNT and win9x based systems. The names are sometimes the sames, but the parameters differ always.

If you want to have it the easy way (and if you have at least Delphi 4), you might want to try my package "madSecurity" (free for non-commercial use):

http://help.madshi.net/Data/madSecurity.htm
http://help.madshi.net/Data/Shares.htm

This package does what you need (at least if I understood your needs correctly) and works fine in both NT and 9x.

Regards, Madshi.
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 21

Expert Comment

by:gemarti
ID: 6285395
BTW: If you want to locate shares on a remote machine look at

\\machinename\HKEY_LOCAL_MACHINE\Security\ACCESS

Get a list of sub keys with RegEnumKey().

To do this RemoteAdmins must be installed on the remote machine and you must be part of the authorized group who can access the machine.

You can use the same method for your local machine if that is all you are interested in.
0
 
LVL 3

Expert Comment

by:vladh
ID: 6287039
listening....
0
 

Author Comment

by:Lmoen
ID: 6287378
please check my usage, I still can't get it to work, and I don't know what value the LPDWORD variable should be...?

The help file says the following, but I don't know how to get the adress, and i.e implement this =>
(Pointer to an address that contains the type of device share. On return the address pointed to by the type parameter contains the type of share the device is offered with. This parameter is set only if the function returned successfully.)

var
 temp : LPDWORD;
begin
 temp := ???????
 NetShareCheck(NULL, 'Canon Bubble-Jet BJC-600', temp);
end;

(Canon is the printer I have)

Thanks for the help, again
Lmoen
0
 
LVL 21

Expert Comment

by:gemarti
ID: 6288060
Documentation indicates that netsharecheck is obsolete. It is a ported LAN Manager Function.....

Here is some code you can try:


unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
 dwResult,dwResultEnum : DWORD;
 lpnr : PNetResourceA;
 cbBuffer : DWORD;
 cEntries : DWord;
 ListRes : String;
 nr : PNETRESOURCEA;
 hEnum, lpcCount: Cardinal;
 lpBuff: longInt;
 s : String;
 p, CCount : LongInt;
 i:  integer;
begin
  //lpcCount := 0xFFFFFFFF;
  cbBuffer := 16384;
  CCount := $FFFFFFFF;
  nr.dwUsage := RESOURCEUSAGE_CONTAINER;
  nr.lpRemoteName := 0;
  dwResult := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,0,nr,hEnum);
  //

  if dwResult = NO_ERROR then
    begin
      lpBuff := GLOBALALLOC(GPTR,cbBuffer);
      dwResultEnum := WNetEnumResource(hEnum, cEntries, nr, cbBuffer);
      p := p + length(nr.lpRemotename);
      SetLength(s,p);
      s := PChar(nr.lpRemoteName);
      ListBox1.Items.Add(IntToStr(p));
    end;

end;


end.


Good Luck.
0
 
LVL 21

Expert Comment

by:gemarti
ID: 6288065
oops...

ListBox1.Items.Add(s);
0

Featured Post

What’s Wrong with Your Cloud Strategy ?

Even as many CIOs are embracing a cloud-first strategy, the reality is that moving to the cloud is a lengthy process and the end-state is likely to be a blend of multiple clouds—public and private. Learn why multicloud solutions matter in this webinar by Nimble Storage.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
Suggested Courses

656 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question