Entwickler-Ecke
Dateizugriff - Hotkey der das Programm startet
neo - So 02.03.03 14:11
Titel: Hotkey der das Programm startet
Hallo!
Wie kann ich einen Hotkey (zb. STRG+ALT+A) unter Windows registrieren, der dann mein Programm (eine einfache exe Datei) öffnet?
Oder geht das direkt im Programm (mit Delphi geschrieben)?
thx @ all
Jetro - So 02.03.03 14:18
Also es geht, wenn du eine Verknüpfung auf deine *.exe erstellst. Dann Rechtsklick auf die Verknüpfung und bei "Tastenkombination" kannst du dann deinen Hotkey festlegen.
Ciao :)
neo - So 02.03.03 14:23
Titel: RE:
Das habe ich schon probiert aber irgendwie geht das nicht richtig.
Keine Ahnung warum...
maxk - So 02.03.03 14:28
Das mit den Windowsverknüpfungen ist ne Glückssache. Du kannst versuchen die Verknüpfung in die QuickLunch oder auf den Desktop zu packen, was machnmal noch funktioniert.
Ansonsten gibt es die Möglichkeit ein anderes Programm im Hintergrund laufen zu lassen, wenn HotKey -> Programm starten.
maxk
neo - So 02.03.03 14:32
Titel: RE:
Das mit dem anderen programm hab ich mir auch schon gedacht.
Wird wohl die einzige wirkliche Möglichkeit sein....
neo - So 02.03.03 14:36
Titel: RE:
Hätte da noch eine Frage:
Wie kann ich ein Programm im Hintergrund (ab dem Systemstart (Autostart) laufen lassen?
. Das Formular sollte gar nicht angezeigt werden, dass müsste mit visible:=false gehen.
wie ist es mit dem (tray und )task icon? wie kann man das ausblenden?
Jetro - So 02.03.03 14:51
Das geht mit:
Quelltext
1:
| ShowWindow(Application.Handle, SW_HIDE); |
Ich bin mir allerdings nicht ganz sicher ob es dann "für immer" versteckt wird, ich glaube das Ganze musste man in einen Timer packen und alle paar Sekunden ausführen, das es richtige Wirkung zeigt...aber probieren...
Cya :)
neo - So 02.03.03 15:03
Titel: RE:
Für alle dies noch brauchen, ich habs jetzt mit dem Code gemacht, und es geht super!
Application.ShowMainForm:=false;
Da benötigt man keinen Timer etc.
Danke an alle die mir geholfen haben!
mcfrag - Fr 14.03.03 19:57
nur nebenbei, mich wuerde schon noich interessieren wie ich systemweite hotkeys in nem delphi programm regesrtiere hat da jemand ne idee?
wulfskin - Sa 15.03.03 02:46
mcfrag hat folgendes geschrieben: |
nur nebenbei, mich wuerde schon noich interessieren wie ich systemweite hotkeys in nem delphi programm regesrtiere hat da jemand ne idee? |
Soweit ich weiss, geht das mit
REGISTERHOTKEY. Nähere dazu in der Hilfe!
neo - Sa 15.03.03 12:38
Titel: RE:
HIer siehst du wie man den Sys weiten Hotkey machen kann
Delphi-Quelltext
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: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97:
|
unit Unit1;
interface
uses Windows, Messages, Forms, Dialogs;
type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private id1, id2, id3, id4: Integer; procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY; public end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMHotKey(var Msg: TWMHotKey); begin if Msg.HotKey = id1 then ShowMessage('Ctrl + A was pressed !'); if Msg.HotKey = id2 then ShowMessage('Ctrl + Alt + R was pressed !'); if Msg.HotKey = id3 then ShowMessage('Win + F4 was pressed !'); if Msg.HotKey = id4 then ShowMessage('Print Screen was pressed !'); end;
procedure TForm1.FormCreate(Sender: TObject); const MOD_ALT = 1; MOD_CONTROL = 2; MOD_SHIFT = 4; MOD_WIN = 8; VK_A = 65; VK_R = 82; VK_F4 = 115; begin id1 := GlobalAddAtom('Hotkey1'); RegisterHotKey(Handle, id1, MOD_CONTROL, VK_A);
id2 := GlobalAddAtom('Hotkey2'); RegisterHotKey(Handle, id2, MOD_CONTROL + MOD_Alt, VK_R);
id3 := GlobalAddAtom('Hotkey3'); RegisterHotKey(Handle, id3, MOD_WIN, VK_F4);
id4 := GlobalAddAtom('Hotkey4'); RegisterHotKey(Handle, id4, 0, VK_SNAPSHOT); end;
procedure TForm1.FormDestroy(Sender: TObject); begin UnRegisterHotKey(Handle, id1); UnRegisterHotKey(Handle, id2); UnRegisterHotKey(Handle, id3); UnRegisterHotKey(Handle, id4); end;
end.
|
mcfrag - Sa 15.03.03 14:26
dankeschoen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!