Wenn dies Ihr erster Besuch hier ist,
lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen
durch. Sie müssen sich vermutlich registrieren,
bevor Sie Beiträge verfassen können. Klicken Sie oben auf 'Registrieren', um den Registrierungsprozess zu
starten. Sie können auch jetzt schon Beiträge lesen. Suchen Sie sich einfach das Forum aus, das Sie am meisten
interessiert.
Kannst du.
dass machst du am besten mit FindWindow('<fenstername>',nil)
Den Fensternamen von Excel kannst du mit MS Spy++ o.ä. rausfinden. Leider hab ich Excel nicht installiert, sonst würd ich grad nachgucken.
Irgentein Tool dafür is glaub ich auch bei delphi dabei, ich weiss aber grad net wie dat heisst.
FindWindow liefert dir einen wert der kleiner oder gleich 0 ist wenn die anwendung(excel) nicht läuft
also mit dem Fensternamen würde ich nicht operieren<br>
Der ändert sich von Arbeitsmappe zu Arbeitsmappe.<br>
Der folgende Code stammt von Deborah Pate und öffnet Excel nur wenn es nicht offen ist.<br>
<PRE>
uses Windows, ComObj, ActiveX, Excel_TLB;
function Open_Excel_APP(v:boolean):Excel_TLB._Application;
//Before you can use this method, you must have imported the type //library (Excel8.olb for Excel 97).
var
ExcelAPP: Excel_TLB._Application;
AppWasRunning: boolean; // tells you if you can close Excel when You've finished
Unknown: IUnknown;
Result1: HResult;
begin
Mylcid := LOCALE_USER_DEFAULT;
AppWasRunning := False;
Result1 := GetActiveObject(CLASS_ExcelApplication, nil, Unknown);
if (Result1 = MK_E_UNAVAILABLE) then
ExcelAPP := CoExcelApplication.Create;
else begin
{ make sure no other error occurred during GetActiveObject
OleCheck(Result1);
OleCheck(Unknown.QueryInterface(_Application, ExcelAPP));
AppWasRunning := True;
end;
ExcelAPP.UserControl:=v;
ExcelAPP.Visible[Mylcid] := v;
result:=ExcelAPP;
end
Also, man kann schon mit <b>findwindow</b> arbeiten, zumal an erster Stelle ja der Klassenname steht. Und der dürfte sich auch bei mehreren Arbeitsmappen nicht ändern.<br><br>
Aber eine Lösung über COM o.ä. ist in jedem Fall wohl eleganter.<br><br>
Mathias
Comment