在Windows启动时运行控制台应用程序并使其在Windows上运行点击?

时间:2013-11-14 17:52:54

标签: c# .net console console-application

我想创建一个控制台应用。应用程序的目的是在复制粘贴时将本地驱动器更改为网络驱动器; 如果我复制“C:\TempEI4” 它应该粘贴“\\MY IP address\C$\TempEI4

我需要做的事情:

  1. 将它添加到Windows启动时,这样当我启动Windows XP / 7时,它应该在后台运行吗?
  2. 我的剪贴板中有数据时运行应用程序。
  3. 创建一个独立的exe,以便它可以在任何系统上运行。
  4. 我已经完成了编码,但需要对其进行一些修改,不符合我的要求。请帮助我。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.InteropServices;
    using System.Net;
    using System.Net.Sockets;
    
    namespace CopyPasteNetworkPath
    {
        class Program
        {
            [DllImport("user32.dll")]
            internal static extern bool OpenClipboard(IntPtr hWndNewOwner);
    
            [DllImport("user32.dll")]
            internal static extern bool CloseClipboard();
    
            [DllImport("user32.dll")]
            internal static extern bool SetClipboardData(uint uFormat, IntPtr data);
    
            [STAThread]
            static void Main(string[] args)
            {
                Program p = new Program();
                OpenClipboard(IntPtr.Zero);
                var copiedText = System.Windows.Forms.Clipboard.GetText();
                IPAddress ipAdress = p.LocalIPAddress();
                string networkIP = @"\\" + ipAdress.ToString().Trim() + @"\" + "C$\\";
                string networkAddress = string.Empty;
                if(copiedText.StartsWith(cDrive))
                {
                    networkAddress = copiedText.Replace(cDrive,networkIP);
                }
                if(!string.IsNullOrEmpty(networkAddress))
                System.Windows.Forms.Clipboard.SetText(networkAddress,System.Windows.Forms.TextDataFormat.UnicodeText);
            }
            /// <summary>
            /// Geting IP
            /// </summary>
            /// <returns></returns>
            private IPAddress LocalIPAddress()
            {
                if (!System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
                {
                    return null;
                }
    
                IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
    
                return host
                    .AddressList
                    .FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork);
            }
            private static string cDrive = "C:\\";
    
        }
    }
    

    假设我有一个需要在Windows启动时在后台运行的应用程序。目的是改变文本。假设它会将复制的文本更改为大写。如果我复制“I am Rahul”,则应粘贴“I AM RAHUL”。希望外行人的观点明确目的

0 个答案:

没有答案