0

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

我需要做的事情:

  1. 将它添加到 Windows 启动中,以便在我启动 Windows XP/7 时它应该在后台运行?
  2. 当我的剪贴板中有数据时运行应用程序。
  3. 创建一个独立的exe,以便它可以在任何系统上工作。

我已经完成了它的编码,但需要对其进行一些修改,不符合我的要求。请帮助我。

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”。希望外行观点清楚目的

4

0 回答 0