отображение кнопок на таскбаре; ф-ция SetSystemCursor

Тема в разделе "WASM.BEGINNERS", создана пользователем zxcth, 18 окт 2009.

  1. zxcth

    zxcth New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2009
    Сообщения:
    16
    Здравствуйте. У меня возникли две разные проблемы. Сам решить их не смог и поиск также не дал результата.

    Вопрос 1.
    Можно ли скрыть кнопку с панели задач что бы при этом окно приложения осталось на экране ? То есть например: Запускаем калькулятор (calc.exe), выполняем какой-то код и после этого видим чистую панель задач, а окно калькулятора все также видно на экране.

    Вопрос 2.
    Вот например если щелкнуть мышью два раза на значке "Мой компьютер" то курсор на какое-то время изменится - вместо "курсора стрелки" будет виден "курсор стрелка+песочные часы". Я хочу чтобы, например, моя программа на определенное время подменяла системный курсор "стрелка+песочные часы" на курсор "стрелка". То есть чтобы потом я ,например, заходил в "Мой компьютер" и курсор не менял своего вида. Долго экспериментировал с функцией SetSystemCursor, писал примерно так SetSystemCursor(LoadCursor(0,IDC_WAIT),OCR_NORMAL);
    Но желаемого результата не добился.

    Помогите пожалуйста советом или куском кода (можно на си или паскале).
     
  2. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    Вопрос 1.
    Да, можно - делается это через COM, интерфейс - ITaskBarList. Пример есть в комплекте FAsm "USECOM".

    Вопрос 2.
    Возможно вам нужно в сообщении WM_SETCURSOR (у окна) выполнить функцию SetCursor(LoadCursor(0,IDC_WAIT)).
     
  3. zxcth

    zxcth New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2009
    Сообщения:
    16
    Arthur

    Через интерфейс ITaskBarList не получается, писал значит так:

    Да и вообще мне бы желательно без COM.

    По поводу второго моего вопроса, мне нужно подменить курсор во всей системе.
     
  4. zxcth

    zxcth New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2009
    Сообщения:
    16
    Arthur
    Посмотрел пример "USECOM". Сложно разобраться с этим фасмом. Вы бы не могли переделать его под Си ?
     
  5. zxcth

    zxcth New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2009
    Сообщения:
    16
    Нашел что искал, вот пример на Delphi:

    PS. Жду идей по поводу второго вопроса с курсором.
     
  6. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    zxcth
    попробуйте так:
    Код (Text):
    1. int main(){
    2. wchar_t *buf= L"Form1"; // Unicode-строка
    3. ... // ваш код
    4. }
    вы используете FindWindowW неявно (это прослеживается в приведении типов "(LPCWSTR)", значить приложение использует Unicode), но переменная у вас ANSI-строка и приведении типа здесь не поможет (читайте статьи на тему представления данных). Нужно либо использовать функции преобразования ANSI в Unicode, либо использовать статические Unicode строки.
     
  7. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    zxcth
    по второму вопросу - в чем собственно проблема? (у меня функция SetSystemCursor функционирует нормально).
     
  8. zxcth

    zxcth New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2009
    Сообщения:
    16
    Arthur
    Напишите пожалуйста как вы вызываете SetSystemCursor.
     
  9. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    Код (Text):
    1.     SetSystemCursor(LoadCursor(NULL, IDC_WAIT), 32512 /*OCR_NORMAL*/);
     
  10. zxcth

    zxcth New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2009
    Сообщения:
    16
    И так тоже будет работать у Вас ?
    SetSystemCursor(LoadCursor(0,IDC_ARROW),OCR_APPSTARTING);
     
  11. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    zxcth
    Вы лучше скажите что у вас не получается? :)
     
  12. zxcth

    zxcth New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2009
    Сообщения:
    16
    Arthur
    Я в первом посте писал что мне нужно:

    Ну вы понимаете, что если запускать в винде какую либо программу (особенно это видно на слабых ПК) , то системный курсор приобретает вид "Стрелка + песочные часы" . Я хочу чтобы пользователь не видел этого изменения.