msg w delphi

jac_jac

Użytkownik
Dołączył
Grudzień 6, 2012
Posty
2
Witajcie,
Po pierwsze primo proszę mnie potraktować jako zupełnego laika i jednocześnie proszę o wyrozumiałość.

Mój problemik wygląda następująco: Chciałbym napisać program, który wysyła do komputerów w sieci lan (w domenie) komunikat na ekran, niezaleznie od tego co w tym momencie robi użytkownik.
Więc pomyślałem, iż skorzystam z polecenie dosowego MSG i wywyłom je za pomocą SHELLEXECUTE. Napisałem coś takiego:


procedure TForm1.Button1Click(Sender: TObject);
var t,k:string;

begin
t:='Administrator';
k:='Tresc do wyswietlenia';
ShellExecute(Handle, 'open','msg','Administrator Tresc do wyswietlenia' ,nil,sw_SHOW);
end;


Ta procedura jak najbardziej wyświetli mi u administratora komunikat "tresc do wyswietlenia". Ale mi zależy na tym by zmusić program do tego aby nazwę użytkownika pobierał ze zmiennej "t" (docelowo będzie jakaś lista użytkowników domenowych a komunikat ze zmiennej "k" (docelowo, komunikat wpisywany przez operatora).
Być może problem jest banalny ale na moim poziomie nie do przeskoczenia.
Czy mogę prosić o pomoc ??

Pozdrawiam
Jacek
 

D.F.

Były Moderator
Dołączył
Listopad 4, 2009
Posty
493
Czy chodzi o takie coś?
Kod:
procedure TForm1.Button1Click(Sender: TObject);
var
  t, k : String;
begin
  t := 'Dawid';
  k := 'Tresc do wyswietlenia';
  ShellExecute(Handle, 'open', 'msg', PChar(t+' '+k), nil, SW_SHOW);
end;

Użyłem tutaj rzutowania typu String na PAnsiChar, gdyż taki typ (PChar) jest wymagany przez ShellExecute. Dodatkowo użyłem operatora + do łączenia kilku napisów (String) w jeden.
 

jac_jac

Użytkownik
Dołączył
Grudzień 6, 2012
Posty
2
Dokładnie o to mi chodziło - dziękuję serdecznie.

Ale drążąc temat... ;)

polecenie MSG ma pewne parametry i tak parametr /W przesyła informację, iż odbiorca mojej wiadomości kliknął OK. W jaki sposób przejąć tę informację?
Chodzi o to, że zależy mi na tym, iż chciałbym w jakimś logu zbierać informacje o tym, że komunikat został wyświetlony no i że odbiorca go odebrał czyli kliknął OK
Jak już będę posiadał tę informację w przypisaną do zmiennej to ją sobie zapiszę do pliku - tylko jak ją odebrać ??
 

teawhoyou

Użytkownik
Dołączył
Luty 28, 2013
Posty
9
Jak znaleźć komponent ShellExecute
i proszę mi to wytłumaczyć jak to zrobić.


Wyświetlają mi się 2 błędy a mam taki sam kod jak podał D.F
[Error] Unit1.pas(32): Undeclared identifier: 'ShellExecute'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'


I jakie Komponenty włączyć w tym programie, żeby to działało :)
 
Ostatnia edycja:
Do góry Bottom