PDA

View Full Version : سوال: نحوه دسترسی به open with ؟



mohammadriano
دوشنبه 16 آبان 1390, 17:36 عصر
با سلام
من یک فایل دارم با پسوند kkp خوب یک برنامه دارم که این فایل رو پشتیبانی می کند (مثلاً mahmood.kkp ) حالا تو سیستم خودم روی یکی از این فایل ها کلیک راست کردم و open with را به فایل اجرایی برنامه اصلی انتصاب کردم حالا icon تمامی پسوند های kkp در کامپیوتر من به شکل icon برنامه اصلی درآمده است و در صورت open کردن یک فایل با پسوند kkp برنامه من با اطلاعات همین kkp باز می شود
فکر کنم منظورم رو به خوبی رسونده باشم
مثلا زمانی که adobe reader نصب نیست پسوند pdf پشتیبانی نمی شه
حالا در سیستمی که برنامه می خواد نصب بشه به طور اتوماتیک پسوند kkp در برنامه من پشتیبانی بشه

arash020
چهارشنبه 18 آبان 1390, 14:32 عصر
این کدش ولی به زبان C
زحمت تبدیلش با خودت



private System.Windows.Forms.Button btnBrowseImg;
private System.Windows.Forms.OpenFileDialog openFileDialog1;
public System.Windows.Forms.PictureBox pictureBox1;
Namespaces used in this application

Collapse | Copy Code
using System.Runtime.InteropServices;
using System.ComponentModel;
using System.Drawing;
//---------------------//

[Serializable]
public struct ShellExecuteInfo
{
public int Size;
public uint Mask;
public IntPtr hwnd;
public string Verb;
public string File;
public string Parameters;
public string Directory;
public uint Show;
public IntPtr InstApp;
public IntPtr IDList;
public string Class;
public IntPtr hkeyClass;
public uint HotKey;
public IntPtr Icon;
public IntPtr Monitor;
}

// Code For OpenWithDialog Box

[DllImport("shell32.dll", SetLastError = true)]
extern public static bool
ShellExecuteEx(ref ShellExecuteInfo lpExecInfo);

public const uint SW_NORMAL = 1;

static void OpenAs(string file)
{
ShellExecuteInfo sei = new ShellExecuteInfo();
sei.Size = Marshal.SizeOf(sei);
sei.Verb = "openas";
sei.File = file;
sei.Show = SW_NORMAL;
if (!ShellExecuteEx(ref sei))
throw new System.ComponentModel.Win32Exception();
}

mohammadriano
چهارشنبه 18 آبان 1390, 15:27 عصر
ممنون
من که نتونستم اما فکر کنم تو Shell باشه
ولی فکر نکنم این قدر کد نوشتن بخواد