AGB  ·  Datenschutz  ·  Impressum  







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

IRC Shellbot

Ein Thema von Julian W. · begonnen am 25. Feb 2007 · letzter Beitrag vom 1. Mär 2007
Antwort Antwort
Julian W.

Registriert seit: 8. Nov 2006
25 Beiträge
 
#1

IRC Shellbot

  Alt 25. Feb 2007, 20:43
Moin,
also ich hab mir mit nem Freund zusammen nen Root gemietet und weil ich nicht immer per remote drauf connecten will würd ich gerne ne art IRC Shellbot basteln. Also der immer auf einen irc server connected und dann halt meine Befehle entgegennimmt. Aber ich hab kein Plan, wie ich das umsetzen soll. Das mim irc usw ist noch klar, aber wie soll ich das mit den befehlen hinbekommen? Müsste ich da jetz immer alle möglichkeiten mit if abfragen? So nach dem motto:
Delphi-Quellcode:
procedure TForm1.IdIRC1Message(Sender: TObject; AUser: TIdIRCUser;
  AChannel: TIdIRCChannel; Content: String);
begin
if content = 'dirthen
blebleble
else if content = 'cdthen
blablabla
...
end;
und wie kann das dann mit den Parametern gehen, also wenn ich jetz z.B. ein cd machen will, muss ich ja auch den Ordner mit übergeben, in den gewechseld werden soll...

Ich hoffe ihr könnt mir ein bisschen helfen. Greetz Julian
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: IRC Shellbot

  Alt 25. Feb 2007, 20:59
Ich würde auf jeden fall mindestens noch den Sender abfragen, damit ihn niemand missbraucht.
Zu deinem problem: du kannst du einfach mit ShellExecute den Content ausführen.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Julian W.

Registriert seit: 8. Nov 2006
25 Beiträge
 
#3

Re: IRC Shellbot

  Alt 25. Feb 2007, 21:27
Zitat von inherited:
Ich würde auf jeden fall mindestens noch den Sender abfragen, damit ihn niemand missbraucht.
Das ist kein Problem, da man den channel mit passwort versehen kann und ihn unsichtbar machen kann

Zitat von inherited:
Zu deinem problem: du kannst du einfach mit ShellExecute den Content ausführen.
Ja stimmt, aber wie siehts aus, wenn ich eigene Befehle einbaun will, dies nicht bei DOS gibt? Bzw. wie soll ich die dos ausgabe abfangen und zurückgeben? Immer alles in ne txt ausgeben zu lassen, die auszulesen und zu antworten ist ja auch doof..
Greetz und danke schonma - Julian
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: IRC Shellbot

  Alt 26. Feb 2007, 17:50
Das Abfangen kannst du über Pipes, bzw. Named Pipes realisieren. Du musst nur mal suchen, dasa hatten wir hier schon oft.
Wenn du eigene Befehle haben willst, kannst du ja vorher überprüfen ob es ein Befehl von dir ist, und sonst es über ShellExecute versuchen auszuführen.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Julian W.

Registriert seit: 8. Nov 2006
25 Beiträge
 
#5

Re: IRC Shellbot

  Alt 26. Feb 2007, 18:21
ja ok, das bekomm ich ja vermutlich noch hin, aber wie soll ich das mit eigenen befehlen machen? Da hab ich echt kp... Gibts nich sowas wie eingabemasken?
Wär gut wenn mir jemand weiterhelfen könnte.

Greetz Julian
  Mit Zitat antworten Zitat
Julian W.

Registriert seit: 8. Nov 2006
25 Beiträge
 
#6

Re: IRC Shellbot

  Alt 1. Mär 2007, 17:36
Ok, das hat sich jetz erledigt. Hab mich erstmal an den pipes usw versucht. Klappt auch, aber leider wird nicht die gesamte cmd Ausgabe per IRC zurückgesendet.
Hier mal mein code, vielleicht wisst ihr ja woran das liegt:

Delphi-Quellcode:
procedure TForm1.FClbProc(Sender: TObject; const ABuffer: String; ABufSize: Cardinal);
var LNew: string;
    LPos: Integer;
begin
  LNew := copy(ABuffer, 1, ABufSize);
  LPos := pos(#$C, LNew);
  if (LPos > 0) then
  begin
    MemoOutput.Text := '';
    LNew := copy(LNew, LPos + 1, Length(LNew));
  end;
  MemoOutput.Text := MemoOutput.Text + LNew;
      
  IdIRC1.Say('#lalalalala',Lnew);
  
  PostMessage(MemoOutput.Handle, WM_VSCROLL, SB_BOTTOM, 0);
end;
Ich habe den Code weitgehend hieraus übernommen:
http://www.delphipraxis.net/internal...=598121#598121

Greetz Julian
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:04 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