我想创建一个控制台应用。应用程序的目的是在复制粘贴时将本地驱动器更改为网络驱动器;
如果我复制“C:\TempEI4
”
它应该粘贴“\\MY IP address\C$\TempEI4
”
我需要做的事情:
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
”。希望外行人的观点明确目的