PDA

View Full Version : اجرای نرم افزار پس از دابل کلیک روی یک FileType خاص



Aryan.Software
شنبه 14 تیر 1393, 14:30 عصر
با سلام خدمت اساتید

من میخواستم وقتی سر یه فایل که پسوند خاص مثل txt داره دابل کلیک کردم , به جای Notepad نرم افزار خودم باز بشه ؛ از طرف دیگه متن اون فایله داخل Textbox1 نشون داده بشه(در واقع اگه فقط بگید چجوری میشه آدرس اون فایله که دابل کلیک شده روش رو فهمید ؛ مشکل حله). خیلی ممنون میشم اگه جواب بدید

Mahdi-v
چهارشنبه 18 تیر 1393, 13:46 عصر
با سلام خدمت استاد گرامی اگه منظورتونو درست فهمیده باشم :لبخند: ::
برای open کردن یک فایل تکست که توی نوت پد ذخیره شد این سورس رو توی رویداد کلیک یک شی بنویسید :

Dim FILE_NAME As String = "D:\test.txt"
If System.IO.File.Exists(FILE_NAME) = True Then
Dim objReader As New System.IO.StreamReader(FILE_NAME)
RichTextBox1.Text = objReader.ReadToEnd
objReader.Close()
Else
MsgBox("File Does Not Exist")
End If

این سورس فایل تکستی به نام test.txt در درایو دی را باز میکنه و متنشو میریزه تو ریچ تکست باکس همینو میشه تعمیم داد به openfiledialog
امیدوارم کمکی کرده باشم موفق باشی

erfan_urchin
چهارشنبه 18 تیر 1393, 16:24 عصر
در واقع اگه فقط بگید چجوری میشه آدرس اون فایله که دابل کلیک شده روش رو فهمید ؛ مشکل حله
احتمالا شما فایل موردنظرتون رو از طریق OpenFileDialog انتخاب میکنید و روش دابل کلیک میکنید
اگه اینجوریه از کدزیر استفاده کنید
Dim s As String = openFileDialog1.FileName

Aryan.Software
چهارشنبه 18 تیر 1393, 17:35 عصر
ممنونم که پاسخ دادید ولی منظورم این نبود (:

من اصلا هیچ OpenFileDialog ندارم و نمیخوام که آدرس دقیق به نرم افزار بدم. تو نقاط مختلف کامپیوتر فایل های txt مختلف هست. من نرم افزار پیشفرض تغییر فایل های txt رو از نت پد به برنامه خودم تغییر دادم ولی وقتی برنامه باز میشه متن اون فایل در داخل TextBox1 نمایش داده نمیشه. (در واقع من هنوز نمیدونم چه کدی بنویسم که این اتفاق بیفته)

Mahdi-v
چهارشنبه 18 تیر 1393, 19:51 عصر
استاد عزیز الان کامل گرفتم منظورتونو من هر چی فارسی و انگلیسی سرچ کردم نتونستم همچین نوتپدی یدا کنم کهه بشه باهاشون باز کرد جالب اینجاست که میشه در صورتی که برنامه ی شما باز هست یه فایل تکست رو open کنی اما ظاهرا شما میخوای وقتی برنامه بستست وقتی تکست رو باز میکنی این متن ها توی تکست ها اضاف بشه ولی کلا این دو تا لینک جامع ترین توضیحاتی بودن که پیدا کردم واسه درست کردن یه نوت پد کامل :

لینک اول : http://visual-basic-tutorials.com/form/NotepadT.htm گام یه گام تو چهار صفحه یه نوت پد فوق العاده ساخته
لینک دوم : http://forum.codecall.net/topic/57183-how-to-make-a-advanced-tabbed-notepad-in-visual-basic-2010-2008/

Aryan.Software
چهارشنبه 18 تیر 1393, 21:09 عصر
نت پد رو که خودم درست کردم تموم هم شده. اینم لینکش: http://aryan-pc.blog.ir/post/PersianNotepad

فقط میخواستم برای نسخه بعد یکی از امکاناتی که به نرم افزار اضافه میشه دریافت محتوای یک فایل قبل از اجرا شدن برنامه باشه. (دقیقا مثل Notepad ویندوز)

این دو لینک هم از شانس من اشاره ای به چیزی که من میخوام نکرده (:

با این حال خیلی خیلی ممنون که وقت گذاشتید و گشتید

محمد آشتیانی
چهارشنبه 18 تیر 1393, 22:03 عصر
سلام
دوست عزیز ، تو این صفحه میتونی اطلاعات خوبی به دست بیاری
http://www.dreamincode.net/forums/topic/59639-associating-your-program-with-file-types/

در واقع برای نیاز شما هم برنامت نیاز به تغییرات داره و هم باید مقادیری رو تو رجیستری عوض کنی تا ویندوز برنامه شما رو برای باز کردن نوع خاصی از فایل بشناسه (اینجا نوع فایل البته تکست هست)





موفق باشید.

Aryan.Software
چهارشنبه 18 تیر 1393, 22:40 عصر
ممنونم آقای آشتیانی , در واقع کد ها رو باید داخل یک فایل کد vb مینوشتم که مشکل حل بشه

aliagamon
چهارشنبه 18 تیر 1393, 23:12 عصر
شما برنامه رو در رجستری ست کنید برای فایل خاصتون بعد با این کد از ارگومان های استارت اپ برنامه ادرس رو بگیرین :



MessageBox.Show(Environment.GetCommandLineArgs()(1 ))

Aryan.Software
پنج شنبه 19 تیر 1393, 01:31 صبح
خیلی خیلی ممنونم. دستتون درد نکنه. مشکلمو حل کردید (:

Aryan.Software
پنج شنبه 19 تیر 1393, 01:41 صبح
اگه کسی دیگه ای هم این مشکل رو داره کافیه از منو بالا در قسمت Project > Add New Item > Code File یه فایل با پسوند vb بسازه و این کد رو داخلش بنویسه:


Namespace My

Class MyApplication

#If _MyType = "WindowsForms" Then
Private Sub MyApplication_Startup(ByVal sender As Object, ByVal e As ApplicationServices.StartupEventArgs) Handles Me.Startup
'************************************************* ******
'* This is the sub that fires when your application starts. You can *
'* read the arguments from here. *
'************************************************* ******
Try
iFileData = Environment.GetCommandLineArgs()(1)
Form1.txtBase.Text = My.Computer.FileSystem.ReadAllText(iFileData)
Catch ex As Exception

End Try
End Sub

'OnInitialize is used for advanced customization of the My Application Model (MyApplication).
'Startup code for your specific application should be placed in a Startup event handler.
<Global.System.Diagnostics.DebuggerStepThrough()> _
Protected Overrides Function OnInitialize(ByVal commandLineArgs As System.Collections.ObjectModel.ReadOnlyCollection( Of String)) As Boolean
Return MyBase.OnInitialize(commandLineArgs)
End Function
#End If

End Class
End Namespace