|
|
Thanks, but I already tried that with no luck. I changed it in the .rc file. Was that the correct place?
Cathy
|
|
|
|
|
I want to get the title of Internet Explorer:
#include <windows.h>
LPSTR strIE;
LPSTR str2;
HWND IE;
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
IE = FindWindow("IEFrame",NULL);
if( IE != NULL )
{
GetWindowText(IE, strIE, GetWindowTextLength(IE));
MessageBox(NULL, (LPCTSTR) strIE,"",MB_OK);
}
return 0;
}
But no MessageBox(...) at all will appear!
What is wrong?
------------------------------
©0d3 ©®4©k3® - That's me!
------------------------------
|
|
|
|
|
The problem is that your whole app should be exploding. You haven't actually allocated any memory for your string, so the behavior will certainly be unexpected. Try allocating enough space for the string first then calll GetWindowText passing in the amount of space you actually allocated then do the message box then remember to clean up the memory you allocated. A good start would be to learn C/C++ programming before jumping head first into windows development.
Cheers,
-Erik
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
My thoughts are my own and reflect on no other.
|
|
|
|
|
Since the IEframe does not belong to your app's process you need to send the WM_GETTEXT message to the hwnd of the IE. This is the correct way:
TCHAR wndText[512];
::SendMessage(IE,WM_GETTEXT,sizeof(wndText)/sizeof(TCHAR),(LPARAM)(void*)wndText);
regards
modified 12-Sep-18 21:01pm.
|
|
|
|
|
Hello, the codegurus around the world.;)
I think that your approaches works to get the text in Edit box as
Paul Delicika sais in MSDN artile.
The following code works for me.
void CCodeTestDlg::OnOK()
{
CString ieTitle;
TCHAR title[MAX_PATH];
CWnd *pWnd = CWnd::FindWindow ("IEFrame",NULL);
if (pWnd) {
MessageBox ("IE is opened!", "Info");
pWnd->GetWindowText (ieTitle);
GetDlgItem (IDC_MYSTATIC)->SetWindowText (ieTitle);
::GetWindowText (pWnd->m_hWnd, title, MAX_PATH);
MessageBox (title, "Test");
}
else {
MessageBox ("IE isn't opened!", "Info");
}
}
Please, don't send me your email about your questions directly.
Have a nice day!
Sonork - 100.10571:vcdeveloper
-Masaaki Onishi-
|
|
|
|
|
Hi All!
under MS Visual Studio, we have a tool call Package Deployment Wizard for Visual Basic. This tool helps make a setup package for an EXE file of VB. It attaches all the dll files to the VB exe file basically. Do we have anything like that for VC++? I ask this because one of my applications does not run under NT4.0 SP6 when I compile it using "use MFC in a shared dll". The file needed is MFC42.dll;
Thanks
Vu
vucsuf
|
|
|
|
|
There is InstallShield for this.
I vote pro drink
|
|
|
|
|
Hi!
I use install shield to make setup disk. However, the installed package does not fix the problem. The OS still complains about the MFC42.dll
Do I miss anything?
Thanks
Vu
vucsuf
|
|
|
|
|
VC++ 7 has a built-in setup feature, that should be enough for most deployment needs.
// Fazlul
Get RadVC today! Play RAD in VC++
http://www.capitolsoft.com
|
|
|
|
|
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvc60/html/redistribvc6.asp
and
http://support.microsoft.com/directory/article.asp?ID=KB;EN-US;Q259403
Now hopefully I will have enough good karma for someone to answer my question.
Cathy
|
|
|
|
|
I have to detect if there is a RAS connection active on the machine, so I wrote the following code
RASCONN * lpRasConn;
DWORD lpcb;
DWORD lpcConnections;
lpRasConn = (LPRASCONN) GlobalAlloc(GPTR, sizeof(RASCONN));
lpRasConn->dwSize = sizeof(RASCONN);
lpcb = sizeof(RASCONN);
int nRet = RasEnumConnections(lpRasConn, &lpcb, &lpcConnections);
if (nRet != 0)
{
TRACE("RasEnumConnections failed: Error = %d", nRet);
return(FALSE);
}
else
{
TRACE("The following RAS connections are currently active\n\n");
return(TRUE);
for (DWORD i = 0; i < lpcConnections; i++)
{
TRACE("Entry name: %s\n", lpRasConn->szEntryName);
lpRasConn++;
}
return(TRUE);
}
The fuction fails everytime and I always have the same error message (even I test it on different computers)
the message is "632 : The structure size is incorrect".
Any help would be great..
Thanks,
Fakhri
The best way to predict the future is to create it..
|
|
|
|
|
Hello, the codegurus aroudn the world.;)
This is the latest RASCONN struct.
typedef struct _RASCONN {
DWORD dwSize;
HRASCONN hrasconn;
TCHAR szEntryName[RAS_MaxEntryName + 1];
#if (WINVER >= 0x400)
TCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
TCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
#endif
#if (WINVER >= 0x401)
TCHAR szPhonebook [ MAX_PATH ];
DWORD dwSubEntry;
#endif
#if (WINVER >= 0x500)
GUID guidEntry;
#endif
#if (WINVER >= 0x501)
DWORD dwSessionId;
DWORD dwFlags;
LUID luid;
#endif
} RASCONN ;
So, if we didn't download the latest Microsoft SDK, and didn't get the ras.h file, RASCONN struct size may be conflicted in rasapi32.dll in OS.
To avoid this kind of the conflict, you may be better explicit intialization of RASCONN struct in your code. Otherwise, you had better install the latest Microsoft SDK.
However, this is my guess.
Please, don't send me your email about your questions directly.
Have a nice day!
Sonork - 100.10571:vcdeveloper
-Masaaki Onishi-
|
|
|
|
|
Thank you, it was helpful
The best way to predict the future is to create it..
|
|
|
|
|
i have implemented the funcion in my filter driver.
a problem is i need to change the shell's activity.
when user only press DEL, the shell will not send the
file to recycle and delete forever.
i know i can change the recycle's propertiy. but i want to
set that value in program and not allow user to set back.
how can i do this? thanks.
|
|
|
|
|
The following code:
// Get file accessed date from _stat
struct _stat buff;
_tstat ( (TCHAR*)m_szFilePath, &buff);
TCHAR* l_szTime = _tctime(&buff.st_atime);
TCHAR* p_eol = _tcsstr(l_szTime, _T("\n"));
// Remove the '\n' from the end of the returned string from atime.
*p_eol = L'\0';
// Return the file accessed date.
*p_szDate = (_bstr_t) l_szTime;
produces Fri Dec 07 11:23:13 2001.
Does anyone know how to get the prettier way Properties does it? (Today, December 7, 2001, 11:23 AM)
Please let me know if there is such a way. If not, does someone know of any code that does the formatting?
Thanks,
Lilian
|
|
|
|
|
Lilian Chan wrote:
If not, does someone know of any code that does the formatting?
GetDateFormat() and GetTimeFormat() format dates/times using the user's language and regional settings automatically.
--Mike--
http://home.inreach.com/mdunn/
Help! Help! I'm being repressed!!
your with and
Sonork - 100.10414 AcidHelm
|
|
|
|
|
Now you tell me! Just the other day I was trying to do the same thing and couldn't remember the function. I ended up using strftime. Still works but I wanted GetDateFormat()
|
|
|
|
|
Thanks, Mike, for your response. I should have been more specific. I need to take that TCHAR * and convert it to a prettier format. My application needs to display the creation, accessed, and modified dates of a file. If there is no convenience function to convert the date, I guess I'll just have to write my own
Thanks,
Lilian
|
|
|
|
|
strftime()
/ravi
"There is always one more bug..."
ravib@ravib.com
http://www.ravib.com
|
|
|
|
|
If you want your output to conform to the user's locale settings (and you should) you'll need to use something other than stat() (like GetFileTime()), or use CTime which can convert from time_t to SYSTEMTIME.
--Mike--
My really out-of-date homepage
Buffy's on. Gotta go, bye!
Sonork - 100.10414 AcidHelm
Big fan of Alyson Hannigan.
|
|
|
|
|
Thanks, Mike and Ravi!
With your suggestions, I was able to make my stuff work. It drives me crazy, since it seems so trivial. We have to keep our HMI people happy.
|
|
|
|
|
I'm having trouble adding hex values into my string. For instance I have a string that has <stx>id<etx> where stx and etx are hex values. Any suggestion would be much appreciated. I have to send these over tcpip.
Thanks again
Tom Wright
Programmer
tawright915@yahoo.com
|
|
|
|
|
BYTE str[200];
str[0] = 0x02;
str[1] = 0x03;
Hope this helps. A better solution is to have a structure representing the packet u send. Reply back if u want more info on this method.
Prashanth
|
|
|
|
|
Hi All,
Question: How can I support Automation in my WTL application?? E.g., I would Like to be able to do a
Obj.Visible = true (or false) and it will display the app., just like in IE??
Here is what I tried but it does not work:
I'm trying to create a WTL Application that supports Automation, but I have been unsuccessful so far. Here is what I do.
1. Create a WTL project called “Test” which is a “SDI Application”, and I create it as “Create as a COM Server” and I don’t “Use a view Window”
I compile it and it works just fine. The application is up and running. Now I insert a COM Object called “Application”, this COM Object contains one property, which is called “Visible”, and it’s a Get & Put property. I compile the project and it compiles just fine. Then I create a .VBS file and it looks like this
Set Obj = CreateObject(“Test.Application”)
Obj.Visible = True
The “Obj.Visible” generates an error:
Error: Library not registered
Code: 8002801D
However if I do an:
MsgBox IsObject(Obj)
Then it will return TRUE in the Message Box. However if I try and Register the Control from VS (Tools->Register Control) then I will get the following Error:
Test.exe was loaded, but the DllRegisterServer Entry point was not found. Test.exe does not appear to be a .DLL or .OCX (which is correct, its an .exe)
Any help would be great..
Thanks,
Jens
|
|
|
|