当前位置:编程学习 > C#/ASP.NET >>

在“我在电脑”中使用右键启动,并得到所有选择文件

我要实现的功能如下:
能够在“我的电脑”中,选择一些文件后,通过右键来启动程序,并列出所有选择的文件(只能启动一个实例,不能选择几个文件就启动几个实例)

请各位帮忙,谢谢 --------------------编程问答-------------------- 参考一下这个.
http://zhidao.baidu.com/question/21620523.html --------------------编程问答--------------------
引用楼主 whitesea 的帖子:
我要实现的功能如下: 
能够在“我的电脑”中,选择一些文件后,通过右键来启动程序,并列出所有选择的文件(只能启动一个实例,不能选择几个文件就启动几个实例) 

请各位帮忙,谢谢

通过右键启动是什么意思? --------------------编程问答-------------------- 改注册表就行了,在右键菜单里增加一项 --------------------编程问答-------------------- 没搞清楚,帮顶先. --------------------编程问答--------------------

只启动一个程序的实例:   
    
  using   System.Threading;   
  using   System.Diagnostics;   
  using   System.Runtime.InteropServices;   
  using   System.Reflection;   
    
  ///   <summary>   
  ///   应用程序的主入口点。   
  ///   </summary>   
  [STAThread]   
  static   void   Main()     
  {   
  Process   instance   =   RunningInstance();   
  if   (instance   ==   null)   
  {   
  Application.Run(new   Form1());   
  }   
  else   
  {   
  //MessageBox.Show("此程序已经启动!");   
  HandleRunningInstance(instance);   
  }       
  }   
    
  [DllImport("User32.dll")]     
  private   static   extern   bool   ShowWindowAsync(IntPtr   hWnd,   int   cmdShow);   
    
  [DllImport("User32.dll")]   
  private   static   extern   bool   SetForegroundWindow(IntPtr   hWnd);   
    
  private   const   int   WS_SHOWNORMAL   =   1;   
    
  private   static   Process   RunningInstance()   
  {   
  Process   current   =   Process.GetCurrentProcess();   
  Process[]   processes   =   Process.GetProcessesByName(current.ProcessName);   
    
  foreach   (Process   process   in   processes)   
  {   
  if   (process.Id!=current.Id)   
  {   
  if   (Assembly.GetExecutingAssembly().Location.Replace("/",   "\\")==current.MainModule.FileName)   
  {   
  return   process;   
  }   
  }   
  }   
    
  return   null;   
  }   
    
  private   static   void   HandleRunningInstance(Process   instance)   
  {   
  ShowWindowAsync(instance.MainWindowHandle,   WS_SHOWNORMAL);   
    
  SetForegroundWindow(instance.MainWindowHandle);   
  }   

--------------------编程问答--------------------
引用 2 楼 wesleyluo 的回复:
通过右键启动是什么意思?


比如我选择了a.txt,b.txt,然后点击右键,选择我自己添加的菜单,启动程序,程序就显示我选择了哪些文件,列出文件名(a.txt,b.txt) --------------------编程问答-------------------- 谢谢楼上几位

通过右键启动,没什么问题,只启动一个实例,也没什么问题


现在问题是,我选择了2个文件,启动的时候,只能得到一个文件的路径信息(因为本来不限制只启动一个实例的话,选择几个文件就会启动几个实例的)

大家帮忙看看啊,该怎么做,最好能给个最简单的示例
--------------------编程问答-------------------- 要做个shell 扩展dll,C#好像办不到,要用C++来写
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,