Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question : gestion du bloc-notes ?

4 réponses
Avatar
LE TROLL
Bonjour,

J'ai un problème avec la gestion du bloc-notes, en effet, j'ai besoin
d'ouvrir le bloc-notes (avec shell je sais, entre autres), donc d'ouvrir ce
logiciel, mais avec un contenu, je dis bien de l'ouvrir avec un contenu (qui
peut être une variable texte ou un fichier, peu importe), et non pas de
l'ouvrir avec un fichier.
Pour résumer, je voudrais seulement appeler le bloc-notes et lui passer du
texte, uniquement ça, ce sera ensuite à l'utilisateur de décider s'il
enregistre ou s'il abandonne, d'où l'intérêt de cette action ; bine
évidemment en sus, je propose un nom au futur éventuel fichier, ce qui donne
sur un schéma de principe :

x = Shell("NotePad.exe " & ??? , 1)

??? = nom du fichier proposé + contenu fichier ou variable Y

Comment faire ceci je vous prie ?

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.

4 réponses

Avatar
Jérémy Jeanson
Bonjour Le Troll,

Je ne crois pas qu'il soit possible directement d'appeler le notepad ave c
un contenu. Dans ton cas j'envisagerai deux possibilité:

1) (la plus simple si tu ne sais pas exploiter les api windows)
Créer un fichier temporaire contenant ton contenu puis l'ouvrir avec l e
notepad. Ce serra ensuite à ton utilisateur de choisir d'enregistrer c e
fichier sous un nouvelle destination.

2) utiliser les api windows pour accéder à la fenêtre du notepad q ue tu
auras ouvert. Et faire un SendMessage au control servant de zone de text e
au notepad.

pour avoir une liste claire des api tu peux trouver des informations sur
le site suivant :

http://www.pinvoke.net/index.aspx

--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
LE TROLL
Bonjour Jérémy,

Si c'est possible, je viens d'avoir la solution (conjuguée à l'API
moveWindow), grâce à deux personnes sur le forum :

http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/threads

La voici :

Imports System.Runtime.InteropServices
Imports System.IntPtr
Imports System.Int32
'''''''''''

Public Declare Auto Function MoveWindow Lib "user32.dll" ( _
ByVal hWnd As IntPtr, _
ByVal X As Int32, _
ByVal Y As Int32, _
ByVal nWidth As Int32, _
ByVal nHeight As Int32, _
ByVal bRepaint As Boolean _
) As Boolean
'''''''''''''''''''''''

Dim notepad As Process = New Process()
Try
notepad.StartInfo.FileName = "Notepad.exe"
notepad.StartInfo.UseShellExecute = False
notepad.StartInfo.RedirectStandardInput = True
notepad.StartInfo.Arguments = nomFichier ' var
notepad.Start()
notepad.WaitForInputIdle()
If notepad.Responding Then
System.Windows.Forms.SendKeys.SendWait(LeTxt) ' var text à
insérer
System.Windows.Forms.SendKeys.SendWait("^{HOME}") ' position
<home_cursor>
'
Dim hWnd As IntPtr
Dim X As Int32
Dim Y As Int32
Dim nWidth As Int32
Dim nHeight As Int32
Dim bRepaint As Boolean
Dim reponse As Boolean
hWnd = notepad.MainWindowHandle
X = 50
Y = 50
nWidth = 1000
nHeight = 600
bRepaint = True
reponse = MoveWindow(hWnd, X, Y, nWidth, nHeight, bRepaint)
End If
Catch
MsgBox("Vous devez installer Notepad.exe (bloc-notes), remédier...
", vbExclamation)
Finally
notepad.Close()
End Try


Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Jérémy Jeanson" a écrit dans le message de
news:
Bonjour Le Troll,

Je ne crois pas qu'il soit possible directement d'appeler le notepad avec
un contenu. Dans ton cas j'envisagerai deux possibilité:

1) (la plus simple si tu ne sais pas exploiter les api windows)
Créer un fichier temporaire contenant ton contenu puis l'ouvrir avec le
notepad. Ce serra ensuite à ton utilisateur de choisir d'enregistrer ce
fichier sous un nouvelle destination.

2) utiliser les api windows pour accéder à la fenêtre du notepad que tu
auras ouvert. Et faire un SendMessage au control servant de zone de texte
au notepad.

pour avoir une liste claire des api tu peux trouver des informations sur
le site suivant :

http://www.pinvoke.net/index.aspx

--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Jérémy Jeanson
Attention, je crois que tu n'as pas tout bien suivi dans le code que tu as
repris.

Ce qui t'es utile s'arrete à ceci :

notepad.StartInfo.FileName = "Notepad.exe"
notepad.StartInfo.UseShellExecute = False
notepad.StartInfo.RedirectStandardInput = True
notepad.StartInfo.Arguments = nomFichier ' var
notepad.Start()
notepad.WaitForInputIdle()
If notepad.Responding Then
System.Windows.Forms.SendKeys.SendWait(LeTxt) ' var text à
insérer
System.Windows.Forms.SendKeys.SendWait("^{HOME}") ' position
<home_cursor>
End If

Et encore je ne vois pas l'utilité du senkeys "Home" dans le notepad

--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
LE TROLL
Jérémy,

Oui, je sais, c'est moi qui ai intégré le code de l'API afin de
récupérer le handle.

Le <home> c'est pour revenir en début de doc.

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Jérémy Jeanson" a écrit dans le message de
news:
Attention, je crois que tu n'as pas tout bien suivi dans le code que tu as
repris.

Ce qui t'es utile s'arrete à ceci :

notepad.StartInfo.FileName = "Notepad.exe"
notepad.StartInfo.UseShellExecute = False
notepad.StartInfo.RedirectStandardInput = True
notepad.StartInfo.Arguments = nomFichier ' var
notepad.Start()
notepad.WaitForInputIdle()
If notepad.Responding Then
System.Windows.Forms.SendKeys.SendWait(LeTxt) ' var text à
insérer
System.Windows.Forms.SendKeys.SendWait("^{HOME}") ' position
<home_cursor>
End If

Et encore je ne vois pas l'utilité du senkeys "Home" dans le notepad

--
Jérémy JEANSON
MCP
http://www.jjeanson.fr