Laden...

Forenbeiträge von v1vec Ingesamt 52 Beiträge

18.05.2009 - 14:04 Uhr

danke für eure hilfe

letztendlich lags wohl doch an dem visual studio - bei einem anderen projekt gings nämlich später als ichs nochmal probiert hatte - hab nur vergessen hier nochmal zu schreiben 😉

gruß

v1vec

15.05.2009 - 10:15 Uhr

Hallo miteinander !

Ich sitze derzeit an einem Excel-AddIn das eine abfrage aus einer SQL-Datenbank macht und in excel importiert.

Grundlage ist folgendes Beispiel (für den Excel-Teil):
http://msdn.microsoft.com/en-us/office/bb980207.aspx

Ich habe mir die Beispieldateien heruntergeladen und versucht zu kompilieren aber bekomme folgenden fehler:

zum einen 10 warnungen ala:

Warnung 29 Dieser Verweis konnte nicht aufgelöst werden: Die Microsoft.VisualStudio.Tools.Office, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL-Assembly konnte nicht gefunden werden. Vergewissern Sie sich, dass die Assembly auf dem Datenträger vorhanden ist.. Wenn dieser Verweis für Ihren Code erforderlich ist, können beim Kompilieren Fehler auftreten. HDI-VSTO-Excel-Arrays-CS

und

Warnung 34 Die Komponente "Microsoft.VisualStudio.Tools.Applications.AddInBase", auf die verwiesen wird, wurde nicht gefunden.

sowie 28 Fehler ala:

Fehler 2 Der Typ- oder Namespacename "Tools" ist im Namespace "Microsoft.Office" nicht vorhanden. (Fehlt ein Assemblyverweis?) C:...\HDI-VSTO-Excel-Arrays-CS\HDI-VSTO-Excel-Arrays-CS\Ribbon1.cs 5 24 HDI-VSTO-Excel-Arrays-CS

und

Fehler 3 Der Typ- oder Namespacename "VisualStudio" ist im Namespace "Microsoft" nicht vorhanden. (Fehlt ein Assemblyverweis?) C:...\HDI-VSTO-Excel-Arrays-CS\HDI-VSTO-Excel-Arrays-CS\Sheet1.cs 7 17 HDI-VSTO-Excel-Arrays-CS

Entwicklungsumgeebung ist ein frisch installiertes visual studio 2008 pro mit vsto - mit dem sollte das doch problemlos gehen ?

Grüße und danke für jede hilfe 😉

Edit: habs jetzt hinbekommen - hab einfach mit dem assistenten nen neues projekt erstellt und dann den code rüberkopiert

wahrscheilich war es einfach die falsche version der assemblies die nich verfügbar war oder so was -> erledigt

18.04.2009 - 01:55 Uhr

also irgendwie wird das alles immer seltsamer:
wenn ich topmost schon im vorhinein oder mit dem OnLoad-Ereignis setze passiert nichts (bzw. genau das gleich wie als hätt ich es nich gesetzt) - setze ich topmost hingegen erst (oder wieder) wenn das fenster aktiv ist (z.B. durch OnClick) funktioniert es

17.04.2009 - 17:42 Uhr

also das is alles sehr seltsam

(F.Focus() bringt leider auch keinen Erfolg, wahrscheinlich deshalb weil das Fenster davon ausgeht das es den Focus hat (wird auch als aktiv gezeichnet))

nach ner weile googlen hab ich rausgefunden das es einen bug im visual studio gibt der genau dieses verhalten (form hinter konsole) hervorruft wenn man das programm direkt aus der entwicklungsumgebung aufruft

allerdings ist das nicht alles, dieses verhalten tritt für den fall das man das programm direkt aus dem ordner aufruft auch dann auf wenn man zuvor einen Read befehl ausgeführt hat

folgendes funktioniert also richtig (wenn man es aus dem ordner aufruft

static void Main(string[] args)
{
Form1 F = new Form1();
F.ShowDialog();
}

das hingegen nicht:

static void Main(string[] args)
{
Console.ReadKey();
Form1 F = new Form1();
F.ShowDialog();
}

sinn macht das ja keinen - leider brauch ich aber ReadLine() und ReadKey()
falls jemand also ein workaround weiß - immer her damit
ansonsten schonmal danke, ich denke wir werden auf ein update des studios warten müssen -.-

17.04.2009 - 16:05 Uhr

danke schonmal, leider gehts aber trotzdem nich

der dialog is dann zwar in der mitte des bildschirms aber immernoch hinter der Konsole

Ich hab zum test mal folgendes gemacht (um es besser nachvollziehbar zu machen):

  • Neues Projekt -> Konsolenanwendung
  • Dem Projekt eine Form hinzugefügt (Form1)
  • using Verweis hinzugefügt (System.Windows.Forms)
  • in die Main funktion folgenden Code geschriebe:
Form1 F = new Form1();
F.StartPosition = FormStartPosition.CenterScreen;
F.ShowDialog();

das ergebnis is das die konsole zwar anhält bis ich die form schließe, aber die form bleibt beim start in hintergrund

hab ich vllt irgendwas vergessen ? X(

ps: weder F.TopLevel noch F.TopMost ändern da was dran 🙁

17.04.2009 - 15:38 Uhr

Hallo

Ich verwende Visual Studio C# 2008 Express Edition und hab ein Konsolenprogramm erstellt das eine ebenfalls in dem Projekt enthaltene Form aufrufen soll. Der Aufruf an sich funktioniert auch ohne probleme, allerdings ist die Form dann immer im Hintergrund was sehr unschön ist - zumal die Konsole während der Zeit eh blockiert ist (was auch in meinem sinn ist). Der Dialog soll dazu verwendet werden das ergebnis der vorherigen berechnungen graphisch darzustellen. Auch das setzen der TopMost Variable in der Form hat nix gebracht.

Mein Code sieht derzeit so aus (gekürzt):


Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

Form1 F = new FormXY();
            
Application.Run(F);

Hat jemand ne idee woran das hängt und wie ich die form in den vordergrund bekomme ?

03.10.2006 - 22:52 Uhr

hi
hab mir auf meinem xp-system irgendwas gefangen und bin deshalb mit vista unterwegs, wo ich aber vs nich drauf hab, deshalb entschuldigt bitte das ich mich nicht gemeldet habe.

zur größenordnung:
bei einem testlauf hatte ich nach einem durchlauf eine arbeitsspeicherauslastung von fast 250 mb ^^

der sinn ist, alle möglichkeiten von additionen die aus den elmenten aus preis gebildet werden können zu bilden, und (wenn möglich sortiert) zu speichern, so dass man, wenn man einen wert vorgibt, leicht den am nächsten kleineren findet, und auch weiß was man adddieren muss um ihn zu bekommen.

eure ansätze wer ich dann demnächst mal versuchen zu verwirklichen.

gruß v1vec

PS: Im Prinzip funktionierts ja auch, aber es kommt mir irgendwie so vor als würde der viel unnötiges zeug machen, und meine frage war nur, ob irgendjemand auf anhieb was einfällt.

01.10.2006 - 20:16 Uhr

Hi
also ich hab ein bissl code gescrieben und ausgeführt und der is sooooo lahm
ich denk ma das hängt am häufigen kopieren von _Einkäufe nach Einkäufe.
Wie durchlaufe ich das effizienter ?
Thx für alles was kommt ^^
mfg v1vec, der erst ma ferseh gucken ist

ps: der code


Dictionary<uint, List<int>> _Einkäufe = new Dictionary<uint, List<int>>();
            do
            {
                _Einkäufe.Clear();
                foreach (KeyValuePair<uint, List<int>> einkauf in Einkäufe)
                {
                    foreach (KeyValuePair<int, uint> preis in Preise)
                    {
                        if ((!Einkäufe.ContainsKey(preis.Value + einkauf.Key))
                            && (!einkauf.Value.Contains(preis.Key))
                            && (!_Einkäufe.ContainsKey(preis.Value + einkauf.Key)))
                        {
                            _Einkäufe.Add(preis.Value + einkauf.Key, new List<int>(einkauf.Value));
                            _Einkäufe[preis.Value + einkauf.Key].Add(preis.Key);
                        }
                    }
                }

                foreach (KeyValuePair<uint, List<int>> var in _Einkäufe)
                {
                    Einkäufe.Add(var.Key, var.Value);
                } 
            } while (_Einkäufe.Count != 0 );

24.09.2006 - 20:45 Uhr

hi

also den grund dafür das alles erst dreimal geschrieben wird bevor es gändert wird hab ich auch nich gefunden, aber ich würde statt eines arrays eine Liste nehmen.

Da kannst du dann einfach immer ein elment anhängen (add) und danach gucken wie viele elmente gerade drin sind (count) und dann evtl am anfang welche abschneiden (RemoveRange(0, Count - Max))

gruß v1vec

17.09.2006 - 19:22 Uhr

Kopiert hab ich mit dem Konstruktor und durchlaufen mit foreach:

Dictionary<int, List<int>> Req2 = new Dictionary<int, List<int>>(Req);

foreach (intk in Req[j])
{
   if (!Req[i].Contains(k))
       Req2[i].Add(5);
}

edit: reihenfolge geändert 😉

17.09.2006 - 17:55 Uhr

hi

Ich möchte ein Dictonary (Dictonary<int,List<int>>) durchlaufen und dabei eine kopie davon verändern indem ich elemente zur list hinzufügen. Aber ich erhalte immer eine InvalidOperationException wenn ich das programm starte 🙁
Hat jemand eine Rat für mich?

Gruß v1vec

24.06.2006 - 11:23 Uhr

Hi herbivore

Hab da mal geschaut, ich blick aber nich so recht durch.
Es gibt da ja drei Arten nach denen die Berechtigungssätze verteilt werde.
1.Organisation
2.Computer
3.Benutzer
bei 1 und 3 gibt es nur eine code gruppe und die hat jeweils fulltrust
bei 2 gibt es mehrere, unter anderen auch MyComputer mit der Bedingung das das Programmm im Arbeitsplatz sein muss. Und da steht dann auch full trust.
brauch ich etwa mehr rechte oder is das doch der falsche ansatz?

Gruß v1vec

24.06.2006 - 11:02 Uhr

Hi

  1. Kann man mit dem .Net-Framework Registry-Berechtigungen setzten, auch wenn man nur Besitzer ist und eigentlich nicht einmal das Recht hat Den Inhalt zu lesen?

  2. Kann man sich als User mit Administrator-Rechten zum Besitzer machen (wieder mit .net, gui weiß ich ja wie es geht 😉 )

Hab das zwar schon probiert aber immer wieder ne UnauthorizedAccessException bekommen.
Ich bin für alle Tips offen.
mfg v1vec

07.06.2006 - 15:37 Uhr

Hi
apropos Dokumentation
hab grad ma geguggt und ich hab im .net Framework ordner von 2.0 keine doku
ich hab nur die vom 1.1
muss man die extra installieren oder anders aufrufen?
hab das sdk mit visual studio (damals express) installiert

03.06.2006 - 00:32 Uhr

das hilft zwar wenn er das programm nur selbst benutzt (und eben replace benutzt), aber nicht wenn ein anderer nutzer subst benutzt.

entweder du löst subst auf, oder du lässt die datei vom betriebssystem sperren (ka wie das in .net geht 😁 ) und dann kannst du sie beim zweiten öffnen eh nur schreibgeschützt oder garnich öffnen.

mfg v1vec

26.05.2006 - 16:14 Uhr

Ich hab leider kaum Erfahrung mit lokalen Hooks, aber vllt hilft es ja wenn du mal beschreibst was du überhaupt hookst.

mfg v1vec

25.05.2006 - 13:32 Uhr

Ich weiß jetz nich gant was du meinst, aber es gibt allgemein 2 Möglichkeiten:

  1. Die Datei soll auf der Festplatte gespeichert werden
    So hattest du es ja. Vorteil is eben das auch andere Programme Zugriff haben.

  2. Eine Ressourcendatei
    Damit wird deine Datei mit in die exe (oder was auch immer) kompiliert. Damit hat man zumindest nich so einfach zugriff ^^

25.05.2006 - 13:27 Uhr

Du musst wahrscheinlich die funktion die aufgerufen werden soll in eine dll packen, weil man sie sonst nur aus der eigenen exe aufrufen kann, nicht aber der "gehookten" exe.

siehe auch:
OldNewThing Blog

21.05.2006 - 17:20 Uhr

und genau das is unnötig, da:

name1.class1 a = name1.class1();

ob man jetzt nämlich

name1.class1 a;

oder

using name1;
class1 a;

schreibt is egal

PS: Referenz braucht man natürlich trotzdem

20.05.2006 - 18:06 Uhr
for(int i = 0;i<array.length;i++)
{
   for(int j = i+1;j < array.length;j++)
   {
       //hier vergleichen
       if(array[i] == array[j])
          MessageBox.Show("Damn!");
   }
}
15.05.2006 - 21:41 Uhr

Hi
gint es in .net 2.0 eine klasse mit der man latex oder so ähnliche strings erstellen und vor allem malen kann ?

danke schon im vorraus
v1vec

13.05.2006 - 20:52 Uhr

Hi
Ich hab jetzt mitlerweile ne Lösung gefunden
Das war meine AusgangsStruktur:

public struct Unicode_String
{
    public ushort Length;
    public ushort MaximumLength;
    public IntPtr Buffer;
}

hab den Buffer mit Marshal.Copy in ein bytearray kopiert und mit Encoding.Unicode.GetString() dekodiert

13.05.2006 - 18:26 Uhr

hi
ich hab nen zeiger auf einen puffer und dessen länge
in dem puffer sind (Unicode)chars.
wie bekomm ich die als char-array in ne variable ?

danke für alle vorschläge

13.05.2006 - 15:00 Uhr

Ich hatte das eher allgemein gedacht.
in meinem konkretem fall ist es ein void*.
geht das auch mit IntPtr?

13.05.2006 - 13:46 Uhr

hi
wie muss man denn eine funktion formulieren damit sie einen zeiger zurückgibt (DllImport 😉) (mit ref klappets nich:()

danke für alle hinweise
v1vec

10.05.2006 - 22:12 Uhr

wie gesagt das war so als beispiel und erfüllt genau den gesuchten zweck also hab ichs reingepostet.
und ob das unbedingt schlechter ist als alles in einen string zu konvertieren is fraglich
is natürlich nicht ganz schön anzusehen, das stimmt

10.05.2006 - 22:00 Uhr

oder so:

static char[] hexDigits = {
        '0', '1', '2', '3', '4', '5', '6', '7',
        '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
 
    public static string ToHexString(byte[] bytes) {
        char[] chars = new char[bytes.Length * 2];
        for (int i = 0; i < bytes.Length; i++) {
            int b = bytes[i];
            chars[i * 2] = hexDigits[b >> 4];
            chars[i * 2 + 1] = hexDigits[b & 0xF];
        }
        return new string(chars);
    }

so stehts als beispiel in meiner lokalen msdn (deshalb auch kein link 🙁 )

edit: habs doch noch gefunden:
http://msdn2.microsoft.com/de-de/library/system.byte.aspx

09.05.2006 - 22:29 Uhr

Wozu soll das eigentlich dienen?
Damit man die werte public lesen aber nur private schreiben kann?

das geht auch so:


int i
{
   get
   {
      return i;
   }
   private set
   {
      i = value;
   }
}

Das spart immerhin eine zeile pro variable 8)

06.05.2006 - 16:18 Uhr

Ich glaube mit | hat er eher einen Strich gemeint der angezeigt wird wenn ein ungültiges zeichen angezeigt erden soll (und eben nicht angezeigt werden)
das hatte ich z.B. mal bei '\n' in ner singleline textbox (oder so, is schon ne weile her)

03.05.2006 - 19:32 Uhr

gut hab mich vllt etwas unpräzise ausgedrückt

du musst dir eben überlegen worauf du dem plugin / der dll zugriff geben willst und dann entsprechende prototypen für die in der dll vorhandenen funktionen formulieren

wenn du also mit der dll ein fenster bearbeiten willst brauchst du eben eine funktion in der dll die ein fensterhandle entgegennimmt und dann bearbeitet.

vllt auch noch ne callback-funktion die Nachrichten von der dll entgegen nimmt (ich weiß das das win-api und keine .net begriffe sind, hoffe aber du weißt was ich meine 😉)

03.05.2006 - 18:56 Uhr

Hi tigersammy
Fals du es doch selbst schreiben willst solltest du dich erst einmal über Dlls informieren und dann eben ein Interface schreiben.

Wenn ich noch ne Seite finde häng ich sie an

02.05.2006 - 22:13 Uhr

sieht zumindest in der beschreibung ganz passend aus 😁

Danke

02.05.2006 - 22:01 Uhr

Hi
Gibt es sowas wie die stl-map aus c++ auch in c#?

02.05.2006 - 21:49 Uhr

Ich versteh den Sinn dahinter nich ganz
Also wenn man jetz schreibt

Liste EineListe = new Liste();
Liste AndereListe = new Liste(foo);

EineListe = AndereListe;

erwartet man doch das EineListe modifiziert wird und nich umgekehrt oder?
Falls du wirklich das bezweckst was du geschrieben hast solltest du eine Funktion schreiben und set und get in Frieden lassen.

02.05.2006 - 21:33 Uhr

das hat wohl eher damit zu tun das du dem stringarray keinen Speicher zugewiesen hast:

int[] IntegerArray;
Console.Write(IntegerArray.Length); //Fehler da IntegerArray kein Speicher zugewiesen ist (initialisiert)
int[] AnderesIntegerArray = new int[22];
Console.Write(AnderesIntegerArray.Length) // Richtig;

siehe auch:
Guide to C# - Arrays

Edit: Link + Beispiel (hoffentlich) verbessert

01.05.2006 - 15:03 Uhr

Thx für die schnelle Antwort

@sbertl000:
Hättest ruhig noch schreiben können das ich das erst in eine Bitmap konvertieren muss 😁
habs aber ja gefunden 8)

01.05.2006 - 14:55 Uhr

Hi
Ich hab ein Bild folgendermaßen geöffnet:

System.Drawing.Image Bild = System.Drawing.Image.FromFile(openFileDialog1.FileName);

Jetzt möchte ich gerne auf einzelne Pixel zugreifen
Wie geht das denn?

29.04.2006 - 19:34 Uhr

Eigentlich is das mit dem Passwort recovern und setzen doch unnötig oder?
Mit autologin dürfte er es ja nich abfragen.

Falls du es doch ändern willst:
Das Passwort als solches kannst du nich ändern.
Aber es gibt einen RegKey der einen verschlüsselten hash des Unicode Passworts enthält
nähere Infos: http://board.protecus.de/t12708.htm

achso: der key is natürlich geschützt
d.h. du hast auch als admin keinen zugriff
das kannst du aber ändern
hab das aber noch nich gemacht

29.04.2006 - 19:25 Uhr

Ich hab das immer mit

int foo = Convert.ToInt32(str)

gamacht. Wo is da der Unterschied zu parse?

22.04.2006 - 15:35 Uhr

sry habs auch grade gefunden
ich hatte zuerst die Kategorieansicht aktiviert und muss es da irgendwie übersehen haben
danke für deine tollerante antwort 😁 😉

22.04.2006 - 15:16 Uhr

Die einzige Eigenschaft die ich gefunde hab war OwnerDraw, da hab ich aber keine Lust zu 😁

was hast du denn gemeint?

22.04.2006 - 13:32 Uhr

Hi

Kann man in einer ListView in der Detail Ansicht auch eine ganze Zeile markieren und vor allem von überall (also nich nur wenn man die schrift anklickt)

Tschö und danke für alle Tips die ihr habt ^^
v1vec

18.04.2006 - 18:32 Uhr

hab den fehler gefunden
hab noch ne click methode gehabt die das Kontextmenü geöffnet hat =) =)

17.04.2006 - 20:28 Uhr

Hi an alle
Ich hab nen Dialog (standard-form)
darin is ein listview-element das mit einem Kontextmenü verknüpft ist

wenn ich jetz ein element in die liste hinzufüge erscheint bei einem links(!)-click das Kontextmenü, aber nicht neben der maus sondern an einer festen stelle.
Bei einem Rechtsklick ist alles normal.

Warum ist das so und wie kann man das ändern?

mfg v1vec

17.04.2006 - 19:55 Uhr

die ShowDialog() Funktion is doch vollkommen normal oder?

17.04.2006 - 19:23 Uhr

immer gerne 8)
hab das aber auch demletzt gebraucht 😁

17.04.2006 - 16:07 Uhr

Versuch mal MouseUp als ereigniss
hat bei mir immer funktioniert

16.04.2006 - 20:59 Uhr

Danke für die schnelle antwort

bin das wohl noch zu sehr gewohnt das es für (stl)lists keinen indexzugriff gibt

16.04.2006 - 20:48 Uhr

guten abend
zu ostern nur ne kurze frage:
wie kann ich bei einer list<> auf das erste element zugreifen?
gibts da eine äquivalente funktion zu .begin() aus der stl?

danke schonmal und frohe feiertage

15.04.2006 - 19:54 Uhr

na weil ich noch andere funktionen im programm hab (ich will hier nicht abschweifen) die eben nicht alle in ein fenster passen und da hab ich auch der übersicht halber mehrere dialoge gebastelt