fork download
  1. //---------------------------------------------------------------------------
  2. HWND __fastcall TForm1::IpmsgOpen(AnsiString ClassName)
  3. //IPmsg送信窓を開く
  4. //ClassName:IPmsgクラス名(例:ipmsg_class_2427)
  5. //返値:送信窓ハンドル(0:取得失敗)
  6. {
  7. HWND hWnd; //TaskTray内IPmsgのハンドル
  8.  
  9. //IP Messengerハンドルの取得
  10. if((hWnd = ::FindWindow(ClassName.c_str(),NULL)) != NULL){
  11. ::SendMessage(hWnd,WM_USER + 121,0,0); //送信ウィンドゥを開く
  12. ::Sleep(100);
  13. //新規に開いた送信ウィンドゥを探す
  14. return ::FindWindow("#32770","Send Message");
  15. //IP Messengerが起動していない
  16. }else{
  17. //起動しているIP Messengerを列挙
  18. mnuSend->Clear();
  19. mnuRSend->Clear();
  20. ::EnumWindows((WNDENUMPROC)EnumWindowsProc,(LPARAM)0);
  21. //ハンドル取得NG
  22. ShowMessage("IP Messenger Open Error.");
  23. return 0;
  24. }
  25. }
  26. //---------------------------------------------------------------------------
  27. bool __fastcall TForm1::IpmsgPaste(HWND hWnd,AnsiString msg)
  28. //Clipboardから送信ウィンドゥに貼り付け
  29. //hWnd:送信ウィンドゥハンドル
  30. //msg:貼り付けるメッセージ
  31. //戻り値:結果(true:OK,false:NG)
  32. {
  33. HWND hEdit; //Editハンドル
  34. char buf[256]; //ClassName格納用
  35.  
  36. //Editハンドル取得
  37. if((hEdit = ::GetWindow(hWnd,GW_CHILD)) != NULL){
  38. //Windowの確認
  39. ::GetClassName(hEdit,buf,256);
  40. if((AnsiString)buf == "Edit"){
  41. //貼り付け
  42. ::SendMessage(hEdit,WM_SETTEXT,0,(LPARAM)(msg.c_str()));
  43. //カーソルを最後に移動
  44. ::SendMessage(hEdit,EM_SETSEL,msg.Length(),msg.Length());
  45. return true;
  46. }
  47. }
  48. //ハンドル取得NG
  49. ShowMessage("Edit Error");
  50. return false;
  51. }
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty