|
Maybe you can try WMI, if you know its executable name?
Best,
Jun
|
|
|
|
|
Hello Jun,
Thanks for your idea about WMI. I do know the executable name of the hidden process but I am not familiar with WMI. My goal is to send some Windows messages to the hidden process. Could you provide me with some example codes or point me t;)o some clearer directions?
Thanks in advance,
JC
|
|
|
|
|
The following code snippet is from my article[^], which demonstrates how to
1) enumerate the object list and get the object you want (one object for each class) and
2) invoke GetOwner() method of the object under discussion.
When you have got your object, you may invoke its SendMessage() method with an appropriate argument list.
private: static void OnTimedEvent(System::Object* source, System::Timers::ElapsedEventArgs* e)
{
XLogoffThread::mut->WaitOne();
ConnectionOptions *co = new ConnectionOptions();
ManagementScope *ms = new ManagementScope("\\\\localhost", co);
ObjectQuery *oq = new ObjectQuery("select * from Win32_Process");
ManagementObjectSearcher *mos = new ManagementObjectSearcher(ms,oq);
ManagementObjectCollection *moc = mos->Get();
ManagementObjectCollection::ManagementObjectEnumerator* moe = moc->GetEnumerator();
moe->Reset();
while(moe->MoveNext())
{
ManagementObject *mo = dynamic_cast<ManagementObject*>(moe->get_Current());
String *str[] = {"", ""};
str[0] = dynamic_cast<String*>(mo->get_Item("Name"));
if(str[0]->Equals("explorer.exe"))
{
mo->InvokeMethod("GetOwner",(Object*[])str);
if(!str[0]->Equals("SYSTEM") && !str[0]->Equals("System"))
{
CheckGUI(true);
}
break;
}
}
XLogoffThread::mut->ReleaseMutex();
}
Best,
Jun
|
|
|
|
|
Hi everyone,
I have an interface defined in a COM object that I need to implement using C# dll. If I register my C# dll for COM interop will that constitute a successful implementation of the COM interface?
Or do I need to implement the interface in VC++ then invoke the body of the implemented methods from my C# dll?
Sorry if it seems s silly question, I am quite new to Windows programming, as I was a Java programmer before I start on this project.
thanks very much guys,
me
|
|
|
|
|
In Visual Studio, you need to Add a reference and then select the COM DLL in the COM section of the Add Reference dialog. VS will create a wrapper class for the DLL that will allow you to interact with the DLL as though you are doing everything in C#.
Arthur Dent - "That would explain it. All my life I've had this strange feeling that there's something big and sinister going on in the world."
Slartibartfast - "No. That's perfectly normal paranoia. Everybody in the universe gets that."
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
Would this wrapper class be a seperate dll file? So would I have the original COM dll, this wrapper dll and my C# object dll? Or would the wrapper be part of the C# compiled dll?
thanks, this is very helpful..
|
|
|
|
|
The wrapper is effectively generated as a .NET stub code. This means that the compiled DLL will contain the code that is necessary to call into the COM DLL.
Arthur Dent - "That would explain it. All my life I've had this strange feeling that there's something big and sinister going on in the world."
Slartibartfast - "No. That's perfectly normal paranoia. Everybody in the universe gets that."
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
That would be ideal, to have the compiled DLL contain all necessary components implement the interface defined in the COM dll.
But when I add the reference to the com DLL (in my case its called xesession.dll) and write my C# code implement against it and build the solution it creates a file called interop.xesession.dll . Isn't that the 'wrapper' ?
Or do I need to turn off 'interop' or something?
thanks again..
|
|
|
|
|
And also, if the interface I'm implementing in C# is to be instantiated and used by a non .NET (VB6) application will my VB6 app recognize the object even though the object is managed and the VB6 app is not?
|
|
|
|
|
Hi all,
i am using the API :
[DllImport("user32.dll")]public static extern int GetCaretPos(ref Point lpPoint);
what i'm trying to do is the show contextMenu above the KB cursor.
it's working good with MSN messenger and Notepad (the function returns the cursor's possition in the active window)
but, in other programs like:MSWord,Yahoo messenger it returns(X=<the currect="" x="" location="">, Y=0)
how is it possible?
Sincerely,
Ran.
R.Z
|
|
|
|
|
How do u work with MSN messager and notepad, i want to get your some source code.
Please ,Thank u very much
Sorry ...
|
|
|
|
|
Thats the code that give you on msn and notepad.
i'm looking to work also on Word and Yahoo...
private Point getCaretLocation()
{
IntPtr hFocus = (IntPtr)GetForegroundWindow();
IntPtr hFore;
IntPtr id=IntPtr.Zero;
if (hFocus != IntPtr.Zero)
{
hFore= (IntPtr)GetForegroundWindow ();
AttachThreadInput((int)GetWindowThreadProcessId((int)hFore, id),
GetCurrentThreadId(), 1);
hFocus = (IntPtr)GetForegroundWindow();
Point mypoint=Point.Empty;
GetCaretPos(ref mypoint);
Console.WriteLine(mypoint.ToString());
ClientToScreen (hFocus, ref mypoint);
return mypoint;
}
return Point.Empty;
}
R.Z
|
|
|
|
|
Im using access database to store some customer information.
I have a table with an autonumber field.
I want to get the value of the autonumbered field, for the last added record in that table? So i can use it as my Customer ID for the next entry of customer details.
if the last generated autonumber is
Ex:
100 ->
the next customer id should be 101, can anyone please help or can point me to the right direction :)
how do i do it using ado.net? Just learning c# and ado.net :)
+============================================================================
Many of life's failures are people who did not realize how close they were to success when they gave up." Thomas A. Edison
|
|
|
|
|
Don't use the pre tag on the message. The font isn't that easy to read, and the text doesn't wrap.
After you insert a record, use the query "select @@identity" to get the id that was created for the record.
---
b { font-weight: normal; }
|
|
|
|
|
thanks Guffa for the reply ill check it out
Sorry for the pre tag
|
|
|
|
|
yes,
Rows = table.Select("select @@identity");
in Sql Server
INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)
SELECT @@IDENTITY AS 'Identity'
@@IDENTITY is SQL system variable
datatable have very SQL method , So you think dataset like a small SQl server
Agree ...
|
|
|
|
|
I am just starting to look into MSBuild. Wonder if anyone could offer any pointers? Would the following be an easy thing to do?
- Build a set of .CSProj files, in dependency order
- Specify the 'reference path' as to pick up the correct dependies
- Override what is in the project file and output to a build folder.
Would MSbuild fully support this?
Thanks in advance
Aj
|
|
|
|
|
I have a need to grab the mouse and move it to specific locations in a target window, approximately once a second.
Each time I grab the mouse, I save it's current position and put it back when i am done. However, I do not want to grab the mouse if the User is currently using it (like when pressing the left button for a drag) in some OTHER application as that causes undesirable effects and is a MAJOR irritation to the User.
I think I need to get information about the mouse buttons that is system-wide in scope (not form-specific nor thread-specific).
I hope that makes sense.
Any ideas?
Thanks.
|
|
|
|
|
You might use the MouseEnter and MouseLeave events to keep track of
the presence/absence of the mouse in your application.
Remark: some special care may be required when you also use menus, since
clicking them seems to interact with the normal Enter/Leave sequences.
Luc Pattyn
|
|
|
|
|
thanks for response ... but that does not help ... i need to know when the mouse is IN USE, not when it has left MY form.
|
|
|
|
|
OK , sounds much like activity detection; this is used e.g. by screen savers,
so I suggest you look at one of the many screen savers on CodeProject.
Furthermore, you could look at a "global system hook" (as explained in
http://www.codeproject.com/csharp/globalsystemhook.asp[^]).
Luc Pattyn
|
|
|
|
|
thank you, luc ... will do
|
|
|
|
|
hi. I want to share a file (.cs) in two projects. I am writing server-client type seperate project s, they run at the same time, I have classes that I use both of them. I want to share a .cs file say sharedClasses.cs and want it to be compiled from the new code file. normally without this, I always copy the same code to other project's sharedClasses.cs..
|
|
|
|
|
I would make a project for main functions, compilled to a library, and one project for the client and server type, but in one solution. First compile the class, and after that the client and server.
|
|
|
|
|
I'd put the files you want to share into a dll
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|