コンソールアプリを作りたい このアプリケーションの目的は、コピー アンド ペースト中にローカル ドライブをネットワーク ドライブに変更することです。" "をコピーすると、" "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
ます。素人の視点で目的が明確であることを願っています