c#如何打开内嵌资源呢

wanglifeng595 2016-02-17 09:38:06
比如内嵌资源txt,c#如何调用记事本程序打开它呢?
...全文
298 10 打赏 收藏 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdashewan 2016-02-18
  • 打赏
  • 举报
回复
除了发送消息,同样也适用于复制黏贴
本拉灯 2016-02-18
  • 打赏
  • 举报
回复
引用 8 楼 wanglifeng595 的回复:
[quote=引用 6 楼 本拉灯的回复:]你可以 Proecss.Start(记事本.exe) 然后记事本获取焦点, SendKeys.Send(内容)
看着不错,能写下关键代码吗,真的谢谢啦![/quote]


  public const uint WM_SETTEXT = 0x000C;
  void OpenNotePad()
        {
            string s = WindowsFormsApplication1.Properties.Resources._3; //资源内容
            Process p = Process.Start("notepad.exe");//打开记事本

            while (p.MainWindowHandle == IntPtr.Zero)
            {
                p.Refresh();
            }

            IntPtr vHandle = FindWindowEx(p.MainWindowHandle, IntPtr.Zero, "Edit", null);

            // 传递数据给记事本
            SendMessage(vHandle, WM_SETTEXT, 0, s);
        }

        /// <summary>
        /// 传递消息给记事本
        /// </summary>
        /// <param name="hWnd"></param>
        /// <param name="Msg"></param>
        /// <param name="wParam"></param>
        /// <param name="lParam"></param>
        /// <returns></returns>
        [DllImport("User32.DLL")]
        public static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, string lParam);

        /// <summary>
        /// 查找句柄
        /// </summary>
        /// <param name="hwndParent"></param>
        /// <param name="hwndChildAfter"></param>
        /// <param name="lpszClass"></param>
        /// <param name="lpszWindow"></param>
        /// <returns></returns>
        [DllImport("User32.DLL")]
        public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);


wanglifeng595 2016-02-18
  • 打赏
  • 举报
回复
引用 6 楼 本拉灯的回复:
你可以 Proecss.Start(记事本.exe) 然后记事本获取焦点, SendKeys.Send(内容)
看着不错,能写下关键代码吗,真的谢谢啦!
本拉灯 2016-02-18
  • 打赏
  • 举报
回复
你可以 Proecss.Start(记事本.exe) 然后记事本获取焦点, SendKeys.Send(内容)
crystal_lz 2016-02-18
  • 打赏
  • 举报
回复
引用 4 楼 wanglifeng595 的回复:
[quote=引用 2 楼 Poopaye的回复:]读取txt内容 保存到磁盘 用记事本打开
其实,就是不希望资源在硬盘出现,所以才将其内嵌的。哥们,还有其他办法吗[/quote] 那你为什么还要用记事本打开? 就算你搞定了 你是不是又要问 怎么让记事本 禁止保存文件?然后解决了禁止让记事本保存后 是不是又会问如何禁止在记事本使用ctrl+c?禁止使用右键复制?。。 还特么不如直接放一个 label 来显示。
wanglifeng595 2016-02-18
  • 打赏
  • 举报
回复
引用 2 楼 Poopaye的回复:
读取txt内容 保存到磁盘 用记事本打开
其实,就是不希望资源在硬盘出现,所以才将其内嵌的。哥们,还有其他办法吗
Justin-Liu 2016-02-18
  • 打赏
  • 举报
回复
什么是内嵌资源?
wanglifeng595 2016-02-18
  • 打赏
  • 举报
回复
引用 9 楼 本拉灯的回复:
[quote=引用 8 楼 wanglifeng595 的回复:] [quote=引用 6 楼 本拉灯的回复:]你可以 Proecss.Start(记事本.exe) 然后记事本获取焦点, SendKeys.Send(内容)
看着不错,能写下关键代码吗,真的谢谢啦![/quote]


  public const uint WM_SETTEXT = 0x000C;
  void OpenNotePad()
        {
            string s = WindowsFormsApplication1.Properties.Resources._3; //资源内容
            Process p = Process.Start("notepad.exe");//打开记事本

            while (p.MainWindowHandle == IntPtr.Zero)
            {
                p.Refresh();
            }

            IntPtr vHandle = FindWindowEx(p.MainWindowHandle, IntPtr.Zero, "Edit", null);

            // 传递数据给记事本
            SendMessage(vHandle, WM_SETTEXT, 0, s);
        }

        /// <summary>
        /// 传递消息给记事本
        /// </summary>
        /// <param name="hWnd"></param>
        /// <param name="Msg"></param>
        /// <param name="wParam"></param>
        /// <param name="lParam"></param>
        /// <returns></returns>
        [DllImport("User32.DLL")]
        public static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, string lParam);

        /// <summary>
        /// 查找句柄
        /// </summary>
        /// <param name="hwndParent"></param>
        /// <param name="hwndChildAfter"></param>
        /// <param name="lpszClass"></param>
        /// <param name="lpszWindow"></param>
        /// <returns></returns>
        [DllImport("User32.DLL")]
        public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);


[/quote] 哥们,您这种做法是对的
Poopaye 2016-02-17
  • 打赏
  • 举报
回复
读取txt内容 保存到磁盘 用记事本打开
wanglifeng595 2016-02-17
  • 打赏
  • 举报
回复
各位有何想法都可谈谈啊,谢谢啦

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧