Я пытаюсь создать консоль или форму, где вы перетащите файл на соответствующий .exe. . Программа получит этот файл и хеш-файл, а затем настроит текст буфера обмена на сгенерированный хэш ,Получение хаша из аргументов командной строки
Это мой код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.Windows.Forms;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string path = args[0];
StreamReader wer = new StreamReader(path.ToString());
wer.ReadToEnd();
string qwe = wer.ToString();
string ert = Hash(qwe);
string password = "~" + ert + "~";
Clipboard.SetText(password);
}
static public string Hash(string input)
{
MD5 md5 = MD5.Create();
byte[] inputBytes = Encoding.ASCII.GetBytes(input);
byte[] hash = md5.ComputeHash(inputBytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("X2"));
}
return sb.ToString();
}
}
}
Когда я единственный exe-файл из релиза, и перетащить файл на него, я получаю какое-то резьб error- я не могу представить, потому что это в консоли, а не в vb2010. Спасибо за любую помощь
Что произойдет, если вы просто запустите программу * с * консоли, просто передав имя файла в качестве аргумента? Таким образом, вы должны получить полную трассировку стека, которую вы можете скопировать и вставить в вопрос. Обратите внимание, что ваш код в любом случае ошибочен, так как вы не должны читать его как строку в первую очередь - просто вызовите 'ComputeHash', проходящую в потоке. –
@ Jon Skeet - Конечно, можете ли вы ответить, как? – Dean
Ну, на какой бит вы застряли? –