2011年06月19日
2011年04月27日
2007年11月13日
zm_composeのソース
zm_composeのソースを公開します。
ソース中でFindWindowの引数とGetDlgItemの引数を変更すれば
アドエスで使えるようになると思います。
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
TCHAR strTo[256];
TCHAR strCc[256];
TCHAR strBcc[256];
TCHAR strTtl[256];
TCHAR strBody[256];
wcscpy(strTo,L"");
wcscpy(strCc,L"");
wcscpy(strBcc,L"");
wcscpy(strTtl,L"");
wcscpy(strBody,L"");
TCHAR *p=lpCmdLine;
TCHAR *p1=p;
while (1) {
p=wcstok(p1,L" ");
p1=NULL;
if (!p) break;
if (p[0]!='/') continue;
TCHAR c=toupper(p[1]);
switch (c) {
case 'T':
wcscpy(strTo,&p[2]);
break;
case 'C':
wcscpy(strCc,&p[2]);
break;
case 'B':
wcscpy(strBcc,&p[2]);
break;
case 'S'://subject
wcscpy(strTtl,&p[2]);
break;
case 'M'://message
wcscpy(strBody,&p[2]);
break;
default:
break;
}
}
HWND hwnd=::FindWindow(L"WCE_STMailMainFrame",NULL);//hontai
if (!hwnd) return 0;
::PostMessage(hwnd,WM_COMMAND,2547,0);
int i;
for (i=0;i<20;i++) {
hwnd=::FindWindow(L"Dialog",L"W-ZERO3メール ");//reply
if (hwnd) break;
Sleep(250);
}
//MessageBox(NULL,L"aaa",NULL,MB_OK);
if (!hwnd) return 0;
//MessageBox(NULL,L"found",NULL,MB_OK);
Sleep(500);//for zm_helper
TCHAR ccstr[256];
TCHAR temp[256];
/*
HWND hwndfrom=::GetDlgItem(hwnd,2249);
GetWindowText(hwndfrom,ccstr,256);
wcscpy(temp,ccstr);
wcscat(temp,L",");
wcscat(temp,L"cc@test.com");
*/
if (wcslen(strTo)) {
HWND hwndto=::GetDlgItem(hwnd,2272);
SetWindowText(hwndto,strTo);
}
if (wcslen(strCc)) {
HWND hwndcc=::GetDlgItem(hwnd,2245);
SetWindowText(hwndcc,strCc);
}
if (wcslen(strBcc)) {
HWND hwndbcc=::GetDlgItem(hwnd,2244);
SetWindowText(hwndbcc,strBcc);
}
if (wcslen(strTtl)) {
HWND hwndttl=::GetDlgItem(hwnd,2270);
SetWindowText(hwndttl,strTtl);
}
// HWND hwndata=::GetDlgItem(hwnd,2275);
// SetWindowText(hwndata,L"atach");
if (wcslen(strBody)) {
HWND hwndbdy=::GetDlgItem(hwnd,2271);
SetWindowText(hwndbdy,strBody);
}
keybd_event(40,0,KEYEVENTF_SILENT,0);
keybd_event(40,0,KEYEVENTF_SILENT|KEYEVENTF_KEYUP,0);
keybd_event(40,0,KEYEVENTF_SILENT,0);
keybd_event(40,0,KEYEVENTF_SILENT|KEYEVENTF_KEYUP,0);
keybd_event(40,0,KEYEVENTF_SILENT,0);
keybd_event(40,0,KEYEVENTF_SILENT|KEYEVENTF_KEYUP,0);
keybd_event(40,0,KEYEVENTF_SILENT,0);
keybd_event(40,0,KEYEVENTF_SILENT|KEYEVENTF_KEYUP,0);
keybd_event(40,0,KEYEVENTF_SILENT,0);
keybd_event(40,0,KEYEVENTF_SILENT|KEYEVENTF_KEYUP,0);
return 0;
}
ソース中でFindWindowの引数とGetDlgItemの引数を変更すれば
アドエスで使えるようになると思います。
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
TCHAR strTo[256];
TCHAR strCc[256];
TCHAR strBcc[256];
TCHAR strTtl[256];
TCHAR strBody[256];
wcscpy(strTo,L"");
wcscpy(strCc,L"");
wcscpy(strBcc,L"");
wcscpy(strTtl,L"");
wcscpy(strBody,L"");
TCHAR *p=lpCmdLine;
TCHAR *p1=p;
while (1) {
p=wcstok(p1,L" ");
p1=NULL;
if (!p) break;
if (p[0]!='/') continue;
TCHAR c=toupper(p[1]);
switch (c) {
case 'T':
wcscpy(strTo,&p[2]);
break;
case 'C':
wcscpy(strCc,&p[2]);
break;
case 'B':
wcscpy(strBcc,&p[2]);
break;
case 'S'://subject
wcscpy(strTtl,&p[2]);
break;
case 'M'://message
wcscpy(strBody,&p[2]);
break;
default:
break;
}
}
HWND hwnd=::FindWindow(L"WCE_STMailMainFrame",NULL);//hontai
if (!hwnd) return 0;
::PostMessage(hwnd,WM_COMMAND,2547,0);
int i;
for (i=0;i<20;i++) {
hwnd=::FindWindow(L"Dialog",L"W-ZERO3メール ");//reply
if (hwnd) break;
Sleep(250);
}
//MessageBox(NULL,L"aaa",NULL,MB_OK);
if (!hwnd) return 0;
//MessageBox(NULL,L"found",NULL,MB_OK);
Sleep(500);//for zm_helper
TCHAR ccstr[256];
TCHAR temp[256];
/*
HWND hwndfrom=::GetDlgItem(hwnd,2249);
GetWindowText(hwndfrom,ccstr,256);
wcscpy(temp,ccstr);
wcscat(temp,L",");
wcscat(temp,L"cc@test.com");
*/
if (wcslen(strTo)) {
HWND hwndto=::GetDlgItem(hwnd,2272);
SetWindowText(hwndto,strTo);
}
if (wcslen(strCc)) {
HWND hwndcc=::GetDlgItem(hwnd,2245);
SetWindowText(hwndcc,strCc);
}
if (wcslen(strBcc)) {
HWND hwndbcc=::GetDlgItem(hwnd,2244);
SetWindowText(hwndbcc,strBcc);
}
if (wcslen(strTtl)) {
HWND hwndttl=::GetDlgItem(hwnd,2270);
SetWindowText(hwndttl,strTtl);
}
// HWND hwndata=::GetDlgItem(hwnd,2275);
// SetWindowText(hwndata,L"atach");
if (wcslen(strBody)) {
HWND hwndbdy=::GetDlgItem(hwnd,2271);
SetWindowText(hwndbdy,strBody);
}
keybd_event(40,0,KEYEVENTF_SILENT,0);
keybd_event(40,0,KEYEVENTF_SILENT|KEYEVENTF_KEYUP,0);
keybd_event(40,0,KEYEVENTF_SILENT,0);
keybd_event(40,0,KEYEVENTF_SILENT|KEYEVENTF_KEYUP,0);
keybd_event(40,0,KEYEVENTF_SILENT,0);
keybd_event(40,0,KEYEVENTF_SILENT|KEYEVENTF_KEYUP,0);
keybd_event(40,0,KEYEVENTF_SILENT,0);
keybd_event(40,0,KEYEVENTF_SILENT|KEYEVENTF_KEYUP,0);
keybd_event(40,0,KEYEVENTF_SILENT,0);
keybd_event(40,0,KEYEVENTF_SILENT|KEYEVENTF_KEYUP,0);
return 0;
}
kobayasu at 20:46|Permalink│
│W-ZERO3メール