AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Notepad fernsteuern

Ein Thema von gabneo · begonnen am 31. Okt 2007 · letzter Beitrag vom 31. Okt 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Notepad fernsteuern

  Alt 31. Okt 2007, 12:27
Zitat von guidok:
Es sollte doch kein Problem sein im Anwendungsverzeichnis eine Datei errorlog.txt zu speichern.
Doch das ist es, weil im Anwendungsverzeichnis nur Administratoren Schreibrechte haben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#12

Re: Notepad fernsteuern

  Alt 31. Okt 2007, 12:34
Zitat von guidok:
.. Dazu noch eine Meldung für den Benutzer, das diese Datei erzeugt wurde, evtl. mit einer Frage kombiniert, ob sie sofort geöffnet werden soll.
Zum Lesen öffnen -> Ja. Zum Schreiben öffnen -> klares Nein. Solche Dateien müssen zudem fortlaufend sein. Stichwort : Append Es sollte keiner was dran ändern können. Ansonsten gilt : glaube nur dem Logbuch, was du selber gefälscht hast. Im Zweifellsfall verursacht nämlich immer dein Programm die Fehler, da die DAUs eben nie welche machen und der Uralt-Rechner sowieso ewig hält !
Gruß
Hansa
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#13

Re: Notepad fernsteuern

  Alt 31. Okt 2007, 12:41
Zitat von gabneo:
Nun mir geht es darum, ich habe ein Programm das Termingesteuert Jobs ausführt. Dieses Läuft absolut Fehlerfrei (stolzbin) und wird produktiv eingesetzt. Jetzt kam allerdings ein Problem auf dessen Ursache nicht in meiner Macht liegt, weswegen ich dennoch darauf reagieren will. Dazu benötige ich eine "Reporting"-Schnittstelle über die ein Error-log bei bedarf ausgegeben werden kann.
Nun dann wäre es am sinnvollsten, jegliche Fehler einfach in einer Log-Datei zu protokollieren.
Die Fehler bleiben auch dann gespeichert, wenn dein Programm zwischendurch beendet wurde.
Die Grösse des Protokolls sollte begrenzt werden (z.B. 500 kB).
Ich hätte da schon eine fertige Komponente.

Anstelle dem Notepad kann man auch einen Webbrowser (Internet Explorer) benützten um
das Fehlerprotokoll per Knopfdruck anzuzeigen.
Delphi-Quellcode:
function OpenURL(const url: string): Boolean;
begin
   Result := ShellExecute(0, 'open', PChar(url), nil, nil, SW_SHOW) > 32;
end;
...
   OpenURL('file:'+name_der_logdatei);
Eine Änderung des Protokolls ist über den Webbrowser nicht möglich; aber das ist auch nicht erwünscht.

Du könntest auch das Eventlog von Windows verwenden; insbesondere dann, wenn deine Anwendung mal ein Dienst werden sollte.
Andreas
  Mit Zitat antworten Zitat
gabneo

Registriert seit: 15. Okt 2006
Ort: Deutsche Toskana :)
93 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#14

Re: Notepad fernsteuern

  Alt 31. Okt 2007, 13:29
Danke für die Menge interessanter Kommentare.
Ob jemand den Error-Log editiert oder nicht wäre gar nicht wichtig, da das Error-Log dazu gedacht ist, andere anzuschwärzen also wenn man es ändert, schneidet man sich ins eigene Fleisch, ausserdem welcher am Resultat interessierter Admin würde Fakten manipulieren? Rauskommen tun solche Sachen immer....spätestens wenn man einen Grund abliefern muss...es gibt nur zwei zustände 1. Es funktioniert 2. Es gibt einen Grund dafür das es nicht funktioniert und dieser wird gerade behoben.

Nunja ich habe es jetzt anders gelöst und einen Weg gefunden es innerhalb der Applikation unterzubringen ohne das Konzept zu zerstören.

greez
gabneo

PS: Für alle anderen die jemals diesen Thread finden und aus irgendeinem Grund Notepad fernsteuern möchten, ich habe es so gemacht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var wnd:HWND; Rect:TRect; i:Integer; s:string;
begin
 shellExecute(handle,'open',PChar(getspecialfolder(handle,CSIDL_WINDOWS)+'\notepad.exe'),Nil,Nil,SW_NORMAL);
 sleep(50); <---------- ist sehr unsauber, um das kurze aufblitzen zu umgehen sollte man sich überlegen statt dem shellexecute befehl CreateProcess zu nehmen oder TShellExecuteInfo zu deklarieren und die richtige Formatierung (Top/Left/Height/width) gleich beim start mitzuübergeben, dann wird das sleep überfällig = kein aufblitzen mehr

 wnd:=FindWindow('notepad',nil);
 setwindowpos(wnd,hwnd_top,trunc((screen.DesktopWidth/2)-300),trunc((screen.DesktopHeight/2)-200),600,400,swp_showwindow);
 if wnd<>0 then
  begin
   wnd:=FindWindowEx(wnd,0,'Edit',nil);
   s:='TEST';
   For i:=1 to Length(s) do SendMessage(wnd, WM_CHAR, Word(s[i]), 0);
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Notepad fernsteuern

  Alt 31. Okt 2007, 13:46
Und wenn Du mal vor diesem Aufruf ein paar Instanzen von Notepad öffnest und dort Text hineintippst, wirst Du schnell die Grenzen Deiner Lösung erkennen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
gabneo

Registriert seit: 15. Okt 2006
Ort: Deutsche Toskana :)
93 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#16

Re: Notepad fernsteuern

  Alt 31. Okt 2007, 13:51
Ich gestehe das ich soweit noch nicht getestet habe...weil ich die idee es mit notepad lösen zu wollen ziemlich schnell verworfen habe
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#17

Re: Notepad fernsteuern

  Alt 31. Okt 2007, 13:54
Hi,

Abgesehn davon würde ich vielleicht eher WM_SETTEXT als Length(Text) mal WM_CHAR zu benutzen

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#18

Re: Notepad fernsteuern

  Alt 31. Okt 2007, 13:57
@ Luckie:

Wenn man die Umgebungsvariable für Anwendungsdaten benutzt (Also APPDATA), dann brauch man unter Vista auch zum schreiben keine Admin-Rechte, weil man z.B. in diesen Pfad rauskommt:
"H:\Users\TonyR\AppData\Roaming"

Ich benutze eine INI, die genau dort gespeichert wird in einem meiner Programme (ohne Admin-Rechte ausgeführt) -> keine Fehler

Edit: Anwendungsverzeichnis <> Anwendungsdatenverzeichnis ... mein Fehler

(aber wenn das Prog nicht in C:\Programme ausgeführt wird, sondern z.B. auf dem Desktop gibts trotzdem keine Probleme
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#19

Re: Notepad fernsteuern

  Alt 31. Okt 2007, 16:48
Zitat von gabneo:
..Ob jemand den Error-Log editiert oder nicht wäre gar nicht wichtig, da das Error-Log dazu gedacht ist, andere anzuschwärzen also wenn man es ändert, schneidet man sich ins eigene Fleisch
Wer soll da angeschwärzt werden ? Es geht lediglich darum, die Fehler aufzudecken. Glaub es mir, die werden die nie freiwillig zugeben ! Deshalb scheidet die M;glichkeit einer Editierung komplett aus. Zumindest w[rfde ich sie nicht freiwillig zulassen. Gebraucht wird ein Textdatei-Browser.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz