|
New Visual Studio 2005 projects default to 'compile code as C++'. To change this, go to the project's Property Pages dialog and click the C/C++ folder, Advanced, and change Compile As to 'Compile Code As C (/TC)'.
"Multithreading is just one damn thing after, before, or simultaneous with another." - Andrei Alexandrescu
|
|
|
|
|
My project use CDatagrid to show the content of database.
and so each column not the same size, some column the content is long and some it is short so I want to resize each column to show properly content.
How can I do?
|
|
|
|
|
How to save a process's state and resume it later?

|
|
|
|
|
There's no default way to do that (as far as I know). You'll have to handle that yourself...
|
|
|
|
|
I'm trying to verify that a path exists by using either PathFileExists() or GetFileAttributes(), but when a network path like \\SWAP01\slave02\mydirectory doesn't exist because the system isn't on, both functions hang.
In fact, they hang pretty seriously, so much so that I can't kill the process from the debugger OR the task manager. My only option appears to be to log off from the system and log back in.
Any thoughts on how I might better deal with this hang?
|
|
|
|
|
TragicComic wrote: Any thoughts on how I might better deal with this hang?
Have you tried _access() ? It's a wrapper around GetFileAttributes() so it may not be any better.
If you are using MFC, check out CFile::GetStatus() .
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
I've a PE file and I'm going to set the file alignment to '1' in it. It's initially set to '512'. When I change it to '1', an error message says "This is an invalid PE file ...".
Any suggestion PLS?
Thank you masters!
|
|
|
|
|
Maybe that's an invalid file alignment value?
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
The file section alignment governs the amount of padding between sections of a file. In the running process image, different file sections are aligned on a 4KB boundary as that's the page size - different protections can only be set at page level.
There is almost never any reason to change the file alignment as the amount of wasted space is typically very small - there aren't many sections in a typical executable file - and disappears completely if the file is compressed, as it will be in most distribution systems.
"Multithreading is just one damn thing after, before, or simultaneous with another." - Andrei Alexandrescu
|
|
|
|
|
|
I just read this article: http://www.codeproject.com/KB/system/Hack_Windows_Task_Manager.aspx[^], and I thought it would be quite interesting if an app is able to modify one entry in task manager's listbox, thus hiding itself. It sounded easy enough to replace LVM_DELETECOLUMN with LVM_DELETEITEM, but I'm getting strange errors with SendMessage.
So right now I have something like this:
LVFINDINFO findInfo;
ZeroMemory(&findInfo, sizeof(LVFINDINFO));
findInfo.flags=LVFI_STRING;
findInfo.psz=(LPCSTR)"myTest.exe";
Then I tried this (hWnd is for Windows Task Manager, not my app):
int index = ::SendMessage(hWnd,LVM_FINDITEM,(WPARAM)0,(LPARAM)(const LVFINDINFO FAR*)&findInfo);
if (index!=-1) ::SendMessage(hWnd,LVM_DELETEITEM,index,0);
It crashes taskmgr.
I was browsing through the comments on that article when I found a piece of code in Delphi that supposedly does what I'm trying to do. After my attempt to translate it into C++, it looks like this:
DWORD ProcessID;
GetWindowThreadProcessId(hWnd,&ProcessID);
HANDLE pHandle=OpenProcess(PROCESS_ALL_ACCESS,FALSE, ProcessID);
if (pHandle!=NULL){
LPVOID address=VirtualAllocEx(pHandle,NULL,sizeof(findInfo),MEM_RESERVE | MEM_COMMIT,PAGE_READWRITE);
if (WriteProcessMemory(pHandle,address,&findInfo,sizeof(findInfo),NULL)!=FALSE){
int index = ::SendMessage((HWND)pHandle,LVM_FINDITEM,(WPARAM)0,(LPARAM)(const LVFINDINFO FAR*)address);
if (index!=-1) ::SendMessage(hWnd,LVM_DELETEITEM,index,0);
}
CloseHandle(pHandle);
VirtualFreeEx(pHandle,NULL,sizeof(findInfo),MEM_DECOMMIT);
}
Unfortunately, that doesn't work either. The LVM_FINDITEM SendMessage returns 0, so all it's doing right now is deleting the first entry off taskmgr every 10 milliseconds.
If anyone could correct me on my usage of SendMessage with LVM_FINDITEM that would be appreciated. 
|
|
|
|
|
Did you also allocate the string (stored in findInfo.psz ) in the other process's address apace?
|
|
|
|
|
I don't quite understand what you just said.
The listbox that I'm searching does have the entry "myTest.exe", if that's what you're saying.
|
|
|
|
|
Thank U for valuble question.
The suggestion for allocating string other process worked well, but i need to set the postion for that i have to use LVM_SETITEMPOSITION, how can i create the POINT value in the other process.
Thanks in advance.----------------------------
KRISHNA KUMAR T M
|
|
|
|
|
Another way to hide entries would be to hook the ZwQuerySystemInformation API, which Task Manager calls to get a list of the running processes on the system. You can modify the linked list of processes returned by changing around the NextEntryDelta member of the SYSTEM_PROCESS_INFORMATION struct once the process is found (ProcessName member). I don't really see why you'd want to hide a process from Task Manager though -- outside of malicious purposes.
|
|
|
|
|
I get dizzy everytime I look at something related to drivers. You DO need to create a driver to hook the ZwQuerySystemInformation API right? I've been trying to learn how to hook the NT kernel functions for a long time now, and I'm not getting anywhere. There aren't any good tutorials
And also, that isn't really my goal. As I said in my post, I just read an article on modifying Task Manager's listboxes and I was curious if that meant a process could be able to hide itself. I'm not doing this for any malicious purposes. Just doing it to satisfy my curiosity 
|
|
|
|
|
|
It's possible to hook kernel functions without writing a driver?
I didn't know that. 
|
|
|
|
|
Hi.....
I have One Dialog with Five tabs. Each Tab having so many controls like Edit boxes,buttons and all.
My problem is When u enter some Data in any control of that particular tab,the ASTERIK should be added to the Tab Name.(Same as when we write aome Data in wordpad the asterik will add to the Document Name).
So, How can i Do that...
My IDEA is ::: OnKillfocus() and "change" event of every Control we maintain one varible.but there are so many Controls..!!!!!
Is there any another API or simple way to do this 
|
|
|
|
|
The controls send notifications to the parent whenever changes are made.
These notifications are typically sent via WM_COMMAND or WM_NOTIFY
messages.
Assuming MFC here (you could do similar using straight Win32):
You could override OnCommand() and OnNotify() in the parent dialog
and in your overrides, look for the change notifications, and if one
is received, take the appropriate action. Make sure you call the base
class method so proper MFC command/notification processing gets done.
For a list of the possible notifications and how they are sent, see
the Windows Controls[^] documentation for the types of controls
you use.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
phanindra varma wrote:
Is there any another API or simple way to do this
In the sheet, call GetTabControl() . Then fill out a TC_ITEM structure and call GetItem() . Add the asterisk and call SetItem() .
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
Hi All,
I need to access the java servlet in my C++ code using win32 console application.Is there any libraries for this.I dont know how to do this?
For example,
if i enter this servlet url
"http://192.197.66.99/sample/checkName", i should access this servlet in my console application.
Please help me..................
Thanks & Regards,
Anitha
|
|
|
|
|
AnithaSubramani wrote: I need to access the java servlet in my C++ code using win32 console application
You could use any HTTP client to access a servlet (for example http://www.codeproject.com/KB/IP/simplehttpclient.aspx[^])...or do something very simple like
system("IEXPLORE.EXE \"http://192.197.66.99/sample/checkName\"");
Hope it helps
|
|
|
|
|
Hi,
Im trying the system("IEXPLORE.EXE \"http://192.168.99.99:8080/netupdate/UploadFiles\" ");
command but it showing the following error:
'IEXPLORE.EXE' is not recognized as an internal or external command,
operable program or batch file.
Thanks & Regards,
Anitha
|
|
|
|
|
AnithaSubramani wrote: 'IEXPLORE.EXE' is not recognized as an internal or external command,
operable program or batch file.
Use an absolute path, not a relative one.
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|