AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein WinCE Batteriestatus in Delphi VCL Anwendung (über RDP)
Thema durchsuchen
Ansicht
Themen-Optionen

WinCE Batteriestatus in Delphi VCL Anwendung (über RDP)

Ein Thema von Towmuz · begonnen am 21. Sep 2016 · letzter Beitrag vom 26. Sep 2016
Antwort Antwort
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: WinCE Batteriestatus in Delphi VCL Anwendung (über RDP)

  Alt 21. Sep 2016, 14:39
Auf VisualStudio oder andere Software habe ich keinen Zugriff und irgendwie muss das doch auch mit Bordmitteln gehen
Also wenn es mit VS gehen sollte und du das nur in eurer Firma verwendest, dann müsstest du eigentlich auch mit der kostenlosen Visual Studio Community Version arbeiten können. Falls euer Projekt mit mehreren Sprache geschrieben werden darf.
  Mit Zitat antworten Zitat
Bambini
(Gast)

n/a Beiträge
 
#2

AW: WinCE Batteriestatus in Delphi VCL Anwendung (über RDP)

  Alt 21. Sep 2016, 14:48
Auf VisualStudio oder andere Software habe ich keinen Zugriff und irgendwie muss das doch auch mit Bordmitteln gehen
Also wenn es mit VS gehen sollte und du das nur in eurer Firma verwendest, dann müsstest du eigentlich auch mit der kostenlosen Visual Studio Community Version arbeiten können. Falls euer Projekt mit mehreren Sprache geschrieben werden darf.
Ich bezweifel dass man mit dieser Version noch WindowsCE Programme erstellen kann.
Laut dieser Matrix kann Windows CE 6.0 nur noch Visual Studio 2008 + SDK or Visual Studio 2012 + SDK.
  Mit Zitat antworten Zitat
Towmuz

Registriert seit: 21. Sep 2016
Ort: Minden
127 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: WinCE Batteriestatus in Delphi VCL Anwendung (über RDP)

  Alt 21. Sep 2016, 15:13
@Himitsu
https://edn.embarcadero.com/article/33507 aber der Aufwand scheint seeeehr groß und umständlich.
Nach Lazarus werde ich mal schauen, Danke. Da der Prozessor aber ARM ist, wird das auch nicht ohne Weiteres funktionieren
Da die Anwendung selbst ja auf einem normalen WinOS remote läuft bräuchte ich aber trotzdem noch irgendwas, womit CE und Server 2003 dann die Daten austauschen.
[add]
Wenn ich wüsste, wie ich an den Batteriestatus käme, dann hätte ich das so in etwa versucht.

@Aviator
Fällt wahrscheinlich aus, aber wenn ich nichts anderes finde, muss ich das wohl nochmal beim Admin vortragen
Community Edition wahr ja auch für Unternehmensanwendungen nutzbar solange man sie nicht verkaufen möchte mein ich.

@Bambini
Es gibt ein SDK für .Net vom Hersteller, das sollte auch im neusten VS laufen.

Wie gesagt, am besten und einfachsten wäre es, sowas wie die WMI vom normalen Windows zu haben, das man per VBS vom Remotesystem abfragen kann. Bisher hab ich allerdings nur so eine KlitzeAnleitung für das olle Miniwindows gefunden und dort die Shell verarbeitet scheinbar auch nur rudimentäre Dinge (Dateisystem, Programm ausführen etc.).
Thomas

Geändert von Towmuz (21. Sep 2016 um 15:16 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: WinCE Batteriestatus in Delphi VCL Anwendung (über RDP)

  Alt 21. Sep 2016, 15:34
@Aviator
Fällt wahrscheinlich aus, aber wenn ich nichts anderes finde, muss ich das wohl nochmal beim Admin vortragen
Community Edition wahr ja auch für Unternehmensanwendungen nutzbar solange man sie nicht verkaufen möchte mein ich.

@Bambini
Es gibt ein SDK für .Net vom Hersteller, das sollte auch im neusten VS laufen.
Also wenn es so ein Plugin gibt und es die einzige Möglichkeit wäre an die Information zu kommen und ihr die unbedingt braucht, dann solltest ihr VS auch verwenden können. Nachfolgend mal die von Microsoft angezeigten Lizenzbestimmungen.

Die vollen Lizenzbestimmungen können hier nachgelesen werden: https://www.visualstudio.com/support/legal/mt171547

Zitat von Microsoft Visual Studio Übersicht:
EinzelpersonenOrganisationen
Ein einzelner Entwickler kann mit Visual Studio Community eigene kostenlose oder kostenpflichtige Apps erstellen.Eine unbegrenzte Anzahl Benutzer innerhalb einer Organisation kann Visual Studio Community für die folgenden Szenarien verwenden: in Schulungsumgebungen, für die akademische Forschung oder für die Beteiligung an Open Source-Projekten. Alle anderen Verwendungsszenarien: In kleinen Organisationen können bis zu fünf Benutzer Visual Studio Community verwenden. In Unternehmen (darunter verstehen wir Organisationen mit >250 PCs oder > 1 Million USD Jahresumsatz) ist eine Verwendung jenseits der oben beschriebenen Szenarien zu Open Source, akademischer Forschung oder Schulungszwecken nicht erlaubt.
  Mit Zitat antworten Zitat
Bambini
(Gast)

n/a Beiträge
 
#5

AW: WinCE Batteriestatus in Delphi VCL Anwendung (über RDP)

  Alt 21. Sep 2016, 15:42
@Bambini
Es gibt ein SDK für .Net vom Hersteller, das sollte auch im neusten VS laufen.
Das SDK für WinCE kommt von Microsoft. Vermutlich meinst du ein SDK vom Hersteller des Handyscanner?
Ich meinte, das du mit dem neuen Visual Studio überhaupt keine Programme mehr für WinCE bauen kannst, sondern nur noch für Windows Phone (<> WinCE).

Wie man den Battery Status unter WinCE mit C# auslesen kann, zeigt Microsoft hier:
https://msdn.microsoft.com/en-us/library/aa457088.aspx
https://msdn.microsoft.com/en-us/library/aa446550.aspx

Geändert von Bambini (21. Sep 2016 um 15:46 Uhr)
  Mit Zitat antworten Zitat
Benedikt Magnus

Registriert seit: 6. Jul 2012
Ort: Bonn
190 Beiträge
 
FreePascal / Lazarus
 
#6

AW: WinCE Batteriestatus in Delphi VCL Anwendung (über RDP)

  Alt 21. Sep 2016, 15:47
Nach Lazarus werde ich mal schauen, Danke. Da der Prozessor aber ARM ist, wird das auch nicht ohne Weiteres funktionieren
Doch, wird es. FreePascal kann auch für ARM kompilieren. Wenn du es aber nicht auf dem WinCE selbst machen willst (haha), empfehle ich CodeTyphon zum Crosscompiling. Dort einfach als Target-OS WinCE und als Target-CPU ARM und alles klappt. Hier sogar eine Anleitung für WinCE und WinCE 6.5.3.
  Mit Zitat antworten Zitat
Towmuz

Registriert seit: 21. Sep 2016
Ort: Minden
127 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

AW: WinCE Batteriestatus in Delphi VCL Anwendung (über RDP)

  Alt 21. Sep 2016, 15:57
@Bambini
Es gibt ein SDK für .Net vom Hersteller, das sollte auch im neusten VS laufen.
Das SDK für WinCE kommt von Microsoft. Vermutlich meinst du ein SDK vom Hersteller des Handyscanner?
Ich meinte, das du mit dem neuen Visual Studio überhaupt keine Programme mehr für WinCE bauen kannst, sondern nur noch für Windows Phone (<> WinCE).
Jup ich meinte das vom Hersteller, da ich in VS ja auch die .Net Plattformversion einstellen kann für die kompiliert wird, sollte mindestens die Hersteller SDK laufen.

Die Anleitung von MS hat ich schon gefunden, ärgert mich auch ein wenig das ich nicht einfach so VS installieren kann

Nach Lazarus werde ich mal schauen, Danke. Da der Prozessor aber ARM ist, wird das auch nicht ohne Weiteres funktionieren
Doch, wird es. FreePascal kann auch für ARM kompilieren. Wenn du es aber nicht auf dem WinCE selbst machen willst (haha), empfehle ich CodeTyphon zum Crosscompiling. Dort einfach als Target-OS WinCE und als Target-CPU ARM und alles klappt. Hier sogar eine Anleitung für WinCE und WinCE 6.5.3.
Klar mach ich das auf WinCE, über den Scanner mit T9 Tastatur :p
Im Ernst, Danke, dass schaue ich mir mal an.
Thomas
  Mit Zitat antworten Zitat
Bambini
(Gast)

n/a Beiträge
 
#8

AW: WinCE Batteriestatus in Delphi VCL Anwendung (über RDP)

  Alt 21. Sep 2016, 18:08
@Bambini
Es gibt ein SDK für .Net vom Hersteller, das sollte auch im neusten VS laufen.
Das SDK für WinCE kommt von Microsoft. Vermutlich meinst du ein SDK vom Hersteller des Handyscanner?
Ich meinte, das du mit dem neuen Visual Studio überhaupt keine Programme mehr für WinCE bauen kannst, sondern nur noch für Windows Phone (<> WinCE).
Jup ich meinte das vom Hersteller, da ich in VS ja auch die .Net Plattformversion einstellen kann für die kompiliert wird, sollte mindestens die Hersteller SDK laufen.
.NET <> .NET.
Das .NET für WinCE ist wieder etwas spezielles. Das nennt sich Compact Framework (CF) und ist eine sehr kleine Untermenge von .NET
Daher bezweifele ich das die aktuellen VS das noch können.
  Mit Zitat antworten Zitat
Towmuz

Registriert seit: 21. Sep 2016
Ort: Minden
127 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

AW: WinCE Batteriestatus in Delphi VCL Anwendung (über RDP)

  Alt 26. Sep 2016, 11:53
So hab ichs nun verbaut, vieleicht brauchts mal wer...

Für die Mini-Anwendung auf dem Handscanner mit Windows CE, wurden SharpDevelop(sone Art freies VisualStudio) und das CompactFramework verwendet. SharpDevelop V3.2 für .Net 3.5 und CompactFramework 3.5.
SharpDevelop 3.2 ist wohl die letzte Version, die das CompactFramework mit NET 3.5 unterstützt.

Generelle Funktionsweise CE Anwendung C#, schreibt jede Minute den Batteriestatus in eine Ini.
Code:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;
using System.Threading;

namespace JZPW1310_Battery
{
   public class SYSTEM_POWER_STATUS_EX
   {
       public byte ACLineStatus;
       public byte BatteryFlag;
       public byte BatteryLifePercent;
       public byte Reserved1;
       public uint BatteryLifeTime;
       public uint BatteryFullLifeTime;
       public byte Reserved2;
       public byte BackupBatteryFlag;
       public byte BackupBatteryLifePercent;
       public byte Reserved3;
       public uint BackupBatteryLifeTime;
       public uint BackupBatteryFullLifeTime;
   }
   
   public partial class MainForm : Form
   {      
      [DllImport("coredll")]
      private static extern uint GetSystemPowerStatusEx(SYSTEM_POWER_STATUS_EX lpSystemPowerStatus, bool fUpdate);
      
      public static void Main(string[] args)
      {
         System.Threading.Timer t = new System.Threading.Timer(TimerCb, null, 0, 60000);
         Console.ReadLine();
      }   
      
      private static void TimerCb(Object o)
      {
         try {
            SYSTEM_POWER_STATUS_EX status = new SYSTEM_POWER_STATUS_EX();         
            string dir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
            if (GetSystemPowerStatusEx(status, false) == 1)
            {                        
//               Console.WriteLine("BatteryLifePercent=" + status.BatteryLifePercent.ToString());
               StreamWriter sw = new StreamWriter(dir + @"\battery.status");            
               sw.WriteLine("[BatteryStatus]");
               sw.WriteLine("BatteryLifePercent=" + status.BatteryLifePercent.ToString());
               sw.Close();
               GC.Collect();
            }   
         } catch (Exception ex) {
//            Console.WriteLine(ex.Message + ' : ' + ex.StackTrace);
         }         
      }
   }
}
In WinCE RDP-Verbindungseigenschaften noch die Ordnerfreigabe definieren und auf dem RD-System (WinServ2003 in dem Fall oder sonst irgendnem Win) in der DelphiAnwendung über einen Timer die Ini auslesen.
Delphi-Quellcode:
uses IniFiles;

procedure Tfrm_bla_Programm.tmr1Timer(Sender: TObject);
var
  ini: TIniFile;
  percent: Integer;
  caption: string;
begin
  try
    begin
      ini := TIniFile.Create('\\tsclient\Files\Temp\battery.status');
      caption := ini.ReadString('BatteryStatus', 'BatteryLifePercent', '') + ' %';
      percent := StrToInt(ini.ReadString('BatteryStatus', 'BatteryLifePercent', ''));
      pb1.Position := percent;
      lbl1.Caption := caption;
      ini.Free;
    end;
  except on e: exception do
    begin
      pb1.Position := 100;
      lbl1.Caption := 'ERROR';
    end;
  end;
end;
Fals das hier zu Detail- oder Erleuterungsarm erscheint, schreib ichs gern ausführlicher bzw. aufgeräumter, habe noch nicht viel Programmierforenerfahrung .
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz