Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ и WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.69
Beg
0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 17
#1

Отправить сообщение пользователю через ShellExecute (msg.exe) - C++ WinAPI

06.04.2013, 16:09. Просмотров 4600. Ответов 10
Метки нет (Все метки)

Есть файл msg.exe который позволяет отправлять сообщения синтаксис
в командной строке такой:
msg "имя пользователя" /server:"сервер" "сообщение"
приведите пример каким образом я могу с помощью shellexecute отправить сообщение пользователю, библиотеку string использовать нельзя.
http://www.cyberforum.ru/win-api/thread877486.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2013, 16:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Отправить сообщение пользователю через ShellExecute (msg.exe) (C++ WinAPI):

ShellExecute не предает параметры cmd.exe
Всем доброго времени суток. Все мучаюсь с функцией ShellExecuteA, пытаюсь...

Не прячется окно приложения, запускаемого через ShellExecute()
Как можно спрятать запускаемое приложение, если оно чужое и не консольное? ...

Отправить сообщение окну
Нужно отправить сообщение о нажатие левой кнопки мыши окну Spy++ при клике в...

Отправить сообщение приложению без основного окна
Здравствуйте. Есть .dll файл, который делает хитрую штуку. И есть .NET...

Как отправить сообщение с одного email-а на другой?
Добрый день Господа . Вопрос следующий как отправить с одной почты на другую...

10
dmitry94
562 / 192 / 69
Регистрация: 25.05.2012
Сообщений: 800
06.04.2013, 17:49 #2
Видимо
ShellExecute(NULL, "open", "msg.exe", "/server:\"сервер\" \"сообщение\"", NULL, SW_SHOWNORMAL);
Взято отсюда: http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25611 / 17164 / 6825
Регистрация: 22.10.2011
Сообщений: 30,360
Записей в блоге: 6
06.04.2013, 18:28 #3
C++
1
ShellExecute(NULL, "open", "msg.exe", "\"имя пользователя\" /server:\"сервер\" \"сообщение\"", NULL, SW_SHOWNORMAL);
0
Beg
0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 17
06.04.2013, 20:07  [ТС] #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "stdafx.h"
#include <iostream>
#include <Shellapi.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
  ShellExecute(NULL, "open", "msg.exe", "\"*\" /server:\"localhost\" \"message\"", NULL, SW_SHOWNORMAL);
  system("pause");
 
  return 0;
}
148errors
0
dmitry94
562 / 192 / 69
Регистрация: 25.05.2012
Сообщений: 800
06.04.2013, 20:59 #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// test1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "windows.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
  ShellExecute(NULL, "open", "msg.exe", "\"*\" /server:\"localhost\" \"message\"", NULL, SW_SHOWNORMAL);
  system("pause");
 
  return 0;
}
1>------ Построение начато: проект: test1, Конфигурация: Debug Win32 ------
1>Компиляция...
1>test1.cpp
1>Компоновка...
1>Внедрение манифеста...
1>Журнал построения был сохранен в "file://c:\Users\dmitry94_1\Documents\Visual Studio 2008\Projects\test1\test1\Debug\BuildLog.htm"
1>test1 - ошибок 0, предупреждений 0
========== Построение: успешно: 1, с ошибками: 0, без изменений: 0, пропущено: 0 ==========
1
Beg
0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 17
06.04.2013, 21:08  [ТС] #6
библиотеку не ту подключил))
скопипастил твой код, выдает следующее
Error 1 error C2664: 'ShellExecuteW' : cannot convert parameter 2 from 'const char [5]' to 'LPCWSTR'
исправил на
ShellExecute(NULL, (LPCWSTR)"open", (LPCWSTR)"msg.exe", (LPCWSTR)"\"* \" /server:\"localhost\" \"message\"", NULL, SW_SHOWNORMAL);
сообщение не приходит((
0
dmitry94
562 / 192 / 69
Регистрация: 25.05.2012
Сообщений: 800
06.04.2013, 21:12 #7
Отправить сообщение пользователю через ShellExecute (msg.exe)
0
dmitry94
562 / 192 / 69
Регистрация: 25.05.2012
Сообщений: 800
06.04.2013, 21:15 #8
Цитата Сообщение от Beg Посмотреть сообщение
библиотеку не ту подключил))
скопипастил твой код, выдает следующее
Error 1 error C2664: 'ShellExecuteW' : cannot convert parameter 2 from 'const char [5]' to 'LPCWSTR'
исправил на
ShellExecute(NULL, (LPCWSTR)"open", (LPCWSTR)"msg.exe", (LPCWSTR)"\"* \" /server:\"localhost\" \"message\"", NULL, SW_SHOWNORMAL);
сообщение не приходит((
Измените параметры проекта. Отключите unicode.
1
Beg
0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 17
06.04.2013, 23:28  [ТС] #9
Отключил в параметрах юникод, ничего не изменилось.
Какой версией программы вы пользуетесь?
0
dmitry94
562 / 192 / 69
Регистрация: 25.05.2012
Сообщений: 800
07.04.2013, 11:07 #10
Visual Studio 2008
1
Beg
0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 17
07.04.2013, 12:57  [ТС] #11
Спасибо, работает.
0
07.04.2013, 12:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2013, 12:57
Привет! Вот еще темы с решениями:

Не получается отправить сообщение из одного процесса в другой
Добрый день! Нужно передать сообщение из одного процесса в другой. К...

Подключить устройство через COM-порт и отправить на него данные
Всем доброго времени суток. Потребовалось подключить устройство через...

Как отправить байты, содержащиеся в некотором буфере через COM-порт?
Как отправить байты (их значения) содержащиеся в некотором буфере через...

Return msg.wParam
Почему в WinMain при завершении программы принято писать return msg.wParam;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru