|
I use this code for Impersonate
private const int LOGON_TYPE_INTERACTIVE = 2;
private const int LOGON_TYPE_PROVIDER_DEFAULT = 0;
[DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
static public extern bool LogonUser(string userName, string domain, string passWord, int logonType, int logonProvider, ref IntPtr accessToken);
IntPtr accessToken = IntPtr.Zero;
LogonUser("boran", "IZON\boran", "96587", LOGON_TYPE_INTERACTIVE, LOGON_TYPE_PROVIDER_DEFAULT, ref accessToken);
WindowsIdentity identity = new WindowsIdentity(accessToken);
WindowsImpersonationContext context = identity.Impersonate();
Ok service is running, but I can't stop this service. And not work properly.
|
|
|
|
|
Probably your service is running under the system account which usually has no network rights. Either you give the system account the access rights needed (not recommended because then any other service or virus running under the system account will be able to fiddle with the network), or you use impersonation as Marc suggested, or you create a user account with exactly the rights needed and install your service to run under this very user account. I seem to recall that when deploying your service with msi you can create this user on the target machine as well.
|
|
|
|
|
I solve my proplem.
right click to my computer --> select manage --> select Services
after that select my service --> right click and select properties
click LogOn tab --> select "This Account" --> write my user name with .\ operators. For example my user name is boran and I type .\boran and type my password. Thats it, its work...
|
|
|
|
|
hello, I need to control the loudspeakers... I need to send frequencies (Hertz) to the loudspeakers and they need to broadcast it
hope you understand what I want to do
is it possible?
thanks
|
|
|
|
|
|
actually it's not wav files,.. I need to find a way to control the frequency - the amount of Hertz
|
|
|
|
|
|
Hi,
Not sure how accurate the duration would be, I wrote an article on timer accuracy,
and your message makes me consider adding a Console.Beep duration test to it!
|
|
|
|
|
I would love to see the article
|
|
|
|
|
Then go ahead and read it. The link is near.
|
|
|
|
|
thank you!
who would have thought that a simple console.beep would do the charm?
|
|
|
|
|
is it possible to send 1 console.beep to one loudspeaker and another to the second loudspeaker?
|
|
|
|
|
I have an unmanaged dll and I'm trying to make a wrapper around it so it can be used in a multiple projects. I have most of the functions working accept 1 and i can't seem to figure it out.
From the pdf the signature is as follows:
ic_subcall (sub_name, sub_name_len, code, num_args, var_args...)
In the documentation, the last argument is similar to params in C# and it takes type "ICSTRING".
typedef struct icstring {
long len;
unsigned char * text;
} ICSTRING;
And here is the method signature in the header file:
void FAR ic_subcall ic_proto((LPSTR, LPLONG, LPLONG, LPLONG, ...));
This is how i have my struct setup in C#. Here i am using a byte[] because i found (somewhere) that it is the equivelant to an unsighed char.
[StructLayout(LayoutKind.Sequential)]
internal struct icstring
{
public long len;
public byte[] text;
}
And finally, here is where i using the DLLImport
[DllImport("uvic32.dll", SetLastError = true)]
private static extern void ic_subcall(string sub_name, long sub_name_len, ref long code, long num_args, params icstring[] var_args);
When i make the call it throws an exception "Attempted to read protected memory....". I can't seem to figure out what is wrong. I'm not sure if it is the params keyword or if my struct is messed up somehow. Could someone point me in the right direction?
Don't be overcome by evil, but overcome evil with good
|
|
|
|
|
Hi,
AFAIK varargs cannot be passed from managed to unmanaged worlds, that is without
the managed world investigating all the arguments and Marshaling them explicitly
one by one.
|
|
|
|
|
Hey Luc!
Thats not good news!
I did a search on DLLImport & varargs and i was able to find someonthing HERE[^].
Right above the examples it explains the enum types. I found
Cdecl -- The caller cleans the stack. This enables calling functions with varargs,
which makes it appropriate to use for methods that accept a variable number of parameters, such as Printf.
I see in the example how they are using it in the printf. Do you think if i was to change my signature to
private static extern void ic_subcall(string sub_name, long sub_name_len, ref long code, long num_args, icstring var_args1, icstring var_args2, ..., ...);
and used the calling convention documented that i would work?
Don't be overcome by evil, but overcome evil with good
|
|
|
|
|
OK, I never tried it this way. I keep my P/Invoke stuff always as simple as possible.
Seems like maintaining stack will not be a problem, but I am still very worried
about marshaling types. Of course, simple value types (int, double, ...) and
strings will probably just work fine, but what about structures, class objects, etc?
|
|
|
|
|
I tried it and it still didn't work. But i think your right, i think its the struct that is messing it up. Thanks anyways for the help!
Don't be overcome by evil, but overcome evil with good
|
|
|
|
|
teejayem wrote: I have an unmanaged dll and I'm trying to make a wrapper around it so it can be used in a multiple projects.
In my experience creating a managed wrapper for native code is far simpler using C++/CLI than trying to do it in C#.
led mike
|
|
|
|
|
hey led mike,
Yeah, I actually already have the C++ implementation and i did create a C++/CLI wrapper around it. But when u deploy the CLI dll to the target machine the C++ redistributable package needs to be installed or the dlls need to be deployed w/ it and my boss doesn't wanna deal with that
Don't be overcome by evil, but overcome evil with good
|
|
|
|
|
teejayem wrote: and my boss doesn't wanna deal with that
Well your boss is wrong and probably an idiot. I feel your pain brother.
Also, have you verified that? I wouldn't be surprised if the VC runtime DLL's are installed as part of the .NET platform.
led mike
|
|
|
|
|
We're a furniture company, and the latest technology isn't in the companies best interest But, i did verify it. I actually had the problem before on a personal project, and i found that if a C++/CLI, MFC, or Win32 app is created from vs the target machine is supposed to have Microsoft Visual C++ 2008 Redistributable Package (x86)[^] (there's also one for 2005). Maybe there is some setting to fix that, but i didn't look into it too much. I do think it is pretty stupid that even a pure win32 application depends on these dlls!
Don't be overcome by evil, but overcome evil with good
modified on Wednesday, July 30, 2008 7:48 AM
|
|
|
|
|
teejayem wrote: I do think it is pretty stupid that even a pure win32 application depends on these dlls!
Depending on the VC++ version and the target environment they can already be there. This is what I am talking about.
What version of the .NET platform are you requiring be installed. I imagine some version of the C++ runtime is installed with that. Use the version of VC++ that matches that and you might be able to avoid using the redistributable.
led mike
|
|
|
|
|
Hi body...
I have the following problem: I fill a datarow with some data coming from another program, when I try to do DataTable.AddMyRow(Myrow), I get the following exception:
Cannot set column 'BeneficiaryName'. The value violates the MaxLength limit of this column.
Is there a way to set the DataTable in order to "auto truncate" the exceeding length?
Thank you
Life is not short... the problem is only how you organize yourself
|
|
|
|
|
I found my own answer...
I have to use the ColumnChanging event on the table and use the following code:
void ColumnChanging(object sender, DataColumnChangeEventArgs e)
{
if (e.Column.DataType == typeof(string))
{
if (e.ProposedValue.ToString().Length > e.Column.MaxLength)
e.ProposedValue = e.ProposedValue.ToString().Substring(0, e.Column.MaxLength - 1);
}
}
Life is not short... the problem is only how you organize yourself
|
|
|
|
|
Hi,
A treeview control is populated with data
i.e.:
item1
subitem1
subitem2
...
Not sure why when I click on a subitem, the image changes. There are no events that fire this.
When assigning the images, I do assign using imageindex and selectedimageindex
Note that clicking on the parent i.e. the item does NOt change the image whereas clicking on the subitem does.
Do you know why this is occuring please?
Thanks
|
|
|
|