cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 29 janv. 2008 à 22:09
Et puis il y a aussi l'aspect commercial..
tant que tu utilises un source en citant son auteur qui l'a publié(et qui autorisé sa recopie) tout va bien..
Mais si tu vends un programme avec le source d'un autre et que tu empoches des sous...
Là les difficultés commencent..
Mais comme nous sommes tous désintéressés !
n'est-ce pas ?
no problemo.
craftsystem
Messages postés143Date d'inscriptionsamedi 21 juillet 2007StatutMembreDernière intervention 7 mars 2009 29 janv. 2008 à 21:43
C'est sûre Cantador mais c'est aussi les aléas de l'open source
c'est sur que si nous avions les originaux cela serait plus simple mais je doute qu'une telle chose soit possible.
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 29 janv. 2008 à 21:17
@craftsystem :
La difficulté est de savoir si tel ou tel code est bien de son auteur.
Ce qui n'est pas évident à priori..car pour çà, il faudrait que l'original soit déposé quelque part..
C'était le sens de ma remarque;De la même manière qu'une mélodie
est enregistrée à la SACEM.
Cela ne nous prive pas d'avoir du respect.
craftsystem
Messages postés143Date d'inscriptionsamedi 21 juillet 2007StatutMembreDernière intervention 7 mars 2009 29 janv. 2008 à 14:10
se n'est pas une question de protèger c'est droits
c'est juste une question de respect pour les personnes qui nous aide rien de plus rien de moin.
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 27 sept. 2007 à 11:57
@foxi :
Je suis d'accord sur le principe de citer l'auteur mais
Est-ce que DelphiFr est habilité à protéger ses droits ?
quelle est la version originale ?
pas simple tout çà..
craftsystem
Messages postés143Date d'inscriptionsamedi 21 juillet 2007StatutMembreDernière intervention 7 mars 2009 25 sept. 2007 à 22:58
je suis deja dessus mais sur un autre projet
en libertybasic
des que je le fini je l'interpréterais en Delphi
tous mes projet passe par libertybasic...
enGros:
Au chargement du son celui-ci se position sur une piste audio fantome
une seconde piste audio fantôme est presente mes
celle_ci et deja charger avec (se que j'appelle la bidre)
un texte audio fais avec TextAloudMp3,
mais sa fais longtemps que je suis dessus, je n'arrive toujours pas a exporter le montage final...
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 25 sept. 2007 à 22:38
Salut,
Comme dit Flo, ce serait rigolo (mais pas simple, surtout en mp3).
Je surenchéris:
- pourquoi pas un message audio subliminal o|O ?
:)))
craftsystem
Messages postés143Date d'inscriptionsamedi 21 juillet 2007StatutMembreDernière intervention 7 mars 2009 25 sept. 2007 à 20:41
cela doit etre faisable
et en plus c'est une bonne idée je trouve
je vais me penché dessus
si tu a d'autre sugestion c'est avec grand plaisir
Ce qui serait rigolo (mais sûrement moins simple à faire), c'est de masquer le son (ou n'importe quelle donnée d'ailleurs) dans un fichier mp3, en se basant sur le même principe que la stéganographie d'images.
En gros, le son serait lisible mais il contiendrait un son caché... et il faudrait avoir la clé pour le déchiffrer.
Possible ? Impossible ?
En tenant compte de la distorsion sonore engendrée par les fichiers mp3, faudrait que le message reste intact, ce qui n'est pas garanti...
craftsystem
Messages postés143Date d'inscriptionsamedi 21 juillet 2007StatutMembreDernière intervention 7 mars 2009 25 sept. 2007 à 12:54
merci Japee
pour se bug
j'en ai trouver un autre pas mal non plus
si tu "ouvre un fichier son" puis un autre tu constateras
qu'il n'y a que le premier qui a été charger en lecture
jolie sa!!!
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 25 sept. 2007 à 09:20
Si l'utilisateur ouvre OpenDialog1 et le referme sans sélection de fichier, gros plantage dû à l'appel du Timer qui cite MediaPlayer.Position alors que ce dernier n'est pas ouvert.
Cette ligne vérifie l'ouverture du MediaPlayer et supprime le problème :
procedure TForm1.Timer1Timer(Sender: TObject);
...
begin
if MediaPlayer1.DeviceID = 0 then Exit;
... // suite du code
end
craftsystem
Messages postés143Date d'inscriptionsamedi 21 juillet 2007StatutMembreDernière intervention 7 mars 2009 25 sept. 2007 à 02:34
fOxi
cette partit du code m'interresse
if c = 1 then
deletefile('C:\Windows\D-Krypt.wav');
mais je doute quel fonctionne
Car je me suis rendu compte
que pour pouvoir delete un fichier il fallait un:
mediaplayer1.close;
dans mon cas j'ai tester mais il bug
A pars sa je souhaiterais enregistrer le fichier décrypter mais pas toujours avec le meme nom mais avec des numeros:
D-Krypt01
D-Krypt02
D-Krypt03
...
si on peut m'aider
craftsystem
Messages postés143Date d'inscriptionsamedi 21 juillet 2007StatutMembreDernière intervention 7 mars 2009 25 sept. 2007 à 02:26
je suis franchement désolé
c'est un oublie involontaire
tu le sais je signale toujours
qui m'a aidé et à qui j'ai pris du code.
sinon merci pour la version courte
a force de tester des truc, j'oublie d'enlever des fonction inutile, variable non utiliser,
je ferais des effort de se coté là promis
pour le c:\Windows le problème est réglé
en fin de compte je sauvegarde le fichier décrypter
dans un répertoire spécial de windows qui n'est autre que le
repertoire "Fonts"
Eh, Oui j'ai constater que se repertoire cacher mon fichier d'une façon surprenante
meme une recherche du fichier dans le disque dure entier ne le trouve pas...Magique
je réglé quelque truc et je fais la mise a jour
Encore désolé fOxi de ne pas avoir cité ton code Xor
alors quand plus c'est le plus important
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 25 sept. 2007 à 02:14
version épurée (peut y'avoir un bug, j'ai pas verifier) :
function DecodeMPTime(const MilliSeconds : integer; out H,M,S,Z : word);
begin
Z := MilliSeconds mod 1000;
S := (MilliSeconds div 1000) mod 60;
M := (MilliSeconds div 60000) mod 60;
H := MilliSeconds div 3600000;
end;
procedure XorCypher(const InFileName, OutFileName, Key: string);
var InFlux, OutFlux: TFileStream;
Buffer: byte;
pKey: PChar;
M, KeyL, KeyP: integer;
function GetNextKey: byte;
begin
result := byte(pKey[KeyP]);
KeyP := (KeyP + 1) mod KeyL;
end;
begin
KeyL := Length(Key);
KeyP := 0;
pKey := PChar(Key);
for M := 0 to InFlux.Size - 1 do
begin
InFlux.ReadBuffer(Buffer, 1); // on lit
Buffer := Buffer xor GetNextKey; // on code
OutFlux.WriteBuffer(Buffer, 1); // on ecrit
if (M mod 5) = 0 then
begin
form1.Gauge1.Progress := InFlux.Position;
application.ProcessMessages;
end;
end;
finally
OutFlux.Free;
end;
finally
InFlux.Free;
end;
form1.Gauge1.Progress := 0;
end;
procedure TForm1.BitBtn5Click(Sender: TObject);
begin
if ListBox1.ItemIndex = -1 then
exit;
if c = 1 then
deletefile('C:\Windows\D-Krypt.wav');
Timer1.Enabled := True;
MediaPlayer1.Play;
y := 1;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
fichier : ansistring;
begin
Timer1.Enabled := not OpenDialog1.Execute;
if not Timer1.Enabled then
begin
key := '33';
InFileName := OpenDialog1.FileName;
OutFileName := 'C:\Windows\D-Krypt.wav';
XorCypher(InFileName, OutFileName, key);
fichier := 'C:\Windows\D-Krypt.wav';
ListBox1.Items.Add('D-Krypt.wav');
a := a + 1;
Timer1.Enabled :y 1;
if not Timer1.Enabled then
begin
ListBox1.ItemIndex := 0;
MediaPlayer1.Close;
MediaPlayer1.FileName := fichier;
MediaPlayer1.Open;
MediaPlayer1.timeFormat := tfMilliseconds;
end;
end;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
if ListBox1.ItemIndex = -1 then
exit;
MediaPlayer1.Pause;
end;
procedure TForm1.BitBtn6Click(Sender: TObject);
begin
if ListBox1.ItemIndex = -1 then
exit;
MediaPlayer1.Stop;
MediaPlayer1.Position := 0;
y := 0;
f := 0;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var H,M,S,Z : word;
begin
DecodeMPTime(MediaPlayer1.Length, H,M,S,Z);
procedure TForm1.Supprimer1Click(Sender: TObject);
begin
listbox1.Items.Clear;
end;
procedure TForm1.Image2Click(Sender: TObject);
begin
Timer1.Enabled := not OpenDialog3.Execute;
if not Timer1.Enabled then
begin
Caption := OpenDialog3.FileName;
ListBox1.Items.Add(OpenDialog3.FileName);
a := a + 1; Timer1.Enabled :y 1;
if not Timer1.Enabled then
begin
ListBox1.ItemIndex := 0;
MediaPlayer1.Close;
MediaPlayer1.FileName := ListBox1.Items.Strings[ListBox1.ItemIndex];
MediaPlayer1.Open;
MediaPlayer1.timeFormat := tfMilliseconds;
end;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DeleteFile('C:\Windows\D-Krypt.wav');
end;
end.
et merci de me citer dans la source pour XorCypher ... ;)
craftsystem
Messages postés143Date d'inscriptionsamedi 21 juillet 2007StatutMembreDernière intervention 7 mars 2009 24 sept. 2007 à 21:27
Je précise que le lecteur est la base d'une source de se site
si je me rappelle bien c'est une source d'alexandre
si se n'est pas sa vueillez m'escuser
craftsystem
Messages postés143Date d'inscriptionsamedi 21 juillet 2007StatutMembreDernière intervention 7 mars 2009 24 sept. 2007 à 21:14
J'aimerais prochainement que le fichier sauvegarder detecte la lettre du disque dure car pour le moment il et configurer a C:\Windows
29 janv. 2008 à 22:09
tant que tu utilises un source en citant son auteur qui l'a publié(et qui autorisé sa recopie) tout va bien..
Mais si tu vends un programme avec le source d'un autre et que tu empoches des sous...
Là les difficultés commencent..
Mais comme nous sommes tous désintéressés !
n'est-ce pas ?
no problemo.
29 janv. 2008 à 21:43
c'est sur que si nous avions les originaux cela serait plus simple mais je doute qu'une telle chose soit possible.
29 janv. 2008 à 21:17
La difficulté est de savoir si tel ou tel code est bien de son auteur.
Ce qui n'est pas évident à priori..car pour çà, il faudrait que l'original soit déposé quelque part..
C'était le sens de ma remarque;De la même manière qu'une mélodie
est enregistrée à la SACEM.
Cela ne nous prive pas d'avoir du respect.
29 janv. 2008 à 14:10
c'est juste une question de respect pour les personnes qui nous aide rien de plus rien de moin.
27 sept. 2007 à 11:57
Je suis d'accord sur le principe de citer l'auteur mais
Est-ce que DelphiFr est habilité à protéger ses droits ?
quelle est la version originale ?
pas simple tout çà..
25 sept. 2007 à 22:58
en libertybasic
des que je le fini je l'interpréterais en Delphi
tous mes projet passe par libertybasic...
enGros:
Au chargement du son celui-ci se position sur une piste audio fantome
une seconde piste audio fantôme est presente mes
celle_ci et deja charger avec (se que j'appelle la bidre)
un texte audio fais avec TextAloudMp3,
mais sa fais longtemps que je suis dessus, je n'arrive toujours pas a exporter le montage final...
25 sept. 2007 à 22:38
Comme dit Flo, ce serait rigolo (mais pas simple, surtout en mp3).
Je surenchéris:
- pourquoi pas un message audio subliminal o|O ?
:)))
25 sept. 2007 à 20:41
et en plus c'est une bonne idée je trouve
je vais me penché dessus
si tu a d'autre sugestion c'est avec grand plaisir
merci
25 sept. 2007 à 20:35
Ce qui serait rigolo (mais sûrement moins simple à faire), c'est de masquer le son (ou n'importe quelle donnée d'ailleurs) dans un fichier mp3, en se basant sur le même principe que la stéganographie d'images.
En gros, le son serait lisible mais il contiendrait un son caché... et il faudrait avoir la clé pour le déchiffrer.
Possible ? Impossible ?
En tenant compte de la distorsion sonore engendrée par les fichiers mp3, faudrait que le message reste intact, ce qui n'est pas garanti...
25 sept. 2007 à 12:54
pour se bug
j'en ai trouver un autre pas mal non plus
si tu "ouvre un fichier son" puis un autre tu constateras
qu'il n'y a que le premier qui a été charger en lecture
jolie sa!!!
25 sept. 2007 à 09:20
Cette ligne vérifie l'ouverture du MediaPlayer et supprime le problème :
procedure TForm1.Timer1Timer(Sender: TObject);
...
begin
if MediaPlayer1.DeviceID = 0 then Exit;
... // suite du code
end
25 sept. 2007 à 02:34
cette partit du code m'interresse
if c = 1 then
deletefile('C:\Windows\D-Krypt.wav');
mais je doute quel fonctionne
Car je me suis rendu compte
que pour pouvoir delete un fichier il fallait un:
mediaplayer1.close;
dans mon cas j'ai tester mais il bug
A pars sa je souhaiterais enregistrer le fichier décrypter mais pas toujours avec le meme nom mais avec des numeros:
D-Krypt01
D-Krypt02
D-Krypt03
...
si on peut m'aider
25 sept. 2007 à 02:26
c'est un oublie involontaire
tu le sais je signale toujours
qui m'a aidé et à qui j'ai pris du code.
sinon merci pour la version courte
a force de tester des truc, j'oublie d'enlever des fonction inutile, variable non utiliser,
je ferais des effort de se coté là promis
------------------------------------------------------------
pour le c:\Windows le problème est réglé
en fin de compte je sauvegarde le fichier décrypter
dans un répertoire spécial de windows qui n'est autre que le
repertoire "Fonts"
Eh, Oui j'ai constater que se repertoire cacher mon fichier d'une façon surprenante
meme une recherche du fichier dans le disque dure entier ne le trouve pas...Magique
je réglé quelque truc et je fais la mise a jour
Encore désolé fOxi de ne pas avoir cité ton code Xor
alors quand plus c'est le plus important
25 sept. 2007 à 02:14
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, MPlayer, ExtCtrls, Gauges, ComCtrls,
GraphicGauge, Menus;
type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
OpenDialog1: TOpenDialog;
Label2: TLabel;
Timer1: TTimer;
ListBox1: TListBox;
StatusBar1: TStatusBar;
Panel1: TPanel;
Gauge1: TGraphicGauge;
PopupMenu1: TPopupMenu;
Play1: TMenuItem;
Stop1: TMenuItem;
Pause1: TMenuItem;
Shape1: TShape;
BitBtn5: TImage;
BitBtn4: TImage;
BitBtn6: TImage;
BitBtn2: TImage;
BitBtn3: TImage;
BitBtn1: TImage;
Supprimer1: TMenuItem;
Image2: TImage;
OpenDialog3: TOpenDialog;
Quitter1: TMenuItem;
Shape2: TShape;
Image3: TImage;
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Supprimer1Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure Quitter1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
y: byte = 0;
a: integer = 0;
b: integer = 0;
c: integer = 0;
f: integer = 0;
InFileName, OutFileName, Key: string;
function DecodeMPTime(const MilliSeconds : integer; out H,M,S,Z : word);
begin
Z := MilliSeconds mod 1000;
S := (MilliSeconds div 1000) mod 60;
M := (MilliSeconds div 60000) mod 60;
H := MilliSeconds div 3600000;
end;
procedure XorCypher(const InFileName, OutFileName, Key: string);
var InFlux, OutFlux: TFileStream;
Buffer: byte;
pKey: PChar;
M, KeyL, KeyP: integer;
function GetNextKey: byte;
begin
result := byte(pKey[KeyP]);
KeyP := (KeyP + 1) mod KeyL;
end;
begin
KeyL := Length(Key);
KeyP := 0;
pKey := PChar(Key);
InFlux := TFileStream.Create(InFileName, fmOpenRead);
try
OutFlux := TFileStream.Create(OutFileName, fmCreate);
try
form1.Gauge1.Progress := 0;
form1.Gauge1.MaxValue := InFlux.Size;
for M := 0 to InFlux.Size - 1 do
begin
InFlux.ReadBuffer(Buffer, 1); // on lit
Buffer := Buffer xor GetNextKey; // on code
OutFlux.WriteBuffer(Buffer, 1); // on ecrit
if (M mod 5) = 0 then
begin
form1.Gauge1.Progress := InFlux.Position;
application.ProcessMessages;
end;
end;
finally
OutFlux.Free;
end;
finally
InFlux.Free;
end;
form1.Gauge1.Progress := 0;
end;
procedure TForm1.BitBtn5Click(Sender: TObject);
begin
if ListBox1.ItemIndex = -1 then
exit;
if c = 1 then
deletefile('C:\Windows\D-Krypt.wav');
Timer1.Enabled := True;
MediaPlayer1.Play;
y := 1;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
fichier : ansistring;
begin
Timer1.Enabled := not OpenDialog1.Execute;
if not Timer1.Enabled then
begin
key := '33';
InFileName := OpenDialog1.FileName;
OutFileName := 'C:\Windows\D-Krypt.wav';
XorCypher(InFileName, OutFileName, key);
fichier := 'C:\Windows\D-Krypt.wav';
ListBox1.Items.Add('D-Krypt.wav');
a := a + 1;
Timer1.Enabled :y 1;
if not Timer1.Enabled then
begin
ListBox1.ItemIndex := 0;
MediaPlayer1.Close;
MediaPlayer1.FileName := fichier;
MediaPlayer1.Open;
MediaPlayer1.timeFormat := tfMilliseconds;
end;
end;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
if ListBox1.ItemIndex = -1 then
exit;
MediaPlayer1.Pause;
end;
procedure TForm1.BitBtn6Click(Sender: TObject);
begin
if ListBox1.ItemIndex = -1 then
exit;
MediaPlayer1.Stop;
MediaPlayer1.Position := 0;
y := 0;
f := 0;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var H,M,S,Z : word;
begin
DecodeMPTime(MediaPlayer1.Length, H,M,S,Z);
Label2.Caption := format('%.2d:%.2d',[M,S]);;
Gauge1.MaxValue := MediaPlayer1.Length;
Gauge1.Progress := MediaPlayer1.Position;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
deletefile('C:\Windows\D-Krypt.wav');
Timer1.Enabled := false;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
begin
a := ListBox1.ItemIndex;
if a = -1 then
Exit;
MediaPlayer1.Close;
MediaPlayer1.Enabled := True;
MediaPlayer1.FileName := ListBox1.Items.Strings[ListBox1.ItemIndex];
MediaPlayer1.Open;
MediaPlayer1.timeFormat := tfMilliseconds;
Timer1.Enabled := True;
if y = 1 then
MediaPlayer1.Play;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if ListBox1.ItemIndex = -1 then
Exit;
if ListBox1.ItemIndex = 0 then
ListBox1.ItemIndex := (a - 1)
else
ListBox1.ItemIndex := (ListBox1.ItemIndex) - 1;
MediaPlayer1.Close;
MediaPlayer1.FileName := ListBox1.Items.Strings[ListBox1.ItemIndex];
MediaPlayer1.Open;
MediaPlayer1.timeFormat := tfMilliseconds;
if y = 1 then
MediaPlayer1.Play;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
if ListBox1.ItemIndex = -1 then
exit;
if (ListBox1.ItemIndex + 1) = a then
ListBox1.ItemIndex := -1;
ListBox1.ItemIndex := ((ListBox1.ItemIndex) + 1);
MediaPlayer1.Close;
MediaPlayer1.FileName := ListBox1.Items.Strings[ListBox1.ItemIndex];
MediaPlayer1.Open;
MediaPlayer1.timeFormat := tfMilliseconds;
if y = 1 then
MediaPlayer1.Play;
end;
procedure TForm1.Supprimer1Click(Sender: TObject);
begin
listbox1.Items.Clear;
end;
procedure TForm1.Image2Click(Sender: TObject);
begin
Timer1.Enabled := not OpenDialog3.Execute;
if not Timer1.Enabled then
begin
Caption := OpenDialog3.FileName;
ListBox1.Items.Add(OpenDialog3.FileName);
a := a + 1; Timer1.Enabled :y 1;
if not Timer1.Enabled then
begin
ListBox1.ItemIndex := 0;
MediaPlayer1.Close;
MediaPlayer1.FileName := ListBox1.Items.Strings[ListBox1.ItemIndex];
MediaPlayer1.Open;
MediaPlayer1.timeFormat := tfMilliseconds;
end;
end;
end;
procedure TForm1.Quitter1Click(Sender: TObject);
begin
listbox1.Items.Clear;
MediaPlayer1.Close;
Timer1.Enabled := false;
Close;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DeleteFile('C:\Windows\D-Krypt.wav');
end;
end.
et merci de me citer dans la source pour XorCypher ... ;)
24 sept. 2007 à 21:27
si je me rappelle bien c'est une source d'alexandre
si se n'est pas sa vueillez m'escuser
24 sept. 2007 à 21:14