begin process at 2013 05 23 03:16:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

Ecrire dans notepad++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ecrire dans notepad++

mercredi 27 juin 2012 à 17:22:26 | Ecrire dans notepad++

YB28

Bonjour,
J'ai du texte dans un mémo et je souhaiterais ouvrir un nouveau fichier avec notepad++ et insérer le text du memo mais sans l'enregistrer.

Pour ouvrir notepad++ j'utilise ceci:
Code Delphi :
ShellExecute(Handle,'edit',PChar('NotePad++'),PChar(Opendialog1.FileName),nil,SW_SHOW)


Mais ceci ne m'ouvre pas un nouveau fichier mais celui ci :
Code Delphi :
Opendialog1.FileName


Sinon a part faire :
Code Delphi :
Memo2.Lines.SaveToFile(Opendialog1.FileName);


je ne sais pas comment mon texte du memo2 pourrait s'afficher dans le fichier notepad++.

Merci, ;)
mercredi 27 juin 2012 à 23:11:56 | Re : Ecrire dans notepad++

korgis

Membre Club
Salut,

essaye ceci :

Code Delphi :
uses ShellApi;

procedure ExecuteAndSendText(Appli: string; Text: string);
var
  Wnd: HWND;
begin
  ShellExecute(Application.Handle, 'open', PChar(Appli), nil, nil, SW_SHOWNORMAL);
  Sleep(20);
  Wnd := FindWindow('notepad', nil);
  if Wnd <> 0 then
  begin
    Wnd := FindWindowEx(Wnd, 0, 'Edit', nil);
    SendMessage(Wnd, WM_SETTEXT, 0, Integer(PChar(Text)));
    SendMessage(Wnd, EM_SETSEL, Length(Text) - 1, Length(Text) - 1);
  end;
end;


à utiliser comme ceci :
Code Delphi :
ExecuteAndSendText('Notepad', Memo1.Text);

ou bien
Code Delphi :
ExecuteAndSendText('C:\WINDOWS\NOTEPAD.EXE', Memo1.Text);

ou encore
Code Delphi :
ExecuteAndSendText('C:\Program Files\Notepad++', Memo1.Text);



Avec Delphi, tout devient possible...
jeudi 28 juin 2012 à 09:29:24 | Re : Ecrire dans notepad++

YB28

Merci pour ta reponse mais lorsque je l'utilise il m'ouvre bien notepad++ mais n'insert pas le texte du mémo...
jeudi 28 juin 2012 à 10:25:58 | Re : Ecrire dans notepad++

korgis

Membre Club
Augmente la valeur de Sleep, par exemple
Code Delphi :
Sleep(100)

L'utilisation de Sleep n'est pas la méthode la plus propre, mais cela laisse à l'éditeur le temps de s'ouvrir avant de lui envoyer le message.
Le mieux serait d'avoir la confirmation que notepad++ est bien ouvert avant d'exécuter SendMessage, mais je n'ai pas de code tout prêt sous la main pour ça.
En cherchant un peu sur ce site ou ailleurs, on devrait trouver...
jeudi 28 juin 2012 à 10:42:24 | Re : Ecrire dans notepad++

YB28

l'envoie du texte ne fonctionne tjs pas meme avec sleep de 100 ou 200... Je vais du coup enregistrer ce que contient le fichier dans un memo2 puis j'écris dans le fichier avec
Code Delphi :
memo1.lines.savetofile
, ensuite j'ouvre notepad++ avec ShellExecute et je crée un autre bouton qui permet de réinitialiser le fichier ouvert grâce au memo2.
Merci de ton aide korgis ;)
jeudi 28 juin 2012 à 12:34:51 | Re : Ecrire dans notepad++

korgis

Membre Club
Oui, en effet, mon code ne peut fonctionner qu'avec notepad.
Quoi qu'il en soit, le problème posé est intéressant.
Il faut sans doute l'aborder par le biais de CreateProcess, WaitForSingleObject et ce genre de choses...
En attendant, ShellExecute en passant par un fichier devraient dépanner...
jeudi 28 juin 2012 à 20:16:13 | Re : Ecrire dans notepad++

walidlam

salut !!
tu peut fairecomme suit:
Code Delphi :
memo1.Lines.SaveToFile('mem.tmp');
ShellExecute(Handle,
'open','Notepad','mem.tmp',nil, SW_SHOWNORMAL);

et dans l 'evenement enclose du form :
Code Delphi :
procedure TForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
deletefile('mem.tmp');
end;

@+
jeudi 28 juin 2012 à 20:30:44 | Re : Ecrire dans notepad++

walidlam

salut !!
ou tu peut faire aussi:
Code Delphi :
memo1.Lines.SaveToFile('mem');
ShellExecute(Handle,
'open','Notepad','mem',nil, SW_SHOWNORMAL);
sleep(50);
deletefile('mem');


bonne chance et @+
dimanche 1 juillet 2012 à 13:43:00 | Re : Ecrire dans notepad++

Caribensila

Membre Club
Salut,

Plutôt qu'un Sleep() dont on ignore irrémédiablement la valeur à lui attribuer, il faut utiliser :

CreateProcess
&
WaitForSingleObject
mardi 3 juillet 2012 à 14:19:09 | Re : Ecrire dans notepad++

cantador

Membre Club Administrateur CodeS-SourceS

Code Delphi :
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Handle, 'Open', PChar('Notepad++.exe'), PChar('toto.txt'), nil, SW_SHOWDEFAULT);
end;


ça répond bien à la question posée..

cantador


Cette discussion est classée dans : fichier, code, filename, notepad, opendialog1


Répondre à ce message

Sujets en rapport avec ce message

Savedialog [ par totob0 ] bonjour est ce que quelqu'un peut m'aider à exporter  ma ta table mysql qui est en extension (.frm) en (.xls), car j'ai des caractères spéciaux lorsqu Problème de téléchargement de fichier depuis un serveur en FTP [ par phephelavi ] Bonjour,   <p class="MsoNormal" style="MARGIN: 0cm Problème : Stream et OpenDialog [ par silvergoldsilver ] Bonjour, (Je réécris mon message car il a été envoyé dans la rubrique C, C++ !) Je cherche à utiliser OpenDialog pour ouvrir un fichier et le charger Extraire des données de chaînes et les enregistrer dans un fichier csv [ par korgis ] [color=red][i]Préambule : Le thread précédent a été fermé par un administrateur pour une raison tout à fait justifiée. En effet, on ne vient pas ici Lecture d'un fichier binaire [ par AgentAmine ] Salut, comment je peut lire les chaines delimiter par le code ascii NUL a partir de ce fichier binaire : [img]http://img233.imageshack.us/img233/79 Echec d'indexation lors d'une copie de fichier [ par damene ] [code=pas][/code]Bonjour tout le monde. quelqu'un peut-il m'expliquer l'échec d'indexation lors d'une copy de fichier? je travaille sous Delphi 7 Ent Comment obtenir le MD5 / Checksum d'un fichier ? [ par Reality31600 ] Bonjour, Je sollicite encore votre aide, j'ai besoin de vérifier que des fichiers ont bien été copié donc je vérifie la taille du fichier source et c lecture de fichier pdf [ par philpas ] bonjour, j'ai un soucis avec la lecture de fichiers pdf.J'ai installé dans delphi 6 l'activeX acrobat en suivant la procédure de ce sitehttp://delphip fichier hexa [ par e14273 ] bonjour à tous, je veux lire un fichier texte qui contient des caractères, lorqu'on l'ouvre avec ultraedit on peut avoir la conversion en code hexa Récupérer le code d'une erreur [ par obitskater ] Bonjour à tous. Il m'a été demandé de "protéger" le code que je viens de créer. Je m'explique, en effet je dois retranscrir tout ce qui s'est passé du


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,232 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales