Hi Läuz,
Ich hab mir en DeskBand geschrieben, welches echt sauber läuft.
Leider lassen sich auf dem kleinen Raum einige Einstellungen nicht unterkriegen.
Daher habe ich ein Konfigurationsformular geschrieben, welches ich gern über das Kontekstmenue aufrufen würde.
Delphi-Quellcode:
function TQRDeskBand.QueryContextMenu(Menu: HMENU; indexMenu, idCmdFirst, idCmdLast, uFlags: UINT): HResult;
begin
FMenuItemCount := 1;
AppendMenu(Menu, MF_STRING, idCmdFirst + 0, PChar('Einstellungen'));
Result := MenuItemCount;
end;
function TQRDeskBand.InvokeCommand(var lpici: TCMInvokeCommandInfo): HResult;
begin
if (HiWord(Integer(lpici.lpVerb)) <> 0) or (LoWord(lpici.lpVerb) > Pred(MenuItemCount)) then
begin
Result := E_FAIL;
Exit;
end;
case LoWord(lpici.lpVerb) of
0: begin
SettingsDlg.ShowModal; //des bleibt immer hier stecken!
frmVisibleBand.FormShow(nil); // des alleine tut!
end;
end;
Result := NO_ERROR;
end;
Leider kräscht der Explorer beim Versuch dies auszuführen immer.
Daher habe ich im DeskBandformular ein Popupmenü hinzugefügt welches folgendes ausführt:
Delphi-Quellcode:
procedure TfrmVisibleBand.SettingsExecute(Sender: TObject);
begin
SettingsDlg.ShowModal;
FormShow(Sender);
end;
Leider kommt hier dann die Meldung dass ein Fehler in der .dll aufgetreten ist und es tut sich nücht!
Ich habe auch schon probiert die
DLL wieder selbst zu implementieren und dieses Formular zu starten, aber das selbe Problem.
Ich glaube das es daran liegt, dass des Fenster über die Windoof Taskleiste ausgeführt wird, oder der einfach irgend wie keinen Zugriff auf des Fenster kriegt.
Kein Plan ich verzweifele langsam dran!
Bitte sagt mir was ich falsch mache!
Ich habe noch nie mit
DLL’s gearbeitet.
Danke!
Grüßle TT