PDA

View Full Version : سوال: بستن یک فایل باز



cerezaei65
پنج شنبه 13 مهر 1391, 09:27 صبح
سلام
داخل برنامم یه قسمت یه فایل رو باز می کنم اما اگه باز باشه پیام میده
میخوام قبل از باز کردن فایل چک کنه اگه بازه اونو ببنده
فایلمم word هست

ehsan7007
پنج شنبه 13 مهر 1391, 09:40 صبح
سلام ، من نمیدونم منظورتون از باز کردن چیه ، مثلا تو برنامه تون نمایش میدید یا با خود ورد باز می کنید .

در هر حال می تونید یه متغییر bool تعریف کنید و هنگام باز کردن چک کنه اگر false بود فایل رو باز کنه و متغییر رو true کنه.


موفق باشید.

cerezaei65
پنج شنبه 13 مهر 1391, 09:43 صبح
با نرم افزار word باز میشه
چجوری چکش کنم؟
میخوام خود برنامه اونو ببنده در صورت باز بودن اون فایل

ehsan7007
پنج شنبه 13 مهر 1391, 10:36 صبح
این رو تعریف می کنید دوست من :

bool file;

حالا ، تو باتنی که فایلتون رو باز می کنید به این صورت می شه :

if (file == false)
{

Process.Start(@"D:\c#.docx");
file = true;
}

else
{
foreach (Process p in Process.GetProcessesByName("winword"))
{
p.CloseMainWindow();
file = false;
}
}

راه های دیگه ای هم برای فهمیدن این که ایا برنامه ای باز هست یا نه و یا بستن یک سند ورد هست ؛ اما فکر می کنم با همین روش کارتون راه بیافته.

موفق و سربلند باشید.

masoud_z_65
پنج شنبه 13 مهر 1391, 10:44 صبح
دوست عزیز اسم این پروسس ها رو از کجا میفهمی؟
منظورم اون winword هست که نوشتی
مثلا برای اکسل چی میشه؟
میشه لیستشو بگی از کجا میفهمی؟

ehsan7007
پنج شنبه 13 مهر 1391, 10:47 صبح
سلام دوست عزیز ، مثلا اکسل رو باز می کنی ، بعد از تسک منیجر روش راست کلیک کن و go to process روبزن ، اونجا اسمش نوشته .

مثلا برنامه اکسل همونه یعنی excel


موفق باشید.

cerezaei65
پنج شنبه 13 مهر 1391, 11:27 صبح
ممنون
اما اینجوری تمام فایل های word که باز هستند غیر از اونی که ما باز کردیم رو میبنده!!!
چجوری فقط همونو ببندم؟

danialafshari
پنج شنبه 13 مهر 1391, 14:16 عصر
سلام دوست عزیز
منم مشکل شما رو داشتم و می خواستم بعد از خروج از برنامه فایل رو پاک کنم که ارور در حال اجرا رو داد و راه حلش اینه :
شما باید توسط کامپوننتی که فایل رو باز می کنی اونو Dispose کنی همین !
به عنوان مثال :

textBox1.Dispose();

Dispose فایل رو از تو حافظه خالی می کنه

ehsan7007
پنج شنبه 13 مهر 1391, 17:20 عصر
ممنون
اما اینجوری تمام فایل های word که باز هستند غیر از اونی که ما باز کردیم رو میبنده!!!
چجوری فقط همونو ببندم؟

آره ، کل ورد رو می بنده ، چه اون هایی رو که شما باز کردی چه اونهایی رو که بدون برنامه باز شدن.

این کار یکم پیچیدگیش بیشتره ؛ چند تا لینک در این مورد می زارم که امید وارم به دردتون بخوره .

Document.Close Method (http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.document.close(v=vs.80 ).aspx)
how to close a running instance of Word document? (C#) (http://stackoverflow.com/questions/7445831/how-to-close-a-running-instance-of-word-document-c)

این لینک هم شاید بدرد بخوره :
C# app automates Word (CSAutomateWord) (http://code.msdn.microsoft.com/office/CSAutomateWord-f422cae5)