Menjalankan Gammu Dengan Delphi

SMS Gateway, sebenarnya itu judul yangPengumuman Calon Asisten Praktikum Basisdata. Read more ... » akan sayaMembuka Command Prompt mode Administrator. Read more ... » tuliskan pada tulisan kaliMenjalankan Aplikasi Android di Windows. Read more ... » ini, tetapi karena SMS Gateway yang akan saya tuliskan menggunakan delphiPrinsip dasar pembuatan Keylogger. Read more ... », maka saya potong menjadi beberapa bagian, agar mudah dipelajari secara konsep ataupun logika. Jadi, kali ini kitaCara mengatasai Cannot modify header PHP. Read more ... » akan coba bagaimana sih menjalankan service gammu denganTUGAS STRUKTUR DATA KELAS SAMI. Read more ... » Delphi?? Sebelumnya ada beberapa aplikasi pendukung yang harus dipenuhi yakni :

Jika semua sudah terpenuhi, pertama kita akan buat odbc driver mysql terbaca di Delphi,caranya sebagai berikut :

  1. Install Terlebih dahulu ODBC mysql Connector
  2. Masuk Control Panel –> Administratif Tool — Pilih Datasource ODBC.
  3. Jika Benar maka akan tampil jendela berikut :
  4. ODBC ADd

  5. Klik Button Add, Kemudian Pilih MYSQL ODBC Driver 5.1
  6. ODBC mysql Driver

  7. Selanjutnya akan ada jendela MYSQL Connection Configuration, isikan sesuai dengan database gammu yang telah direstore pada mysql, pada contoh saya gunakan nama database sms.

    Configuration

Pembutan Konfigurasi Gammu

  1. Tahap Instalasi Driver ODBC Mysql suksess, selanjutnya kita akan masuk ke tahap coding, pertama buka Delphi dan buat tampilan seperti berikut :
  2. Konfigurasi

  3. Simpan Projek kedalam Sebuah Folder.
  4. Ektrak Gammu yang telah di download kedalam Folder yang telah dibuat sebelumnya, jadi urutan seperti berikut : nama_folder/Gammu
  5. Klik 2x pada menu Simpan Konfigurasi dan ketikan source berikut :
    <pre>var
    gammuinifile, smsdrcnya, gammu : TIniFile;
    begin
         try
      gammu := TIniFile.Create(ExtractFilePath(Application.ExeName)+ '/gammu/bin/gammu.ini');
      gammu.WriteString('lokasi', 'path', edit1.Text);
      gammu.Free;
      gammuinifile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'/gammu/bin/gammurc ');
      gammuinifile.WriteString('gammu', 'port', edit2.Text);
      gammuinifile.WriteString('gammu', 'connection', edit3.Text);
      gammuinifile.Free;
      smsdrcnya := TIniFile.Create(ExtractFilePath(Application.ExeName)+'/gammu/bin/smsdrc');
      smsdrcnya.WriteString('gammu', 'port', Edit2.Text);
      smsdrcnya.WriteString('smsd', 'service', 'MYSQL');
      smsdrcnya.WriteString('smsd', 'PIN', '1234');
      smsdrcnya.WriteString('smsd', 'logfile', 'smsdlog');
      smsdrcnya.WriteString('smsd', 'debuglevel', '0');
      smsdrcnya.WriteString('smsd', 'commtimeout', '30');
      smsdrcnya.WriteString('smsd', 'sendtimeout', '30');
      smsdrcnya.WriteString('smsd', 'pc', edit4.Text);
      smsdrcnya.WriteString('smsd', 'user', edit5.Text);
      smsdrcnya.WriteString('smsd', 'password', edit6.Text);
      smsdrcnya.WriteString('smsd', 'database', edit7.Text);
      smsdrcnya.WriteString('smsd', 'driver', 'sqlite');
      smsdrcnya.Free;
      MessageDlg('Konfigurasi Berhasil Disimpan',mtInformation,[mbOK],0);
    except
      MessageDlg('Konfigurasi Gagal Disimpan',mtInformation,[mbOK],0);
    end;
  6. Klik 2x pada Cek Koneksi dan isikan Source berikut
    var
    cek     : String;
    begin
      cek := GetDosOutput('cek.bat',edit1.Text);
      MessageDlg('Status'+#13+cek,mtInformation,[mbOK],0);
  7. Isikan source pada Run
    if (Button3.Caption='Run') then
    begin
    status:=GetDosOutput('mulai.bat',Edit1.Text);
    ShowMessage(status);
    Button3.Caption:='Stop';
    end
    else if(button3.Caption='Stop') then
    begin
    status:=GetDosOutput('stop.bat',Edit1.Text);
    ShowMessage(status);
    Button3.Caption:='Run';
    end;
  8. isikan Source pada Button Cari :
    var
      dirFolder: String;
    begin
      if  SelectDirectory('','',dirfolder) then
        Edit1.Text:=dirFolder;
  9. Nah Terakhir, Buat function setelah Uses
    function GetDosOutput(CommandLine: string; Work: string): string;
    var
      SA: TSecurityAttributes;
      SI: TStartupInfo;
      PI: TProcessInformation;
      StdOutPipeRead, StdOutPipeWrite: THandle;
      WasOK: Boolean;
      Buffer: array[0..255] of AnsiChar;
      BytesRead: Cardinal;
      WorkDir: string;
      Handle: Boolean;
    begin
      Result := '';
      with SA do begin
        nLength := SizeOf(SA);
        bInheritHandle := True;
        lpSecurityDescriptor := nil;
      end;
      CreatePipe(StdOutPipeRead, StdOutPipeWrite, @SA, 0);
      try
        with SI do
        begin
          FillChar(SI, SizeOf(SI), 0);
          cb := SizeOf(SI);
          dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
          wShowWindow := SW_HIDE;
          hStdInput := GetStdHandle(STD_INPUT_HANDLE); // don't redirect stdin
          hStdOutput := StdOutPipeWrite;
          hStdError := StdOutPipeWrite;
        end;
        WorkDir := Work;
        Handle := CreateProcess(nil, PChar('cmd.exe /C ' + CommandLine),
                                nil, nil, True, 0, nil,
                                PChar(WorkDir), SI, PI);
        CloseHandle(StdOutPipeWrite);
        if Handle then
          try
            repeat
              WasOK := ReadFile(StdOutPipeRead, Buffer, 255, BytesRead, nil);
              if BytesRead > 0 then
              begin
                Buffer[BytesRead] := #0;
                Result := Result + Buffer;
              end;
            until not WasOK or (BytesRead = 0);
            WaitForSingleObject(PI.hProcess, INFINITE);
          finally
            CloseHandle(PI.hThread);
            CloseHandle(PI.hProcess);
          end;
      finally
        CloseHandle(StdOutPipeRead);
      end;
    end;
  10. Selanjutnya, tambahkan INIFILES, shellapi, qdialogs Pada USes. dan buat Variabel Global status : string;

Untuk Contoh program bisa download disini gan.
Hasil Running :

Selamat Mencoba by 1n53ct4

Posted in Delphi 7, Programing and tagged , , , .