|
Hello together,
I have to get the full username. My solution only gets it for local users but I need it also when the user is logged in by a domain account. Has anybody an idea how do get this?
using System;<br />
using System.Runtime.InteropServices;<br />
<br />
namespace UserInfo<br />
{<br />
public class Program<br />
{<br />
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]<br />
public struct USER_INFO<br />
{<br />
[MarshalAs(UnmanagedType.LPWStr)]<br />
public String username;<br />
[MarshalAs(UnmanagedType.LPWStr)]<br />
public String password;<br />
[MarshalAs(UnmanagedType.LPWStr)]<br />
public String comment;<br />
[MarshalAs(UnmanagedType.LPWStr)]<br />
public String fullname;<br />
}<br />
<br />
[DllImport("Netapi32.dll", CharSet = CharSet.Unicode, ExactSpelling = true)]<br />
private extern static Int32 NetUserGetInfo(<br />
[MarshalAs(UnmanagedType.LPWStr)] String ServerName,<br />
[MarshalAs(UnmanagedType.LPWStr)] String UserName,<br />
Int32 level,<br />
out IntPtr BufPtr);<br />
<br />
[DllImport("Netapi32.dll", SetLastError = true)]<br />
static extern Int32 NetApiBufferFree(IntPtr Buffer);<br />
<br />
public static String GetFullname()<br />
{<br />
String retVal = String.Empty;<br />
<br />
try<br />
{<br />
USER_INFO objUserInfo = new USER_INFO();<br />
IntPtr bufPtr;
Int32 lngReturn = NetUserGetInfo(Environment.MachineName, Environment.UserName, 10, out bufPtr);<br />
if (lngReturn == 0)<br />
{<br />
objUserInfo = (USER_INFO)Marshal.PtrToStructure(bufPtr, typeof(USER_INFO));<br />
retVal = objUserInfo.fullname;<br />
}<br />
NetApiBufferFree(bufPtr);<br />
bufPtr = IntPtr.Zero;<br />
}<br />
catch (Exception ex)<br />
{<br />
Console.WriteLine("GetFullname: " + ex.Message);<br />
}<br />
<br />
return retVal;<br />
}<br />
<br />
public static void Main(String[] args)<br />
{<br />
Console.WriteLine("Login name: " + Environment.UserName);<br />
Console.WriteLine("Full username: " + GetFullname());<br />
Console.ReadLine();<br />
}<br />
}<br />
}
Greets
Patrick
|
|
|
|
|
Try this:
Environment.UserDomainName + "\\" + Environment.UserName
It should return "domain\user"
There are 10 types of people in the world, those who understand binary and those who dont.
|
|
|
|
|
How can I create win application that may launch through local network from another PC, where it is installed?
When I start application through network appears below error:
System.Security.SecurityException was unhandled
Message="That assembly does not allow partially trusted callers."
Source="SqlTool"
StackTrace:
at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed)
at SqlTool.frmSql.Main()
at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
How to solve this problem?
Thanks for any answer.
|
|
|
|
|
Run a search on all previous questions, I remember answering this question last week I think.
There are 10 types of people in the world, those who understand binary and those who dont.
|
|
|
|
|
Can you help me to find it, I don't succeed locate this article.
|
|
|
|
|
It wasn't an article and I can't find it either, it says the server crashed.
Here is some code that should help you though:
Client:
using System;
using System.Net.Sockets;
using System.IO;
using System.ComponentModel;
namespace NetClient
{
class Program
{
static void Main(string[] args)
{
NetworkStream networkStream;
StreamWriter streamWriter;
TcpClient myclient;
try
{
myclient = new TcpClient(args[1], 1234);
}
catch
{
Console.WriteLine("Failed to connect to server at {0}:999", "localhost");
return;
}
networkStream = myclient.GetStream();
streamWriter = new StreamWriter(networkStream);
try
{
string s;
streamWriter.WriteLine(args[0]);
Console.WriteLine("Sending Message");
streamWriter.Flush();
}
catch (Exception ee)
{
Console.WriteLine("Exception reading from Server:" + ee.ToString());
}
streamWriter.Close();
networkStream.Close();
Console.ReadLine();
}
}
}
Run the client from the console with the name of the program you want to start as an argument. e.g. program calc //will start calculator.
Server:
using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System.IO;
namespace NetServer
{
class Program
{
static void Main(string[] args)
{
TcpListener tcpListener = new TcpListener(1234);
tcpListener.Start();
Console.WriteLine("Server Started") ;
Socket socketForClient;
try
{
while(true)
{
try
{
socketForClient = tcpListener.AcceptSocket();
Console.WriteLine("Client connected");
NetworkStream networkStream = new NetworkStream(socketForClient);
StreamReader streamReader = new StreamReader(networkStream);
string line = streamReader.ReadLine();
System.Diagnostics.Process.Start(line);
socketForClient.Close();
}
catch (Exception)
{ }
}
}
catch(Exception e)
{
Console.WriteLine(e.ToString()) ;
}
Console.ReadLine();
}
}
}
The server app must be running before you run the client. You may have to turn off your firewall. Hope this helps. Let me know if you get stuck.
There are 10 types of people in the world, those who understand binary and those who dont.
|
|
|
|
|
|
Where can I download an ivaluation version from?
|
|
|
|
|
boundschecker is for C++ programs, C# programs are garbage collected.
From memory, when I used it, I had to put my name down and take a call from a rep before they would send it to me.
But I did type 'boundschecker download' into google and get a ton of hits.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
To bind a value from DataGridView to textbox
when i am assigning it to a textbox like
txtcuscode.Text= dataGridView1.SelectedRows[0].Cells[0].Value;
shows an error message like this following..
Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
the error is at this line...
txtcuscode.Text= Convert.ToString(dataGridView1.SelectedRows[0].Cells[0].Value);
the error handler points to the property text of the textbox...
help me overcome this..
plz help me recover this and thanks a lot for the code.....
SAJAN A PILLAI
C#.NET Programmer
TELESOFT INDIA PVT LTD...
BANGALORE
|
|
|
|
|
sajan ss wrote: txtcuscode.Text= dataGridView1.SelectedRows[0].Cells[0].Value;
well either the SelectedRows collection count is 0 or less probable Cells collection of first selected row count is 0.. so you should check like this:
if(dataGridView1.SelectedRows.Count>0)
txtcuscode.Text= dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
as for the binding itself..
txtcuscode.DataBindings.Add(new System.Windows.Forms.Binding("Text", source, "field_name", true));
where source is a BindingSource or a DataSet object..
life is study!!!
|
|
|
|
|
I instantiation an OCX Control, as follows:
AxZHFILEOCXLib.AxZhFileOcx fileOCXSend = new AxZHFILEOCXLib.AxZhFileOcx();
fileOCXSend.Tag = pfti;
fileOCXSend.bSender = true;
but "fileOCXSend.bSender = true" got an Exception. as follows:
“System.Windows.Forms.AxHost+InvalidActiveXStateException” Exception.
what is cause abuout it?
Thanks.
|
|
|
|
|
|
all the following is with respect to C#.Net
In remoting for better speed we opt for TCP channel.
why is TCP is faster than HTTP.
|
|
|
|
|
If you use Socket you get more speed.
Manoj
Never Gives up
|
|
|
|
|
socket or remoting whichever be the case,but why is that TCP faster than HTTP
|
|
|
|
|
When sending over TCP you don't have to do much other than serialize the objects and chuck them over the connection.
Using HTTP you have to use the HTTP protocol which takes more time and bandwidth.
You also have the choice of the Binary Serialization and SOAP serialization. Binary makes the smallest output but SOAP is better for interop with other system or if you need the output to be human redable.
In the end you need to choose which is the right combination for you based on what you need. If you need built in security and authentication then HTTP remoting via IIS is best, it also works well with firewalls. If your just working on an intranet or you really need the performance TCP will be fine.
|
|
|
|
|
Depending if you are on the local machine, you can even use IPC, which is alot faster than TCP or HTTP.
|
|
|
|
|
Hi all
does anyone have a working example (2.0) of how to use the registerhotkey API for c#
i am trying to run an event even if the window is not in focus and I have seen a few crapy vb.net examples that i can get to compile
I was wondering if there was a C# example floating around since thats what i prefer to program in anyway.
(also yes I am google-ing as we speak im just useing the forums as a backup)
Thanks
|
|
|
|
|
Did you search codeproject? It has several articles about it
|
|
|
|
|
which one
C# Programming
Beginners
Skype smiley sender
Last Updated: 24 May 2007 Page views: 1,388 Rating: 3.2/5 Votes: 13 Popularity: 3.6
An article on sending many smileys simultaneously with Skype
Unedited Reader Contributions
Convert mp3 to exe
Last Updated: 4 Jun 2007 Page views: 9,691 Rating: 4.4/5 Votes: 34 Popularity: 6.8
An article showing how to convert mp3 file to executable file
Rename Start Button
Last Updated: 1 Jun 2007 Page views: 4,149 Rating: 4.6/5 Votes: 27 Popularity: 6.6
An article describing how to rename start button programmatically
|
|
|
|
|
I didn't mean my articles, I meant codeproject. Search for registerhotkey Api and you will find an example
|
|
|
|
|
Hi,
How do you copy a picture box during run-time??
ps. I'm intending to make a copy of it and put it in the same form/panal during run time;
Smile: A curve that can set a lot of things straight!
(\ /)
(O.o)
(><)
|
|
|
|
|
|