title: Get an instance of the scheduler that is being run on a Windows service
body: <p>Let us say I have prepared my Quartz.NET as a Windows service and it is currently being run (with an <code>ADOJobStore</code> running on <code>Sqlite</code>). I need to take control of this service on my Windows application so I can stop it, start it, add and remove jobs from it, etc. How can I get an instance of this scheduler?</p>
  
  <p>Sorry if it sounds like a simple question for you, but the documentation on Quartz.NET seems nowhere near enough. There are only a few people who know about it and they already have their lives to live. </p>
  
  <p><strong>Update:</strong>
  quartz.config file of my service</p>
  
  <pre><code># You can configure your scheduler in either &lt;quartz&gt; configuration section
  # or in quartz properties file
  # Configuration section has precedence
  
  quartz.threadPool.type = Quartz.Simpl.SimpleThreadPool, Quartz
  quartz.threadPool.threadCount = 10
  quartz.threadPool.threadPriority = Normal
  
  # job initialization plugin handles our xml reading, without it defaults are used
  quartz.plugin.xml.type = Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz
  quartz.plugin.xml.fileNames = ~/quartz_jobs.xml
  
  quartz.scheduler.exporter.type = Quartz.Simpl.RemotingSchedulerExporter, Quartz
  quartz.scheduler.exporter.port = 555
  quartz.scheduler.exporter.bindName = QuartzScheduler
  quartz.scheduler.exporter.channelType = tcp
  quartz.scheduler.exporter.channelName = httpQuartz
  </code></pre>
  
  <p>The code I am using on my program to get the scheduler:</p>
  
  <pre><code>NameValueCollection properties = new NameValueCollection();
  properties["quartz.scheduler.instanceName"] = "RemoteClient";
  
  // set thread pool info
  properties["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool, Quartz";
  properties["quartz.threadPool.threadCount"] = "10";
  properties["quartz.threadPool.threadPriority"] = "Normal";
  
  // set remoting expoter
  properties["quartz.scheduler.proxy"] = "true";
  properties["quartz.scheduler.proxy.address"] = "tcp://127.0.0.1:555/QuartzScheduler";
  
  ISchedulerFactory sf = new StdSchedulerFactory(properties);
  IScheduler sched = sf.GetScheduler();
  </code></pre>
  
  <p>My service is installed and is in Started state and it is log on as a "Local System Account" and it is able interact with the desktop.</p>