Página 1 de 2

[DLL] CheckSpelling 1.0.0.2

Publicado: 04 Abr 2013 12:04
por Ceone
Imagen

Imagen

CheckSpelling es un corrector ortográfico basado en el corrector de Microsoft Word, usa el propio corrector de Microsoft Word y devuelve el texto corregido, esta dll tiene alguna cadencias pero bueno es la primera versión así que ciertamente es normal que tenga algunos detalles por pulir...

Funciones:
  • CheckSpelling - Retorno String "devuelve el string corregido, lógicamente antes lanza la ventana de corrección de errores de word."
Código 1.0.0.2:
UnmanagedExports.cs:
using System;
using RGiesecke.DllExport;
////////////////////////////////
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Reflection;
using WordInter = Microsoft.Office.Interop.Word;
////////////////////////////////
using System.Runtime.InteropServices;

namespace CheckSpelling
{
internal static class CheckSpellingClass
{
#region Minimize

[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

[DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true)]
static extern IntPtr SendMessage(IntPtr hWnd, Int32 Msg, IntPtr wParam, IntPtr lParam);

const int WM_COMMAND = 0x111;
const int MIN_ALL = 419;
const int MIN_ALL_UNDO = 416;
//System.Threading.Thread.Sleep(2000);
//SendMessage(lHwnd, WM_COMMAND, (IntPtr)MIN_ALL_UNDO, IntPtr.Zero);

private static void MinimizeAll()
{
IntPtr lHwnd = FindWindow("Shell_TrayWnd", null);
SendMessage(lHwnd, WM_COMMAND, (IntPtr)MIN_ALL, IntPtr.Zero);
}

#endregion Minimize

#region Functions

[DllExport("CheckSpelling", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
static string CheckSpelling(string Textstr, int activeMinimize)
{
//int activeMinimize = 0;
if (activeMinimize == 1)
{
MinimizeAll();
}

WordInter.Application app = new WordInter.Application();

int errors = 0;

if (Textstr.Length > 0)
{

app.Visible = false;
object template = Missing.Value;
object newTemplate = Missing.Value;
object documentType = Missing.Value;
object visible = true;

WordInter._Document doc1 = app.Documents.Add(ref template, ref newTemplate, ref documentType, ref visible);
doc1.Words.First.InsertBefore(Textstr);
WordInter.ProofreadingErrors spellErrorsColl = doc1.SpellingErrors;
errors = spellErrorsColl.Count;

object optional = Missing.Value;
doc1.CheckSpelling(ref optional, ref optional, ref optional, ref optional, ref optional, ref optional, ref optional, ref optional, ref optional, ref optional, ref optional, ref optional);

object first = 0;
object last = doc1.Characters.Count - 1;
Textstr = doc1.Range(ref first, ref last).Text;
}

object saveChanges = false;
object originalFormat = Missing.Value;
object routeDocument = Missing.Value;

app.Visible = true;
app.Application.Quit(ref saveChanges, ref originalFormat, ref routeDocument);

return Textstr;
}
}

#endregion Functions
}


Ejemplo DLL.CallFunction:
if Input.GetText("Input1") ~= "" then
	arg = "\"" .. Input.GetText("Input1") .. "\",0" -- 1 to minimize all, 0 to no minimize all
	DLLPath = _SourceFolder.."\\AutoPlay\\Docs\\CheckSpelling.dll";
	
	result = DLL.CallFunction(DLLPath, "CheckSpelling", arg, DLL_RETURN_TYPE_STRING, DLL_CALL_STDCALL);
	
	Input.SetText("Input2", result);
	
	Window.Restore(Application.GetWndHandle());
end
Descarga:
HIDE: ON
Hidebb Message Hidden Description


HIDE: ON
Hidebb Message Hidden Description


HIDE: ON
Hidebb Message Hidden Description



Nota Importante: este ejemplo usa el corrector ortográfico de Microsoft Word de modo que si no tenéis instalado dicho programa esta dll no funcionara correctamente!

Publicado: 04 Abr 2013 12:14
por sattel
Esta de lujo para los hijos, gracias Ceone

Publicado: 04 Abr 2013 12:23
por mecivic
Thanks you

Publicado: 04 Abr 2013 12:32
por brordo
gracias companys!!!!

Publicado: 04 Abr 2013 21:05
por tam
gracias

Re: [DLL] CheckSpelling 1.0.0.1

Publicado: 05 Abr 2013 10:30
por Haitham.2012
thank u ceone

Publicado: 06 Abr 2013 12:59
por xxsolracxx
gracias

Publicado: 07 Abr 2013 22:17
por Paneitor
Checando

Publicado: 09 Abr 2013 14:04
por brordo
Que aplicaciones son necesarias para esta dll?
La versión 1.0.0.1 se veia que era el NetFramework v4, al no tenerlo se creaba un conflicto y se cerraba el software, instalé el netframework 4 y va bien.
En la versión 1.0.0.2 me vuelve a provocar el mismo error y en el archivo (encriptado en una parte de código) no encuentro la aplicación del net fram v4 ni ninguna info de alguna aplicación necesaria.

Gracias.

Publicado: 11 Abr 2013 08:46
por mro
gracias

Publicado: 11 Abr 2013 11:49
por Ceone
brordo escribió:Que aplicaciones son necesarias para esta dll?
La versión 1.0.0.1 se veia que era el NetFramework v4, al no tenerlo se creaba un conflicto y se cerraba el software, instalé el netframework 4 y va bien.
En la versión 1.0.0.2 me vuelve a provocar el mismo error y en el archivo (encriptado en una parte de código) no encuentro la aplicación del net fram v4 ni ninguna info de alguna aplicación necesaria.

Gracias.
HIDE: ON
Hidebb Message Hidden Description


Mira prueba este APZ el NET FRAMEWORK necesario es el 2.0 y tener instalado WORD, lo he probado un par de veces y si funciona con NET FRAMEWORK asegurate de copiar la DLL correcta, no uses una vieja en este ejemplo te trae la 1.0.0.2 y como ves en las imagenes esta compilada en NET FRAMEWORK 2.0.

Imágenes:

http://imageshack.us/g/818/73396345.png/
Spoiler: Mostrar
Imagen
Imagen
Imagen

Publicado: 11 Abr 2013 12:45
por dangngocnguyenit
like :demo:

Publicado: 15 Abr 2013 09:43
por brordo
Gracias company!!!!

Publicado: 05 Ene 2014 18:11
por amsplug
tank you :yeah:

Publicado: 06 Ene 2014 18:34
por mohsen
thanks

Publicado: 22 Ene 2014 19:48
por mohsen
thanks

Publicado: 20 May 2014 19:01
por Agotaras123
Que tal ceone mira que esta roto este enlace podrías actualizarlo

Publicado: 04 Jun 2014 09:58
por Robby
Thanks you

Publicado: 04 Jun 2014 14:17
por abood1987
gracias Ceone

Re: [DLL] CheckSpelling 1.0.0.2

Publicado: 21 Ago 2015 22:00
por AlienTek
Nice work