CYFROWY BARON • PROGRAMOWANIE • Zobacz wÄ…tek - Uchwyt do programu

Uchwyt do programu

dział ogólny

Re: Uchwyt do programu

Nowy postprzez Pitek » sobota, 4 grudnia 2010, 22:11

Co do HotKey'a to mam pytanie w jaki sposób można go zmieniać np. poprzez wprowadzenie ustawień w pliku zewnętrznym tak aby nie trzeba było za pomocą if opisywać wszystkich możliwości. Mam na myśli (podam przykład tego o co mi chodzi ale wiez ze to źle)
KOD cpp:   •  UKRYJ  •
String abc,def;
abc = "MOD_CONTROL";
def = "VK_F10";
RegisterHotKey(Handle, 1, abc, def);
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
PodziÄ™kowaÅ‚ : 43
OtrzymaÅ‚ podziÄ™kowaÅ„: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Ubuntu 19.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    Windows XPFirefox

Re: Uchwyt do programu

Nowy postprzez Cyfrowy Baron » sobota, 4 grudnia 2010, 22:51

Zarówno modyfikator jak i przycisk to są wartości tupu unsigned int (UINT), a nie String, więc należy je wczytać np. z pliku ini to zmiennych typu unsigned int.

MOD_ALT = 0x0001 = 1;
MOD_CONTROL = 0x0002 = 2;
MOD_SHIFT = 0x0004 = 4;
MOD_WIN = 0x0008 = 8;


Z klawiszem WINDOWS trzeba uważać, gdyż np. kombinacja WIN + F1 jest gorącym klawiszem systemu przywołującym pomoc.
Z klawiszami jest dokładnie tak samo:

VK_F1 = 0x70 = 112;

Wartości klawiszy znajdziesz w pliku winuser.h w katalogu include środowiska. Wartości podane są w postaci hexadecymalnej, ale możesz je sobie przetłumaczyć na dziesiętne za pomocą systemowego Kalkulatora. Uruchamiasz Kalkulator z menu Widok wybierasz Naukowy, ustawiasz kalkulator w tryb Hex:

calc1.png


następnie wprowadzasz do Kalkulatora wartość hexadecymalną, np. w pliku winuse.h masz:

#define VK_F12 0x7B

do kalkulatora wprowadzasz wartość 7B i wybierasz tryb Dec, kalkulator poda wartość dziesiętną 123:

calc2.png


KOD cpp:   •  UKRYJ  •
 UINT mod = 2; // MOD_CONTROL
 UINT key = 112;  // VK_F1
 RegisterHotKey(Handle, 1, mod, key);
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
Pitek
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Uchwyt do programu

Nowy postprzez Pitek » poniedziaÅ‚ek, 13 grudnia 2010, 00:05

Mam jeszcze takie pytanie.
Jak za pomocą komunikatów zminimalizować okno sterowanego programu ?
Lub w jakiś inny sposób.
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
PodziÄ™kowaÅ‚ : 43
OtrzymaÅ‚ podziÄ™kowaÅ„: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Ubuntu 19.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    Windows XPFirefox

Re: Uchwyt do programu

Nowy postprzez Cyfrowy Baron » poniedziaÅ‚ek, 13 grudnia 2010, 00:30

KOD cpp:   •  UKRYJ  •
 HWND hWnd = FindWindow(NULL, L"Kalkulator");
 ShowWindow(hWnd, SW_MINIMIZE);



SW_FORCEMINIMIZE
Windows 2000/XP: Minimizes a window, even if the thread that owns the window is not responding. This flag should only be used when minimizing windows from a different thread.

SW_HIDE
Hides the window and activates another window.

SW_MAXIMIZE
Maximizes the specified window.

SW_MINIMIZE
Minimizes the specified window and activates the next top-level window in the Z order.

SW_RESTORE
Activates and displays the window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when restoring a minimized window.

SW_SHOW

Activates the window and displays it in its current size and position.

SW_SHOWDEFAULT
Sets the show state based on the SW_ value specified in the STARTUPINFO structure passed to the CreateProcess function by the program that started the application.

SW_SHOWMAXIMIZED
Activates the window and displays it as a maximized window.

SW_SHOWMINIMIZED
Activates the window and displays it as a minimized window.

SW_SHOWMINNOACTIVE
Displays the window as a minimized window. This value is similar to SW_SHOWMINIMIZED, except the window is not activated.

SW_SHOWNA
Displays the window in its current size and position. This value is similar to SW_SHOW, except the window is not activated.

SW_SHOWNOACTIVATE
Displays a window in its most recent size and position. This value is similar to SW_SHOWNORMAL, except the window is not actived.

SW_SHOWNORMAL

Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when displaying the window for the first time.


Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Uchwyt do programu

Nowy postprzez Pitek » piÄ…tek, 24 grudnia 2010, 01:37

A w jaki sposób zakończyć działanie sterowanego programu za pomocą komunikatów?
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
PodziÄ™kowaÅ‚ : 43
OtrzymaÅ‚ podziÄ™kowaÅ„: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Ubuntu 19.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    Windows XPFirefox

Re: Uchwyt do programu

Nowy postprzez Cyfrowy Baron » piÄ…tek, 24 grudnia 2010, 10:16

Trzeba wysłać komunikat WM_CLOSE do okna głównego programu.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Poprzednia strona

Powrót do Ogólne problemy z programowaniem

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 4 gości