ローカルマシンからuserNameを取得してログファイルに置き、ログファイルにユーザー名が記録されていない場合は.exeを開始するコードを作成しています。私は私のローカルマシン上でコードを実行することができたが、私は、サーバー上に置くと、それを実行したときに、私は読み込みエラー与えています:アプリケーションで手に入らない例外
詳細「Unhandeled例外がアプリケーションで発生しました」:
このダイアログボックスの代わりに ジャストインタイム(JIT)デバッグを呼び出す方法の詳細については、このメッセージの最後を参照してください。
** * ** * **** System.ComponentModel.Win32Exception(0x80004005が) ** 例外テキスト:ファイルを見つけることができないシステムは、システムで を指定.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)at System.Diagnostics.Process.Start() at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start(String fileName) System.Windows.Forms.Form.OnCreateControlでUser.Form1.Form1_Load(オブジェクト送信者、のEventArgs電子)System.Windows.Forms.Form.OnLoad(のEventArgs電子)で ()のSystem.Windows.Formsで で。 Control.CreateControl(ブールfIgnoreVisible)System.Windows.Forms.Control.WndProcでSystem.Windows.Forms.Control.CreateControl()System.Windows.Forms.Control.WmShowWindowで (メッセージ& M) で(メッセージ& System.Windows.Forms.ScrollableControl.WndProc System.Windows.Forms.Form.WndProcでSystem.Windows.Forms.Form.WmShowWindow(メッセージ& mにおける(メッセージ& M) ) (メッセージにおけるM)メートル)System.Windows.Forms.Control.ControlNativeWindow.OnMessage(メッセージ& M)System.Windows.Forms.Control.ControlNativeWindow.WndProcで (メッセージ& M) でSystem.Windows.Forms.NativeWindow.Callbackで(IntPtr hWnd、Int32 msg、IntPtr wparam、IntPtr lparam)
ここに私のコード///////////////////////////////////////////////////プロセスは、次のネットワークパスを見つけることができないので、
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
namespace User
{
public partial class Form1 : Form
{
public const string dir = @"C:\Numara";
public const string path = dir + @"\Audit.log";
public const string TrackIT = @"\\tkahd-nti-1\TrackIt\Audit32.exe /Q";
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//returns user name
//label1.Text = System.Environment.UserName.ToString();
string userName = System.Environment.UserName; //user name
if (!Directory.Exists(dir))
//directory does not exist
//create it
Directory.CreateDirectory(dir); //creates directory
//by this point directory is created
//now check file
if (!File.Exists(path))
//file does not exist, so create it
File.Create(path);
//Read data from the .dat file
string line = System.IO.File.ReadAllText(path);
//if the name of the logged in user
//is the same as the user name of the text file
//then exit program
if (line == userName)
Application.Exit();
else
//clear fields and write new name to file and begin audit
{
//clears fields
using (FileStream stream = new FileStream(@"C:\Numara\Audit.log", FileMode.Create))
{
using (TextWriter writer = new StreamWriter(stream))
{
//writer.Write("");
writer.Write(userName);
}
// writes new name to file
}
//StreamReader textIn =
// new StreamReader(
// new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read));
//begins audit
Process.Start(TrackIT);
Application.Exit();
}
}
}
}
は本当にそのすべてを参照してくださいする必要がありませんでした...シェアを信頼し、完全に試してみてください。 –
@ John Saunders - さまざまなリンクされた例外をすべて含まないように質問を編集しました。スレッドをクリーンアップする必要があります。 – JonH
@JonH:無関係なコードも必要ありません。 –