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