我想创建一个控制台应用程序。该应用程序的目的是在复制粘贴时将本地驱动器更改为网络驱动器;如果我复制“ C:\TempEI4
”它应该粘贴“ \\MY IP address\C$\TempEI4
”
我需要做的事情:
- 将它添加到 Windows 启动中,以便在我启动 Windows XP/7 时它应该在后台运行?
- 当我的剪贴板中有数据时运行应用程序。
- 创建一个独立的
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
”。希望外行观点清楚目的