PDA

View Full Version : Map network Drive در ویندوزهای 7 و 8



hadisalahi2
سه شنبه 16 اردیبهشت 1393, 19:06 عصر
با سلام به همگی دوستان
من یک تیکه کد دارم که کار Map کردن پوشه های Share شده رو انجام میده

این تیکه کد در ویندوز XP خیلی راحت این کار رو انجام میده.
اما متاسفانه در ویندوزهای 7 و 8 عمل Map کردن صورت نمی گیره



function ConnectDrive(Drive: string; Folder: string;
Username: string; Password: string; RestoreAtLogon: Boolean): HRESULT;
var
NetResource: TNetResource;
dwFlags: DWORD;
Begin
with NetResource do begin
dwType := RESOURCETYPE_DISK;
lpLocalName := PChar(Drive);
lpRemoteName := PChar(Folder);
lpProvider := nil;
end;
if (RestoreAtLogon) then dwFlags := CONNECT_UPDATE_PROFILE
else dwFlags := 0;


Result := WNetAddConnection2(NetResource, PChar(Password),
PChar(Username), dwFlags);


end;


این مدلی هم استفاده میکنم:


ConnectDrive(DriveName.Text,PathName.Text,UserName .Text,Password.Text,False)


موقعی که عمل Map کردن رو با UserName و Pass این کار رو انجام میدم ، عملیات مپ کردن صورت نمیگره
اما موقعی که این کار رو بدون یوزر و پس انجام میدم ، پوشه شیر شده رو مپ میکنه

دوستان در این مورد چه نظری دارند؟

Mask
سه شنبه 16 اردیبهشت 1393, 19:29 عصر
خودتون اصلا کد رو خوندید؟
RestoreAtLogon کجا مقدار میگیره که اومدید با IF بررسیش کردید.؟
مقدار dwFlags همیشه صفر میشه.
اینو حذف کن.

if (RestoreAtLogon) then dwFlags := CONNECT_UPDATE_PROFILE
else dwFlags := 0;
مستقیم به جای dwFlags از CONNECT_UPDATE_PROFILE استفاده کن.

hadisalahi2
چهارشنبه 17 اردیبهشت 1393, 10:50 صبح
خودتون اصلا کد رو خوندید؟
RestoreAtLogon کجا مقدار میگیره که اومدید با IF بررسیش کردید.؟
مقدار dwFlags همیشه صفر میشه.
اینو حذف کن.

اثرات کپی کردن کدها همینه دیگه داداش طلا :لبخند:

دستت طلا ، طلا جان
این مشکل حل شد
اما یک مشکل دیگه وجود داره :اشتباه:

وقتی که Map Network Drive رو ایجاد میکنی ،
بعد از اینکه Disconnect میشی ، کاربر میتونه هنوز هم به پوشه Share شده ای که اخیرا Map کردمش
بدون یوزر و پسورد دسترسی داشته باشه.

در صورتی که قبل از Map کردن ، موقع ورود به پوشه مورد نظر ، کادر یوزر پس نشون داده میشه.:ناراحت:

برای رفع این مشکل چه راهی رو پیشنهاد میکنید؟:متفکر:

Mask
چهارشنبه 17 اردیبهشت 1393, 11:18 صبح
اثرات کپی کردن کدها همینه دیگه داداش طلا :لبخند:

دستت طلا ، طلا جان
این مشکل حل شد
اما یک مشکل دیگه وجود داره :اشتباه:

وقتی که Map Network Drive رو ایجاد میکنی ،
بعد از اینکه Disconnect میشی ، کاربر میتونه هنوز هم به پوشه Share شده ای که اخیرا Map کردمش
بدون یوزر و پسورد دسترسی داشته باشه.

در صورتی که قبل از Map کردن ، موقع ورود به پوشه مورد نظر ، کادر یوزر پس نشون داده میشه.:ناراحت:

برای رفع این مشکل چه راهی رو پیشنهاد میکنید؟:متفکر:
کد دیسکانکت رو بزارید.

hadisalahi2
چهارشنبه 17 اردیبهشت 1393, 12:06 عصر
داداش مثل اینکه یک جای کار میلنگه :متفکر:

من روش کامل اشتراک گذاری پوشه رو اینجا میزارم ، بعد شما نیگاه کنید ببینید کجای کار من اشکال داره

چون بعضی مواقع جواب میده
و بعضی مواقع مثل الان جواب نمیده
خلاصه اینکه اعصاب برام نمونده :عصبانی++:

توی پست دیگه روش کارم رو با تصویر نشون میدم
شما ببینید کجای کار مشکل داره

hadisalahi2
چهارشنبه 17 اردیبهشت 1393, 12:11 عصر
روشی که من برای Share کردن یک فولدر استفاده میکنم:

1- اول یک User از قسمت Computer Management ایجاد میکنم

2- پوشه رو به صورت زیر اشتراک گذاری می کنم:

البته ببخشید عکسها از آخر اومده به اول

حالا بعد از این مدل Share کردم در بعضی موارد Map کردن صورت نمی گیره.

به نظر شما مشکل کجاست؟

hadisalahi2
چهارشنبه 17 اردیبهشت 1393, 12:27 عصر
در ضمن هنگامی که در ویندوز 8 یک پوشه رو وقتی تنها با یوزری که خودم تعریف کردم Share میکنم

هنگام دسترسی بهش این پیام رو میده :



این پیام زمانی داده میشه که یوزر Everyone و بقیه یوزرها رو از لیست پاک میکنم.