Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
2 / 2 / 2
Регистрация: 11.02.2010
Сообщений: 252

Неправильно работает программа запускаемая через автозапуск

30.01.2011, 15:15. Показов 1345. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте вопрос в следующем , у меня есть программа которая должна запускаться , сохранять время своего запуска , а затем при завершении работы она должна сохранять время своего закрытия(она автоматически это делает когда пользователь выходит из системы) Но проблема в том что если эту программу самому запускать то она работает нормально , а вот если через автозагрузку то тогда ничего не работает нормально ( т е она ничего не сохраняет) Подскажите пожалуйста как это дело исправить?
вот мой код
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
 public partial class Form1 : Form
    {
        
        const int WM_ENDSESSION = 0x16;
        const int WM_CHANGEUISTATE = 0x0127;//Вот здесь скорее всего событие не правильное, но какое должно быть правильное я не знаю
        bool systemShutdown = false;
        bool systemStart = false;
        Model model = new Model();
 
        public Form1()
        {
            InitializeComponent();
        }
 
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
                case WM_CHANGEUISTATE:
                    systemStart = true;
                    break;
                
                case WM_ENDSESSION:
                    systemShutdown = true;
                    break;
            }
 
            base.WndProc(ref m);
        }
 
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (systemShutdown)
            {                
                model.finishTimeWorking();
            }
           
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            RegistryKey reg = Registry.CurrentUser.CreateSubKey(
                 "Software\\microsoft\\windows\\currentversion\\run");
            reg.SetValue("Working Place", Application.ExecutablePath);
            reg.Close();
            if (systemStart)
            {
                model.startTimeWorking();
                systemStart = false;
            }
        }
 
        
    }
(запускается на windows xp)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.01.2011, 15:15
Ответы с готовыми решениями:

Не работает программа exe, запускаемая из проекта
Мне нужно запустить файл midi2ascii.exe из C#-проекта, который конвертирует midi-файл в txt-файл, пыталась сделать это следующими...

При вызове через BAT запускаемая программа не создаёт файлы c отчётами
Есть программа (написана на Делфи10), которая при запуске создаёт два файла с отчётами о работе При прямом запуске всё работает как и...

Программа неправильно работает при запуске через Планировщик Заданий
Это тоже тема, которая могла оказаться в разделе Windows, но, мне кажется, больше она подходит суда. Есть код. При простом запуске...

2
57 / 57 / 11
Регистрация: 07.03.2010
Сообщений: 157
30.01.2011, 16:56
Сделать без проверок. И не закрывать программу во время работы.
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
 public partial class Form1 : Form
    {
        
 
        public Form1()
        {
            InitializeComponent();
        }
 
 
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {             
                model.finishTimeWorking();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            RegistryKey reg = Registry.CurrentUser.CreateSubKey(
                 "Software\\microsoft\\windows\\currentversion\\run");
            reg.SetValue("Working Place", Application.ExecutablePath);
            reg.Close();
                model.startTimeWorking();
        }
 
        
    }
0
2 / 2 / 2
Регистрация: 11.02.2010
Сообщений: 252
31.01.2011, 08:41  [ТС]
нет , я так раньше тоже пытался сделать, но тогда программа не может корректно завершиться при выходе пользователя из системы

Добавлено через 15 часов 39 минут
yess настроил чтобы программу запускал планировщик задач а не автозагрузка и все заработало Хотя конечно круче было бы сделать чтобы прога ловила системные сообщения адресованые WndProc
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.01.2011, 08:41
Помогаю со студенческими работами здесь

Сделать текущей директорию, в которой находится запускаемая программа
Проблема! При запуске таким методом start ."\ProgramFiles\Steam Desktop Authenticator.exe" Моя программа считает папкой запуска...

Неправильно работает программа
Вызвать Win32 API функцию IsCharUpper, результат роботы вывести на экран. .586 .model small, STDCALL option casemap :none ...

Программа работает неправильно
Написал программу на C++, но она работала не правильно, начал разбираться, понемногу удаляя код нашел проблему. Проблема в строчке №12. ...

неправильно работает программа на с++.
вычислить произведение и число отрицательных элементов матрицы А,находящихся под главной диагональю. #include <vcl.h> #pragma...

Программа работает неправильно
При вводе правильных данных все нормально. Но при вводе неправильных после вывода сообщения об неправильном имени пользователя/пароля он...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru