Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > [C#] Отследить названия окна


Автор: Sanchezzz 4.4.2013, 20:40
Добрый вечер. Как отследить какое приложение активно с которым работает пользователь?
Делаю для себя программу "не халтурить а работай" и подсчитываю время, названия приложейни нужны для белого и черного списка .

В C# новочек стаж(2дня) работал с другими С подобными языками и для меня, это все новое. 

Автор: Sanchezzz 4.4.2013, 22:06
Ребят вопрос решен, все оказалось просто. Все в кусности есть user32.dll 

Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.IO;  // хер его знает нужно или нет...

public class class1 {

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern int GetWindowText(int hWnd, StringBuilder text, int count);
       
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr GetForegroundWindow();
        
        /*
         * Текст активного окна
         */
        public string GetActiveWindow()
        {
            const int cChars = 256;
            IntPtr ihandler = IntPtr.Zero;
            StringBuilder sBuff = new StringBuilder(cChars);
            ihandler = GetForegroundWindow();
            if (GetWindowText(ihandler.ToInt32(), sBuff, cChars) > 0)
                return sBuff.ToString();
            return "";
        }

}

Автор: xvr 5.4.2013, 09:16
То, что приложение активно, еще не значит, что пользователь с ним работает. Он мог открыть это приложение на весь экран и пойти пить чай  smile 

Вам явно надо в http://forum.vingrad.ru/forum/c-c++system-programming-WinAPI.html

Автор: borisbn 5.4.2013, 09:53
Есть же http://www.manictime.com/

Автор: Sanchezzz 5.4.2013, 11:50
Ну это приложения я делаю для себя так как я не люблю подсчитывать время где сколько я времени потратил. Следуйщие новороты нужны для статистики которые я задумал позже.

Для тех кто пошел пить чай есть отслеживание сколько пользователь нечего не делала через 
Код

[DllImport("user32.dll")]
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);


xvr, Да наверно стоило туд задать вопрос но я чесно без задней мысли его задал здесь.
borisbn, Спасибо за линк попробую сее интструмент полезный.

Но начатое я не планирую бросать уже 3 день играюсь как ребенок в C#

Автор: Crafty 5.4.2013, 12:10
Sanchezzz, Вообщето С# в другом разделе  smile 

Автор: Sanchezzz 5.4.2013, 12:18
Crafty, Прощу прощения.

Модераторы плиз перенесите топик в раздел .NET общие вопросы 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)