Startseite ¦  was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews ¦  sonstiges
kylix ¦  tutorials ¦  online shop ¦  fotos ¦  Add&Win Gewinnspiel


Willkommen Gast. Bitte einloggen oder registrieren.
04.02.2012, 09:17:47
Übersicht Hilfe Suche Einloggen Registrieren

+  SwissDelphiCenter Forum
|-+  German Forums
| |-+  WinAPI Forum
| | |-+  Neuen Ordner erstellen mit Hilfe vom Captian Hook!
« vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Neuen Ordner erstellen mit Hilfe vom Captian Hook!  (Gelesen 2427 mal)
brazo98
Newbie
*
Offline Offline

Beiträge: 3


« am: 13.11.2008, 18:51:01 »

Hallo zusammen

Folgende Idee. Ich habe es leid immer rechte Maustaste -> Neu -> Ordner erstellen. Dann habe ich mich mal in die Materie der Hooks rein gearbeitet. Und nun habe ich keine Idee mehr was ich tun kann damit das Ding genau so rockt wie ich es gerne hätte.

Momentan was geht:
Ich kann die Exe starten und mit ALT+F12 erstellt es mir einen Ordner. Aber immer da wo sich auch die Exe befindet. Und hier ist der Hacken. Der sollte immer den Pfad heraus lesen in dem er sich gerade befindet. Da habe ich mir überlegt ob ich dann einfach das aktuelle Fenster übergebe und mir aus diesem den Pfad heraus lese. Aber hier ist eben der Knackpunkt. Seit ca. 4h versuche ich das ganze und vorher nie was gemacht mit Hooks. Aber es ist eine sehr interessante Materie. Es erleichert einem das Leben denke ich wenn man es mal voll gecheckert hat. Wäre euch sehr dankbar, wenn Ihr mir auf die Sprünge helfen könntet. Ich poste gerade noch meinen Code hierein.

Mein Code:

unit pgmMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TfrmMain = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private-Deklarationen }
    Fix : Integer;
    procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
  public
    { Public-Deklarationen }

  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

{ TfrmMain }
{------------------------------------------------------------------------------}
procedure TfrmMain.FormCreate(Sender: TObject);
begin
  Fix := GlobalAddAtom('Hotkey1');
  RegisterHotKey(Handle, Fix, MOD_Alt, 123);
end;
{------------------------------------------------------------------------------}

{------------------------------------------------------------------------------}
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
  UnRegisterHotKey(Handle, Fix);
end;
{------------------------------------------------------------------------------}

{------------------------------------------------------------------------------}
procedure TfrmMain.WMHotKey(var Msg: TWMHotKey);
var  str: String;
begin
  if Msg.HotKey = Fix then
  begin
    GetDir(0,str);
    try
      MkDir(str + '\' + 'NeuerOrdner');
    except
      ShowMessage('Kontte leider nicht erstellt werden :-(');
    end;
   end;
end;
{------------------------------------------------------------------------------}
end.
Gespeichert
Thomas Stutz
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1784



WWW
« Antworten #1 am: 26.12.2008, 09:53:44 »

Zitat
Ich kann die Exe starten und mit ALT+F12

Geht es nicht ebenso schnell mit Strg+D & N & O?
(= Menü Datei | Neu | Ordner)
Gespeichert

(¯`·._tom_.·´¯)

Tipp: Viele Antworten auf Fragen gibt's hier:
http://www.swissdelphicenter.ch/de/tipsuchen.php
Delphi-Laie
Newbie
*
Offline Offline

Beiträge: 1


« Antworten #2 am: 10.02.2009, 17:40:22 »

Geht es nicht ebenso schnell mit Strg+D & N & O?
(= Menü Datei | Neu | Ordner)

Naja, zwei Tastendrücke mehr.

Diese  Tastendruckkombinationen und -reihenfolgen kann das betreffende Programm doch einfach per Tastendrucksimulation (keybd_event) an das betreffende, aktive, sich im Vordergrund befindliche Fenster per setcapture senden, ungefähr so:

Zitat
SetCapture(GetForegroundWindow);
keybd_event(VK_???,0,0,0);//Alt-Taste dauerhaft gedrückt, muß wieder entladen werden
keybd_event(??);//D-Taste
keybd_event(VK_???,0,KEYEVENTF_KEYUP,0);//Alt-Taste wieder loslassen}
keybd_event(??);//N-Taste
keybd_event(??);//D-Taste
ReleaseCapture

Das soweit - etwas unvollständig - auf die Schnelle.

Mit Gruß

Delphi-Laie
Gespeichert
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS