Knowledge Base Nr: 00245 getphoneno.cpp - http://www.swe-kaiser.de

Win32: Name anhand der Telefonnummer ermitteln (mit "PowerInfo und zurück 2005")

  
int CMySocketServer::GetPhoneNumberInfo(const char* lpszPhoneNo, CString& strResult)
{
const char* TELINFOTITLE = "PowerInfo und zurück 2005";
const MAXWAIT = 30;
int n;

//telefoncd-programm starten
WinExec("\"C:\\Programme\\G Data\\PowerInfo und zurück 2005\\DTMApp.EXE\"", SW_SHOW);

//warten bis programm gestartet ist
for (n=0; n<MAXWAIT; n++)
{
Sleep(100);
HWND hwnd = FindWindow(NULL, TELINFOTITLE);
if (hwnd)
break;
}
if (n >= MAXWAIT)
return -1;
Sleep(500);

//nummer eintippen
for (n=0; n<strlen(lpszPhoneNo); n++)
{
CString strKey;

strKey.Format("%c#", lpszPhoneNo[n]);
g_proc.SendKeysToWindow(NULL, TELINFOTITLE, strKey
, 10, 100 //, int nDelay_ms, int nTimeout_ms
, false, false); //, bool bUseThread, bool bSwitchBack)
}

//suchen und ergebnis in clipboard kopieren - programm beenden
g_proc.SendKeysToWindow(NULL, TELINFOTITLE, "return#"
, 10, 100 //, int nDelay_ms, int nTimeout_ms
, false, false); //, bool bUseThread, bool bSwitchBack)

Sleep(300);
g_proc.SendKeysToWindow(NULL, TELINFOTITLE, "shift+tab#shift+tab#shift+tab#shift+tab#"
, 10, 100 //, int nDelay_ms, int nTimeout_ms
, false, false); //, bool bUseThread, bool bSwitchBack)

::EmptyClipboard();
Sleep(100);
g_proc.SendKeysToWindow(NULL, TELINFOTITLE, "ctrl+c#"
, 100, 100 //, int nDelay_ms, int nTimeout_ms
, false, false); //, bool bUseThread, bool bSwitchBack)

Sleep(100);
g_proc.SendKeysToWindow(NULL, TELINFOTITLE, "alt+f4#"
, 100, 100 //, int nDelay_ms, int nTimeout_ms
, false, false); //, bool bUseThread, bool bSwitchBack)
/* clipboard-sample:
Fuller, Michael-John u. Regina 06340 925792
Margaretenstr. 11
76889 Steinfeld


*/
strResult = "";

//clipboard auslesen
if (::IsClipboardFormatAvailable(CF_TEXT))
{
if (::OpenClipboard(m_pDlg->GetDlgItem(IDC_LIST1)->GetSafeHwnd()))
{
HGLOBAL hglb = ::GetClipboardData(CF_TEXT); //CF_TEXT); CF_RTF, CF_OEMTEXT
if (hglb != NULL)
{
LPTSTR lptstr = (char*)::GlobalLock(hglb);
if (lptstr != NULL)
{
strResult += lptstr;
::GlobalUnlock(hglb);
}
}

::CloseClipboard();
}
}

return 0;
}