Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
whatsapp otomatik mesaj gönderme
#1
var
  endURL : String;
  Intend : TJIntent;
begin
      try
        EndURL := 'https://api.whatsapp.com/send?phone=+9' + GSMNO + '&text=' + MESAJIMIZ;
        Intend := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
        Intend.setType(StringToJString('text/plain'));
        Intend.setData(TJNet_Uri.JavaClass.parse(StringToJString(TIdUri.URLEncode(EndURL))));
        SharedActivity.startActivity(Intend);

      except on e:exception do
           toast(e.Message)
      end;
end;

Yukarıdaki kodla whatsapp açılıyor mesajımız mesaj kutusunda yer alıyor gönder buttonuna bastığımızda
ilgili telefona mesal iletiliyor. sms gönderir gibi whatsapp geri planda çalıştırıp mesajımızı belirttiğimiz telefona
otomatik olarak gönderebilirmiyiz. TJIntent.JavaClass.ACTION_SEND çalışmadı hata verdi.

  IntentWhats: = TJIntent.JavaClass.init (TJIntent.JavaClass.ACTION_SEND);
  IntentWhats.setType (StringToJString ('text / plain'));
  IntentWhats.putExtra (TJIntent.JavaClass.EXTRA_TEXT,
      StringToJString (MESAJIMIZ));
  IntentWhats.setPackage (StringToJString ('com.whatsapp'));
  SharedActivity.startActivity (IntentWhats);



Bu kod parçasındada telefon bilgilerini nerede gireceğimizi çözemedim .

Delphican ailesine selamlar.
Cevapla
#2
(17-04-2021, Saat: 14:52)kornakamil Adlı Kullanıcıdan Alıntı: var
  endURL : String;
  Intend : TJIntent;
begin
      try
        EndURL := 'https://api.whatsapp.com/send?phone=+9' + GSMNO + '&text=' + MESAJIMIZ;
        Intend := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
        Intend.setType(StringToJString('text/plain'));
        Intend.setData(TJNet_Uri.JavaClass.parse(StringToJString(TIdUri.URLEncode(EndURL))));
        SharedActivity.startActivity(Intend);

      except on e:exception do
           toast(e.Message)
      end;
end;

Yukarıdaki kodla whatsapp açılıyor mesajımız mesaj kutusunda yer alıyor gönder buttonuna bastığımızda
ilgili telefona mesal iletiliyor. sms gönderir gibi whatsapp geri planda çalıştırıp mesajımızı belirttiğimiz telefona
otomatik olarak gönderebilirmiyiz. TJIntent.JavaClass.ACTION_SEND çalışmadı hata verdi.

  IntentWhats: = TJIntent.JavaClass.init (TJIntent.JavaClass.ACTION_SEND);
  IntentWhats.setType (StringToJString ('text / plain'));
  IntentWhats.putExtra (TJIntent.JavaClass.EXTRA_TEXT,
      StringToJString (MESAJIMIZ));
  IntentWhats.setPackage (StringToJString ('com.whatsapp'));
  SharedActivity.startActivity (IntentWhats);



Bu kod parçasındada telefon bilgilerini nerede gireceğimizi çözemedim .

Delphican ailesine selamlar.

Merhaba...

Whatsapp numarasına direkt mesaj gönderme konusunda zamanında az uğraşmamıştım. Aşağıdaki örnek kodlar ile bunu sağlayabilirsiniz. Yalnız PC de Windows 8 ve üzeri olmalı ve Whatsapp uygulaması da yüklü olmalıdır. Bu şekilde uygulamadan istediğiniz numaraya mesaj iletebiliyorsunuz. Aslında uygulamanın yaptığı en önemli iş Whatssapp'ı açtıktan sonra mesaj göndermek için sanal bir tıklama yapmasıdır. Ben FMX de denemedim sadece VCL de denedim yalnız bilginiz olsun. Yani FMX e uyarlayabilirseniz çalışır diye düşünüyorum. Ama PC den sorunsuz gönderir.

En alttaki kodlar formu ve Whatsap'ı otomatik kapatmak içindir.



procedure SendKey(hWnd: THandle; KeyStroke: Word);
begin
 PostMessage(hWnd, WM_SETFOCUS, 0, 0);
 PostMessage(hWnd, WM_KEYDOWN, KeyStroke, 0);
 PostMessage(hWnd, WM_KEYUP, KeyStroke, 0);
end;



procedure WhatsAppMesaj;
var
 SEInfo: TShellExecuteInfo;
 ExitCode: DWORD;
 ExecuteFile, ParamString, StartInString: string;
 MyHandle: THandle;
 MMessage : ansistring;

begin
//**


MMessage := 'Merhaba...!!!';


ExecuteFile:='whatsapp://send/?phone=+9'+PPhoneNumber+'&text='+MMessage;

 FillChar(SEInfo, SizeOf(SEInfo), 0);
 SEInfo.cbSize := SizeOf(TShellExecuteInfo);
 with SEInfo do begin
   fMask := SEE_MASK_NOCLOSEPROCESS;
   Wnd := Application.Handle;
   lpFile := PChar(ExecuteFile);
{
ParamString can contain the
application parameters.
}
// lpParameters := PChar(ParamString);
{
StartInString specifies the
name of the working directory.
If ommited, the current directory is used.
}
//  lpDirectory := PChar(StartInString);

   nShow := SW_SHOWNORMAL;

 end;
 
 if ShellExecuteEx(@SEInfo) then begin

   repeat
     Application.ProcessMessages;

     //** Send Enter Key !!!
     MyHandle:=FindWindow(nil, 'Whatsapp');
     SendKey(MyHandle,VK_RETURN);
     //**

     GetExitCodeProcess(SEInfo.hProcess, ExitCode);

   until (ExitCode <> STILL_ACTIVE) or
      Application.Terminated;
   //ShowMessage('WhatsApp terminated');
 end
 else ShowMessage('Error starting WhatsApp!');


end;



end;



procedure TForm42.ColorButton1Click(Sender: TObject);
var
 MyHandle: THandle;
begin
 MyHandle:=FindWindow(nil, 'WhatsApp');
 SendMessage(MyHandle, WM_CLOSE, 0, 0);
form42.Close;

end;

end.
Ne ekersen onu biçersin!  Idea
Cevapla
#3
Merhaba, paylaşımınız için teşekkür ederim. Dosya gönderimi yapılabiliyor mu bu yöntemle?
Cevapla
#4
(17-04-2021, Saat: 16:11)yanniosman Adlı Kullanıcıdan Alıntı: Merhaba, paylaşımınız için teşekkür ederim. Dosya gönderimi yapılabiliyor mu bu yöntemle?

Rica ederim de teşekkürleri genelde puanla beraber versek daha makbule geçer! Smile
Ne ekersen onu biçersin!  Idea
Cevapla
#5
merhabalar
mesaj resim yada dosya gönderimi olabiliyor mu acaba?
Cevapla
#6
Bu, metin göndermenin iyi bir yoludur
Daha fazlasını yapmak istiyorsanız, Projeto-TInject bileşenini kullanabilirsiniz (Windows için)
https://github.com/mikelustosa/Projeto-TInject
Cevapla
#7
(20-01-2022, Saat: 10:43)gbg Adlı Kullanıcıdan Alıntı: Bu, metin göndermenin iyi bir yoludur
Daha fazlasını yapmak istiyorsanız, Projeto-TInject bileşenini kullanabilirsiniz (Windows için)
https://github.com/mikelustosa/Projeto-TInject

Teşekkür ederim
Cevapla
#8
(17-04-2021, Saat: 15:10)tmrksmt Adlı Kullanıcıdan Alıntı:
(17-04-2021, Saat: 14:52)kornakamil Adlı Kullanıcıdan Alıntı: var
  endURL : String;
  Intend : TJIntent;
begin
      try
        EndURL := 'https://api.whatsapp.com/send?phone=+9' + GSMNO + '&text=' + MESAJIMIZ;
        Intend := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
        Intend.setType(StringToJString('text/plain'));
        Intend.setData(TJNet_Uri.JavaClass.parse(StringToJString(TIdUri.URLEncode(EndURL))));
        SharedActivity.startActivity(Intend);

      except on e:exception do
           toast(e.Message)
      end;
end;

Yukarıdaki kodla whatsapp açılıyor mesajımız mesaj kutusunda yer alıyor gönder buttonuna bastığımızda
ilgili telefona mesal iletiliyor. sms gönderir gibi whatsapp geri planda çalıştırıp mesajımızı belirttiğimiz telefona
otomatik olarak gönderebilirmiyiz. TJIntent.JavaClass.ACTION_SEND çalışmadı hata verdi.

  IntentWhats: = TJIntent.JavaClass.init (TJIntent.JavaClass.ACTION_SEND);
  IntentWhats.setType (StringToJString ('text / plain'));
  IntentWhats.putExtra (TJIntent.JavaClass.EXTRA_TEXT,
      StringToJString (MESAJIMIZ));
  IntentWhats.setPackage (StringToJString ('com.whatsapp'));
  SharedActivity.startActivity (IntentWhats);



Bu kod parçasındada telefon bilgilerini nerede gireceğimizi çözemedim .

Delphican ailesine selamlar.

Merhaba...

Whatsapp numarasına direkt mesaj gönderme konusunda zamanında az uğraşmamıştım. Aşağıdaki örnek kodlar ile bunu sağlayabilirsiniz. Yalnız PC de Windows 8 ve üzeri olmalı ve Whatsapp uygulaması da yüklü olmalıdır. Bu şekilde uygulamadan istediğiniz numaraya mesaj iletebiliyorsunuz. Aslında uygulamanın yaptığı en önemli iş Whatssapp'ı açtıktan sonra mesaj göndermek için sanal bir tıklama yapmasıdır. Ben FMX de denemedim sadece VCL de denedim yalnız bilginiz olsun. Yani FMX e uyarlayabilirseniz çalışır diye düşünüyorum. Ama PC den sorunsuz gönderir.

En alttaki kodlar formu ve Whatsap'ı otomatik kapatmak içindir.



procedure SendKey(hWnd: THandle; KeyStroke: Word);
begin
 PostMessage(hWnd, WM_SETFOCUS, 0, 0);
 PostMessage(hWnd, WM_KEYDOWN, KeyStroke, 0);
 PostMessage(hWnd, WM_KEYUP, KeyStroke, 0);
end;



procedure WhatsAppMesaj;
var
 SEInfo: TShellExecuteInfo;
 ExitCode: DWORD;
 ExecuteFile, ParamString, StartInString: string;
 MyHandle: THandle;
 MMessage : ansistring;

begin
//**


MMessage := 'Merhaba...!!!';


ExecuteFile:='whatsapp://send/?phone=+9'+PPhoneNumber+'&text='+MMessage;

 FillChar(SEInfo, SizeOf(SEInfo), 0);
 SEInfo.cbSize := SizeOf(TShellExecuteInfo);
 with SEInfo do begin
   fMask := SEE_MASK_NOCLOSEPROCESS;
   Wnd := Application.Handle;
   lpFile := PChar(ExecuteFile);
{
ParamString can contain the
application parameters.
}
// lpParameters := PChar(ParamString);
{
StartInString specifies the
name of the working directory.
If ommited, the current directory is used.
}
//  lpDirectory := PChar(StartInString);

   nShow := SW_SHOWNORMAL;

 end;
 
 if ShellExecuteEx(@SEInfo) then begin

   repeat
     Application.ProcessMessages;

     //** Send Enter Key !!!
     MyHandle:=FindWindow(nil, 'Whatsapp');
     SendKey(MyHandle,VK_RETURN);
     //**

     GetExitCodeProcess(SEInfo.hProcess, ExitCode);

   until (ExitCode <> STILL_ACTIVE) or
      Application.Terminated;
   //ShowMessage('WhatsApp terminated');
 end
 else ShowMessage('Error starting WhatsApp!');


end;



end;



procedure TForm42.ColorButton1Click(Sender: TObject);
var
 MyHandle: THandle;
begin
 MyHandle:=FindWindow(nil, 'WhatsApp');
 SendMessage(MyHandle, WM_CLOSE, 0, 0);
form42.Close;

end;

end.

Ben delphiye uyarladım harika çalışıyor. ancak  SendKey(MyHandle,VK_RETURN) fonksiyonu çalışmıyor. illa ki elle tıklama gerekiyor.
Cevapla
#9
(10-01-2023, Saat: 11:57)mustafaucuz Adlı Kullanıcıdan Alıntı:
(17-04-2021, Saat: 15:10)tmrksmt Adlı Kullanıcıdan Alıntı: Merhaba...

Whatsapp numarasına direkt mesaj gönderme konusunda zamanında az uğraşmamıştım. Aşağıdaki örnek kodlar ile bunu sağlayabilirsiniz. Yalnız PC de Windows 8 ve üzeri olmalı ve Whatsapp uygulaması da yüklü olmalıdır. Bu şekilde uygulamadan istediğiniz numaraya mesaj iletebiliyorsunuz. Aslında uygulamanın yaptığı en önemli iş Whatssapp'ı açtıktan sonra mesaj göndermek için sanal bir tıklama yapmasıdır. Ben FMX de denemedim sadece VCL de denedim yalnız bilginiz olsun. Yani FMX e uyarlayabilirseniz çalışır diye düşünüyorum. Ama PC den sorunsuz gönderir.

En alttaki kodlar formu ve Whatsap'ı otomatik kapatmak içindir.



procedure SendKey(hWnd: THandle; KeyStroke: Word);
begin
 PostMessage(hWnd, WM_SETFOCUS, 0, 0);
 PostMessage(hWnd, WM_KEYDOWN, KeyStroke, 0);
 PostMessage(hWnd, WM_KEYUP, KeyStroke, 0);
end;



procedure WhatsAppMesaj;
var
 SEInfo: TShellExecuteInfo;
 ExitCode: DWORD;
 ExecuteFile, ParamString, StartInString: string;
 MyHandle: THandle;
 MMessage : ansistring;

begin
//**


MMessage := 'Merhaba...!!!';


ExecuteFile:='whatsapp://send/?phone=+9'+PPhoneNumber+'&text='+MMessage;

 FillChar(SEInfo, SizeOf(SEInfo), 0);
 SEInfo.cbSize := SizeOf(TShellExecuteInfo);
 with SEInfo do begin
   fMask := SEE_MASK_NOCLOSEPROCESS;
   Wnd := Application.Handle;
   lpFile := PChar(ExecuteFile);
{
ParamString can contain the
application parameters.
}
// lpParameters := PChar(ParamString);
{
StartInString specifies the
name of the working directory.
If ommited, the current directory is used.
}
//  lpDirectory := PChar(StartInString);

   nShow := SW_SHOWNORMAL;

 end;
 
 if ShellExecuteEx(@SEInfo) then begin

   repeat
     Application.ProcessMessages;

     //** Send Enter Key !!!
     MyHandle:=FindWindow(nil, 'Whatsapp');
     SendKey(MyHandle,VK_RETURN);
     //**

     GetExitCodeProcess(SEInfo.hProcess, ExitCode);

   until (ExitCode <> STILL_ACTIVE) or
      Application.Terminated;
   //ShowMessage('WhatsApp terminated');
 end
 else ShowMessage('Error starting WhatsApp!');


end;



end;



procedure TForm42.ColorButton1Click(Sender: TObject);
var
 MyHandle: THandle;
begin
 MyHandle:=FindWindow(nil, 'WhatsApp');
 SendMessage(MyHandle, WM_CLOSE, 0, 0);
form42.Close;

end;

end.

Ben delphiye uyarladım harika çalışıyor. ancak  SendKey(MyHandle,VK_RETURN) fonksiyonu çalışmıyor. illa ki elle tıklama gerekiyor.

Merhaba bende de kodlama yaptığım pc de direk enter a bastı fakat uygulamanın çalıştığı pc de SendKey(MyHandle,VK_RETURN)  kodu çalışmadı siz çözebildiniz mi? ben windows ile alakalı bir durum olduğunu düşünüyorum.
Cevapla
#10
Tamda böyle bir şey arıyordum. Program çalıştı. Hata vermedi ama mesaj gitmedi. Daha doğrusu ENTER kodunu kabul etmedi. Elle göndere basmak gerekiyor. Bun nasıl çözeriz ?
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Android veri gönderme hakankvk 3 233 29-12-2022, Saat: 18:40
Son Yorum: hakankvk
  Whatsapp Mesajı barissagir 7 551 21-12-2022, Saat: 17:53
Son Yorum: nguzeller
  şirketin konumunu uygulama üzerinden yol tarifi için haritalara gönderme diseqc 5 482 21-11-2022, Saat: 19:23
Son Yorum: mcuyan
  ios api bilgi çekme gönderme gonulali 6 445 21-09-2022, Saat: 09:43
Son Yorum: gonulali
  Android uygulamaya Pdf Gönderme OmerAsaf 4 695 26-05-2021, Saat: 09:44
Son Yorum: OmerAsaf



Konuyu Okuyanlar: 1 Ziyaretçi