Hoi Geaz,
erstmal 👍, Dein Tool gefällt mir echt gut. 🙂
Beim ersten Testen, ist mir sharpdox aber in eine Exception gerannt beim Bauen des CHM-Files. Im chm\tmp Verzeichnis waren schon jede Menge Files, allerdings flog er mit folgender Exception raus:
Fehlermeldung:
2013-08-19 13:44:47,390: ERROR – System.IO.FileNotFoundException: Die Datei "D:\Dokumente und Einstellungen\MeinUser\Desktop\test\chm\tmp\MeinProjektName.chm" konnte nicht gefunden werden.
Dateiname: "D:\Dokumente und Einstellungen\MeinUser\Desktop\test\chm\tmp\MeinProjektName.chm"
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
bei System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
bei ChmExporter.ChmFile.SaveTo(String path)
bei ChmExporter.ChmDocExporter.Export(SDRepository repository, String outputPath)
bei SharpDox.Build.Context.Steps.ExportStep.RunAllExporters(BuildContext buildContext)
bei SharpDox.Build.Context.Steps.ExportStep.ProcessStep(BuildContext buildContext)
bei SharpDox.Build.Context.BuildContext.StartBuild()
bei SharpDox.Build.Context.BuildContext.BuildDocumentation()
Habe dann mal lediglich das Output-Verzeichnis auf D:\Work\Sharpdox abgeändert und es nochmal probiert und schon gings.
Eventuell ein Problem wegen des Leerzeichens im Ordnername?
Aber wiegesagt: nur eine Kleinigkeit 🙂
Gruß
SYK
PS: wie vermutlich bereits am Pfad erratbar, habe ich es auf einem deutschen XP probiert
Um das Thema noch aufzuklären: ein freundlicher Microsoft-Mitarbeiter, Mike Kinsman, hatte sich wie versprochen des Themas angenommen und konnte alles zu meiner Zufriedenheit lösen: mittlerweile enthält das TechNet Standard Abo sowohl Visio 2013 Professional, als auch Project 2013 Professional 😃
@san-software: Danke für den Link, den kannte ich allerdings bereits.
So wirklich passt eigentlich keines der Kriterien auf Visio/Project... mit viel Fantasie vielleicht "die "nicht für eine von IT-Experten verwaltete Geschäftsumgebung vorgesehen sind". Allerdings wenn nicht in einer Geschäftsumgebung - wo nutzt man Visio/Project dann? ^^
Das Passwort ist verschlüsselt in der Konfig Datei und wird mittels Quellcode entschlüsselt. Da wird nichts in Klartext verschickt. Der Code allerdings hat natürlich das Passwort.
Nachdem Du Deinen Request Deinem Codeschnippsel nach über HTTP verschickst, wird das Passwort natürlich im Klartext verschickt 😉
Hi Ihr beiden,
herzlichen Dank für Eure Antwort!
Dass es nicht mal bei MSDN Pro runterladbar ist, verblüfft mich ja fast noch mehr 😃
Amüsante Randnotiz: vor 3 Wochen noch konnte ich Visio 2013 Standard runterladen und zwei Keys dafür generieren. Jetzt gerade nochmal geguckt... nun sehe ich Visio 2013 Standard nicht mehr, kann aber dafür Professional herunterladen (bringt mir nur leider nichts, weil mir trotzdem nur meine beiden Standard-Keys angezeigt werden, die ich vor 3 Wochen generiert hab und die wohl kaum - ich habs noch net probiert, aber würde wenig Sinn machen - mit der Professional funktionieren werden).
Irgendwie treibt Microsoft da grade komische Dinge.
Falls es jemanden interessiert, hier noch der Link zu meinem Thread im TechNet-Forum. Da hat mir ein Microsoft-Mitarbeiter für nächste Woche eine Antwort zugesagt.
Ciao
Ben
Schönen guten Abend zusammen,
könnte bitte mal jemand mit einer MSDN-Subscription gucken, ob er Project 2013 Standard zum Download angeboten bekommt?
Hintergrund der Frage: ich bin TechNet Standard Subscriber und finde nur Project 2013 Professional (welches ich mit meiner Standard Subscription aber nicht herunterladen darf). Laut customer service sei das normal so und eine Management-Entscheidung. Ich sollte im TechNet-Forum nachfragen, da würden auch Kollegen aus dem Management lesen.
Mich würde nun interessieren, ob das nur TechNet betrifft, oder ob in MSDN auch "nur" Professional angeboten wird.
Erstaunlicherweise gibt es sowohl Office 2013 Standard, als auch Visio 2013 Standard und - jetzt wirds total konfus - Project Server 2013 (welchen ich sogar als Standard-User downloaden dürfte oO).
Viele Grüße
Ben
[EDIT: Typo]
Ich brauche mal kurz Support zum Support-Tool von IBM... soll ich jetzt Tor 3 oder doch lieber den roten Umschlag nehmen? 😃
Und in die Richtung klingt dann das Surface-Tablet ganz interessant - wenn darauf auch irgendwann VS und nicht-Store-Apps laufen sollten, wäre das eine echte Alternative zu einem Laptop.
Warum sollten VS und "nicht-Store-Apps" nicht auf Surface laufen? Es wird ja auch ein x86-Surface geben, für welches die Einschränkungen der ARM-Geräte nicht gelten. "Irgendwann" soll 2-3 Monate nach Einführung der ARM-Variante (= 26. Oktober) sein.
Ob's von der Performance her Spaß macht, wird sich aber wohl zeigen müssen 😉
Eventuell lohnt sich auch mal ein Blick auf http://devcomponents.com/dotnetbar
Hmm, der Anzeigename eines Windows-Services ist doch nur ein Wert in der Registry
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services[Dienst] hat einen String-Wert "DisplayName". Eigentlich sollte ausreichen, wenn Du den Wert änderst und Windows neu startest. Grade mal ausprobiert, danach war in services.msc mein selbst vergebener DisplayName zu sehen.
Meine Steuerelemente benutze ich aus 2 DLLs - den DevComponents.
Ich schätze mal, Du meinst die DotNetBar?
Kanns sein, dass Du auf Deinem privaten Rechner eine andere Version der DotNetBar installiert hast, als auf dem Firmenrechner? In die Falle bin ich schon öfter getappt: aufm Desktop 9.x.x installiert gehabt und aufm Notebook 9.x.x+1
-> ging nicht 😃
Wenn es Dir hauptsächlich um eine weitgehend automatisierte Update-Funktionalität geht, könnte vielleicht auch Maximilians Projekt für Dich interessant sein: updateSystem.NET
Stimmt, hab's grade mal ausprobiert, das Verhalten habe ich bei mir auch. Anscheinend ist nicht zwingend das Fenster im Vordergrund auch das "active Window". Die Doku im MSDN lässt auch ein bisschen darauf schließen: "Retrieves the window handle to the active window attached to the calling thread's message queue"
Was bei mir aber funktioniert: wenn ich GetForegroundWindow ("Retrieves a handle to the foreground window (the window with which the user is currently working).") statt GetActiveWindow verwende.
Das Handle des aktuellen Fensters kannst Du über die Funktion GetActiveWindow aus der Win32API erhalten.
[Edit: einigen Unsinn entfernt... wie Th69 richtig erwähnt hat, macht es natürlich wenig Sinn, Window-Handle mit einem Prozess-Handle zu vergleichen 😉 ]
Und die Erklärung, warum es mit der MessageBox funktioniert hat, ist ähnlich simpel: weil eben diese dann statt der RTB das Strg+V abbekommen hat (und damit nix anfangen kann) 😉
Ich war auch drauf und dran, einen erbosten Kommentar zu tippen - bis mir wieder eingefallen ist, welchen Tag wir heute haben 😉
MS sei Dank 😉
Mit WMI sollte ich zum Ziel kommen...
ManagementObjectSearcher mos = new ManagementObjectSearcher("select caption from Win32_UserAccount where Name = 'tchef");
foreach (ManagementObject mobject in mos.Get())
{
Console.WriteLine(mobject["caption"].ToString());
}
Console.ReadKey();
In caption steckt MEINEDOMAIN\tchef
Muss zwar noch ein paar Kleinigkeiten umbauen, aber damit sollte es gehen.
Vermutlich willst du aber auch eher SUSER_SNAME() nutzen.
Klar, meine ich - sorry... aber hey, wenigstens konsequent sowohl in der Überschrift als auch im eigentlichen Content vertippt 😉
Kurz zum Verständnis, was ich eigentlich machen möchte... vielleicht denke ich ja auch von hinten durch die Brust ins Auge und jemand hat eine bessere Idee.
Ich habe eine Tabelle, bei der ich Berechtigungen auf Row-Level nutze, wie in folgendem MSDN-Artikel beschrieben:
http://msdn.microsoft.com/de-de/library/bb669076.aspx
Das klappt grundsätzlich auch wunderbar, allerdings habe ich einen kleinen Extrawunsch: zusätzlich zum aktuellen User, soll auch dessen Manager den Datensatz lesen können. Den aus dem Manager-Attribut des aktuellen Users im AD auszulesen, ist grundsätzlich auch kein Problem.
Aber: der Manager ist im AD-Attribut im Format CN=Toller Chef,CN=Users,DC=meinedomain,DC=de gespeichert. Ich brauche ihn aber im gleichen Format, wie ihn mir SUSER_SNAME zurückliefert, also etwa MEINEDOMAIN\tchef.
Dummerweise gibt es aber kein Attribut am AD-User, in welchem dieses Format gespeichert wäre. Den UPN gibt es allerdings (nämlich im gleichnamigen Attribut userPrincipalName). Daher auch meine Frage, ob man SUSER_SNAME irgendwie als UPN zurückliefern lassen kann. Aber vielleicht gibts ja noch einen anderen Lösungsansatz, den mir momentan das Brett vor meinem Kopf verdeckt 😉
@Mods: sorry, das Thema schwankt etwas zwischen Daten- und Netzwerktechnologien... momentan wahrscheinlich mit etwas Übergewicht in Richtung AD/Netz... falls Ihr das Thema eher im Netzwerkbereich seht und den Thread verschieben wollt: feel free 😁
Hallo zusammen,
gibt es eine Möglichkeit, vom SQL Server (2008 R2) den Namen des aktuell via Windows Authentication verbundenen Users als UPN (Universal Principal Name) zu erhalten?
SUSER_NAME() liefert den Namen im Format DOMAIN\User... ich bräuchte aber user@domain.de
Besten Dank schonmal für Tipps
SYK
IP, Port, Benutzer, PW.
Gerhard
Und wer oder was lauscht auf dem Port?
Ich... versteh Deinen Code ehrlichgesagt nicht wirklich - bzw. was konkret Du damit erreichen willst.
Soll Deine Klasse TextDatei dazu dienen, die EXE aus den Ressourcen auszulesen und ins Temp-Verzeichnis zu schreiben? Warum so kompliziert? Hast Du Dir das Beispielprojekt aus dem von mir verlinkten Thread angesehen? Das sind 3 Zeilen Code...
Und wo greifst Du überhaupt auf die Ressourcen zu? Die einzigen Aufrufe die ich diesbezüglich sehe, sind die beiden, mit denen Du ein BackgroundImage setzt. Wo ist denn der Zugriff auf das EXE?
Fragen über Fragen 😉
Ob die EXE in den Ressourcen eine .NET-Anwendung ist oder nicht ist an der Stelle irrelevant.
Poste doch mal Deinen Code...
Guten Morgen,
wie wäre es denn, erstmal die Forensuche zu bemühen? 😉
Ressourcen Exe ausführen - Relativer Pfad
Gruß
SYK
Mir wäre keine Bordmittelfunktion von Windows bekannt, die das ermöglicht.
Vermutlich wirst Du eine zweite, immer im Hintergrund laufende Anwendung brauchen, die überwacht ob der Rechner gesperrt ist oder nicht und bei der entsprechenden Statusänderung Deine "Hauptanwendung" startet.
Wie man herausfindet, ob der Rechner gesperrt ist erzählt Onkel Google etwa in Detect if Workstation is locked
Danke für dem Tipp mit der Notification Class, bei MSDN hab ich leider nur eine Notification Class im Bezug auf Win CE gefunden, hättest evtl. eine Info Quelle.
Ich denke, gemeint war: Du sollst Dir eine eigene, statische Klasse schreiben... ob Du die nun Notification, Reminder oder Donaudampfschifffahrtskapitaen nennst, bleibt Dir überlassen. Notification wäre aber ein naheliegender Name 😉
Habe wie versprochen mal den Artikel rausgesucht...
Soweit ich's überblicke, müsste Dir der Artikel weiterhelfen können, er widmet sich der User Interface Automation (System.Windows.Automation).
Kannst ja mal in der Richtung in der MSDN suchen, ob Du dort was findest, das Dir weiterhilft. Ansonsten wären vielleicht die 15 Euro für das Nachbestellen der Ausgabe gut investiert 😃
Ich bilde mir ein, ich hätte in der dotnetpro mal einen Artikel gelesen, der in die Richtung ging. Glaube, da wurde anhand der calc.exe beschrieben, wie man auf Steuerelemente einer fremden Applikation zugreifen kann.
Wenn ich mich nicht irre, war es der hier:
http://www.dotnetpro.de/articles/onlinearticle2838.aspx
Werd heute Abend zu Hause mal mein Archiv durchwühlen und gucken ob der Artikel was für Dich ist
Ich stimme JAck30lena zu... wobei sich manche der Anforderungen von icolor, etwa das Festlegen von Zeitkontingenten, ja bereits mit Bordmitteln von Windows 7 realisieren lassen (Stichwort "Parental Controls"), was definitiv sicherer sein dürfte, als etwas selbst "gebasteltes".
Und ohne hier eine Grundsatzdiskussion führen bzw. zu stark Off-Topic driften zu wollen: grundsätzlich ist es sowieso sinnvoller, den Kindern einen verantwortungsvollen Umgang mit dem PC sowie dem Medium Internet beizubringen, etwa Kinder bis zu einem gewissen Alter bei ihren Tätigkeiten am PC zu begleiten und darüber zu sprechen welche Gefahren dort lauern. Verhindern können dass das Kind letztlich doch etwas tut, was Dir nicht gefällt wirst Du letztlich sowieso weder mit Verboten, noch mit technischer Überwachung. Notfalls geht Sohnemann eben zu einem Freund dessen Eltern das nicht so eng sehen oder Töchterchen investiert ein paar Euro Taschengeld und surft ungeniert im nächsten Internetcafé auf der von Dir verbotenen Seite.
War übrigens auch vor kurzem ein recht ausführlicher Bericht in der c't zu dem Thema...
Hallo Ingo,
wie wäre es denn mit einer etwas genaueren Fehlerbeschreibung... Code... Exceptions? Etwas mehr Infos als "geht nicht" baucht man schon, um Dir helfen zu können.
Gruß
Ben
Hi Trekki,
ich hab sowas auch mal für ein Projekt verwendet, ist aber schon gut zwei Jahre her. Ich hab damals den Fullscreen "selbst gebaut". Frag mich aber bitte nicht warum... möglich, dass das VLC-Control damals toggleFullscreen noch nicht angeboten hat, oder vielleicht hatte ich auch das gleiche Problem wie Du.
Meine App hatte damals standardmäßig das Video auf einer Form nur in einem kleinen Fenster angezeigt und hat beim Druck von F2 in den Fullscreen gewechselt.
Hab Dir mal die relevanten Codeschnippsel rausgesucht:
private void SetupPresentationWindow()
{
// Einsetzen von Double Buffering, um die Performance zu steigern
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
// frmMain erhält die Kontrolle über die Maus
this.Capture = true;
// Den Mauscursor verbergen, sowie frmMain für Fullscreen vorbereiten
Cursor.Hide();
Bounds = Screen.PrimaryScreen.Bounds;
WindowState = FormWindowState.Maximized;
ShowInTaskbar = false;
DoubleBuffered = true;
KeyPreview = true;
BackgroundImageLayout = ImageLayout.Stretch;
}
private void frmMain_KeyDown(object sender, KeyEventArgs e)
{
// Handling von Tastendruck-Events
switch (e.KeyCode)
{
Case Keys.F2:
if (IsRunningFullScreen == false)
{
VLC.Left = 0;
VLC.Top = 0;
VLC.Width = Screen.PrimaryScreen.Bounds.Width;
VLC.Height = Screen.PrimaryScreen.Bounds.Height;
IsRunningFullScreen = true;
}
else
{
VLC.Left = 54;
VLC.Top = 270;
VLC.Width = 525;
VLC.Height = 404;
IsRunningFullScreen = false;
}
break;
}
}
Vielleicht hilft Dir das ja weiter...
Gruß
Ben
Hallo ala86,
ein ähnliches Thema wurde bereits in CMD-Konsole aus dem programm heraus ansteuern behandelt!
[edit]Auch das hier könnte helfen: externes Programm im Fenster der eigenen Anwendung ausführen[/edit]
Gruß
SYK
Moing zusammen,
alternativer Lösungsvorschlag zu dem von herbivore:
Du könntest auf den Forms den AcceptButton disablen und mittels eines Timers nach z.B. 2 Sekunden erst enablen.
Gruß
SYK
Hi 1mannlan,
das was Du ursprünglich tun wolltest, lässt sich auch mit 3 Zeilen Code lösen:
String myFile = Path.GetTempPath() + "\\StupidAppFromRes.exe";
File.WriteAllBytes(myFile, Properties.Resources.StupidApp);
System.Diagnostics.Process.Start(myFile);
Ein Beispielprojekt hab ich Dir mal angehängt.
Gruß
Ben
Ahh sehr fein, danke für den Hinweis =)
Hi,
ich denke, dass die Overlay Icons für Dich interessant sein könnten. Deren Zweck ist es, dem User zu signalisieren, dass in der Anwendung grade etwas passiert ist. Über das Framework kommst du damit natürlich (noch) nicht zum Ziel, aber probier's doch mal mit folgender Win32-API:
HRESULT SetOverlayIcon (HWND, hwnd, HICON hIcon);
Was die Fortschrittsanzeige angeht:
HRESULT SetProgressState(HWND hwnd, TBPFLAG tbpFlag);
HRESULT SetProgressValue(HWND hwnd, ULONG ulCompleted, ULONG ulTotal);
Gruß
Ben