Homebrew - The missing package manager for OS X
http://mxcl.github.com/homebrew/
"Homebrew is the easiest and most flexible way to install the UNIX tools Apple didn't include with OS X."
eine gute alternative zu macports oder fink.
Homebrew - The missing package manager for OS X
http://mxcl.github.com/homebrew/
"Homebrew is the easiest and most flexible way to install the UNIX tools Apple didn't include with OS X."
eine gute alternative zu macports oder fink.
Hi,
ich hatte mal das Finder Plugin SCPlugin installiert, mach aber jetzt alles wieder per Terminal
000435045601
kann sein das die erste "0" von der Telefonanlage dazugehaengt wird?
Zitat von http://www.rtr.at/index.php?S=00435045601&id=4506&L=&submit_TK=Suchen(0)5 private Netze:
(0)5 0456 HAGLEITNER HYGIENE INTERNATIONAL GMBH
mfg seHaas
Zattoo ist mir leider noch nicht gelungen zum Laufen zu kriegen ..
hallo,
ich hab gestern zattoo mit tsocks unter osx mit dieser anleitung zum laufen gebracht (ueber vserver in de.)
mfg seHaas
Ich höre folgende immer wieder gerne
Clint Mansell - Lux Aeterna
http://www.youtube.com/watch?v=hKLpJtvzlEI
bessere Version: http://www.youtube.com/watch?v=vl5McGN2L-E
und das schon genannte
Antonin Dvorak - Sinfonie aus der neuen Welt (und zwar die ganze!!)
http://www.youtube.com/watch?v=CQmsesSde-o
danke für die infos.
ich dachte nicht dass das so ein problem wird
irgendwie hab ich in erinnerung, dass es bei manchen installer so eine info gibt, welche programme beendet werden sollten. die müssen das ja auch irgendwo auslesen.
ich werd mit auf jedenfall den code zu filemon anschaun.
mfg seHaas
Hallo,
ich wöchte von einem java programm aus bestehende files austauschen.
werden die files gerade von einem anderen programm verwendet, sollte der benutzer informiert werden, dass er zuerst dieses beenden muss/soll.
ich hab also eine liste von filenames, die ich tauschen will und ich möchte eine liste der prozesse, die diese files verwenden.
das ganze soll unter win32 laufen.
da ich von java aus noch keine möglichkeit gefunden habe diese systeminfos auszulesen, hab ich es per JavaNativeInterface und einer kleinen DLL probiert. der code dafür hab ich z.t. aus der MSDN und aus anderen samples. zum teil funktionierts, nur bekomm ich nicht den vollständigen pfad für file bzw prozess (laufwerksbuchstabe fehlt).
ich hab schon lösungen gefunden, die dann einfach alle laufwerke durchgehen und schaut ob es das file dort gibt, aber das ist mir zu unsicher.
gibts vielleicht eine möglichkeit das ohne DLL zu lösen oder fertige libraries?
mfg seHaas
anbei der c-code.
#include <stdio.h>
#include <windows.h>
#include <wchar.h>
#include <process.h>
#include "SystemHandles.h"
HANDLE OpenProcessWrapper(DWORD processId)
{
// Open the process for handle duplication
return OpenProcess( PROCESS_DUP_HANDLE, TRUE, processId );
}
HANDLE DuplicateHandleWrapper(HANDLE hProcess, HANDLE hRemote)
{
HANDLE hDup = NULL;
// Duplicate the remote handle for our process
DuplicateHandle( hProcess, hRemote, GetCurrentProcess(), &hDup, 0, FALSE, DUPLICATE_SAME_ACCESS );
return hDup;
}
void GetFileNameThread( PVOID pParam )
{
int len;
GetFileNameThreadParam* p = (GetFileNameThreadParam*)pParam;
p->rc = FALSE;
UCHAR lpBuffer[MAX_PATH*2];
PFILE_NAME_INFORMATION pFNI = (PFILE_NAME_INFORMATION)lpBuffer;
DWORD iob[2];
DWORD ntRet = NtQueryInformationFile( p->hFile, iob, lpBuffer, MAX_PATH*2, 9 );
if ( ntRet == STATUS_SUCCESS){
len = pFNI->FileNameLength/2;
if (len > MAX_PATH)
{
len = MAX_PATH-1;
}
wcsncpy(p->pName, pFNI->FileName, len );
p->pName [len] = L'\0';
p->rc = TRUE;
}
}
BOOL GetFileName(HANDLE h, PWCHAR pName, DWORD processId )
{
ULONG size = 0x2000;
UCHAR* lpBuffer = NULL;
BOOL ret = FALSE;
HANDLE handle;
HANDLE hRemoteProcess = NULL;
BOOL remote = processId != GetCurrentProcessId();
if ( remote )
{
// Open the remote process
hRemoteProcess = OpenProcessWrapper( processId );
if ( hRemoteProcess == NULL )
{
return FALSE;
}
// Duplicate the handle
handle = DuplicateHandleWrapper( hRemoteProcess, h );
}
else
{
handle = h;
}
// Query the info size
NtQueryObject( handle, 2, NULL, 0, &size );
lpBuffer = (UCHAR*)VirtualAlloc(NULL, sizeof(UCHAR)*size, MEM_COMMIT, PAGE_READWRITE );
// Query the info size ( type = 2 = ObjectTypeInformation)
if ( NtQueryObject( handle, 2, lpBuffer, size, NULL ) == 0 )
{
int i = _wcsicmp (L"File", (wchar_t*)(lpBuffer+0x60)); // * 0x60 to skip data from OBJECT_INFORMATION_CLASS
if (i == 0)
{
GetFileNameThreadParam tp;
tp.hFile = handle;
tp.pName = pName;
//Start the thread to get the file name
HANDLE hThread = (HANDLE)_beginthread( GetFileNameThread, 0, &tp );
if ( hThread != NULL )
{
if ( WaitForSingleObject(hThread, 50 ) == WAIT_TIMEOUT)
{
// Access denied, terminate the thread
TerminateThread( hThread, 0 );
wcscpy(pName, L"");
ret = FALSE;
}
else
{
ret = tp.rc;
}
} // else goto cleanup;
} // else goto cleanup;
}
//cleanup:
if ( remote )
{
if ( hRemoteProcess != NULL )
CloseHandle( hRemoteProcess );
if ( handle != NULL )
CloseHandle( handle );
}
if ( lpBuffer != NULL )
VirtualFree(lpBuffer, 0, MEM_RELEASE);
return ret;
}
JNIEXPORT jboolean JNICALL Java_SystemHandles_initNative (JNIEnv *env, jobject self)
{
HANDLE ntdll = LoadLibrary("ntdll.dll");
NtQuerySystemInformation = (PNtQuerySystemInformation)
GetProcAddress((HINSTANCE)ntdll, "NtQuerySystemInformation" );
NtQueryObject = (PNtQueryObject)
GetProcAddress((HINSTANCE)ntdll, "NtQueryObject");
NtQueryInformationFile = (PNtQueryInformationFile)
GetProcAddress((HINSTANCE)ntdll, "NtQueryInformationFile" );
HANDLE psapi = LoadLibrary("PSAPI.DLL");
GetProcessImageFileName = (PGetProcessImageFileName)
GetProcAddress((HINSTANCE)psapi, "GetProcessImageFileNameW");
EnumProcessModules = (PEnumProcessModules)
GetProcAddress((HINSTANCE)psapi, "EnumProcessModules");
GetModuleBaseName = (PGetModuleBaseName)
GetProcAddress((HINSTANCE)psapi, "GetModuleBaseNameW");
GetMappedFileName = (PGetMappedFileName)
GetProcAddress((HINSTANCE)psapi, "GetMappedFileNameW");
jboolean ret = NtQuerySystemInformation && NtQueryObject && NtQueryInformationFile &&
GetProcessImageFileName && EnumProcessModules && GetModuleBaseName && GetMappedFileName;
return ret;
}
PSYSTEM_HANDLE_INFORMATION SystemSnapshot()
{
DWORD size = 0x6000;
DWORD needed = 0;
PSYSTEM_HANDLE_INFORMATION pHI;
pHI = (PSYSTEM_HANDLE_INFORMATION)
VirtualAlloc( NULL, size, MEM_COMMIT, PAGE_READWRITE );
if (! pHI)
{
return NULL;
}
// SYSTEM_INFORMATION_CLASS SystemHandleInformation <-- 16
if ( NtQuerySystemInformation( 16, pHI, size, &needed ) != 0 )
{
if ( needed == 0 )
{
VirtualFree( pHI, 0, MEM_RELEASE );
return NULL;
}
// The size was not enough
VirtualFree( pHI, 0, MEM_RELEASE );
pHI = (PSYSTEM_HANDLE_INFORMATION)
VirtualAlloc( NULL, size = needed + 256, MEM_COMMIT, PAGE_READWRITE );
}
if ( pHI == NULL )
{
return NULL;
}
// Query the objects ( system wide )
if ( NtQuerySystemInformation( 16, pHI, size, NULL ) != 0 ) {
VirtualFree( pHI, 0, MEM_RELEASE );
return NULL;
}
return pHI;
}
JNIEXPORT jobject JNICALL Java_SystemHandles_getOpenFilesNative (JNIEnv *env, jobject self)
{
jclass cls;
jmethodID constructor;
jmethodID addFkt;
jvalue args[3];
jobject list;
// reference of the class SystemHandleList
cls = (*env)->FindClass(env, "SystemFileHandleList");
// get a reference to the constructor; the name is <init>
constructor = (*env)->GetMethodID(env, cls, "<init>", "()V");
// get a reference to the add(String, int, int) method
addFkt = (*env)->GetMethodID(env, cls, "add", "(Ljava/lang/String;II)V");
// create a new instance of the class
list = (*env)->NewObject(env, cls, constructor);
PSYSTEM_HANDLE_INFORMATION pHI = SystemSnapshot();
if (pHI != NULL)
{
int i = 0;
for (i = 0; i < pHI->NumberOfHandles; i++ )
{
SYSTEM_HANDLE_TABLE_ENTRY_INFO h = pHI->Handles[i];
WCHAR fileName[MAX_PATH];
if (!GetFileName((HANDLE)h.HandleValue, fileName, h.UniqueProcessId))
{
continue;
}
// WCHAR fn[MAX_PATH];
// GetFileNameFromHandle(h.HandleValue, h.UniqueProcessId, fn);
args[0].l = (*env)->NewString(env, fileName, wcslen(fileName));
args[1].i = h.HandleValue;
args[2].i = h.UniqueProcessId;
(*env)->CallVoidMethodA(env, list, addFkt, args);
}
}
return list;
}
JNIEXPORT jstring JNICALL Java_SystemHandles_getProcessFullNameNative (JNIEnv *env, jobject self, jint pid)
{
BOOL res;
int k = 0;
WCHAR name[MAX_PATH];
HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pid );
int count = GetProcessImageFileName(hProcess, name, MAX_PATH);
res = count != 0;
if (! res)
{
k = GetLastError();
return (*env)->NewStringUTF(env, "<unknown>");
}
return (*env)->NewString(env, name, wcslen(name));
}
JNIEXPORT jstring JNICALL Java_SystemHandles_getProcessNameNative (JNIEnv *env, jobject self, jint processID)
{
WCHAR szProcessName[MAX_PATH] = L"<unknown>";
// Get a handle to the process.
HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
// Get the process name.
if (hProcess != NULL)
{
HMODULE hMod;
DWORD cbNeeded;
if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded) )
{
GetModuleBaseName( hProcess, hMod, szProcessName, sizeof(szProcessName)/sizeof(TCHAR) );
}
CloseHandle( hProcess );
}
return (*env)->NewString(env, szProcessName, wcslen(szProcessName));
}
Alles anzeigen
ich hatte auch ein problem mit meinen namen und hab mich an die oeggk gewendet.
nur die haben auch gemeint ich bekomme eine neue ecard mit der es dann gehen soll - nur ist jetzt nach 2 wochen noch immer keine da.
habens zu euch auch was wegen einer neuen gesagt oder gehts mit der alten dann auch?
Bei Verwendung eines TableModels musst du eine Methode implementieren, die für die jeweilige Zelle den Typ zurückgibt.
Welche Methode meinst du? getColumnClass geht nur auf Spaltenebene.
Gibst du dort den Typ boolean zurück, entsteht automatisch eine CheckBox, ohne dass du selbst einen Renderer schreiben musst.
Den Renderer musst in der Regel eh nicht selber schreiben, nur du musst halt die Zuordnung selber machen.
mfg seHaas
hi,
schau dir die Funktionen getCellRenderer und getCellEditor von der JTable an.
da bekommst du die Spalte und Ziele mit übergeben - anhand derer musst halt entscheiden welchen Renderer/Editor du anzeigst.
Du kannst ja in deinem Tablemodel eine Funktion getCellClass definieren, die du in den oben genannten Funktionen verwendest.
mfg seHaas
wann ist das denn?
auf der homepage steht, dass sie zwischen 11:30 und 14:30 uhr da waren
Laut deren Aussagen, kommen sie naechste Woche wieder ins Freihaus - anscheinend selbe Zeit.
mfg seHaas
Hallo.
Bezogen auf die Zeile system.out.println("Hello World!");
hast du das "system" eh mit grossem "S" geschrieben?
gross/kleinschreibung macht einen unterschied.
mfg seHaas
ich dusche gerne ohne nass zu werden
und ich muss den geruch dann ertragen
danke hal,
aber die apple-tastatur ist doch a wengal zu teuer - aber ich werd mal schaun ob ich vllt eine US bekommen.
mfg seHaas
hallo,
hier mal die fotos meiner tastaturen:
mbp http://deebas.com/sehaas/tmp/keyboard/IMG_2768.JPG
cherry http://deebas.com/sehaas/tmp/keyboard/IMG_2769.JPG
vielleich ists eh ein wenig kleinlich, aber der unterschied liegt in folgenden tasten:
wobei mich der letzte unterschied nicht so stoert, aber die anderen schon.
wie schon geschrieben, ich suche ein tastaturlayout das dem mpb entspricht.
ich hab jetzt die systemeinstellungen nochmal angeschaut - haett ich eigentlich schon frueher machen koennen) - jedenfalls hab ich am mac "U.S. - extended" und am win "u.s. international"
das scheint eh schon die loesung zu sein - ich hab wohl nicht bedacht dass GB und US einen unterschied machen.
aber wenn ihr noch einen genaueren tip habt, der mich vor dem naechsten "fehlkauf" bewahrt, bin ich natuerlich offen dafuer
schoenen sonntag,
seHaas
hallo,
ich hab mir mein mbp mit englischer (international) tastatur bestellt und weil ich mich jetzt doch schon gut an das layout gewohnt habe wollte ich mir fuer meinen anderen rechner auch eine tastatur mit der selben beschriftung kaufen (ich schau halt doch oefter mal auf die tasten)
ich hab mir eine "Cherry eVolution Stream" mit GB layout gekauft, nur hat die wieder ein anderes layout. bloederweise hab ich sie nicht gleich zurueckgebracht weil sie halt doch besser zum schreiben war als meine alte, aber jetzt aergert mich wieder, dass die beschriftung nicht zum eingestellten layout passt.
weiss wer wie das layout heisst das die englischen tastaturen der mbp haben? oder ist das das eine anordnung die nur die macs haben?
in den onlineshops kann ich das layout leider nicht vergleichen und einen shop zum hingehen der eine auswahl an "fremden" tastaturen hat kenn ich leider nicht.
sollte jedem infos drueber haben, einen shop zum in wien kennt oder sogar die tastatur brauchen koennte (erst im dez gekauft), dann bitte bei mir melden.
danke
seHaas
danke,
mit dem cert im keychain funktionierts