С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705

при создании процесса создаётся ярлык в трее, по окончании процесса он не убираетс сам, как его убрать оттуда?

24.01.2012, 16:03. Показов 1737. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья! Вот исходник процесса, качнул с инета. Это в консольном режиме запускат аудио файлы, например mp3:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// cmdmp3
// A command-line MP3 player for Windows
// (console-mode version)
//
// License: MIT / X11
// Copyright (c) 2009 by James K. Lawless
// [email]jimbo@radiks.net[/email] [url]http://www.radiks.net/~jimbo[/url]
// [url]http://www.mailsend-online.com[/url]
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use,
// copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following
// conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.
 
#include <windows.h>
#include <stdio.h>
#include <string.h>
 
 
void sendCommand(char *);
 
int main(int argc,char **argv) {
   char shortBuffer[MAX_PATH];
   char cmdBuff[MAX_PATH + 64];
   printf("cmdmp3\n");
   printf("Command-line MP3 player\n");
   printf("by Jim Lawless\n\n");
   
   if(argc<2) {
      fprintf(stderr,"Syntax:\n\tcmdmp3 \"c:\\path to file\\file.mp3\"\n");
      return 1;
   }
      // Get the shortened path because the MCI string interpreter uses spaces
      // as a separator. If spaces appear in the commands, parts of the filename
      // would be interpreted as paramters to the given command.
   GetShortPathName(argv[1],shortBuffer,sizeof(shortBuffer));
   if(!*shortBuffer) {
      fprintf(stderr,"Cannot shorten filename \"%s\"\n",argv[1]);
      return 1;
   }
   sendCommand((char*)"Close All");
 
   sprintf(cmdBuff,"Open %s Type MPEGVideo Alias theMP3",shortBuffer);
   sendCommand(cmdBuff);
 
   sendCommand((char*)"Play theMP3 Wait");
   return 0;
}
 
   // Send a string to the Media Control Interface
   // If an error occurs, display it and the string
   // that produced the error.
void sendCommand(char *s) {
   int i;
   i=mciSendString(s,NULL,0,0);
   if(i) {
         fprintf(stderr,"Error %d when sending %s\n",i,s);
   }
}
Компилю, получаю экзешник main.exe, затем запускаю в программе несколько экземляров процесса,каждый из которых открывает короткий mp3

C++
1
2
3
4
5
while (условие) {
 Sleep (10000);
 CreateProcess (0, (char*)"main.exe fail.mp3", 0, 0, 0, 0, 0, 0, &si, &pi);
 //Изменение условия
}
Всё проходит хорошо, процессы отрабатывают, файлы воспроизводятся и потом вызывающий процесс заканчивается. Но вот беда, каждое воспоизведение файла помещает в трей какой-то синий квадратик-ярлык, по-моему, это что-то связанное с кодеком. И у меня в результате по окончании всего этого дела оказывается висеть целая гирлянда таких ярлыков (на рисунке), но они не задействованы уж, как только к ним подносиль курсор, они исчезают. Вопрос: как сделать, чтобы они исчезали всякий раз сами по окончании очередного main.exe?
Изображения
 
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2012, 16:03
Ответы с готовыми решениями:

Как сделать повторение процесса по его окончании?
using System; namespace ConsoleApp4 { class Program { static void Main(string args) { ...

При создании процесса на созданном виртуальном десктопе, он создается на основном
Хочу запустить консольную программу на отдельном виртуальном дестктопе, для пример взял самописную консольную программу, которая просто...

ДГУ при создании процесса заменяет дату завершения процесса согласования
Программно создаю процессы согласования, при этом задаю дату завершения процесса от даты создания исходящего документа + день, Отрабатывает...

4
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
24.01.2012, 16:04  [ТС]
На самом деле исходник очень маленький, там комментов на пол страницы.
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
24.01.2012, 16:19
Посмотрите тут. Сам не пробовал, но судя по коду должно работать. Там и принцип описывается если хочется самому сделать...
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
24.01.2012, 17:43  [ТС]
НА wasmе нашёл рабочий код.
0
32 / 32 / 4
Регистрация: 19.12.2011
Сообщений: 72
25.01.2012, 21:14
Эту иконку кодек создаёт. И не убирает, видимо, из за глюка.

В своей программе иконка убирается так (перед выходом):
C
1
    Shell_NotifyIcon(NIM_DELETE, &tico);
tico - структура, на основе которой иконка создавалась той же функцией.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.01.2012, 21:14
Помогаю со студенческими работами здесь

Как можно задать стиль окна при создании процесса функциями WinAPI?
привет всем! скажите, пожалуйста, если создавать окно, то можно указать стиль окна. а как быть с уже созданным окном? как задать стиль...

Ошибка № 5 при создании процесса
Здравствуйте. Приложение запущенное командой CreateProcess выдает ошибку 5. Приложение вызывающее команду CreateProcess запускается в...

Страшная ошибка при создании процесса
Программа в каталоге, в котором она была вызвана, должна перебирать все имеющиеся файлы и выводить их имена. int _tmain(int argc,...

VirtualBox зависает при создании процесса
Проблема в том, что при запуске виртуальной машины загружается окно создания процесса и дальше ничего не происходит. Пробовал уже раз 50......

Как реализовать перезапуск процесса при его закрытии?
Господа программисты, как сделать на делфи возврат процесса, т.е. при закрытии exe-шника делфи он бы снова запускался. Добавлено через...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru